About
Modelo de Servidor MCP baseado na documentação oficial
README
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.
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 oNWSApiService, responsável por realizar as chamadas HTTP à API do NWS.Application (
src/application): Contém a lógica de negócio noWeatherService, 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 oMcpServer, 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
Instalação
git clone <REPOSITÓRIO_URL>
cd mcp-server-sample
npm install
npm run build
Uso
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.
Contribuição
Pull requests são bem-vindos! Sinta-se à vontade para abrir issues e discutir melhorias.
Código Fonte TV
Para mais detalhes sobre a implementação, assista ao vídeo no canal Código Fonte TV.
Installing Sample
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/gabrielfroes/mcp-server-sampleFAQ
Is Sample MCP free?
Yes, Sample MCP is free — one-click install via Unyly at no cost.
Does Sample need an API key?
No, Sample runs without API keys or environment variables.
Is Sample hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Sample in Claude Desktop, Claude Code or Cursor?
Open Sample on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Sample with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
