Genkit MCP
OfficialGenkit MCP
[!ADVERTENCIA]
Este complemento es experimental, lo que significa que es posible que no tenga soporte a largo plazo y que las API estén sujetas a cambios disruptivos con mayor frecuencia.
Este complemento proporciona integración entre Genkit y el Protocolo de Contexto de Modelo (MCP). MCP es un estándar abierto que permite a los desarrolladores crear servidores que proporcionan herramientas, recursos y avisos a los clientes. Genkit MCP permite a los desarrolladores consumir herramientas, avisos y recursos de MCP como cliente y proporcionar herramientas y avisos como servidor.
Instalación
Para comenzar, necesitará Genkit y el complemento MCP:
npm i genkit genkitx-mcpRelated MCP server: MCP Server
Cliente MCP
Para crear un cliente MCP, se llama a la función mcpClient para generar un complemento Genkit para un servidor MCP. Por ejemplo, para usar el servidor de sistema de archivos de ejemplo de 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 ...*/,
],
});La mayoría de los servidores MCP están diseñados para ejecutarse como procesos generados en la misma máquina mediante el transporte stdio . Al proporcionar la opción serverProcess , se especifican el comando, los argumentos y las variables de entorno para generar el servidor como subproceso.
Opciones de mcpClient()
name: (obligatorio) El nombre de este cliente, que asigna espacios de nombres a sus herramientas y avisos.version: (opcional) Número de versión del cliente. El valor predeterminado es "1.0.0".Debe proporcionar uno de los siguientes:
serverProcess: Parámetros para iniciar un proceso de servidor local utilizando el transporte MCP stdio.command: Ruta de comandos del shell para iniciar el servidor MCP. Puede ser, por ejemplo,npxouvxpara descargar y ejecutar el servidor desde un gestor de paquetes.args: (opcional) Matriz de argumentos de cadena para pasar al comando.env: (opcional) Objeto de valor clave de las variables de entorno que se pasarán al comando.
serverUrl: la URL de un servidor remoto al que conectarse mediante el transporte SSE MCP.**
serverWebsocketUrl: la URL de un servidor remoto al que conectarse mediante el transporte MCP de WebSocket.transport: un objeto de transporte MCP existente para conectarse al servidor.
rawToolResponses: (opcional) Indicador booleano. Si estrue, las respuestas de la herramienta se devuelven en su formato MCP original; de lo contrario, se procesan para compatibilidad con Genkit.
Uso de acciones MCP
El cliente MCP de Genkit detecta automáticamente las herramientas y los avisos disponibles y los registra en Genkit, haciéndolos disponibles dondequiera que se puedan usar otras herramientas y avisos. Para acceder a los recursos, se registran las herramientas especiales list_resources y read_resource , que accederán a los recursos del servidor.
Todas las acciones de MCP tienen un espacio de nombres bajo el nombre que usted proporciona, por lo que un cliente llamado filesystem registrará herramientas como filesystem/read_file .
Respuestas de la herramienta
Las herramientas MCP devuelven una matriz content , a diferencia de una respuesta estructurada como la mayoría de las herramientas Genkit. El complemento MCP de Genkit intenta analizar y convertir el contenido devuelto:
Si el contenido es texto y JSON válido, se analiza y se devuelve el JSON.
Si el contenido es texto y no JSON válido, se devuelve el texto.
Si el contenido tiene una sola parte que no es texto, se devuelve.
Si el contenido tiene partes múltiples o mixtas, se devuelve la respuesta del contenido completo.
Servidor MCP
También puedes exponer todas las herramientas y avisos de una instancia de Genkit como un servidor 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();Lo anterior iniciará un servidor MCP con el transporte stdio que expone una herramienta llamada add y un indicador llamado happy . Para iniciar el servidor con un transporte diferente, use mcpServer(...).start(otherTransport) .
Limitaciones conocidas
Las solicitudes de MCP solo pueden tomar parámetros de cadena, por lo que las entradas a los esquemas deben ser objetos con solo valores de propiedad de cadena.
Los mensajes de MCP solo admiten mensajes
userymodel. Los mensajessystemno son compatibles.Los mensajes de MCP solo admiten un único "tipo" dentro de un mensaje, por lo que no es posible mezclar medios y texto en el mismo mensaje.
Probando su servidor MCP
Puedes probar tu servidor MCP con el inspector oficial. Por ejemplo, si el código de tu servidor se compila en dist/index.js , podrías ejecutar:
npx @modelcontextprotocol/inspector dist/index.jsUna vez que inicie el inspector, podrá enumerar indicaciones y acciones y probarlas manualmente.
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