mcpField
L
Lean Github Mcp

Lean Github Mcp

ローカル
npmjs.comバージョン管理028 週間前に更新

Lean Github Mcp について

Lean Github Mcpは、19種類のツールでClaudeからGitHubのリポジトリ、Issue、PR、リリース、Actionsを管理するMCPサーバーです。応答を簡潔化してキャッシュし、Claudeに渡すデータ量を抑えます。

主な機能

  1. 0119種類のGitHub管理ツール
  2. 02IssueとPRの作成・管理
  3. 03差分、ファイル、コミットの閲覧
  4. 04ブランチとリリースの管理
  5. 05GitHub Actionsの一覧表示と実行
  6. 06API応答の簡潔化とキャッシュ

活用シーン

  1. 01Issueの分類と担当者の割り当て
  2. 02プルリクエストの確認とマージ
  3. 03ブランチ作成とリリース公開
  4. 04リポジトリのワークフロー実行

MCP 対応

stdio経由のMCPでClaudeをGitHub APIに接続します。リポジトリ、Issue、PR、ブランチ、ファイル、リリース、ワークフローを操作するツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Lean GitHub MCP

Claude を通じて GitHub をすべて操作できます。自然な言葉で指示するだけです。

ブラウザーを開かずに、PR の作成、Issue の管理、ワークフローの実行、リリースの作成、差分のレビューができます。

GitHub MCP サーバーのデモ

公式 GitHub MCP より応答が 26 倍小さく、Claude のコンテキストウィンドウをより有効に使えます。

npm CI MCP Compatible TypeScript License: MIT Tests Tools


これは何ですか?

これは、Claude を GitHub API に直接接続する Model Context Protocol (MCP) サーバーです。インストールすると、GUI を使ったり、URL をコピー&ペーストしたり、作業のたびに画面を切り替えたりすることなく、自然な会話を通じて GitHub のワークフロー全体を管理できます。

Claude に次のように入力します:

Merge PR #47 with squash, delete the branch, then create a release v2.1.0 with those changes

Claude がすべて実行します。 API 呼び出し 3 回で完了です。


公式 GitHub MCP ではなく、こちらを選ぶ理由

このサーバー公式 GitHub MCP
セットアップnpm install +トークンDocker が必要
応答サイズ平均約 320 トークン2000 トークン以上(生の API 応答)
トークン効率null の削除、コンパクト化生の JSON をそのまま転送
キャッシュメモリー内に 120 秒間キャッシュキャッシュなし
ツール19 個約 30 個
デフォルトブランチ自動検出main に固定
エラーメッセージステータスコードを含む汎用メッセージ
ライセンスMIT — どこでも利用可能MIT

要するに: このサーバーは軽量さを重視して作られています。すべての応答から null 値を取り除き、適切に切り詰め、必要に応じてキャッシュします。Claude のコンテキストウィンドウを貴重なリソースとして扱います。


60 秒でセットアップ

オプション 1 — npx で実行(インストール不要):

GITHUB_TOKEN=ghp_your_token npx @noushad999/lean-github-mcp

オプション 2 — npm からグローバルにインストール:

npm install -g @noushad999/lean-github-mcp
lean-github-mcp

オプション 3 — Docker (近日公開):

docker run -e GITHUB_TOKEN=ghp_your_token ghcr.io/noushad999/lean-github-mcp

オプション 4 — ソースからクローン:

git clone https://github.com/noushad999/lean-github-mcp.git
cd lean-github-mcp
npm install && npm run build
echo "GITHUB_TOKEN=ghp_your_token" > .env

Claude Desktop — %APPDATA%\Claude\claude_desktop_config.json(Windows)または ~/Library/Application Support/Claude/claude_desktop_config.json(Mac)を編集します:

npx を使用する場合(最も簡単 — インストール不要):

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@noushad999/lean-github-mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

ローカルビルドを使用する場合:

{
  "mcpServers": {
    "github": {
      "command": "node",
      "args": ["C:/absolute/path/to/lean-github-mcp/dist/index.js"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

Claude Code(CLI):

claude mcp add github -- node /absolute/path/to/lean-github-mcp/dist/index.js

Claude を再起動すれば完了です。


必要なトークン権限

github.com/settings/tokens?type=beta にアクセスし、Fine-grained token を選択します:

権限レベル使用するツール
Contents読み取りと書き込みget_file、create_branch、delete_branch
Issues読み取りと書き込みlist_issues、create_issue、assign_issue、add_comment
Pull requests読み取りと書き込みlist_prs、create_pr、merge_pr、get_pr_diff
Actions読み取りと書き込みlist_workflows、trigger_workflow
Metadata読み取りlist_repos、get_repo

利用可能なツール

リポジトリ
list_repos

任意のユーザーまたは組織のリポジトリを一覧表示します。

"Show me all of vercel's public repos sorted by recent activity"
パラメーター型必須デフォルト
ownerstringはい—
typeowner | memberいいえowner

get_repo

指定したリポジトリの詳細な統計情報を取得します。

"Tell me about facebook/react — stars, forks, language, open issues"
パラメーター型必須
ownerstringはい
repostringはい

Issue
list_issues

ラベルと担当者を含む Issue の一覧を取得します。

"Show all open bugs in my repo"
パラメーター型必須デフォルト
owner文字列はい—
repo文字列はい—
stateopen | closed | allいいえopen

create_issue

ラベルを指定して新しい Issue を作成します。

"Create an issue titled 'Login crashes on Safari' with labels bug and priority"
パラメーター型必須
owner文字列はい
repo文字列はい
title文字列はい
body文字列いいえ
labels文字列[]いいえ

assign_issue

Issue または PR の担当者を追加または削除します。

"Assign issue #42 to alice and bob"
パラメーター型必須デフォルト
owner文字列はい—
repo文字列はい—
issue_number数値はい—
assignees文字列[]はい—
actionadd | removeいいえadd

プルリクエスト
list_prs

状態を指定してプルリクエストの一覧を取得します。

"What PRs are currently open in vercel/next.js?"
パラメーター型必須デフォルト
owner文字列はい—
repo文字列はい—
stateopen | closed | allいいえopen

create_pr

プルリクエストを作成します。base を省略すると、リポジトリのデフォルトブランチを自動検出します。

"Create a PR from feat/dark-mode to main titled 'Add dark mode support'"
パラメーター型必須デフォルト
owner文字列はい—
repo文字列はい—
title文字列はい—
body文字列いいえ—
head文字列はい—
base文字列いいえリポジトリのデフォルト

get_pr_diff

プルリクエストの統合差分を取得します(最大 200 行)。

"Show me the diff for PR #88"
パラメーター型必須
owner文字列はい
repo文字列はい
pull_number数値はい

merge_pr

選択した方法でマージします。

"Squash-merge PR #47 with title 'feat: dark mode'"
パラメーター型必須デフォルト
owner文字列はい—
repo文字列はい—
pull_number数値はい—
methodmerge | squash | rebaseいいえmerge
commit_title文字列いいえ—

ブランチ
create_branch

任意のベースからブランチを作成します。デフォルトブランチを自動検出します。

"Create branch fix/header-overflow from main"
パラメーター型必須デフォルト
owner文字列はい—
repo文字列はい—
branch文字列はい—
base文字列いいえリポジトリのデフォルト

delete_branch

ブランチを削除します(通常はマージ後に実行します)。

"Delete the feat/dark-mode branch, it's been merged"
パラメーター型必須
owner文字列はい
repo文字列はい
branch文字列はい

コミットとファイル
list_commits

作成者とタイムスタンプを含む最近のコミット履歴を表示します。

"Show the last 5 commits on the main branch"
パラメーター型必須デフォルト
owner文字列はい—
repo文字列はい—
branch文字列いいえリポジトリのデフォルト
per_page1–10いいえ10

get_file

任意のブランチからファイルの内容を読み取ります。100 行を超えるファイルは切り詰められます。

"Show me the contents of src/auth.ts on the dev branch"
パラメーター型必須デフォルト
owner文字列はい—
repo文字列はい—
path文字列はい—
branch文字列いいえリポジトリのデフォルト

search_code

GitHub 全体からコードを検索します。

"Find all TypeScript files using useAuth hook"
パラメーター型必須デフォルト
query文字列はい—
per_page1–10いいえ10

GitHub のコード検索 API では認証が必要で、レート制限は約 10 リクエスト/分です。結果は 120s 間キャッシュされます。


コメント
add_comment

任意の Issue またはプルリクエストにコメントします。

"Add a comment to PR #55 saying the deployment is ready for testing"
パラメーター型必須
owner文字列はい
repo文字列はい
issue_number数値はい
body文字列はい

リリース
get_release

最新のリリースを取得するか、特定のタグを検索します。

"What's the latest release of vercel/next.js?"
パラメーター型必須デフォルト
owner文字列はい—
repo文字列はい—
tag文字列いいえlatest

create_release

リリースノートを付けて新しいリリースを公開します。

"Create release v2.1.0 on the main branch with the changelog I'll paste"
ParamTypeRequiredDefault
ownerstringはい—
repostringはい—
tag_namestringはい—
namestringいいえタグ名
bodystringいいえ—
draftbooleanいいえfalse
prereleasebooleanいいえfalse
target_commitishstringいいえリポジトリのデフォルト

GitHub Actions
list_workflows

リポジトリ内のすべてのワークフローを一覧表示します。

"What GitHub Actions workflows does this repo have?"
ParamTypeRequired
ownerstringはい
repostringはい

trigger_workflow

オプションの入力値を指定して、ワークフローのディスパッチイベントをトリガーします。

"Trigger the deploy.yml workflow on the staging branch"
ParamTypeRequiredDefault
ownerstringはい—
repostringはい—
workflow_idstring | numberはい—
refstringいいえリポジトリのデフォルト
inputsobjectいいえ{}

動作の仕組み

You (natural language)
        │
        ▼
   Claude AI
        │  MCP Protocol (stdio)
        ▼
┌──────────────────────────────────┐
│        lean-github-mcp           │
│                                  │
│  ┌─────────────────────────┐     │
│  │   19 Tool Handlers      │     │
│  └────────┬────────────────┘     │
│           │                      │
│  ┌────────▼─────┐  ┌──────────┐  │
│  │  Token Guard │  │  Cache   │  │
│  │  4000 char   │  │  120s    │  │
│  │  null strip  │  │  200 max │  │
│  └────────┬─────┘  └────┬─────┘  │
│           └──────┬───────┘        │
│                  ▼                │
│      ┌──────────────────┐         │
│      │  GitHub Client   │         │
│      │  Axios + Auth    │         │
│      │  Status codes    │         │
│      └──────────────────┘         │
└──────────────┬───────────────────┘
               │ HTTPS
               ▼
        api.github.com
トークン効率 — 重要な理由

MCP サーバーが送信するすべての応答は、Claude のコンテキストウィンドウを消費します。応答が膨大だと、Claude は会話の前半をより早く忘れてしまいます。このサーバーは、応答サイズを積極的に最小限に抑えます。

単一リポジトリに対する GitHub API の生の応答:

{
  "id": 1296269,
  "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
  "name": "Hello-World",
  "full_name": "octocat/Hello-World",
  "private": false,
  "owner": {
    "login": "octocat",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "...",
    ... 20 more owner fields
  },
  "html_url": "https://github.com/octocat/Hello-World",
  "description": "This your first repo!",
  ... 80+ more fields, mostly null
}

約2,400トークン

このサーバーの応答:

{
  "name": "Hello-World",
  "full_name": "octocat/Hello-World",
  "description": "This your first repo!",
  "stars": 2045,
  "forks": 1731,
  "language": "JavaScript",
  "open_issues": 12,
  "updated_at": "2024-01-15T10:30:00Z",
  "html_url": "https://github.com/octocat/Hello-World"
}

約90トークン — 26倍小さい


実際の会話例

PR ワークフロー全体:

You: Show me open PRs in my-org/my-repo

Claude: Found 3 open PRs:
  #88 — "Add OAuth2 support" by sarah_dev
  #91 — "Fix memory leak in worker" by john_k
  #94 — "Upgrade to Node 22" by bot

You: Show me the diff for #91

Claude: [shows unified diff of the memory leak fix]

You: Looks good. Merge it with squash, then delete the branch

Claude: Done — squash merged PR #91 (sha: a3f9c21), deleted branch fix/memory-leak

You: Now create a release v3.2.1 from main with changelog: "Fixed memory leak in background workers"

Claude: Release v3.2.1 published — https://github.com/my-org/my-repo/releases/tag/v3.2.1

GitHub に対する4つの個別操作を、1回の会話で実行します。


自動トリアージ:

You: List open issues in my-org/api-server, assign the ones labeled "bug" to me

Claude: Found 4 open issues. 2 have the "bug" label (#34, #41).
  Assigned #34 and #41 to you.

テスト

npm run build
npx tsx tests/simulate-10-users.ts

想定される出力:

╔══════════════════════════════════════════════════════════╗
║     GitHub MCP Server - 10 User Deployment Test        ║
║          19 Tools · Full Coverage Simulation           ║
╚══════════════════════════════════════════════════════════╝
...
║  Total Tests:        49                  ║
║  Passed:             49                  ║
║  Failed:             0                   ║
║  Pass Rate:          100.0          %    ║
║  Null Fields Found:  0                   ║
║  Avg Response:       319            tokens ║
╚══════════════════════════════════════════╝
🎉 ALL TESTS PASSED! Ready for production.

MCP Inspector を使ってライブで確認することもできます:

npx @modelcontextprotocol/inspector node dist/index.js

プロジェクト構成

lean-github-mcp/
├── src/
│   ├── index.ts                  # MCP server entry, tool registration
│   ├── github-client.ts          # Axios client + getDefaultBranch helper
│   ├── middleware/
│   │   └── tokenGuard.ts         # Response trimmer: null strip, compactify, 4000 char limit
│   ├── utils/
│   │   └── cache.ts              # 120s TTL in-memory cache, max 200 entries
│   └── tools/                    # 19 tool handlers (one file each)
│       ├── list_repos.ts
│       ├── get_repo.ts
│       ├── list_issues.ts
│       ├── create_issue.ts
│       ├── assign_issue.ts
│       ├── list_prs.ts
│       ├── create_pr.ts
│       ├── get_pr_diff.ts
│       ├── merge_pr.ts
│       ├── create_branch.ts
│       ├── delete_branch.ts
│       ├── list_commits.ts
│       ├── get_file.ts
│       ├── search_code.ts
│       ├── add_comment.ts
│       ├── get_release.ts
│       ├── create_release.ts
│       ├── list_workflows.ts
│       └── trigger_workflow.ts
├── tests/
│   └── simulate-10-users.ts      # Full simulation test, 49 assertions
├── dist/                         # Compiled JS (after npm run build)
├── package.json
├── tsconfig.json
└── .env.example

トラブルシューティング

GITHUB_TOKEN not set

cat .env    # make sure GITHUB_TOKEN=ghp_... is there

GitHub API (403): Rate limited or insufficient permissions

  • ファイングレインドトークンでは、リポジトリへの明示的なアクセス権が必要です。上記の権限表を確認してください
  • コード検索の上限はより厳しく、約10リクエスト/分です。60秒待ってから再試行してください

GitHub API (404): Resource not found

  • owner と repo のスペルを再確認してください
  • プライベートリポジトリにアクセスするには、トークンにアクセス権が必要です

GitHub API (422): Unprocessable

  • 通常、該当ブランチにすでに PR が存在するか、ブランチ名が無効であることを意味します

Claude Desktop での Command not found: node

  • フルパスを使用してください:C:\Program Files\nodejs\node.exe(Windows)、または Mac/Linux で which node を実行してください

コントリビューション

コントリビューションを歓迎します。新しいツールの追加方法、コード規約、PR チェックリストについては、手順ごとのガイド CONTRIBUTING.md をご覧ください。


ロードマップ

  • list_workflow_runs — ブランチの CI ステータスを確認
  • get_commit — 変更ファイルを含む、単一コミットの詳細を取得
  • compare_branches — 2つのブランチ間の差分を表示
  • update_file — ファイルの変更を直接コミット
  • add_label / remove_label — ラベルを管理

追加してほしい機能があれば、issue を作成してください。


ライセンス

MIT — 自由にお使いください。


GitHub をクリックして操作するより、Claude と話したい開発者のために作られました。

バグを報告 · 機能をリクエスト

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。