review-dojo-mcp

review-dojo-mcp

Enables searching and retrieving knowledge extracted from GitHub PR reviews to help developers avoid repeating mistakes.

Category
访问服务器

README

PR Review Knowledge System

GitHub PRのレビューコメントから有益な指摘を自動収集・蓄積し、実装時に活用できる仕組み。

ドキュメント

ドキュメント 内容 対象者
統合ガイド 本番導入・CI/CD連携・MCPサーバー設定 導入担当者
MCP技術仕様 MCPサーバーの詳細仕様・API 開発者
トラブルシューティング よくある問題と解決方法 全ユーザー

概要

  • 目的: PRレビューで得られた知見をチームで共有し、同じミスの再発を防止
  • 対象: GitHub Organization内のpublicリポジトリ

実装状況

Phase 機能 ステータス
Phase 1 PRマージ時の自動収集・Markdown蓄積 完了
Phase 2 MCPサーバー(Claude Code連携) 完了
Phase 3 CI/CD連携(PR自動コメント) 完了

クイックスタート

ローカルで試す(2分)

git clone https://github.com/yourorg/review-dojo-mcp.git
cd review-dojo-mcp
npm install
npm run build
npm test

MCPサーバーを試す(3分)

# Claude Code の設定に追加
claude mcp add review-dojo node $(pwd)/dist/interfaces/mcp/McpServer.js

Claude Code で「Javaのセキュリティに関する知見を検索して」と質問して動作確認。

本番導入

自組織への完全な導入手順は 統合ガイド を参照してください:

  • Phase 1: 知見収集システム(30-45分)
  • Phase 2: MCPサーバー導入(10-15分)
  • Phase 3: CI/CD連携(15-20分)

GitHub Enterprise対応

GitHub Enterprise (GHE) 環境で使用する場合は、以下の環境変数を設定してください。

環境変数

環境変数 説明 デフォルト値
GITHUB_HOST GitHubホスト名 github.com github.example.com
GITHUB_API_URL GitHub API URL https://api.github.com https://github.example.com/api/v3
GITHUB_ORG_NAME 組織名 yourorg my-org

設定例

MCP設定(claude_desktop_config.json)

{
  "mcpServers": {
    "review-dojo": {
      "command": "node",
      "args": ["/path/to/review-dojo-mcp/dist/interfaces/mcp/McpServer.js"],
      "env": {
        "GITHUB_HOST": "github.example.com",
        "GITHUB_API_URL": "https://github.example.com/api/v3",
        "GITHUB_ORG_NAME": "my-org",
        "GITHUB_TOKEN": "ghp_xxx",
        "REVIEW_DOJO_GITHUB_REPO": "my-org/review-dojo-knowledge"
      }
    }
  }
}

GitHub Actions

GitHub Actionsでは、Repository Variables を使用してカスタマイズできます:

Variable 用途
KNOWLEDGE_REPO 知見リポジトリ my-org/review-dojo-knowledge
REVIEW_DOJO_ACTION review-dojo-action の参照 my-org/review-dojo-action
REVIEW_DOJO_ACTION_VERSION action のバージョン v1

詳細は 統合ガイド を参照してください。

Phase機能一覧

Phase 1: 知見収集(MVP)

PRマージ時に自動的にレビューコメントを収集・分析し、カテゴリ別にMarkdownファイルへ蓄積。

  • Claude Codeによる AI分析・抽出
  • 類似知見のマージ・発生回数カウント
  • 機密情報の自動マスク
  • 100件/ファイル上限でアーカイブ

Phase 2: MCPサーバー

Claude Code から蓄積された知見を検索・参照。

  • search_knowledge: 知見検索(カテゴリ・言語・重要度でフィルタ)
  • get_knowledge_detail: 知見詳細取得
  • generate_pr_checklist: 変更ファイルから関連知見をチェックリスト化
  • list_categories / list_languages: メタデータ取得

詳細: MCP技術仕様

Phase 3: CI/CD連携

PR作成時に関連知見を自動コメント。GitHub Actions / Screwdriver CI対応。

詳細: 統合ガイド

システム構成

┌─────────────────────────────────────────┐
│         各リポジトリ                     │
│  ┌────────────────────────────────┐     │
│  │ PR マージ                       │     │
│  └────────┬───────────────────────┘     │
│           │ repository_dispatch          │
└───────────┼─────────────────────────────┘
            ▼
┌─────────────────────────────────────────┐
│      review-dojo (knowledge-repo)       │
│  1. PRコメント取得                       │
│  2. Claude Code で分析                   │
│  3. 知見抽出・Markdown更新               │
└─────────────────────────────────────────┘

アーキテクチャ

オニオンアーキテクチャ(4層)を採用:

責務 主要コンポーネント
Interfaces エントリーポイント McpServer, CheckKnowledgeCli
Application ユースケース SearchKnowledgeUseCase, GeneratePRChecklistUseCase
Domain ビジネスロジック KnowledgeFile, KnowledgeItem, SensitiveInfoMasker
Infrastructure 外部連携 FileSystemKnowledgeRepository, MarkdownSerializer

依存関係ルールは ts-arch で自動検証: npm test tests/architecture

ディレクトリ構造

review-dojo/
├── src/                # TypeScript ソースコード(オニオンアーキテクチャ)
│   ├── domain/         # ドメイン層(ビジネスロジック)
│   ├── application/    # アプリケーション層(ユースケース)
│   ├── infrastructure/ # インフラ層(ファイルI/O、シリアライズ)
│   └── interfaces/     # インターフェース層(CLI、MCP Server)
├── dist/               # ビルド出力(src/のコンパイル結果)
├── tests/              # テストコード
│   ├── domain/         # ドメイン層のテスト
│   ├── infrastructure/ # インフラ層のテスト
│   └── architecture/   # アーキテクチャテスト(ts-arch)
├── security/           # セキュリティ関連知見
├── performance/        # パフォーマンス関連知見
├── readability/        # 可読性・命名関連知見
├── design/             # 設計・アーキテクチャ関連知見
├── testing/            # テスト関連知見
├── error-handling/     # エラーハンドリング関連知見
├── other/              # その他
└── archive/            # アーカイブ(100件超過時)

知見のフォーマット

## SQLインジェクション対策

- **重要度**: critical
- **発生回数**: 3
- **概要**: PreparedStatementを使用せず文字列結合でSQLを組み立てている
- **推奨対応**: 必ずPreparedStatementまたはORMのパラメータバインディングを使用する
- **コード例**:
  ```java
  // NG
  String sql = "SELECT * FROM users WHERE id = " + userId;
// OK
PreparedStatement ps = conn.prepareStatement("SELECT * FROM users WHERE id = ?");
  • 対象ファイル例: src/main/java/UserDao.java
  • 参照PR:
    • https://github.com/org/repo/pull/123
    • https://github.com/org/repo/pull/456


## 開発

### ビルド

```bash
# TypeScriptをビルド
npm run build

# 開発時の自動ビルド(ウォッチモード)
npm run build -- --watch

テスト

# 単体テスト実行
npm test

# カバレッジ確認
npm run test:coverage

# UI モード
npm run test:ui

# アーキテクチャテスト(ts-arch)
# オニオンアーキテクチャの依存関係ルールを検証
npm test tests/architecture

ライセンス

MIT

参考資料

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选