PR Review MCP Server
Enables management of GitHub pull request review threads through natural language, allowing users to list, reply to, and resolve PR review comments using GitHub's GraphQL API.
README
PR Review MCP Server
GitHub PR レビューコメントを取得・応答・解決するためのMCPサーバーです。
機能
このMCPサーバーは以下の4つのツールを提供します:
- list_review_threads - PRのレビュースレッド一覧を取得
- reply_to_review_thread - レビュースレッドに返信
- resolve_review_thread - レビュースレッドを解決
- reply_and_resolve - 返信と解決を一度に実行
前提条件
- GitHub CLI (gh) がインストールされ、認証済みであること
gh auth login - uv (Python 3.10以上)
インストール
uvを使用する方法(推奨)
# uvのインストール(まだの場合)
curl -LsSf https://astral.sh/uv/install.sh | sh
# プロジェクトディレクトリに移動
cd /path/to/CodeReviewResolvedMcp
# 依存関係のインストール
uv sync
# 開発用依存関係も含める場合
uv sync --dev
従来のpipを使用する方法
# プロジェクトディレクトリに移動
cd /path/to/CodeReviewResolvedMcp
# インストール
pip install -e .
# 開発用の依存関係も含める場合
pip install -e ".[dev]"
MCPクライアントでの使用
Claude Desktopの設定
uvを使用する場合(推奨)
~/.config/Claude/claude_desktop_config.json (Linux):
{
"mcpServers": {
"pr-review": {
"command": "uv",
"args": ["run", "pr-review-mcp"],
"cwd": "/path/to/CodeReviewResolvedMcp"
}
}
}
python3を使用する場合
{
"mcpServers": {
"pr-review": {
"command": "python3",
"args": ["-m", "pr_review_mcp.server"],
"cwd": "/path/to/CodeReviewResolvedMcp"
}
}
}
使用例
1. レビュースレッド一覧の取得
未解決のレビューコメントを確認したいので、owner/repo の PR #123 のレビュースレッドを表示してください
2. レビューコメントに返信
thread_id: PRRT_xxx のスレッドに "修正しました。ご確認ください。" と返信してください
3. レビュースレッドの解決
thread_id: PRRT_xxx のスレッドを解決済みにしてください
4. 返信と解決を一度に実行
thread_id: PRRT_xxx のスレッドに "対応完了しました" と返信し、解決してください
ツールの詳細
list_review_threads
PRのレビュースレッド一覧を取得します。
パラメータ:
owner(string, 必須): リポジトリオーナーrepo(string, 必須): リポジトリ名pull_number(integer, 必須): PR番号unresolved_only(boolean, オプション): 未解決のみ取得 (デフォルト: true)
出力例:
{
"pull_request": "owner/repo#123",
"thread_count": 2,
"threads": [
{
"id": "PRRT_kwDOABC...",
"is_resolved": false,
"file": "src/main.py",
"line": 42,
"first_comment": {
"author": "reviewer",
"body": "このロジックを改善できますか?",
"created_at": "2025-12-10T12:00:00Z"
}
}
]
}
reply_to_review_thread
レビュースレッドに返信を追加します。
パラメータ:
owner(string, 必須): リポジトリオーナーrepo(string, 必須): リポジトリ名pull_number(integer, 必須): PR番号thread_id(string, 必須): スレッドIDbody(string, 必須): 返信内容(Markdownサポート)
resolve_review_thread
レビュースレッドを解決済みとしてマークします。
パラメータ:
thread_id(string, 必須): スレッドID
reply_and_resolve
レビュースレッドに返信し、即座に解決します。
パラメータ:
owner(string, 必須): リポジトリオーナーrepo(string, 必須): リポジトリ名pull_number(integer, 必須): PR番号thread_id(string, 必須): スレッドIDbody(string, 必須): 返信内容(Markdownサポート)
技術詳細
このMCPサーバーは以下の技術を使用しています:
- GitHub GraphQL API: レビュースレッドの取得と操作
- gh CLI: GitHub APIへのアクセス(認証を含む)
- MCP (Model Context Protocol): AIアシスタントとの統合
GraphQL APIの使用
このサーバーは主に以下のGraphQL操作を使用します:
- クエリ:
repository.pullRequest.reviewThreads- レビュースレッド取得 - ミューテーション:
addPullRequestReviewThreadReply- 返信追加 - ミューテーション:
resolveReviewThread- スレッド解決
トラブルシューティング
gh command failed エラー
gh CLIが正しくインストール・認証されているか確認してください:
gh auth status
認証されていない場合:
gh auth login
Pull request not found エラー
- リポジトリ名、オーナー、PR番号が正しいか確認
- PRが実際に存在するか確認
- ghコマンドで該当リポジトリにアクセス権限があるか確認
GraphQL errors エラー
- thread_idが正しいか確認(
list_review_threadsで取得したIDを使用) - PR番号が正しいか確認
- リポジトリへの書き込み権限があるか確認
ライセンス
このプロジェクトはMITライセンスの下で公開されています。
開発
依存関係の管理
# 依存関係の追加
uv add <package-name>
# 開発用依存関係の追加
uv add --dev <package-name>
# 依存関係の同期
uv sync
コード品質チェック
# Ruffでリント
uv run ruff check .
# Ruffでフォーマット
uv run ruff format .
# 型チェック(追加予定)
# uv run mypy src/
テストの実行
# すべてのテストを実行
uv run pytest
# 詳細表示で実行
uv run pytest -v
# 特定のテストファイルを実行
uv run pytest tests/test_gh_api.py
# カバレッジ付きで実行(pytest-covが必要)
# uv add --dev pytest-cov
# uv run pytest --cov=pr_review_mcp
CI/CD
このプロジェクトはGitHub Actionsを使用した自動CI/CDパイプラインを備えています。
ワークフロー
CI/CD(.github/workflows/ci.yml)
プッシュとプルリクエストで自動実行されます:
- Lint: Ruffによるコードのリント
- Format Check: Ruffによるフォーマットチェック
- Test: Python 3.10、3.11、3.12での自動テスト
# 実行タイミング
- main ブランチへのプッシュ
- develop ブランチへのプッシュ
- main/develop ブランチへのプルリクエスト
Release(.github/workflows/release.yml)
バージョンタグがプッシュされた時に自動実行されます:
# リリース方法
git tag v0.1.0
git push origin v0.1.0
このワークフローは:
- パッケージをビルド
- GitHub Releaseを作成
- (オプション)PyPIに公開
Dependabot(.github/dependabot.yml)
依存関係の自動更新:
- GitHub Actionsの更新(週次)
- Python依存関係の更新(週次)
ローカルでCI/CDと同じチェックを実行
# リント
uv run ruff check .
# フォーマットチェック
uv run ruff format --check .
# テスト
uv run pytest -v
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。