Генкит MCP
[!ПРЕДУПРЕЖДЕНИЕ]
Этот плагин является экспериментальным, то есть он не будет поддерживаться в долгосрочной перспективе, а API-интерфейсы подвержены более частым критическим изменениям.
Этот плагин обеспечивает интеграцию между Genkit и Model Context Protocol (MCP). MCP — это открытый стандарт, позволяющий разработчикам создавать «серверы», которые предоставляют инструменты, ресурсы и подсказки клиентам. Genkit MCP позволяет разработчикам Genkit как использовать инструменты, подсказки и ресурсы MCP в качестве клиента, так и предоставлять инструменты и подсказки в качестве сервера.
Установка
Для начала вам понадобится Genkit и плагин MCP:
Клиент МСР
Чтобы создать MCP-клиент, вы вызываете функцию mcpClient
для генерации плагина Genkit для MCP-сервера. Например, чтобы использовать пример сервера файловой системы MCP:
Большинство серверов MCP созданы для запуска в качестве порожденных процессов на той же машине с использованием транспорта stdio
. Когда вы указываете опцию serverProcess
, вы указываете команду, аргументы и переменные среды для порождения сервера как подпроцесса.
Параметры mcpClient()
name
: (обязательно) Имя этого клиента, которое определяет пространство имен его инструментов и подсказок.version
: (необязательно) Номер версии клиента. По умолчанию "1.0.0".- Вам необходимо предоставить один из следующих документов:
serverProcess
: Параметры для запуска локального серверного процесса с использованием транспорта stdio MCP.command
: Путь к команде оболочки для запуска сервера MCP. Может быть, например,npx
илиuvx
для загрузки и запуска сервера из менеджера пакетов.args
: (необязательно) Массив строковых аргументов для передачи команде.env
: (необязательно) объект значения ключа переменных среды для передачи команде.
serverUrl
: URL-адрес удаленного сервера для подключения с использованием транспорта SSE MCP.- **
serverWebsocketUrl
: URL-адрес удаленного сервера для подключения с использованием транспорта WebSocket MCP. transport
: существующий объект транспорта MCP для подключения к серверу.
rawToolResponses
: (необязательно) Логический флаг. Еслиtrue
, ответы инструмента возвращаются в необработанном формате MCP; в противном случае они обрабатываются для совместимости с Genkit.
Использование действий MCP
Клиент Genkit MCP автоматически обнаруживает доступные инструменты и подсказки и регистрирует их в Genkit, делая их доступными везде, где могут использоваться другие инструменты и подсказки. Для доступа к ресурсам регистрируются специальные инструменты list_resources
и read_resource
, которые будут получать доступ к ресурсам сервера.
Все действия MCP размещаются в пространстве имен под указанным вами именем, поэтому клиент с именем filesystem
будет регистрировать такие инструменты, как filesystem/read_file
.
Ответы инструментов
Инструменты MCP возвращают массив content
, а не структурированный ответ, как большинство инструментов Genkit. Плагин Genkit MCP пытается проанализировать и привести возвращенный контент к следующему виду:
- Если содержимое представляет собой текст и допустимый JSON, JSON анализируется и возвращается.
- Если содержимое представляет собой текст, а не допустимый JSON, возвращается текст.
- Если содержимое содержит одну нетекстовую часть, она возвращается.
- Если содержимое состоит из нескольких/смешанных частей, возвращается полный ответ содержимого.
MCP-сервер
Вы также можете предоставить доступ ко всем инструментам и подсказкам из экземпляра Genkit как к серверу MCP:
Вышеприведенный код запустит сервер MCP с транспортом stdio, который предоставляет инструмент add
и приглашение happy
. Чтобы запустить сервер с другим транспортом, используйте mcpServer(...).start(otherTransport)
.
Известные ограничения
- Приглашения MCP могут принимать только строковые параметры, поэтому входные данные для схем должны быть объектами, имеющими только строковые значения свойств.
- Подсказки MCP поддерживают только сообщения
user
иmodel
.system
сообщения не поддерживаются. - Подсказки MCP поддерживают только один «тип» в сообщении, поэтому вы не можете смешивать медиа и текст в одном сообщении.
Тестирование вашего MCP-сервера
Вы можете протестировать свой сервер MCP с помощью официального инспектора. Например, если ваш код сервера скомпилирован в dist/index.js
, вы можете запустить:
После запуска инспектора вы можете составить список подсказок и действий и протестировать их вручную.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Обеспечивает интеграцию между Genkit и протоколом контекста модели (MCP).
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA powerful Model Context Protocol (MCP) tool for exploring and managing different types of databases including PostgreSQL, MySQL, and Firestore.Last updated -93TypeScriptMIT License
- -securityFlicense-qualityProvides integration with Github through the Model Context Protocol (MCP), allowing Large Language Models to interact with Github's repositories, issues, pull requests and search functionality.Last updated -1TypeScript
- -securityAlicense-qualityGitLabとの連携機能を提供するModel Context Protocol (MCP) サーバーです。GitLabの特定のプロジェクトからパイプラインの失敗情報やマージリクエストへの指摘事項を取得し、AIアシスタントに提供します。Last updated -PythonMIT License
- -securityAlicense-qualityThe Model Context Protocol (MCP) Jenkins integration is an open-source implementation that bridges Jenkins with AI language models following Anthropic's MCP specification. This project enables secure, contextual AI interactions with Jenkins tools while maintaining data privacy and security.Last updated -25PythonMIT License