Gemini CLI に MCP サーバーを追加する:settings.json の mcpServers の書き方と接続確認

Gemini CLI 公開:

Gemini CLI で MCP サーバーを使うための設定方法を解説します。settings.json の mcpServers セクションの書き方、ユーザー設定とプロジェクト設定の使い分け、環境変数の渡し方、/mcp コマンドでの接続確認、ツールの許可設定を紹介します。

検証日 2026年9月7日 仕様変更が早い分野です。最新の公式ドキュメントも併せてご確認ください。 記事の作り方と検証手順
目次
  1. 設定ファイルの場所
  2. mcpServers の書き方
  3. 接続を確認する
  4. ツール実行の許可
  5. 使い方の例
  6. 動かないときの切り分け
  7. Claude Code・Codex との違い
  8. まとめ

Gemini CLI も MCP(Model Context Protocol)に対応しており、ブラウザ操作やドキュメント検索などの外部ツールを接続できます。設定は settings.json の mcpServers に書く JSON 形式で、Claude Code の .mcp.json とほぼ同じ構造です。

この記事では、設定ファイルの場所と書き方、接続確認、ツールの許可設定、動かないときの切り分けをまとめます。

KEY POINT

この記事で分かること

  • settings.json の mcpServers の書き方と、ユーザー / プロジェクトの使い分け
  • /mcp による接続確認と、ツール実行の許可設定
  • 動かないときの切り分け手順

設定ファイルの場所

スコープパス用途
ユーザー~/.gemini/settings.json自分の全プロジェクトで使うサーバー
プロジェクト<リポジトリ>/.gemini/settings.jsonチームで共有するサーバー(Git 管理)

両方に設定がある場合は結合され、同名のサーバーはプロジェクト側が優先されます。

mcpServers の書き方

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    },
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "$GITHUB_TOKEN"
      },
      "timeout": 30000
    }
  }
}
キー意味
commandサーバーを起動するコマンド
args引数の配列
envサーバーに渡す環境変数。$VAR や ${VAR} でシェルの環境変数を参照できる
cwd起動時の作業ディレクトリ(任意)
timeout応答待ちのミリ秒(任意)
url / httpUrlリモートサーバーに接続する場合の URL(stdio の代わりに指定)

トークンを settings.json に直接書かない

プロジェクトの .gemini/settings.json は Git にコミットされます。env にはトークンそのものではなく環境変数の参照を書き、実体はシェルに置いてください。個人用のトークンを使うサーバーはユーザー側の ~/.gemini/settings.json に書く方法もあります。

接続を確認する

Gemini CLI を起動し、/mcp を実行します。サーバーごとに「接続済み」「接続中」「切断」の状態と、提供されるツール名の一覧が表示されます。/tools では、組み込みツールと MCP ツールを合わせた一覧が見られます。

初回起動時は、サーバーが提供するツールを Gemini に使わせてよいか確認が出る場合があります。

ツール実行の許可

MCP のツールも、実行前に確認が入ります。毎回確認したくないツールは、確認ダイアログで「常に許可」を選ぶか、settings.json で信頼するサーバーを指定します。

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"],
      "trust": true
    }
  }
}

trust を true にすると、そのサーバーのツールは確認なしで実行されます。読み取り専用のサーバー(ドキュメント検索など)に限って使い、書き込みや外部送信を行うサーバーには付けないでください。設定キーの対応状況はバージョンで変わるため、公式の設定リファレンスで確認してください。

用語解説

includeTools / excludeTools: サーバーごとに、使わせるツールを限定する設定です。GitHub サーバーの「Issue の読み取りだけ許可し、作成や削除は除外する」といった制御に使います。

使い方の例

  • Playwright: 「開発サーバーを起動して、トップページのスクリーンショットを撮って、レイアウト崩れがないか確認して」
  • Context7: 「Next.js の最新の App Router のドキュメントを参照して、動的ルートの書き方を確認してから実装して」
  • GitHub: 「Issue #12 の内容を読んで、修正方針を提案して」

動かないときの切り分け

  1. サーバーを単体で起動する: npx @playwright/mcp@latest をターミナルで直接実行し、エラーが出ないか確認します。
  2. 環境変数: echo $GITHUB_TOKEN で値があるか確認します。Gemini CLI を起動したシェルに環境変数がなければ渡りません。
  3. JSON の構文: 末尾のカンマ、クォートの閉じ忘れが多い原因です。gemini 起動時に設定ファイルのエラーが表示されます。
  4. タイムアウト: 初回の npx はパッケージのダウンロードに時間がかかります。timeout を長めにするか、事前に一度手動で起動しておきます。
  5. Node.js のバージョン: MCP サーバー側が要求するバージョンを満たしているか確認します。

Claude Code・Codex との違い

ツール設定ファイル形式
Gemini CLI~/.gemini/settings.json / .gemini/settings.jsonJSON の mcpServers
Claude Code.mcp.json / ~/.claude.jsonJSON の mcpServers
Codex~/.codex/config.tomlTOML の [mcp_servers.名前]

Claude Code とはキー名まで同じなので、.mcp.json の内容を .gemini/settings.json に貼るだけで動くことが多いです。Claude Code の手順は Claude Code に MCP サーバーを追加する方法、Codex は Codex CLI に MCP サーバーを設定する を参照してください。最初に入れるサーバーの候補は コーディング AI で最初に入れるべき MCP サーバー にまとめています。

まとめ

  • ~/.gemini/settings.json(ユーザー)または .gemini/settings.json(プロジェクト)の mcpServers に書く
  • command / args / env は Claude Code の .mcp.json と同じ構造。トークンは環境変数から読ませる
  • /mcp で接続状態、/tools でツール一覧を確認する
  • trust は読み取り専用のサーバーに限定し、書き込み系は確認を残す

よくある質問

Gemini CLI の MCP 設定はどこに書きますか?
ユーザー全体なら ~/.gemini/settings.json、プロジェクト単位ならリポジトリ内の .gemini/settings.json の mcpServers に書きます。
Claude Code の .mcp.json と同じ内容で動きますか?
command / args / env の内容は同じです。トップレベルのキー名(mcpServers)も同じなので、ほぼそのまま流用できます。
接続できているか確認するには?
対話中に /mcp を実行すると、サーバーごとの接続状態と提供ツールが表示されます。

読者からの質問と回答

Q. Gemini CLI 0.63.0 で「Untrusted Command Flags」の警告が出るようになり、YOLO モードでも MCP サーバー経由の基本的なファイル操作のたびに確認で止まります。確認を減らす設定はありますか。

編集部の回答質問の出典: GitHub google-gemini/gemini-cli Issue #29680

「Untrusted Command Flags」という警告そのものは、2026 年 10 月 12 日時点の公式の設定リファレンスとコマンドリファレンスでは確認できませんでした。この名前のチェックを無効にするキーも見つかりません。したがって以下は、MCP ツールの確認そのものを減らすために公式に用意されている手段です。

1. サーバー単位で信頼する(設定ファイル)

mcpServers.<サーバー名>.trust は、公式ドキュメントで「trusts the server and bypasses tool call confirmations」と説明されています。そのサーバーのツール呼び出しの確認を飛ばします。

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"],
      "trust": true
    }
  }
}

~/.gemini/settings.json(ユーザー)または .gemini/settings.json(プロジェクト)に書きます。

2. ツール名を指定して飛ばす(起動時)

--allowed-tools は「A comma-separated list of tool names that will bypass the confirmation dialog」と説明されています。サーバー全体ではなく、ツール単位で絞れます。

3. 承認モードを見直す

general.defaultApprovalMode の値は default、auto_edit、plan の 3 つです。YOLO モードは設定ファイルからは有効にできず、コマンドラインの --yolo または --approval-mode=yolo だけです。--approval-mode と --yolo は併用できません。また security.disableYoloMode を true にしている環境では、フラグで指定しても YOLO は無効になります(再起動が必要)。組織の管理端末でこれが設定されている可能性があるので、意図せず無効化されていないかを確認してください。

注意

trust: true はそのサーバーのツール呼び出しの確認をまとめて飛ばします。ファイルシステム系や任意コマンドを実行できるサーバーに付けると、確認なしで実行される範囲がそのサーバーのできること全体に広がります。付けるのは、引数とアクセス範囲を自分で限定したサーバーだけにしてください。

MCP サーバーの設定の書き方は Gemini CLI に MCP サーバーを追加する にまとめてあります。

参考にした一次情報

この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合は お問い合わせからお知らせください。