Sobre o projeto

mcp-go é uma implementação em Go do Model Context Protocol (MCP), um protocolo padronizado que permite integração segura entre aplicações de LLM e fontes de dados e ferramentas externas. O projeto fornece um SDK de alto nível e fácil de usar para construir servidores MCP em Go. As principais características incluem: - Desenvolvimento rápido com uma interface de alto nível que minimiza código boilerplate - Criação de servidor simples com código de configuração mínimo - Objetivo de implementação completa da especificação principal do MCP O SDK implementa a versão 2025-11-25 da especificação MCP, com compatibilidade reversa para as versões 2025-06-18, 2025-03-26 e 2024-11-05. Conceitos principais abordados: - Servidor: A interface central que gerencia gerenciamento de conexões, conformidade com o protocolo e roteamento de mensagens - Recursos: Expor dados a LLMs por meio de modelos de URI estáticos ou dinâmicos (semelhantes a endpoints GET) - Ferramentas: Fornecer funcionalidade por meio de ações executáveis com efeitos colaterais (semelhantes a endpoints POST), incluindo suporte a ferramentas aumentadas por tarefas para operações de longa duração - Prompts: Modelos reutilizáveis para interações com LLM com suporte a argumentos, recursos incorporados e múltiplos tipos de mensagens O suporte a transporte inclui stdio, SSE (Server-Sent Events) e HTTP transmitível. O transporte HTTP pode ser embutido em frameworks que não sejam net/http, como fasthttp ou fiber, por meio de um ponto de entrada Handle independente de transporte. Características adicionais incluem Metadados de Recursos Protegidos por OAuth (RFC 9728), suporte a CORS para clientes baseados em navegador, gerenciamento de sessão com ferramentas por sessão e filtragem de ferramentas, hooks de solicitação e middleware de manipulador de ferramentas. O projeto está em desenvolvimento ativo, com características principais funcionando, mas algumas capacidades avançadas ainda em progresso.