API Plugin
Extienda Gemini CLI con servidores MCP, herramientas personalizadas e integraciones potentes. Conéctese a bases de datos, APIs, sistemas de archivos y más usando el Protocolo de Contexto de Modelo.
Arquitectura de Extensión
Gemini CLI utiliza el Protocolo de Contexto de Modelo (MCP) para proporcionar una forma estandarizada de conectar asistentes de IA con herramientas externas y fuentes de datos.
Servidores MCP
Procesos independientes que exponen herramientas y recursos a través del Protocolo de Contexto de Modelo
Integración de Herramientas
Integre sin problemas herramientas y servicios externos en sus flujos de trabajo de IA
Desarrollo Personalizado
Construya sus propios servidores MCP para extender Gemini CLI con funcionalidad personalizada
Tipos de Servidores MCP
Explore diferentes tipos de servidores MCP y sus capacidades
Servidores de Sistema de Archivos
Servidores que proporcionan acceso y operaciones del sistema de archivos
filesystem
Leer, escribir y gestionar archivos y directorios
Capacidades:
git
Operaciones de repositorio Git y control de versiones
Capacidades:
Servidores Web y API
Servidores que interactúan con servicios web y APIs
web-search
Buscar en la web y recuperar información
Capacidades:
github
Integración de API de GitHub para gestión de repositorios
Capacidades:
Servidores de Base de Datos
Servidores que proporcionan conectividad y operaciones de base de datos
sqlite
Operaciones de base de datos SQLite
Capacidades:
postgres
Integración de base de datos PostgreSQL
Capacidades:
Ejemplos de Configuración
Aprenda a configurar servidores MCP en su configuración de Gemini CLI
Configuración Básica
Agregue servidores MCP a su archivo .gemini/config.json
:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
},
"git": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-git", "--repository", "/path/to/repo"]
},
"web-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-web-search"]
}
}
}
Configuración Avanzada
Configure servidores personalizados con variables de entorno y opciones avanzadas:
{
"mcpServers": {
"custom-database": {
"command": "node",
"args": ["./custom-mcp-server.js"],
"env": {
"DATABASE_URL": "postgresql://localhost:5432/mydb",
"API_KEY": "your-api-key"
}
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your-github-token"
}
}
}
}
Configuración de Desarrollo
Configuración para desarrollo local y depuración:
{
"mcpServers": {
"local-dev": {
"command": "node",
"args": ["./dev-server.js"],
"cwd": "/path/to/development/server",
"env": {
"NODE_ENV": "development",
"DEBUG": "mcp:*"
}
}
}
}
Desarrollo de Servidor MCP Personalizado
Construya su propio servidor MCP para extender Gemini CLI con funcionalidad personalizada
Ejemplo Completo de Servidor MCP
Aquí hay un ejemplo completo de un servidor MCP personalizado que puede usar como punto de partida:
#!/usr/bin/env node
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import {
CallToolRequestSchema,
ListToolsRequestSchema,
} from '@modelcontextprotocol/sdk/types.js';
class CustomMCPServer {
constructor() {
this.server = new Server(
{
name: 'custom-server',
version: '0.1.0',
},
{
capabilities: {
tools: {},
},
}
);
this.setupToolHandlers();
}
setupToolHandlers() {
// Listar herramientas disponibles
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: 'custom_tool',
description: 'Una herramienta personalizada que realiza operaciones específicas',
inputSchema: {
type: 'object',
properties: {
input: {
type: 'string',
description: 'Entrada para la operación personalizada',
},
},
required: ['input'],
},
},
],
};
});
// Manejar llamadas de herramientas
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
if (name === 'custom_tool') {
const result = await this.performCustomOperation(args.input);
return {
content: [
{
type: 'text',
text: `Resultado de operación personalizada: ${result}`,
},
],
};
}
throw new Error(`Herramienta desconocida: ${name}`);
});
}
async performCustomOperation(input) {
// Su lógica personalizada aquí
return `Procesado: ${input}`;
}
async run() {
const transport = new StdioServerTransport();
await this.server.connect(transport);
console.error('Servidor MCP personalizado ejecutándose en stdio');
}
}
const server = new CustomMCPServer();
server.run().catch(console.error);
Comenzar
Pasos rápidos para comenzar a usar y desarrollar servidores MCP
Usar Servidores Existentes
- 1Instale un paquete de servidor MCP:
npm install -g @modelcontextprotocol/server-filesystem
- 2Agregue el servidor a su
.gemini/config.json
- 3Reinicie Gemini CLI para cargar el nuevo servidor
- 4Use el comando
/mcp
para listar servidores disponibles
Desarrollar Servidores Personalizados
- 1Instale el SDK MCP:
npm install @modelcontextprotocol/sdk
- 2Cree su servidor usando el ejemplo anterior
- 3Pruebe su servidor con el inspector MCP
- 4Configúrelo en Gemini CLI y comience a usarlo
Recursos Relacionados
Explore más sobre el desarrollo de servidores MCP y plugins