Closed5
github mcpを安全に動かす試行

やること
- github mcpを使うとissue, pull-request作成が自由にAIから行える
- PATの管理が大変
- GitHub App化して、そのトークンをgithub mcpに使わせる

GitHub Appの登録
この記事を参考にやってみる
Claude Codeが書いたissueはClaude Codeに書いてもらう
Webhookはオフで良くて、Permissionsは以下3点が必要です。
Content: Read-only
Issues: Read and write
Pull requests: Read and writeGitHub Appsを作ったら、その後は自分のアカウントにインストールして必要なリポジトリに権限を付ける
ここまでをそのとおり実施

もっといい方法が見つかった。
にあるようにgemini-cliの設定ファイルは、ユーザーホームとワークスペースどちらにも設定できる。
WORKSPACE/.gemini/extensions
~/.gemini/extensions
エージェントは両方の場所からすべての拡張機能を読み込みますが、同じ名前の拡張機能が両方に存在する場合は、ワークスペース ディレクトリにあるものが優先されます。
ということらしい。
リポジトリでPATを使い分けたいときは下記のようにすればいいということか。
<workspace>/.gemini/extensions/my-extension/gemini-extension.json
内容は下記のように
{
"name": "my-extension",
"version": "1.0.0",
"mcpServers": {
"github": {
"timeout": 5000,
"type": "stdio",
"command": "/usr/local/bin/docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"PATH": "/home/yourname/.local/bin",
"HOME": "/home/yourname",
"GITHUB_PERSONAL_ACCESS_TOKEN": "***"
}
}
}
}

まあこれで解決するとして <workspace>/.gemini/extensions
は.gitignoreに登録していないと駄目な感じか。MCPサーバ用の全体の環境変数が使えればいいんだけどね。

最終的に以下のようにした
$ tree .gemini
.gemini
└── extensions
└── github
└── gemini-extension.json
3 directories, 1 file
.gitignoreにこのgemini-extsnsion.jsonを追加して誤コミットを防止
.gemini/extensions/github/*.json
この状態でプロジェクトルートでgeminiを起動すると、github mcpが起動する。
$ gemini
Loading extension: github (version: 1.0.0)
MCP STDERR (github): GitHub MCP Server running on stdio
...
このスクラップは2ヶ月前にクローズされました