プラグイン API
MCPサーバー、カスタムツール、強力な統合でGemini CLIを拡張します。Model Context Protocolを使用してデータベース、API、ファイルシステムなどに接続します。
MCPプロトコルカスタムサーバーツール統合
拡張アーキテクチャ
Gemini CLIはModel Context Protocol (MCP)を使用して、AIアシスタントを外部ツールやデータソースと接続する標準化された方法を提供します。
MCPサーバー
Model Context Protocolを通じてツールとリソースを公開するスタンドアロンプロセス
ツール統合
外部ツールやサービスをAIワークフローにシームレスに統合
カスタム開発
カスタム機能でGemini CLIを拡張するための独自のMCPサーバーを構築
MCPサーバータイプ
異なるタイプのMCPサーバーとその機能を探索
ファイルシステムサーバー
ファイルシステムアクセスと操作を提供するサーバー
filesystem
ファイルとディレクトリの読み取り、書き込み、管理
機能:
read_filewrite_filelist_directorycreate_directory
git
Gitリポジトリ操作とバージョン管理
機能:
git_statusgit_commitgit_branchgit_log
WebおよびAPIサーバー
WebサービスやAPIと連携するサーバー
web-search
ウェブを検索して情報を取得
機能:
web_searchfetch_urlextract_content
github
リポジトリ管理のためのGitHub API統合
機能:
list_reposcreate_issueget_pull_requests
データベースサーバー
データベース接続と操作を提供するサーバー
sqlite
SQLiteデータベース操作
機能:
execute_querycreate_tableinsert_data
postgres
PostgreSQLデータベース統合
機能:
querytransactionschema_info
設定例
Gemini CLI設定でMCPサーバーを設定する方法を学ぶ
基本設定
MCPサーバーを .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"]
}
}
}
高度な設定
環境変数と高度なオプションでカスタムサーバーを設定:
{
"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"
}
}
}
}
開発設定
ローカル開発とデバッグのための設定:
{
"mcpServers": {
"local-dev": {
"command": "node",
"args": ["./dev-server.js"],
"cwd": "/path/to/development/server",
"env": {
"NODE_ENV": "development",
"DEBUG": "mcp:*"
}
}
}
}
カスタムMCPサーバー開発
カスタム機能でGemini CLIを拡張するための独自のMCPサーバーを構築
完全なMCPサーバーの例
カスタムMCPサーバーの完全な例で、出発点として使用できます:
#!/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() {
// 利用可能なツールをリスト
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: 'custom_tool',
description: '特定の操作を実行するカスタムツール',
inputSchema: {
type: 'object',
properties: {
input: {
type: 'string',
description: 'カスタム操作の入力',
},
},
required: ['input'],
},
},
],
};
});
// ツール呼び出しを処理
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: `カスタム操作の結果: ${result}`,
},
],
};
}
throw new Error(`不明なツール: ${name}`);
});
}
async performCustomOperation(input) {
// あなたのカスタムロジックをここに
return `処理済み: ${input}`;
}
async run() {
const transport = new StdioServerTransport();
await this.server.connect(transport);
console.error('カスタムMCPサーバーがstdioで実行中');
}
}
const server = new CustomMCPServer();
server.run().catch(console.error);
始め方
MCPサーバーの使用と開発を始めるための簡単なステップ
既存のサーバーを使用
- 1MCPサーバーパッケージをインストール:
npm install -g @modelcontextprotocol/server-filesystem
- 2サーバーを
.gemini/config.json
ファイルに追加 - 3新しいサーバーを読み込むためにGemini CLIを再起動
- 4利用可能なサーバーをリストするために
/mcp
コマンドを使用
カスタムサーバーの開発
- 1MCP SDKをインストール:
npm install @modelcontextprotocol/sdk
- 2上記の例を使用してサーバーを作成
- 3MCPインスペクターでサーバーをテスト
- 4Gemini CLIで設定して使用開始