trackmcp
Back to directory
williammian

mcp-server-sample

View on GitHub

Exemplo de Servidor MCP (Model Context Protocol) para interação LLM IA Claude - Node.js, Typescript

0 stars TypeScriptOthers Updated Jun 25, 2025

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:

code
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

bash
git clone 
cd mcp-server-sample
npm install
npm run build

Uso

Após o build, você pode executar o servidor diretamente:

bash
node build/main.js

Ou, se registrado como binário (`weather`):

bash
npm link
weather

O 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

code
{
    "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

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP