Skip to main content
Glama
brycepelletier

@brycepelletier/github-app-mcp

@brycepelletier/github-app-mcp

GitHub Operator ロールのための単一の MCP stdio ファサードです。アクティブなワークスペースに対する制限付き Git 操作と、GitHub 公式 MCP サーバーに委譲された GitHub API ツールを組み合わせます。GitHub App の秘密鍵やインストールトークンを返すことは決してありません。

アーキテクチャと責務の分担

Software Engineer                    GitHub Operator
       |                                    |
agent-env-mcp                         github-app-mcp
       |                         /-----------+-----------\
source/build/edit            ephemeral Git runtime   official GitHub MCP
.git masked                  real .git               GitHub API
no GitHub credentials        local: no network       fixed toolsets
                             remote: App auth

agent-env-mcp はエンジニアリング機能面として残ります。そのエンジニアリングコンテナは .git を物理的にマスクし、GitHub の認証情報を受け取りません。このパッケージは、github-operator.agent.md に対してモデルに公開される唯一の Git/GitHub 面です。

ファサードは MCP roots/list でワークスペースを検出し、ローカルの file: ルートを正確に 1 つ要求し、ファイルシステムルートを拒否し、実際の .git メタデータを要求します。モデルのツールパラメータでホストパス、PEM、イメージ、ツールセット、Docker 引数を選択することはできません。

信頼境界と Docker の動作

MCP client
   | stdio
host-side trusted launcher (may control Docker; no Docker socket is mounted)
   |-- git_local  -> ephemeral container, workspace mount, network=none, no PEM
   |-- git_remote -> ephemeral container, workspace + read-only PEM, GitHub HTTPS
   `-- API tools  -> ghcr.io/github/github-mcp-server, read-only PEM

ローカル Git とリモート Git は異なる実行モードを持ちます。git_local はシェルや任意の Git 引数配列ではなく、操作の列挙型と型付きフィールドを公開します。そのコンテナには実際の .git がありますが、ネットワークも認証情報もありません。

git_remote は境界が設定された remote/ref フィールドを持つ fetch、fast-forward のみの pullpushls_remote のみを受け付けます。認証情報を含まない https://github.com/owner/repository リモートを要求し、設定されたリモートからリポジトリ ID を導出し、contents:writeworkflows:write を持つそのリポジトリに限定されたインストールトークンを要求します。トークンはエフェメラルランタイム内で生成され、プライベートな askpass ヘルパーを通じて Git に供給され、出力からは除去され、コンテナとともに破棄されます。pull はまず認証付き fetch を実行し、その後認証情報なしの --ff-only マージを実行します。

Git フック、グローバル/システム設定、ファイルトランスポート、サブモジュールの再帰処理、対話型エディタ、GPG 署名、ターミナルの認証情報プロンプトは無効化されています。出力は制限され、GitHub トークンパターンと認証情報を含む URL が除去されます。

GitHub Issues、プルリクエスト、レビュー、Actions、Projects、検索は再実装されません。これらは MCP 経由で以下にプロキシされます:

ghcr.io/github/github-mcp-server

公式サーバーは正確に以下を受け取ります:

GITHUB_TOOLSETS=context,issues,pull_requests,actions,projects

無関係なツールセットが暗黙的に有効化されることはありません。

設定と来歴

ランチャーは以下を認識します:

  • GITHUB_APP_ID — デフォルトは 4618233

  • GITHUB_APP_INSTALLATION_ID — デフォルトは 154276908

  • GITHUB_APP_PRIVATE_KEY_PATH — 必須の絶対パスまたは解決可能なホストパス。

この 2 つの数値デフォルトは、ユーザーの既存の VS Code GitHub MCP 設定と、GitHub App bp-agent-github-app 向けの以前の compose セットアップで動作確認された値として文書化されています。これらはデフォルト値であり、説明のないパッケージ全体の秘密情報ではなく、上書き可能です。リポジトリへのアクセスについては、GitHub のインストール/設定ページが引き続き信頼できる情報源です。この App は元々 brycepelletier/environment-controller 用にインストールされました。

このパッケージには意図的にデフォルトのホスト PEM ファイル名がありません。以前の資料では C:/Users/bryce/.ssh/ 配下のどこかにあったことだけが確認されており、安全に推測するには不十分です。設定されたホストファイルは、固定のコンテナパス /secrets/github-app.pem に読み取り専用でマウントされます。キーは npm パッケージにコピーされたり、出力されたり、ツール入力として受け付けられたり、MCP 経由で返されたりすることはありません。

ホストの前提条件と MCP ライフサイクル

  • Node.js 24 LTS または互換性のある Node 24 リリース

  • Linux コンテナ対応の Docker

  • 信頼されたホスト側ランチャーから読み取り可能な GitHub App PEM

  • MCP roots を通じて提供される 1 つのローカル Git ワークスペース

  • リモート Git コンテナと公式 GitHub コンテナからのネットワークアクセス

公式 GitHub 子サーバーは、ツールが一覧表示されたとき、または API ツールが呼び出されたときに遅延起動します。Git ランタイムイメージは最初の Git 操作で遅延ビルドされ、パッケージバージョン/コンテンツから導出されたローカルタグによって再利用されます。Git 操作コンテナはエフェメラル(--rm)です。SIGINT/SIGTERM は公式子トランスポートを閉じます。

ローカルリンク

このパッケージディレクトリで Git Bash から:

npm run link

リンクを解除するには:

npm run unlink

VS Code の設定

ホスト PEM パスを環境設定として指定し、1 つの MCP エントリを公開します:

{
  "servers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["--yes", "@brycepelletier/github-app-mcp@0.1.0"],
      "env": {
        "GITHUB_APP_PRIVATE_KEY_PATH": "<exact-host-path-to-existing-pem>"
      }
    }
  }
}

動作確認済みの App ID とインストール ID は、文書化されたデフォルトを上書きしない限り繰り返す必要はありません。

github-token-broker からの移行

以前のプライベートブローカーは 0.0.0.0:8080 で待ち受け、GET /credential から Git の credential-helper 形式でインストールトークンを返していました。このアーキテクチャは廃止されました。このパッケージには HTTP リスナー、認証情報エンドポイント、トークンレスポンスはありません。既存のブローカーソースは監査/移行履歴のために保持されていますが、このパッケージには同梱されません。

このパッケージが運用開始されたら、agent-env-mcp で Git サービスと公開されている git_command を削除するフォローアップを行ってください。これは意図的に今回の変更の範囲外です。エンジニアリングサービスは、実際の .git をマスクし続け、PEM、インストールトークン、GitHub MCP ツールを受け取ってはなりません。

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brycepelletier/github-app-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server