Modelo de Servidor MCP baseado na documentação oficial
Criado para fins educacionais no canal Código Fonte TV, este projeto demonstra como construir um servidor MCP com integração a APIs externas e validação de dados.
Este repositório contém um exemplo de implementação de um servidor MCP (Model Context Protocol) em Node.js/TypeScript, que fornece duas ferramentas para obter informações meteorológicas usando a API do National Weather Service (NWS) dos EUA.
CA, NY).fetch (camada de infraestrutura).@modelcontextprotocol/sdk).O projeto segue uma arquitetura em camadas inspirada em padrões de Domain-Driven Design (DDD):
Domain (src/domain):
Definição de interfaces e tipos que representam as estruturas de dados (ex: AlertFeature, ForecastPeriod, AlertsResponse).
Infrastructure (src/infrastructure):
Implementação de serviços externos, como o NWSApiService, responsável por realizar as chamadas HTTP à API do NWS.
Application (src/application):
Contém a lógica de negócio no WeatherService, que processa e formata os dados vindos da infraestrutura.
Interface (src/interface):
Inclui controladores (WeatherToolsController) que registram as ferramentas no servidor MCP, definem schemas de validação e retornam os resultados.
Entry Point (src/main.ts):
Inicializa o McpServer, configura o transporte (StdioServerTransport), instancia serviços e controladores, e inicia escuta em stdio.
A estrutura de pastas é a seguinte:
src/
├── domain/
│ └── models/ # Interfaces de domínio
├── infrastructure/
│ └── services/ # Implementações da API externa (NWS)
├── application/
│ └── services/ # Lógica de negócio e formatação de dados
├── interface/
│ └── controllers/ # Registro das ferramentas MCP e validação
└── main.ts # Ponto de entrada do servidor
build/ # Código JavaScript compilado
git clone <REPOSITÓRIO_URL>
cd mcp-server-sample
npm install
npm run build
Após o build, você pode executar o servidor diretamente:
node build/main.js
Ou, se registrado como binário (weather):
npm link
weather
O servidor iniciará na saída padrão (stdio) e aguardará requisições MCP.
Pull requests são bem-vindos! Sinta-se à vontade para abrir issues e discutir melhorias.
Para mais detalhes sobre a implementação, assista ao vídeo no canal Código Fonte TV.
{
"mcpServers": {
"mcp-server-sample": {
"command": "node",
"args": [
"build/main.js"
]
}
}
}Related projects feature coming soon
Will recommend related projects based on sub-categories