---
title: Servidor MCP
description: >-
  Hospede um servidor Model Context Protocol para que agentes de programação possam buscar e ler sua documentação diretamente — ferramentas, recursos, documentos de descoberta, filtros de tipo de conteúdo e facetas, e a saída de servidor que ele precisa.
---

Hospede um servidor [Model Context Protocol](https://modelcontextprotocol.io) para que agentes de programação (Claude Code, Cursor, VS Code, conectores do claude.ai) possam buscar e ler sua documentação diretamente — sem scraping. É opcional:

```ts blume.config.ts lineNumbers
ai: {
  mcp: {
    enabled: true,
    route: "/mcp", // where the server is mounted
  },
}
```

| Opção | Padrão | Descrição |
| --- | --- | --- |
| `enabled` | `false` | Gera e hospeda o servidor MCP. |
| `route` | `/mcp` | Caminho em que o endpoint Streamable-HTTP é montado. |
| `name` | title | Nome do servidor exibido aos clientes (padrão: o título). |
| `instructions` | — | Dica de sistema opcional passada aos agentes que se conectam. |

## Ferramentas e recursos [#tools-and-resources]

O servidor expõe ferramentas somente leitura — `search_docs`, `get_page`, `list_pages` e `get_navigation` — e cada página como um recurso MCP (`resources/list` enumera as páginas em suas URLs servidas com o tipo `text/markdown`; `resources/read` retorna o [Markdown para agentes](/docs/discoverability/markdown) da página, a mesma saída de `get_page`), então clientes que anexam contexto por URI podem navegar pela documentação sem chamar uma ferramenta. Ele publica documentos de descoberta em `/.well-known/mcp.json` e `/.well-known/mcp/server-card.json`. O server card segue o schema da extensão Server Card da [SEP-2127](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127) (`name` em DNS reverso, endpoints de transporte `remotes`), com campos de compatibilidade no formato de initialize (`serverInfo`, `capabilities`, `transports`) para scanners construídos com base na revisão anterior da proposta. O menu **Connect to MCP** de cada página oferece instalação copiar-e-colar para Claude Code, Cursor, VS Code e Codex (exibido assim que [`deployment.site`](/docs/deployment) estiver definido).

`search_docs` roda seu próprio índice de texto completo, então funciona independentemente do seu provedor de [busca](/docs/configuration/search) — e até mesmo quando a busca está definida como `none`. O servidor MCP é um recurso separado da busca na página.

As mesmas ferramentas estão disponíveis via HTTP simples como a [API JSON](/docs/discoverability/json-api), para frameworks que não falam MCP.

## Escopo por tipo de conteúdo e facetas [#scoping-by-content-type-and-facets]

`search_docs` e `list_pages` aceitam um filtro opcional `contentTypes`, restringindo os resultados a páginas dos [`type`s](/docs/reference/frontmatter) de frontmatter informados — `["rfc"]`, `["blog", "changelog"]` — para que um agente trabalhando em um site que mistura documentação com RFCs, runbooks ou políticas consiga limitar a recuperação ao tipo de página de que precisa. Todo resultado informa seu tipo de conteúdo, e a saída de `list_pages` mostra os tipos em uso.

As duas ferramentas também aceitam um objeto `filters` que faz correspondência com as facetas que um site declara por tipo de conteúdo ([`content.types.<type>.facets`](/docs/configuration#frontmatter)) — chaves de frontmatter personalizadas cujos valores viram metadados filtráveis:

```json
{
  "query": "OpenAPI request schemas",
  "contentTypes": ["rfc"],
  "filters": { "domain": "architecture", "status": "enforced" }
}
```

Cada entrada de `filters` precisa corresponder (os resultados carregam seus valores de faceta, e `list_pages` mostra os de cada página), então uma base de conhecimento pode conduzir fluxos de trabalho de agentes com divulgação progressiva — enumerar os padrões aplicados, buscar somente dentro deles — sem nenhum servidor próprio.

## Saída de servidor obrigatória [#server-output-required]

O servidor MCP é um endpoint ativo (`/mcp`), então não pode rodar em um build estático. Mude para a saída de servidor e escolha um adaptador:

```ts blume.config.ts lineNumbers
deployment: {
  output: "server",
  adapter: "node", // or "vercel" | "netlify" | "cloudflare"
  site: "https://docs.example.com",
}
```

Um build estático com `ai.mcp.enabled` falha imediatamente com uma mensagem pedindo que você defina `deployment.output` como `server`. Veja [Deployment](/docs/deployment) para os adaptadores. Depois de implantado, conecte-se pelo Claude Code com:

```bash
claude mcp add --transport http my-docs https://docs.example.com/mcp
```
