Guia de Desenvolvimento de Servidores MCP
Visão Geral
Crie servidores MCP (Model Context Protocol) que permitem que LLMs interajam com serviços externos por meio de ferramentas bem projetadas. A qualidade de um servidor MCP é medida pela sua capacidade de permitir que LLMs realizem tarefas do mundo real.
Processo
🚀 Fluxo de Trabalho de Alto Nível
Criar um servidor MCP de alta qualidade envolve quatro fases principais:
Fase 1: Pesquisa e Planejamento Profundos
1.1 Entenda o Design Moderno de MCP
Cobertura de API vs. Ferramentas de Workflow: Equilibre a cobertura abrangente de endpoints de API com ferramentas de workflow especializadas. Ferramentas de workflow podem ser mais convenientes para tarefas específicas, enquanto a cobertura abrangente dá aos agentes flexibilidade para compor operações. O desempenho varia por cliente—alguns clientes se beneficiam da execução de código que combina ferramentas básicas, enquanto outros funcionam melhor com workflows de nível superior. Quando estiver em dúvida, priorize a cobertura abrangente de API.
Nomeação e Descoberta de Ferramentas:
Nomes de ferramentas claros e descritivos ajudam os agentes a encontrar as ferramentas certas rapidamente. Use prefixos consistentes (por exemplo, github_create_issue, github_list_repos) e nomeação orientada a ação.
Gerenciamento de Contexto: Os agentes se beneficiam de descrições concisas de ferramentas e da capacidade de filtrar/paginar resultados. Projete ferramentas que retornem dados focados e relevantes. Alguns clientes oferecem suporte à execução de código, o que pode ajudar os agentes a filtrar e processar dados de forma eficiente.
Mensagens de Erro Acionáveis: As mensagens de erro devem guiar os agentes em direção a soluções com sugestões específicas e próximos passos.
1.2 Estude a Documentação do Protocolo MCP
Navegue pela especificação MCP:
Comece pelo sitemap para encontrar páginas relevantes: https://modelcontextprotocol.io/sitemap.xml
Em seguida, busque páginas específicas com o sufixo .md para formato markdown (por exemplo, https://modelcontextprotocol.io/specification/draft.md).
Páginas-chave para revisar:
- Visão geral da especificação e arquitetura
- Mecanismos de transporte (HTTP streamable, stdio)
- Definições de ferramentas, recursos e prompts
1.3 Estude a Documentação do Framework
Stack recomendada:
- Linguagem: TypeScript (suporte SDK de alta qualidade e boa compatibilidade em muitos ambientes de execução, como MCPB. Além disso, modelos de IA são bons em gerar código TypeScript, beneficiando-se de seu uso amplo, tipagem estática e boas ferramentas de linting)
- Transporte: HTTP streamable para servidores remotos, usando JSON sem estado (mais simples de escalar e manter, ao contrário de sessões com estado e respostas de streaming). stdio para servidores locais.
Carregue a documentação do framework:
- Melhores Práticas de MCP: 📋 Ver Melhores Práticas - Diretrizes principais
Para TypeScript (recomendado):
O SDK TypeScript tem duas versões principais. Escolha uma antes de escrever código:
- v2 (
@modelcontextprotocol/server): a versão estável atual. Use para novos servidores. - v1 (
@modelcontextprotocol/sdk): recebe apenas correções de bugs e segurança. Use apenas quando opackage.jsondo projeto já depender de@modelcontextprotocol/sdk, ou migre esse projeto comnpx @modelcontextprotocol/codemod@latest v1-to-v2 .
Se o projeto já usar v1, informe o usuário uma vez, em uma ou duas frases, que v2 (@modelcontextprotocol/server) é a versão estável atual, que v1 recebe apenas correções de bugs e segurança, e que npx @modelcontextprotocol/codemod@latest v1-to-v2 . migra o projeto. Em seguida, continue com v1, a menos que o usuário peça para migrar.
Não misture as duas versões em um único projeto: exemplos de código v1 (importações de @modelcontextprotocol/sdk/...) não se aplicam ao v2.
- TypeScript SDK (v2): Use WebFetch para carregar
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md; o índice completo da documentação éhttps://ts.sdk.modelcontextprotocol.io/v2/llms.txt - ⚡ Guia TypeScript (v2) - Padrões e exemplos TypeScript
- Para projetos v1 apenas:
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/v1.x/README.mde o Guia TypeScript (v1)
Para Python:
- Python SDK: Use WebFetch para carregar
https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md - 🐍 Guia Python - Padrões e exemplos Python
1.4 Planeje Sua Implementação
Entenda a API: Revise a documentação da API do serviço para identificar endpoints-chave, requisitos de autenticação e modelos de dados. Use pesquisa na web e WebFetch conforme necessário.
Seleção de Ferramentas: Priorize a cobertura abrangente de API. Liste endpoints a serem implementados, começando pelas operações mais comuns.
Fase 2: Implementação
2.1 Configure a Estrutura do Projeto
Consulte guias específicos de linguagem para configuração do projeto:
- ⚡ Guia TypeScript (v2) - Estrutura do projeto, package.json, tsconfig.json (v1 para projetos v1 existentes)
- 🐍 Guia Python - Organização de módulos, dependências
2.2 Implemente a Infraestrutura Central
Crie utilitários compartilhados:
- Cliente de API com autenticação
- Helpers de tratamento de erros
- Formatação de resposta (JSON/Markdown)
- Suporte a paginação
2.3 Implemente as Ferramentas
Para cada ferramenta:
Esquema de Entrada:
- Use Zod (TypeScript) ou Pydantic (Python)
- Inclua restrições e descrições claras
- Adicione exemplos nas descrições dos campos
Esquema de Saída:
- Defina
outputSchemaquando possível para dados estruturados - Use
structuredContentnas respostas das ferramentas (recurso do SDK TypeScript) - Ajuda os clientes a entender e processar as saídas das ferramentas
Descrição da Ferramenta:
- Resumo conciso da funcionalidade
- Descrições dos parâmetros
- Esquema do tipo de retorno
Implementação:
- Async/await para operações de I/O
- Tratamento de erros adequado com mensagens acionáveis
- Suporte a paginação quando aplicável
- Retorne conteúdo de texto e dados estruturados ao usar SDKs modernos
Anotações:
readOnlyHint: true/falsedestructiveHint: true/falseidempotentHint: true/falseopenWorldHint: true/false
Fase 3: Revisão e Testes
3.1 Qualidade do Código
Revise para:
- Sem código duplicado (princípio DRY)
- Tratamento de erros consistente
- Cobertura total de tipos
- Descrições claras de ferramentas
3.2 Compile e Teste
TypeScript:
- Execute
npm run buildpara verificar a compilação - Projetos v2: execute o script de auto-verificação do guia v2 no servidor compilado
- Teste com MCP Inspector:
npx @modelcontextprotocol/inspector
Python:
- Verifique a sintaxe:
python -m py_compile seu_servidor.py - Teste com MCP Inspector
Consulte guias específicos de linguagem para abordagens de teste detalhadas e listas de verificação de qualidade.
Fase 4: Crie Avaliações
Após implementar seu servidor MCP, crie avaliações abrangentes para testar sua eficácia.
Carregue ✅ Guia de Avaliação para diretrizes completas de avaliação.
4.1 Entenda o Propósito da Avaliação
Use avaliações para testar se LLMs podem usar efetivamente seu servidor MCP para responder perguntas realistas e complexas.
4.2 Crie 10 Perguntas de Avaliação
Para criar avaliações eficazes, siga o processo descrito no guia de avaliação:
- Inspeção de Ferramentas: Liste as ferramentas disponíveis e entenda suas capacidades
- Exploração de Conteúdo: Use operações SOMENTE-LEITURA para explorar dados disponíveis
- Geração de Perguntas: Crie 10 perguntas complexas e realistas
- Verificação de Respostas: Resolva cada pergunta você mesmo para verificar as respostas
4.3 Requisitos de Avaliação
Garanta que cada pergunta seja:
- Independente: Não dependente de outras perguntas
- Somente leitura: Requer apenas operações não destrutivas
- Complexa: Exija múltiplas chamadas de ferramenta e exploração aprofundada
- Realista: Baseada em casos de uso reais que humanos considerariam importantes
- Verificável: Resposta única e clara que pode ser verificada por comparação de strings
- Estável: A resposta não muda com o tempo
4.4 Formato de Saída
Crie um arquivo XML com esta estrutura:
<evaluation>
<qa_pair>
<question>Encontre discussões sobre lançamentos de modelos de IA com codinomes de animais. Um modelo precisava de uma designação de segurança específica que usa o formato ASL-X. Qual número X estava sendo determinado para o modelo nomeado após um gato selvagem pintado?</question>
<answer>3</answer>
</qa_pair>
<!-- Mais qa_pairs... -->
</evaluation>
Arquivos de Referência
📚 Biblioteca de Documentação
Carregue esses recursos conforme necessário durante o desenvolvimento:
Documentação Central do MCP (Carregue Primeiro)
- Protocolo MCP: Comece pelo sitemap em
https://modelcontextprotocol.io/sitemap.xml, depois busque páginas específicas com o sufixo.md - 📋 Melhores Práticas de MCP - Diretrizes universais de MCP incluindo:
- Convenções de nomenclatura de servidores e ferramentas
- Diretrizes de formato de resposta (JSON vs Markdown)
- Melhores práticas de paginação
- Seleção de transporte (HTTP streamable vs stdio)
- Padrões de segurança e tratamento de erros
Documentação do SDK (Carregue Durante a Fase 1/2)
- Python SDK: Busque de
https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md - TypeScript SDK (v2): Busque de
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md; índice completo da documentação emhttps://ts.sdk.modelcontextprotocol.io/v2/llms.txt - TypeScript SDK (v1, apenas projetos v1 existentes): Busque de
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/v1.x/README.md
Guias de Implementação Específicos por Linguagem (Carregue Durante a Fase 2)
-
🐍 Guia de Implementação Python - Guia completo Python/FastMCP com:
- Padrões de inicialização de servidor
- Exemplos de modelos Pydantic
- Registro de ferramentas com
@mcp.tool - Exemplos completos funcionais
- Lista de verificação de qualidade
-
⚡ Guia de Implementação TypeScript (SDK v2) - Guia completo TypeScript para
@modelcontextprotocol/servercom:- Configuração do projeto e a fábrica de servidores
- Design de ferramentas: esquemas Zod 4, formatos de saída, paginação, erros
- Um exemplo completo servindo stdio e HTTP streamable, mais autenticação bearer
- Recursos, prompts e notificações
- Um script de auto-verificação para testar o servidor compilado
- Links para exemplos do SDK para funcionalidades avançadas
- Uma tabela de tradução v1 → v2, passos de migração e uma lista de verificação de qualidade
-
⚡ Guia de Implementação TypeScript (SDK v1) - O guia equivalente para projetos existentes com
@modelcontextprotocol/sdk
Guia de Avaliação (Carregue Durante a Fase 4)
- ✅ Guia de Avaliação - Guia completo de criação de avaliações com:
- Diretrizes de criação de perguntas
- Estratégias de verificação de respostas
- Especificações de formato XML
- Exemplos de perguntas e respostas
- Execução de uma avaliação com os scripts fornecidos