Gemini CLI に MCP サーバーを接続するとどうなるか、最初に結論を言わせてください。「外部ファイルを読む」「データベースに問い合わせる」「GitHub を操作する」といった作業を、すべて会話の中で自然に完結できるようになります。
私がこれを実感したのは、ローカルの SQLite データベースに溜まったユーザー行動ログを分析しているときでした。従来は Python スクリプトを書いて pandas で読み込んで…という手順が必要でしたが、MCP をつないだ Gemini CLI なら「先週の離脱率が高かったステップを教えて」の一言で答えが返ってきます。それも、実際のデータを参照しながら。
MCP とは(なぜ Gemini CLI で重要なのか
MCP(Model Context Protocol)は Anthropic が策定したオープン標準で、AI モデルと外部ツールの通信規格を統一します。「AI のための USB」と表現する人もいますが、まさにそのイメージが近い。一度 MCP サーバーを実装したツールは、Claude Code でも Gemini CLI でも同じインターフェースで使えます。
Gemini CLI は 2026 年初頭のアップデートで MCP クライアント機能を正式サポートしました。設定は GEMINI.md ファイルに記述するだけで、プロジェクト単位でどの MCP サーバーを使うかを柔軟に管理できます。
Claude Code との違いや使い分けについては Gemini CLI vs Claude Code 徹底比較 で詳しく解説しています。
GEMINI.md への MCP サーバー設定
Gemini CLI の MCP 設定はプロジェクトルートの GEMINI.md ファイルに記述します。フォーマットは以下のとおりです。
# MCP Servers
## filesystem
- command: npx
- args: ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
## sqlite
- command: npx
- args: ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "./data/app.db"]設定を保存して gemini コマンドを起動すると、定義した MCP サーバーが自動的に起動し、ツールとして利用可能になります。動作確認は /tools コマンドで一覧を表示するのが便利です。
ポイント: --db-path のようなサーバー固有の引数は args 配列の末尾に追加します。パスは相対パスでも絶対パスでも動きますが、チームで共有するリポジトリでは相対パスにしておくのが無難です。
filesystem MCP で日常的なファイル操作を自動化する
まず試してほしいのが @modelcontextprotocol/server-filesystem です。指定したディレクトリ以下のファイルを読み書きできるようになります。
# MCP Servers
## filesystem
- command: npx
- args: [
"-y",
"@modelcontextprotocol/server-filesystem",
"./src",
"./docs"
]この設定で ./src と ./docs ディレクトリへのアクセスが有効になります。あとは Gemini CLI に話しかけるだけです。
> src/components/Button.tsx のテストを書いて、src/components/Button.test.tsx に保存して
✓ Button.tsx を読み込み中...
✓ テストファイルを生成中...
✓ src/components/Button.test.tsx に書き込み完了
実際のファイルを読んでからテストを生成するため、コンポーネントの props や型定義が正確に反映されます。「コードを貼り付けてからテスト生成」という手間がなくなりました。
セキュリティの注意点: filesystem MCP に渡すパスはプロジェクト内のサブディレクトリに限定することを強く推奨します。/ や ~ などのシステムルートを指定すると、想定外のファイルが読まれるリスクがあります。
SQLite MCP でローカル DB を自然言語で操作する
ローカル開発でよく使う SQLite データベースを MCP 経由でつなぐと、SQL を書かずにデータを扱えます。
## sqlite
- command: npx
- args: ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "./data/app.db"]> ユーザーテーブルの構造を教えて。その後、先週新規登録したユーザー数を集計して
◎ テーブル一覧: users, sessions, events
◎ users テーブルの構造:
- id: INTEGER PRIMARY KEY
- email: TEXT NOT NULL
- created_at: TIMESTAMP DEFAULT CURRENT_TIMESTAMP
...
◎ 先週(2026-04-27〜2026-05-03)の新規登録: 247件
- モバイル経由: 183件(74.1%)
- Web経由: 64件(25.9%)
SQL を書く必要がなく、データを理解してから自然な日本語で集計できます。分析結果をそのままコードに落とし込む流れも非常にスムーズです。
私がこの組み合わせを使って特に重宝しているのは、スキーマの変更影響確認です。「status カラムに null が入っているレコードはいくつあるか」のような確認作業が、テーブルを覚えていなくても即座にできます。
分析のさらに高度な活用については Gemini × MCP サーバー連携ガイド も参考にしてください。
GitHub MCP でリポジトリ操作を自動化する
コードレビューや Issue 管理を Gemini CLI から直接行えるのが GitHub MCP です。
## github
- command: npx
- args: ["-y", "@modelcontextprotocol/server-github"]
- env:
GITHUB_TOKEN: "${GITHUB_TOKEN}"環境変数 GITHUB_TOKEN に GitHub の Personal Access Token を設定しておきます(repo スコープが必要)。
> 今週マージされた PR のまとめを作って。変更の規模が大きい順に並べて
◎ 今週(2026-04-28〜2026-05-04)のマージ済み PR: 12件
1. #347 - feat: 検索機能のリファクタリング (+1,240/-892行)
Author: @dev-alice | Reviewers: @dev-bob, @dev-carol
2. #352 - fix: モバイルナビのレイアウト崩れ (+87/-43行)
...
定例ミーティングの前に「今週のリリース内容をまとめて」と聞くだけで、チームへの共有資料の素材が揃います。週次レポートの作成時間が体感で半分以下になりました。
MCP サーバーを自作したい方は Gemini API カスタム MCP サーバー TypeScript ガイド で実装方法を詳しく解説しています。
複数 MCP サーバーを組み合わせる実践パターン
MCP サーバーは複数同時に有効化できます。これが最も威力を発揮するのは、複数のツールをまたぐ作業です。
# MCP Servers
## filesystem
- command: npx
- args: ["-y", "@modelcontextprotocol/server-filesystem", "./src", "./tests"]
## sqlite
- command: npx
- args: ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "./data/dev.db"]
## github
- command: npx
- args: ["-y", "@modelcontextprotocol/server-github"]
- env:
GITHUB_TOKEN: "${GITHUB_TOKEN}"この設定で「DB のスキーマを読んで、対応する TypeScript の型定義ファイルを生成して、tests/ に型テストも書いて」のような複合タスクが 1 つの会話で完結します。
注意点として、MCP サーバーの起動には Node.js 18 以上が必要です。npx -y でパッケージを自動ダウンロードするため、初回は数秒のインストール時間がかかります。CI 環境などでは事前インストールを推奨します。
よくある設定ミスとその対処
実際に MCP をセットアップしていて詰まりやすいポイントをまとめます。
「ツールが認識されない」場合は GEMINI.md の書式が正しいか確認してください。特に YAML ライクなインデント(スペース 2 つ)が崩れているケースが多いです。Gemini CLI 起動時のログに MCP server failed to start が出ていたら設定ファイルの構文エラーを疑いましょう。
「ファイルが読めない / Permission denied」が出る場合は、filesystem MCP に渡したパスが存在するか、Gemini CLI の実行ユーザーに読み取り権限があるかを確認します。ls -la ./src で権限を確認するのが最初の一手です。
「DB への書き込みが怖い」という方は、SQLite MCP に --readonly フラグを追加することで SELECT のみに制限できます。args: ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "./data/app.db", "--readonly"] と設定すれば、分析目的に安全に使えます。
Gemini CLI 全般のトラブルシューティングは Gemini CLI エラー対処ガイド も参考にしてください。
まずは filesystem MCP から始めてみてください
MCP の設定は難しくありません。GEMINI.md に数行追記して npx が動く環境があれば、今日から使い始められます。
最初の一歩として、現在作業中のプロジェクトルートに GEMINI.md を作り、filesystem MCP だけを有効にしてみてください。「このディレクトリにあるファイルを全部列挙して」と話しかけてみると、Gemini CLI が MCP を通じてリアルタイムでファイルを読んでいる様子が確認できます。そこから先は、どのツールをつなげば日常の面倒な作業が消えるか、自然と見えてくるはずです。