Об этом проекте

mcp-go — это реализация Model Context Protocol (MCP) на языке Go, стандартизированного протокола, обеспечивающего безопасную интеграцию между LLM-приложениями и внешними источниками данных и инструментами. Проект предоставляет высокоуровневый, простой в использовании SDK для создания MCP-серверов на Go. Ключевые возможности включают: - Быстрая разработка с помощью высокоуровневого интерфейса, минимизирующего шаблонный код - Простое создание сервера с минимальным кодом настройки - Стремление к полной реализации основной спецификации MCP SDK реализует версию спецификации MCP 2025-11-25 с обратной совместимостью для версий 2025-06-18, 2025-03-26 и 2024-11-05. Основные концепции: - Сервер: основной интерфейс, обрабатывающий управление соединениями, соответствие протоколу и маршрутизацию сообщений - Ресурсы: предоставление данных LLM через статические или динамические URI-шаблоны (аналогично GET-эндпоинтам) - Инструменты: предоставление функциональности через исполняемые действия с побочными эффектами (аналогично POST-эндпоинтам), включая поддержку инструментов с расширенными задачами для длительных операций - Промпты: переиспользуемые шаблоны для взаимодействия с LLM с поддержкой аргументов, встроенных ресурсов и нескольких типов сообщений Поддержка транспорта включает stdio, SSE (Server-Sent Events) и streamable-HTTP. HTTP-транспорт может быть встроен в нене-net/http фреймворки, такие как fasthttp или fiber, через точку входа Handle, не зависящую от транспорта. Дополнительные функции включают метаданные защищённых ресурсов OAuth (RFC 9728), поддержку CORS для браузерных клиентов, управление сессиями с инструментами для конкретных сессий и фильтрацией инструментов, перехватчики запросов и промежуточное ПО для обработчиков инструментов. Проект находится в активной разработке: основные функции работают, но некоторые расширенные возможности всё ещё в процессе реализации.