mcp-server-sample
Exemplo de Servidor MCP (Model Context Protocol) para interação LLM IA Claude - Node.js, Typescript
Documentation
Exemplo de Servidor MCP
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.
Funcionalidades
- get-alerts: Retorna alertas meteorológicos ativos para um estado (código de duas letras, ex: `CA`, `NY`).
- get-forecast: Retorna a previsão do tempo para coordenadas geográficas (latitude, longitude).
- Validação de entrada usando Zod.
- Integração com a API do NWS usando `fetch` (camada de infraestrutura).
- Comunicação via _stdio_ usando o protocolo MCP (`@modelcontextprotocol/sdk`).
Arquitetura
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 compiladoInstalação
git clone
cd mcp-server-sample
npm install
npm run buildUso
Após o build, você pode executar o servidor diretamente:
node build/main.jsOu, se registrado como binário (`weather`):
npm link
weatherO servidor iniciará na saída padrão (_stdio_) e aguardará requisições MCP.
Consumir com clients IA (Claude Desktop)
Em Arquivo > Configurações > Desenvolvedor
Editar configuração
claude_desktop_config.json
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["C:\\Fontes\\mcp-server-sample\\build\\main.js"]
}
}
}Frequently asked questions
What is mcp-server-sample?
mcp-server-sample is Exemplo de Servidor MCP (Model Context Protocol) para interação LLM IA Claude - Node.js, Typescript
How do I install mcp-server-sample?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-server-sample open source?
Yes — it is hosted on GitHub at https://github.com/williammian/mcp-server-sample.
Related MCP tools
Model Context Protocol Servers
The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra
A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you
MCP server to provide Figma layout information to AI coding agents like Cursor
The world's best AI personal assistant for email. Open source app to help you reach inbox zero fast.
Instant is the best backend for AI-coded apps. You get auth, permissions, storage, presence, and streams — everything you need to ship apps your users will love.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP