Autodocument MCP Server について
Autodocument MCP Server はコードリポジトリを分析し、開発チーム向けのドキュメント、テスト計画、コードレビューを生成します。ディレクトリを下位から処理し、OpenRouter を使って内容を作成します。
主な機能
- 01リポジトリの再帰的スキャン
- 02.gitignore ルールへの対応
- 03ドキュメント・テスト計画・レビューの生成
- 04下位ディレクトリからの集約
- 05モデル・プロンプト・制限の設定
活用シーン
- 01コードリポジトリの文書化
- 02関数やコンポーネントのテスト計画作成
- 03セキュリティや設計面のコードレビュー
MCP 対応
MCP クライアントに、リポジトリのドキュメント、テスト計画、コードレビューを生成するツールを提供します。内容の生成には設定した OpenRouter モデルを使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Autodocument MCP サーバー
OpenRouter API を使用してディレクトリ構造とコードファイルを分析し、コードリポジトリのドキュメントを自動生成する MCP(Model Context Protocol)サーバーです。
特長
- スマートなディレクトリ分析:コードリポジトリのディレクトリとファイルを再帰的に分析します
- Git 連携:
.gitignoreのパターンに従い、無視対象のファイルをスキップします - AI によるドキュメント生成:OpenRouter API(デフォルトでは Claude 3.7)を使用して、包括的なドキュメントを生成します
- テスト計画の生成:適切なテストタイプ、エッジケース、モック要件を含むテスト計画を自動的に作成します
- コードレビュー:セキュリティ、ベストプラクティス、改善点に重点を置き、シニア開発者のレベルでコードレビューを実施します
- ボトムアップ方式:末端のディレクトリから開始して上位へと進み、一貫性のあるドキュメント階層を作成します
- インテリジェントなファイル処理:
- 各ディレクトリ階層に
documentation.md、testplan.md、review.mdファイルを作成します - ファイルが1つだけのディレクトリはスキップしますが、その内容は親ディレクトリの出力に含めます
- 既存ファイルの更新に対応します
- 上限を超えるディレクトリには代替ファイルを作成します
- 各ディレクトリ階層に
- 進捗状況の報告:長時間の処理でタイムアウトを防ぐため、詳細な進捗状況を報告します
- 高い設定可能性:ファイル拡張子、サイズ上限、モデル、プロンプトなどをカスタマイズできます
- 拡張性の高いアーキテクチャ:モジュール設計により、今後さらに多くの auto-* ツールを簡単に追加できます
インストール
前提条件
- Node.js(v16 以降)
- OpenRouter API キー
インストール手順
# Clone the repository
git clone https://github.com/PARS-DOE/autodocument.git
cd autodocument
# Install dependencies
npm install
# Build the project
npm run build
設定
環境変数、コマンドライン引数、または MCP 設定ファイルを使って autodocument を設定します。
環境変数
OPENROUTER_API_KEY:OpenRouter API キーOPENROUTER_MODEL:使用するモデル(デフォルト:anthropic/claude-3-7-sonnet)MAX_FILE_SIZE_KB:ファイルサイズの上限(KB、デフォルト:100)MAX_FILES_PER_DIR:ディレクトリごとのファイル数の上限(デフォルト:20)
Roo または Cline での使用
Roo Code と Cline は、Model Context Protocol(MCP)に対応した AI アシスタントです。これにより、autodocument などの外部ツールを使用できます。
Roo/Cline の設定
-
リポジトリをクローンしてビルドする(上記のインストール手順に従ってください)
-
MCP サーバーを設定する:
Roo の場合:
MCP Servers メニューから MCP Settings を編集し、リポジトリをクローンした場所のフルパスを使って autodocument の設定を追加します。
リポジトリをクローンした場所のフルパスを使って autodocument の設定を追加します。
{ "mcpServers": { "autodocument": { "command": "node", "args": ["/path/to/autodocument/build/index.js"], "env": { "OPENROUTER_API_KEY": "your-api-key-here" }, "disabled": false, "alwaysAllow": [] } } }Claude Desktop App の場合:
Claude デスクトップアプリの設定ファイルを編集します。
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
リポジトリをクローンした場所のフルパスを使って autodocument の設定を追加します。
{ "mcpServers": { "autodocument": { "command": "node", "args": ["/path/to/autodocument/build/index.js"], "env": { "OPENROUTER_API_KEY": "your-api-key-here" }, "disabled": false, "alwaysAllow": [] } } } - Windows:
-
重要: クローンしたリポジトリ内の build/index.js ファイルには、絶対パスを指定してください
-
Roo/Cline または Claude デスクトップアプリを再起動します
-
ツールを使用する: Roo または Claude との会話で、コードリポジトリのドキュメントやテスト計画の生成を依頼できるようになります。
Please generate documentation for my project at /path/to/my/projectテスト計画を依頼する場合:
Please create a test plan for my project at /path/to/my/projectコードレビューを依頼する場合:
Please review the code in my project at /path/to/my/project
仕組み
autodocument サーバーは、ボトムアップ方式で動作します。
- 検出:
.gitignoreのルールを尊重しながら、対象ディレクトリを再帰的にスキャンします - スマートなディレクトリ処理:
- コードファイルまたはサブディレクトリが複数あるディレクトリを特定します
- ファイルが1つだけのディレクトリはスキップしますが、その内容は親ディレクトリのドキュメントに含めます
- ファイル分析:拡張子とサイズでフィルタリングしながら、コードファイルを分析します
- ドキュメント生成:条件を満たす各ディレクトリについて、以下を実行します。
- コードファイルを読み込みます
- 最適化されたプロンプトを使って、コードを OpenRouter API に送信します
documentation.mdファイルを作成します(既存のファイルがある場合は更新します)
- 集約:ディレクトリツリーを上に向かって移動しながら、以下を実行します。
- 各親ディレクトリを処理します
- 子ディレクトリのドキュメントを含めます
- 各階層に包括的な概要を作成します
アーキテクチャ
このプロジェクトは、モジュール式アーキテクチャを採用しています。
- コアコンポーネント:設定管理とサーバーの実装
- クローラーモジュール:ディレクトリの走査とファイルの検出
- アナライザーモジュール:コードファイルの分析とフィルタリング
- OpenRouter モジュール:LLM ベースのコンテンツ生成のための AI 連携
- ドキュメントモジュール:ドキュメント作成プロセスのオーケストレーション
- ツールモジュール:さまざまな auto-* ツール(ドキュメント、テスト計画など)に対応する拡張可能なシステム
- プロンプト設定:カスタマイズしやすい一元管理されたプロンプト
使用例
コマンドライン
# Navigate to your cloned repository
cd path/to/cloned/autodocument
# Set your API key (or configure in environment variables)
export OPENROUTER_API_KEY=your-api-key-here
# Run documentation generation on a project
node build/index.js /path/to/your/project
プログラムからの使用
const { spawn } = require('child_process');
const path = require('path');
// Path to your project
const projectPath = '/path/to/your/project';
// Your OpenRouter API key
const apiKey = 'your-api-key-here';
// Create a JSON command to simulate an MCP tool call
const toolCallCommand = JSON.stringify({
jsonrpc: '2.0',
method: 'call_tool',
params: {
name: 'generate_documentation',
arguments: {
path: projectPath,
openRouterApiKey: apiKey
}
},
id: 1
});
// Start the server process - use the full path to your cloned repository
const serverProcess = spawn('node', ['/path/to/autodocument/build/index.js'], {
env: {
...process.env,
OPENROUTER_API_KEY: apiKey
}
});
// Send the tool command
serverProcess.stdin.write(toolCallCommand + '\n');
// Handle server output and errors
// ...
プロンプトのカスタマイズ
src/prompt-config.ts ファイルを編集することで、ツールが使用するプロンプトを簡単にカスタマイズできます。これにより、次のことができます。
- 生成されるコンテンツのトーンやスタイルを調整する
- プロジェクトのニーズに合わせて、具体的な指示を追加する
- 既存のコンテンツの更新方法を変更する
プロンプト設定はツールの実装から分離されているため、コードを変更せずにさまざまなプロンプトを簡単に試せます。
利用可能なツール
generate_documentation
コードリポジトリの包括的なドキュメントを生成します。
{
"path": "/path/to/your/project",
"openRouterApiKey": "your-api-key-here", // Optional
"model": "anthropic/claude-3-7-sonnet", // Optional
"updateExisting": true // Optional, defaults to true
}
autotestplan
コードリポジトリ内の関数やコンポーネントのテスト計画を生成します。
{
"path": "/path/to/your/project",
"openRouterApiKey": "your-api-key-here", // Optional
"model": "anthropic/claude-3-7-sonnet", // Optional
"updateExisting": true // Optional, defaults to true
}
autoreview
リポジトリのシニア開発者レベルのコードレビューを生成します。
{
"path": "/path/to/your/project",
"openRouterApiKey": "your-api-key-here", // Optional
"model": "anthropic/claude-3-7-sonnet", // Optional
"updateExisting": true // Optional, defaults to true
}
出力ファイル
サーバーは、複数の種類の出力ファイルを作成します。
documentation.md
ディレクトリ内のコードに関する包括的なドキュメントを含みます。内容は次のとおりです。
- コードの目的
- 主要な関数とクラス
- ファイル間の関係
- 子コンポーネントとの連携
testplan.md
ディレクトリ内のコードに関する詳細なテスト計画を含みます。内容は次のとおりです。
- 各関数に適したテストの種類(単体テスト、統合テスト、E2E テスト)
- テストすべき一般的なエッジケース
- 依存関係をモックする要件
- 統合テストの戦略
review.md
シニア開発者レベルのコードレビューのフィードバックを含みます。内容は次のとおりです。
- セキュリティ上の問題や脆弱性
- ベストプラクティスへの違反
- 潜在的なバグやアーキテクチャ上の懸念
- リファクタリングの機会
- 実践的で建設的なフィードバック(スタイルの細かな指摘は含みません)
フォールバックファイル
ディレクトリがサイズまたはファイル数の上限を超えた場合に作成されます。
undocumented.md- ドキュメント生成用untested.md- テスト計画生成用review-skipped.md- コードレビュー生成用
これらのファイルには、次の内容が含まれます。
- 処理をスキップした理由
- 分析対象から除外されたファイルの一覧
- 解決方法(上限を引き上げる方法、またはコンテンツを手動で作成する方法)
トラブルシューティング
API キーの問題
無効な API キーに関するエラーが表示される場合:
OPENROUTER_API_KEY環境変数が設定されていることを確認してください- OpenRouter アカウントが有効であることを確認してください
- API 呼び出しに十分なクレジットがあることを確認してください
サイズ上限のエラー
サイズ上限が原因でスキップされるディレクトリが多すぎる場合:
- 環境変数
MAX_FILE_SIZE_KBとMAX_FILES_PER_DIRを設定して、上限を引き上げてください - 非常に大きなディレクトリは、手動でドキュメントを作成することを検討してください
モデルの選択
ドキュメントの品質に満足できない場合:
OPENROUTER_MODEL環境変数を設定して、別のモデルを試してください
ライセンス
CC0-1.0 ライセンス - この作品は、米国エネルギー省により CC0 のもとでパブリックドメインに提供されています
コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
新しいツールの追加
このアーキテクチャは、新しい auto-* ツールを簡単に追加できるように設計されています。
src/toolsディレクトリにBaseToolを継承する新しいクラスを作成しますsrc/prompt-config.tsでプロンプトを定義しますToolRegistryにツールを登録します
新しい機能の実装方法については、既存のツールを参考にしてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。