Agents Md Generator について
Agents Md Generatorは、コーディングエージェント向けのコンテキストを整えるため、コードベースを分析してAGENTS.mdを生成・更新するMCPサーバーです。tree-sitterと差分スキャンでプロジェクト構造を抽出します。
主な機能
- 01Python、C#、TypeScript、JavaScript、Goを解析
- 02アーキテクチャと開発情報を生成
- 03結果をキャッシュして差分スキャン
- 04大きな分析データを分割して転送
- 05コードベースを単独で分析
活用シーン
- 01プロジェクトのAGENTS.mdを生成・更新
- 02レビュー前にコード構造を把握
- 03計画や質疑応答のために構造情報を取得
MCP 対応
対応クライアント向けに、文書生成、コードベース分析、分析結果の分割読み込みツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| params | any | はい |
詳細
agents-md-generator
tree-sitterでコードベースを分析し、AGENTS.mdファイルを生成するMCPサーバーです。
Python · C# · TypeScript · JavaScript · Go
インストール · 使い方 · 設定 · 動作の仕組み · コントリビューション
Claude Code、Gemini CLI、Cursor、Windsurf、Codex CLIなど、MCP 対応クライアントであればどれでも利用できます。
このサーバーは、役割を明確に分けた3つのツールを提供します。
generate_agents_md— メインのエントリーポイントです。分析パイプラインを内部で実行し、書き込みルールをペイロードに埋め込み、分割された読み取り指示をクライアントに返します。scan_codebase— ファイルを生成せずにコードベースを深く理解したい場合に使う、単独で利用できるコンテキストツールです。read_payload_chunk— どのツールがペイロードを生成したかに関わらず、ペイロードを分割してストリーミングします。
MCP の通信経路を通じて、大量のデータが送信されることはありません。
目次
インストール
必要条件: Python 3.11以降、Git、およびMCP対応クライアント。
前提条件やトラブルシューティングを含む完全なガイドは、**INSTALLATION.md**を参照してください。
オプションA — pip install + セットアップウィザード(推奨)
pip install agents-md-generator
agents-md-generator setup
セットアップウィザードは、インストール済みのクライアントを検出し、グローバルまたはプロジェクト単位で設定するかを確認したうえで、設定ファイルを自動的に更新します。Claude Code、Gemini CLI、Cursor、Windsurf、Codex CLIに対応しています。
オプションB — uvx(インストール不要)
uvをインストール済みの場合、uvxを使うと、事前にインストールすることなくパッケージを実行できます。クライアントのMCP設定にエントリを手動で追加してください。
{
"mcpServers": {
"agents-md": {
"command": "uvx",
"args": ["agents-md-generator"]
}
}
}
Claude Codeの場合:
claude mcp add agents-md -- uvx agents-md-generator
claude mcp addの既定のスコープは--scope local(現在のプロジェクトのみ)です。すべてのプロジェクトに登録するには、-s userを追加してください。
使い方
登録したら、AIクライアントに次のように依頼します。
「このプロジェクトのAGENTS.mdを生成してください」
クライアントはgenerate_agents_mdを自動的に呼び出します。別のディレクトリをスキャンする場合:
「/path/to/project にあるプロジェクトのAGENTS.mdを生成してください」
ツール
| ツール | 目的 |
|---|---|
generate_agents_md | 主なエントリーポイントです。パイプラインを内部で実行し、書き込みルールをペイロードに埋め込み、分割された読み取り手順を返します。AGENTS.md の作成または更新に使用します。 |
scan_codebase | 単独で使用できるコンテキストツールです。コードベースを分析し、AGENTS.md の作成を必須としない純粋なデータペイロードを返します。ほかのタスクに必要なアーキテクチャのコンテキストを把握する場合に使用します。 |
read_payload_chunk | どちらかのツールが書き込んだペイロードを、has_more が false になるまでチャンク単位でストリーミングします。 |
ツールのパラメーター
generate_agents_md
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
project_path | string | "." | プロジェクトのルートへのパス |
scan_codebase
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
project_path | string | "." | プロジェクトのルートへのパス |
force_full_scan | boolean | false | true に明示的に設定すると、キャッシュを無視してすべてを再スキャンします。 |
read_payload_chunk
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
project_path | string | "." | 直前のツール呼び出しで使用したパスと一致する必要があります |
chunk_index | integer | — | 0 から始まるチャンクのインデックスです。has_more が false になるまでインクリメントします |
生成される内容
生成される AGENTS.md は、agents.md のオープン標準に準拠しています。人間向けのドキュメントではなく、AI エージェント向けの README として記述されます。次のセクションが含まれます。
| セクション | 内容 |
|---|---|
| プロジェクト概要 | 技術スタックとトップレベルのアーキテクチャの構成 |
| アーキテクチャとデータフロー | 検出されたレイヤーまたはドメインと、データフローの方向 |
| 規約とパターン | 命名規則、エクスポートの契約、インポート規則、新しいエンティティを最初から最後まで追加する方法 |
| 環境変数 | ソースファイルと .env.example で検出された変数 |
| セットアップコマンド | package.json、Makefile などから取得した正確なインストールおよび実行コマンド |
| 開発ワークフロー | ビルド、ウォッチ、開発サーバーのコマンド |
| テスト手順 | テストコマンドとフレームワークの情報(検出された場合) |
| コードスタイル | lint/フォーマットコマンド(設定ファイルが検出された場合) |
| ビルドとデプロイ | CI パイプラインの情報(検出された場合) |
データが検出されなかったセクションは完全に省略されます。
インクリメンタルスキャンの仕組み
- 初回実行(コールドスタート) — Git で追跡されているすべてのソースファイルを tree-sitter で解析し、キャッシュします
- 以降の実行 — 前回のスキャン以降に SHA-256 ハッシュが変わったファイルのみを再解析します
- セマンティック差分 — 変更されたファイルについて、変更された公開シンボルのみをペイロードに含めます
- ソースに変更がない場合 — ツールは停止し、既存の
AGENTS.mdの内容も改善するかどうかを尋ねます - プライベートシンボルとテストファイルの内部は、キャッシュとペイロードの両方から除外されます —
AGENTS.mdでは公開 API の表面のみが重要です
大容量ペイロードのストリーミング方法
大規模なコードベースでは、分析ペイロードが大きすぎて MCP 経由でインライン返却できない場合があります。サーバーは read_payload_chunk を通じて、この処理を透過的に行います。
スキャンは別プロセスで実行され、ステージの進行状況通知と 5 分間のタイムアウトが設定されています。キャンセルすると、スキャンワーカーが停止します。1 つのサーバーインスタンスでは、プロジェクトごとに同時に実行できるスキャンは 1 つだけです。制限時間を超えるリポジトリは、.agents-config.json を使って対象を絞り込んでください。
生成時には常に最新のスナップショットが組み立てられ、変更されていないソースファイルのシンボルはキャッシュから再利用されます。ペイロードが消費された後や別のスキャンが実行された後でも、中断された生成を再試行できます。AGENTS.md の書き込みは引き続きクライアント側で行います。
シリアライズされたペイロードの上限は 300,000 文字です。除外された分析セクションは metadata.degradations および metadata.truncated_sections に記録されます。既存の AGENTS.md の内容と書き込み指示は保持されます。これらだけで上限を超える場合、ドキュメントを切り詰める代わりにツールがエラーを返します。
generate_agents_md のフロー
generate_agents_mdがパイプラインを内部で実行し、ペイロード(AGENTS.mdの書き込みルールを含む)をディスクに書き込み、読み取り手順とともにtotal_chunksを返します- クライアントは
read_payload_chunk(project_path, chunk_index=0)を呼び出し、has_moreが false になるまでchunk_indexを増やしていきます - クライアントはすべての
dataフィールドを連結します。ペイロードには、AGENTS.mdの書き込みに必要なルールと分析データが含まれています - 最後のチャンクが読み取られると、ペイロードファイルは自動的に削除されます
scan_codebase のフロー(純粋なコンテキストで、AGENTS.md の作成義務はありません)
scan_codebaseが分析を実行し、純粋なデータペイロードをディスクに書き込みますread_payload_chunkを使って同様にチャンク単位で読み取ります- クライアントはペイロードを任意の目的に使用できます。たとえば、コードレビュー、計画、質疑応答などです
このフローは純粋な MCP であり、クライアント側でファイルシステムにアクセスする必要はありません。MCP 互換のクライアントならどれでも、このフローに従うことができます。
キャッシュとペイロードの保存場所
すべての実行時アーティファクトは、プロジェクトの外部にあるユーザーキャッシュディレクトリに保存されます。
~/.cache/agents-md-generator/<project-hash>/cache.json ← incremental scan cache
<project-hash> はプロジェクトの絶対パスを SHA-256 でハッシュ化したもので、プロジェクトごとに一意です。リポジトリには何も書き込まれません。
注: 分析中、サーバーはこのディレクトリにも一時的な
payload.jsonを書き込みますが、これはread_payload_chunkツールによって完全に管理され、最後のチャンクが読み取られると自動的に削除されます。直接アクセスする必要はありません。
プロジェクト設定
動作をカスタマイズするには、プロジェクトのルートに .agents-config.json を作成します。このファイルは任意です。すべてのフィールドにはデフォルト値が設定されており、チームで設定を共有するためにコミットすることもできます。
デフォルト設定の全項目
{
"project_size": "medium",
"exclude": [
"**/node_modules/**",
"**/bin/**",
"**/obj/**",
"**/.git/**",
"**/dist/**",
"**/build/**",
"**/__pycache__/**",
"**/*.min.js",
"**/*.min.css",
"**/*.bundle.js",
"**/vendor/**",
"**/packages/**",
"**/.venv/**",
"**/venv/**",
"**/bower_components/**",
"**/app/lib/**",
"**/wwwroot/lib/**",
"**/wwwroot/libs/**",
"**/static/vendor/**",
"**/public/vendor/**",
"**/assets/vendor/**",
"**/site-packages/**"
],
"include": [],
"languages": "auto",
"agents_md_path": "./AGENTS.md",
"max_file_size_bytes": 1048576
}
オプション
| キー | デフォルト | 説明 |
|---|---|---|
project_size | "medium" | プロジェクトの規模。すべての内部上限としきい値を調整します(プロジェクトサイズプロファイルを参照) |
exclude | (上記を参照) | 分析対象から除外する Glob パターン |
include | [] | 空でない場合、これらのパターンに一致するファイルのみを分析します |
languages | "auto" | "auto" を指定するとサポートされているすべての言語を検出します。または ["typescript", "python"] のようにリストを渡します |
agents_md_path | "./AGENTS.md" | 生成ファイルの出力先パス |
max_file_size_bytes | 1048576 | このサイズを超えるファイルはスキップされます(デフォルト:1 MB) |
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
AGENTS_MD_LOG_LEVEL | INFO | サーバーログの詳細度です。ファイルごとの分析の詳細を確認するには DEBUG に設定します。有効な値:DEBUG、INFO、WARNING、ERROR |
プロジェクト規模プロファイル
project_size 設定では、ペイロードの圧縮の度合いを調整します。1 つの設定ですべての内部上限(クラスあたりのメソッド数、ファイルあたりのシンボル数、ディレクトリの集約、ルートの上限、ツリーの深さ、影響範囲のフィルタリング)を調整できます。
| プロファイル | 行数(目安) | 影響範囲フィルター | 説明 |
|---|---|---|---|
"small" | 0–15k | medium | 上限に余裕があり、ほぼすべてが含まれます。全体を把握することが重要な小規模プロジェクトに最適です。 |
"medium" (default) | 15k–50k | medium | ほとんどのプロジェクトに適したバランスの取れた上限です。 |
"large" | 50k+ | high | 積極的に圧縮します。差分には構造的な変更や破壊的変更のみを含め、ディレクトリをより多く集約し、シンボル数の上限を厳しくします。 |
プロファイルの詳細設定値
| 定数 | Small | Medium | Large |
|---|---|---|---|
| クラスあたりのメソッド数 | 30 | 12 | 8 |
| ファイルあたりのシンボル数 | 40 | 20 | 10 |
| ディレクトリ集約のしきい値 | 20 | 10 | 5 |
| レイヤーあたりのファイル数(上限超過前) | 15 | 8 | 5 |
| 集約サンプル数 | 5 | 4 | 3 |
| ルートコントローラーの上限 | 30 | 15 | 10 |
| コントローラーあたりのルート数 | 15 | 8 | 5 |
| Go ハンドラーの上限 | 15 | 8 | 5 |
| ディレクトリツリーの深さ | 4 | 3 | 2 |
| 影響範囲フィルター | medium | medium | high |
解析で検出される内容
環境変数
サーバーは言語固有のパターンを使用して、すべてのソースファイルから環境変数の参照をスキャンします。
| 言語 | 検出されるパターン |
|---|---|
| JavaScript / TypeScript | process.env.VAR_NAME |
| Python | os.environ['VAR'], os.getenv('VAR') |
| Go | os.Getenv("VAR") |
| Ruby | ENV['VAR'] |
| Rust | env!("VAR"), var("VAR") |
プロジェクトのルートにある .env.example、.env.template、.env.sample ファイルも解析します。
エントリーポイント
index、main、app、server、program、bootstrap、startup という名前のファイル(サポートされる任意の拡張子)は、エントリーポイントとして検出され、推定される役割(例:「HTTP サーバーのブートストラップ」、「Electron のメインプロセス」)が注記されます。
パブリック API の範囲
Tree-sitter は各ソースファイルを解析し、クラス、関数、メソッド、インターフェースなどのパブリックシンボルを抽出します。その際、プライベート/保護されたメンバーと、アンダースコアで始まるシンボルは除外されます。クラスと構造体については、コンストラクター(パラメーターがある場合)とパブリックプロパティも含めることで、依存性注入のパターンとデータ構造を明らかにします。インターフェースのメソッドはパブリックな契約を定義するため、常に含まれます。これらの情報は、レイヤー間の命名規則、DI パターン、エクスポート契約の検出に使用されます。
アーキテクチャの抽出
大規模なコードベースでは、ペイロードの情報密度を高く保つため、ツールはいくつかのヒューリスティックを適用します。
- ボイラープレートの抑制 —
Migrations、bin、obj、Propertiesなどの一般的なディレクトリは自動的に識別され、プロジェクト構造内で折りたたまれます。これにより、ディレクトリ一覧が肥大化するのを防ぎます。 - 情報量の少ないファイルの要約 — ロジックメソッドがなく、主にデータ構造(DTO、エンティティ)を含むファイルは「最小化」されます。すべてのプロパティを列挙する代わりに、「25 個の DTO クラスを含む」といった概要を提示します。
- 意味的なクラスタリング — アグリゲーターは、最小化されたこれらの概要をディレクトリ単位でグループ化します。これにより、利用する AI は、1 行の情報からデータレイヤー全体を理解できます。
- 指示の埋め込み —
generate_agents_md経由で呼び出された場合、記述ルールがペイロードに直接埋め込まれ、AI エージェントはコードアーキテクチャを処理する前に「取り組み方のルール」を読みます。scan_codebaseを直接呼び出した場合は、指示を含まない純粋なデータが返されます。
クレジット
AGENTS.md 形式は、公開されている agents.md 標準に基づいています。
MIT License の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。