API Plugin
Étendez Gemini CLI avec des serveurs MCP, des outils personnalisés et des intégrations puissantes. Connectez-vous aux bases de données, API, systèmes de fichiers et plus encore en utilisant le protocole de contexte de modèle.
Architecture d'Extension
Gemini CLI utilise le protocole de contexte de modèle (MCP) pour fournir un moyen standardisé de connecter les assistants IA avec des outils externes et des sources de données.
Serveurs MCP
Processus autonomes qui exposent des outils et des ressources via le protocole de contexte de modèle
Intégration d'Outils
Intégrez de manière transparente des outils et services externes dans vos flux de travail IA
Développement Personnalisé
Construisez vos propres serveurs MCP pour étendre Gemini CLI avec des fonctionnalités personnalisées
Types de Serveurs MCP
Explorez différents types de serveurs MCP et leurs capacités
Serveurs de Système de Fichiers
Serveurs qui fournissent l'accès et les opérations du système de fichiers
filesystem
Lire, écrire et gérer les fichiers et répertoires
Capacités:
git
Opérations de dépôt Git et contrôle de version
Capacités:
Serveurs Web et API
Serveurs qui interagissent avec les services web et les API
web-search
Rechercher sur le web et récupérer des informations
Capacités:
github
Intégration API GitHub pour la gestion de dépôts
Capacités:
Serveurs de Base de Données
Serveurs qui fournissent la connectivité et les opérations de base de données
sqlite
Opérations de base de données SQLite
Capacités:
postgres
Intégration de base de données PostgreSQL
Capacités:
Exemples de Configuration
Apprenez à configurer les serveurs MCP dans votre configuration Gemini CLI
Configuration de Base
Ajoutez des serveurs MCP à votre fichier .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"]
}
}
}
Configuration Avancée
Configurez des serveurs personnalisés avec des variables d'environnement et des options avancées :
{
"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"
}
}
}
}
Configuration de Développement
Configuration pour le développement local et le débogage :
{
"mcpServers": {
"local-dev": {
"command": "node",
"args": ["./dev-server.js"],
"cwd": "/path/to/development/server",
"env": {
"NODE_ENV": "development",
"DEBUG": "mcp:*"
}
}
}
}
Développement de Serveur MCP Personnalisé
Construisez votre propre serveur MCP pour étendre Gemini CLI avec des fonctionnalités personnalisées
Exemple Complet de Serveur MCP
Voici un exemple complet d'un serveur MCP personnalisé que vous pouvez utiliser comme point de départ :
#!/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() {
// Lister les outils disponibles
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: 'custom_tool',
description: 'Un outil personnalisé qui effectue des opérations spécifiques',
inputSchema: {
type: 'object',
properties: {
input: {
type: 'string',
description: 'Entrée pour l'opération personnalisée',
},
},
required: ['input'],
},
},
],
};
});
// Gérer les appels d'outils
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: `Résultat de l'opération personnalisée: ${result}`,
},
],
};
}
throw new Error(`Outil inconnu: ${name}`);
});
}
async performCustomOperation(input) {
// Votre logique personnalisée ici
return `Traité: ${input}`;
}
async run() {
const transport = new StdioServerTransport();
await this.server.connect(transport);
console.error('Serveur MCP personnalisé en cours d'exécution sur stdio');
}
}
const server = new CustomMCPServer();
server.run().catch(console.error);
Commencer
Étapes rapides pour commencer à utiliser et développer des serveurs MCP
Utiliser des Serveurs Existants
- 1Installez un package de serveur MCP :
npm install -g @modelcontextprotocol/server-filesystem
- 2Ajoutez le serveur à votre
.gemini/config.json
- 3Redémarrez Gemini CLI pour charger le nouveau serveur
- 4Utilisez la commande
/mcp
pour lister les serveurs disponibles
Développer des Serveurs Personnalisés
- 1Installez le SDK MCP :
npm install @modelcontextprotocol/sdk
- 2Créez votre serveur en utilisant l'exemple ci-dessus
- 3Testez votre serveur avec l'inspecteur MCP
- 4Configurez-le dans Gemini CLI et commencez à l'utiliser
Ressources Connexes
Explorez davantage le développement de serveurs MCP et de plugins