プラグイン 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サーバーの使用と開発を始めるための簡単なステップ

既存のサーバーを使用

  1. 1MCPサーバーパッケージをインストール: npm install -g @modelcontextprotocol/server-filesystem
  2. 2サーバーを .gemini/config.jsonファイルに追加
  3. 3新しいサーバーを読み込むためにGemini CLIを再起動
  4. 4利用可能なサーバーをリストするために /mcp コマンドを使用

カスタムサーバーの開発

  1. 1MCP SDKをインストール: npm install @modelcontextprotocol/sdk
  2. 2上記の例を使用してサーバーを作成
  3. 3MCPインスペクターでサーバーをテスト
  4. 4Gemini CLIで設定して使用開始

関連リソース

MCPサーバーとプラグイン開発についてさらに詳しく