gabrielfroes

Exemplo de Servidor MCP

Community gabrielfroes
Updated

Modelo de Servidor MCP baseado na documentação oficial

Exemplo de Servidor MCP

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 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

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.

MCP Server · Populars

MCP Server · New

    jeffpierce

    Memory Palace

    Persistent memory system for agentic AI via MCP - remember, recall, forget with semantic search with knowledge graph

    Community jeffpierce
    xdevplatform

    X API FastMCP Server

    MCP server for the X API

    Community xdevplatform
    ATOI-Ming

    FreeCAD MCP Plugin

    FreeCAD plugin for automating model creation and control via Model Contro Protocol (MCP). Provides a MCP server,GUl panel, and client for running macros,managing documents, and adjusting views.

    Community ATOI-Ming
    sadiuysal

    Crawl4AI MCP Server

    🕷️ A lightweight Model Context Protocol (MCP) server that exposes Crawl4AI web scraping and crawling capabilities as tools for AI agents. Similar to Firecrawl's API but self-hosted and free. Perfect for integrating web scraping into your AI workflows with OpenAI Agents SDK, Cursor, Claude Code, and other MCP-compatible tools.

    Community sadiuysal
    gabrielfroes

    Exemplo de Servidor MCP

    Modelo de Servidor MCP baseado na documentação oficial

    Community gabrielfroes