Genkit MCP
OfficialГенкит MCP
[!ПРЕДУПРЕЖДЕНИЕ]
Этот плагин является экспериментальным, то есть он не будет поддерживаться в долгосрочной перспективе, а API-интерфейсы подвержены более частым критическим изменениям.
Этот плагин обеспечивает интеграцию между Genkit и Model Context Protocol (MCP). MCP — это открытый стандарт, позволяющий разработчикам создавать «серверы», которые предоставляют инструменты, ресурсы и подсказки клиентам. Genkit MCP позволяет разработчикам Genkit как использовать инструменты, подсказки и ресурсы MCP в качестве клиента, так и предоставлять инструменты и подсказки в качестве сервера.
Установка
Для начала вам понадобится Genkit и плагин MCP:
npm i genkit genkitx-mcpRelated MCP server: MCP Server
Клиент МСР
Чтобы создать MCP-клиент, вы вызываете функцию mcpClient для генерации плагина Genkit для MCP-сервера. Например, чтобы использовать пример сервера файловой системы MCP:
import { genkit } from 'genkit';
import { mcpClient } from 'genkitx-mcp';
// the filesystem server requires one or more allowed directories
const ALLOWED_DIRS = ['/Users/yourusername/Desktop'];
const filesystemClient = mcpClient({
name: 'filesystem',
serverProcess: {
command: 'npx',
args: ['-y', '@modelcontextprotocol/server-everything', ...ALLOWED_DIRS],
},
});
const ai = genkit({
plugins: [
filesystemClient /* ... other plugins such as model providers ...*/,
],
});Большинство серверов 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:
import { genkit, z } from 'genkit';
import { mcpServer } from 'genkitx-mcp';
const ai = genkit({});
ai.defineTool(
{
name: 'add',
description: 'add two numbers together',
inputSchema: z.object({ a: z.number(), b: z.number() }),
outputSchema: z.number(),
},
async ({ a, b }) => {
return a + b;
}
);
ai.definePrompt(
{
name: "happy",
description: "everybody together now",
input: {
schema: z.object({
action: z.string().default("clap your hands").optional(),
}),
},
},
`If you're happy and you know it, {{action}}.`
);
mcpServer(ai, { name: 'example_server', version: '0.0.1' }).start();Вышеприведенный код запустит сервер MCP с транспортом stdio, который предоставляет инструмент add и приглашение happy . Чтобы запустить сервер с другим транспортом, используйте mcpServer(...).start(otherTransport) .
Известные ограничения
Приглашения MCP могут принимать только строковые параметры, поэтому входные данные для схем должны быть объектами, имеющими только строковые значения свойств.
Подсказки MCP поддерживают только сообщения
userиmodel.systemсообщения не поддерживаются.Подсказки MCP поддерживают только один «тип» в сообщении, поэтому вы не можете смешивать медиа и текст в одном сообщении.
Тестирование вашего MCP-сервера
Вы можете протестировать свой сервер MCP с помощью официального инспектора. Например, если ваш код сервера скомпилирован в dist/index.js , вы можете запустить:
npx @modelcontextprotocol/inspector dist/index.jsПосле запуска инспектора вы можете составить список подсказок и действий и протестировать их вручную.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityFmaintenanceModel Context Protocol (MCP) server implementation that enables Claude Desktop to interact with Google's Gemini AI models.6197257MIT
- FlicenseBqualityDmaintenanceImplements the Model Context Protocol (MCP) to provide AI models with a standardized interface for connecting to external data sources and tools like file systems, databases, or APIs.1153
- AlicenseAqualityCmaintenanceImplementation of Model Context Protocol (MCP) server that provides tools for accessing Google Cloud's Vertex AI Gemini models, supporting features like web search grounding and direct knowledge answering for coding assistance and general queries.204687MIT
- FlicenseDqualityDmaintenanceA ready-to-use starter implementation of the Model Context Protocol (MCP) server that enables applications to provide standardized context for LLMs with sample resources, tools, and prompts.21781
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
MCP (Model Context Protocol) server for Appwrite
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/genkit-ai/genkit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server