2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCPサーバーを使ってみよう 〜Gemini CLIでGitHubを操作する〜

2
Posted at

はじめに

最近、生成AIやAIエージェントの話題で「MCPサーバー」という言葉を目にする機会が増えてきました。これは一体どのような技術なのでしょうか。

MCP(Model Context Protocol)サーバーは、一言で言うと、GeminiのようなAIモデルと外部のツールやサービスを連携させるためのブリッジ役を担うサーバーです。

AIモデルは、それ単体では外部のAPIを叩いたり、ローカルの特定のコマンドを実行したりすることはできません。MCPサーバーは、AIモデルからのリクエストを受け取り、それを外部サービスへのAPIコールやコマンド実行に変換してくれます。これにより、AIモデルは本来アクセスできないリソースを「ツール」として利用できるようになるのです。

今回は、このMCPサーバーがどのようなものか、実際に手を動かしながら体感してみましょう。

ハンズオンの準備

MCPサーバーのクライアントとして、今回はGoogleのGemini CLIを使用します。環境は、セットアップが不要なGoogle CloudのCloud Shellを利用すると手軽です。

まず、Google Cloudにログインし、Cloud Shellを起動します。
ターミナルが利用可能になったら、以下のコマンドを実行します。

gemini

スクリーンショット 2025-09-12 18.33.17.png

これだけでGemini CLIが起動し、対話可能な状態になります。ハンズオンの準備はこれだけです。

Github MCPサーバーの設定

それでは早速、MCPサーバーの設定に入ります。
今回は、公開されているGithub MCPサーバーに接続し、Gemini CLIからGitHubリポジトリを操作してみます。

1. GitHubのパーソナルアクセストークン(PAT)の準備

まず、Gemini CLIがGitHub APIを利用するための認証情報として、パーソナルアクセストークン(PAT)を発行します。

  1. GitHubにログインし、[Settings] > [Developer settings] > [Personal access tokens] > [Fine-grained tokens] にアクセスします。

  2. [Generate new token] をクリックします。
    スクリーンショット 2025-09-20 20.18.47.png

  3. nameに分かりやすい名前(例: gemini-cli-mcp)をつけ、Expiration(有効期限)を設定します。

  4. Repository access で、Only select repositoriesを選択し、今回のMCPサーバーで利用するリポジトリを選択します。
    スクリーンショット 2025-09-21 18.06.37.png

  5. [Permissions]で必要な権限を追加します。今回は、IssuesContentsPull RequestsWorkflowsにRead-Write権限を設定します。
    スクリーンショット 2025-09-21 18.07.10.png

  6. [Generate token] をクリックし、表示されたトークン(ghp_...)をコピーしておきます。

2. Gemini CLIの設定

次に、Cloud Shell上でGemini CLIの設定ファイルを作成し、先ほどのPATを登録します。

以下のコマンドで設定ファイルを開いてください。

mkdir -p ~/.gemini
nano ~/.gemini/settings.json

エディタが開いたら、以下の内容を貼り付けます。

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal",
  "mcpServers": {
       "github": {
            "httpUrl": "https://api.githubcopilot.com/mcp/",
            "headers": {
                "Authorization": "GITHUB_PAT"
            },
            "timeout": 5000
       }
  }
}

GITHUB_PAT の部分を、先ほどコピーしたご自身のトークンに書き換えてください。
書き換えたら、Ctrl + OEnterCtrl + Xでファイルを保存します。

これで、Gemini CLIがGithub MCPサーバーと通信するための設定が完了しました。

MCPサーバー経由でのGitHub操作

設定が完了したので、実際にGemini CLIからGitHubを操作してみましょう。
再度 gemini コマンドでCLIを起動します。

1. 接続確認

まず、/mcp refresh コマンドを入力し、設定を更新します。

/mcp refresh

スクリーンショット 2025-09-20 20.22.49.png

設定した github MCPサーバーのツール群が表示されれば成功です。

早速MCPサーバーを使ってみましょう。

以下のように入力し、githubリポジトリをリストアップしてもらいましょう。

私のgithubリポジトリをリストアップして

スクリーンショット 2025-09-20 20.29.01.png
MCPサーバーを使ってgithubリポジトリをリストアップしてくれました!

2. リポジトリのクローン

では、GitHubリポジトリをクローンします。<repo-name> はご自身のリポジトリ名に置き換えてください。

<repo-name> をクローンして。

スクリーンショット 2025-09-20 20.29.56.png

この指示により、Geminiは git clone コマンドを直接実行する代わりに、MCPサーバーを介して操作が実行してくれます。

スクリーンショット 2025-09-20 20.34.47.png

クローンしたgemini-cli-sampleのフォルダが作成されていることを確認できました。

3. ファイルの作成とプッシュ

次に、ファイルを生成してプッシュします。
一度 /quit でGeminiを終了し、cd コマンドでクローンしたディレクトリに移動してから、再度 gemini を起動してください。

次に、gemini cliにファイルを作成してもらいましょう。

test.txtを作成して、これはgithub mcpのテストです。と書き込んでください。

スクリーンショット 2025-09-21 18.53.26.png

Gemini CLIはデフォルでいくつかのツールを使用できます。ファイル作成にはWriteFileというツールを使っています。
使用可能なツールは/toolsから確認できます。
スクリーンショット 2025-09-12 18.39.31.png

ファイルが作成されたかどうか、確認してみましょう。
スクリーンショット 2025-09-20 20.38.25.png

最後に、この変更をGitHubにプッシュします。

私のgithubリポジトリのgemini-cli-sampleにtext.txtをプッシュして。

これにより、ブランチを取得し、プッシュまで実行してくれます。
スクリーンショット 2025-09-20 21.02.58のコピー.png
スクリーンショット 2025-09-20 21.02.51.png

ブラウザでご自身のGitHubリポジトリを確認すると、ファイルが指定したコミットメッセージでプッシュされていることが確認できるはずです。

スクリーンショット 2025-09-20 21.03.16.png

まとめ

今回は、Github MCPサーバーを例に、MCPサーバーの仕組みを体感していただきました。

Gemini CLIからの自然言語による指示が、MCPサーバーを介してGitHub APIの呼び出しに変換され、一連のGit操作が実行される流れを確認できました。

このようにMCPサーバーは、AIモデルの能力を外部サービスへと拡張するための強力な仕組みです。今回は既存のサーバーを利用しましたが、カスタムツールを自作のMCPサーバーとして実装することで、AIモデルを様々なワークフローに組み込むことが可能になります。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?