github-token-mcp
github-token-mcp
spec.md の実装。devcontainer内のエージェントへ、GitHub App installation access token を都度発行するホスト専用MCPサーバー。
技術構成
MCP server:
@modelcontextprotocol/serverv2 (createMcpHandler+McpServer) を Streamable HTTP で配信GitHub App認証:
@octokit/auth-appのcreateAppAuth(JWT生成・token交換は自前実装しない)秘密鍵取得:
@1password/sdkのDesktopAuth— CLIシェルアウトではなく1Password desktop appでの生体認証/システム認証プロンプトを都度要求するBearer認証:
@modelcontextprotocol/expressのrequireBearerAuth。devcontainer側は固定の共有トークンを提示する
Related MCP server: Git Repo Auth MCP
セットアップ
npm install
cp .env.example .env # 値を埋めるGITHUB_APP_ID/GITHUB_APP_INSTALLATION_ID: 対象のGitHub App / インストールGITHUB_APP_PRIVATE_KEY_OP_REF: 秘密鍵の1Password secret reference (op://vault/item/field)OP_ACCOUNT_NAME: 1Password desktop app サイドバーに表示されるアカウント名(DesktopAuth用)MCP_BEARER_TOKEN: devcontainer側がAuthorization: Bearer <token>で提示する共有シークレット
1Password desktop app側で Settings > Developer > Integrate with other apps を有効化しておくこと。
npm run dev # tsx watch で起動
npm run build && npm start実装状況(骨子)
get_installation_tokenツールの型定義・入力バリデーションrepos カバレッジ検証 →
repo_not_installedpermissions 部分集合検証 →
permission_escalation_denied1Password 経由の秘密鍵取得 →
key_unavailable@octokit/auth-appへのトークン発行委譲 →github_api_errorStreamable HTTP + Bearer認証での配信
実際のGitHub App / 1Password vaultに対する動作確認(要人間による認証情報準備)
devcontainer側の利用パターン(spec.mdで明示的に後回しとされている)
ディレクトリ構成
src/
config.ts 環境変数ロード
errors.ts spec.md の4種類のエラーコードに対応するTokenError
op-secret.ts 1Password DesktopAuth 経由の秘密鍵取得
github-auth.ts installation repos/permissions 検証 + createAppAuth 呼び出し
tools/get-installation-token.ts get_installation_token ツール本体
server.ts McpServer ファクトリ(ツール登録)
index.ts HTTPエントリポイント(bearer認証 + createMcpHandler配信)This server cannot be deployed
Maintenance
Related MCP Connectors
Operate GitHub from your AI assistant: repos, PRs, issues, Actions. Previews and read-only mode.
Access the GitHub API, enabling file operations, repository management, search functionality, and…
Manage repositories, users, releases, and automate GitHub workflows
Issue, rotate and revoke scoped API-key passes for 25+ providers — the agent never sees a real key
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables access to GitHub repositories and data through the GitHub API. Supports retrieving repositories, issues, pull requests, and searching code across GitHub with authentication via personal access tokens.-
- FlicenseNot gradedqualityDmaintenanceMints short-lived, scoped GitHub App installation tokens on demand for AI agents to access git repositories or the GitHub API.-
- FlicenseNot gradedqualityCmaintenanceProvides GitHub App authentication for Git and API operations, enabling temporary token generation for private repository access.-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to access private GitHub repositories, organizations, issues, pull requests, and file contents via OAuth authentication.391 npmMIT