AGENTS.md Generator

io.github.nushey由 GitHub 账号 nushey 发布v0.6.1更新于 Oct 24, 2026

Analyzes codebases with tree-sitter and generates AGENTS.md files for AI coding agents.

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

使用 tree-sitter 分析本地代码库,为 AI 编程代理生成 AGENTS.md 上下文文件。

可以做什么
提供三个工具:generate_agents_md 运行分析流程并返回分块的写入指令以生成 AGENTS.md;scan_codebase 返回纯数据的架构上下文,不生成文件;read_payload_chunk 分块流式读取该负载。它用 tree-sitter 解析 Git 跟踪的源文件,提取公开符号、入口点、环境变量引用、安装与测试命令以及约定。增量扫描只重新解析 SHA-256 哈希发生变化的文件。
适用场景
适合希望 AI 编程客户端在不读取每个文件的情况下了解项目架构、约定和命令的场景,也适合生成或更新 AGENTS.md 文件。scan_codebase 工具还可用于需要代码库上下文的代码审查、规划和问答任务。
运行要求
本地进程;需安装 Python 3.11+ 和 Git。可通过 pip 安装 agents-md-generator,或用 uvx 直接运行。需要兼容 MCP 的客户端,例如 Claude Code、Gemini CLI、Cursor、Windsurf 或 Codex CLI。未声明认证、API 密钥或请求头。可选环境变量 AGENTS_MD_LOG_LEVEL 控制日志详细程度。
安装前请注意
该服务器会读取你指定项目目录中的源文件,包括 .env.example、.env.template 和 .env.sample 文件,检测到的环境变量名称会出现在生成的负载中。运行时产物写入仓库之外的用户缓存目录,AGENTS.md 由客户端而非服务器写入。扫描在独立进程中运行,超时时间为五分钟,且同一项目同时只能运行一个扫描。

安装

在 SourceWeft 中

  1. 打开 控制台中的 AGENTS.md Generator,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

agents-md-generator

MCP server that analyzes codebases with tree-sitter and generates AGENTS.md files.

[PyPI] [Python] [License: MIT] [MCP]

Python · C# · TypeScript · JavaScript · Go

Installation · Usage · Configuration · How It Works · Contributing


Compatible with any MCP-capable client: Claude Code, Gemini CLI, Cursor, Windsurf, Codex CLI, and others.

The server exposes three tools with a clear separation of concerns:

  • generate_agents_md — main entry point. Runs the analysis pipeline internally, embeds writing rules into the payload, and returns chunked read instructions to your client.
  • scan_codebase — standalone context tool for when you want deep codebase understanding without generating any file.
  • read_payload_chunk — streams the payload back in chunks regardless of which tool produced it.

No large data travels over the MCP wire.

Table of Contents


Installation

Requirements: Python 3.11+, Git, and any MCP-compatible client.

See INSTALLATION.md for the full guide including prerequisites and troubleshooting.

Option A — pip install + setup wizard (recommended)

bash
pip install agents-md-generatoragents-md-generator setup

The setup wizard detects your installed clients, asks whether to configure globally or per-project, and patches the config files automatically. Supports Claude Code, Gemini CLI, Cursor, Windsurf, and Codex CLI.

Option B — uvx (no install needed)

If you have uv installed, uvx runs the package without a prior install step. Add the entry manually to your client's MCP config:

json
{  "mcpServers": {    "agents-md": {      "command": "uvx",      "args": ["agents-md-generator"]    }  }}

For Claude Code specifically:

bash
claude mcp add agents-md -- uvx agents-md-generator

claude mcp add defaults to --scope local (current project only). Add -s user to register it for all projects.


Usage

Once registered, ask your AI client:

"Generate the AGENTS.md for this project"

The client will call generate_agents_md automatically. To scan a different directory:

"Generate the AGENTS.md for the project at /path/to/project"

Tools

ToolPurpose
generate_agents_mdMain entry point. Runs the pipeline internally, embeds writing rules into the payload, and returns chunked read instructions. Use this to create or update AGENTS.md.
scan_codebaseStandalone context tool. Analyzes the codebase and returns a pure data payload with no AGENTS.md mandate. Use this when you need architectural context for any other task.
read_payload_chunkStreams the payload written by either tool in chunks until has_more is false.

Tool Parameters

generate_agents_md
ParameterTypeDefaultDescription
project_pathstring"."Path to the project root
scan_codebase
ParameterTypeDefaultDescription
project_pathstring"."Path to the project root
force_full_scanbooleanfalseIgnore cache and rescan everything when explicitly set to true.
read_payload_chunk
ParameterTypeDefaultDescription
project_pathstring"."Must match the path used in the preceding tool call
chunk_indexinteger—Zero-based chunk index. Increment until has_more is false

What Gets Generated

The generated AGENTS.md follows the agents.md open standard. It is written as a README for AI agents, not as documentation for humans. Sections include:

SectionContents
Project OverviewTech stack and top-level architecture shape
Architecture & Data FlowDetected layers or domains with data flow direction
Conventions & PatternsNaming rules, export contracts, import rules, how to add new entities end-to-end
Environment VariablesVariables detected in source files and .env.example
Setup CommandsExact install and run commands from package.json, Makefile, etc.
Development WorkflowBuild, watch, and dev server commands
Testing InstructionsTest commands and framework info (if detected)
Code StyleLint/format commands (if config files detected)
Build and DeploymentCI pipeline info (if detected)

Sections with no detected data are omitted entirely.


How Incremental Scanning Works

  1. First run (cold start) — all git-tracked source files are parsed with tree-sitter and cached
  2. Subsequent runs — only files whose SHA-256 hash changed since the last scan are re-parsed
  3. Semantic diff — for modified files, only changed public symbols are included in the payload
  4. No source changes? — the tool stops and asks whether you want to improve the existing AGENTS.md content anyway
  5. Private symbols and test file internals are excluded from both cache and payload — only the public API surface matters for AGENTS.md

How Large Payloads Are Streamed

For large codebases the analysis payload can be too big to return inline over the MCP wire. The server handles this transparently through read_payload_chunk.

Scans run in a separate process with stage progress notifications and a five-minute timeout. Cancellation stops the scan worker. Only one scan per project can run at a time in a server instance; use .agents-config.json to narrow repositories that exceed the time limit.

Generation always assembles a current snapshot, reusing cached symbols for unchanged source files. An interrupted generation can be retried even after its payload was consumed or another scan ran. The client remains responsible for writing AGENTS.md.

Serialized payloads are capped at 300,000 characters. Dropped analysis sections are recorded in metadata.degradations and metadata.truncated_sections. Existing AGENTS.md content and writing instructions are preserved; if these alone exceed the budget, the tool returns an error instead of truncating the document.

generate_agents_md flow
  1. generate_agents_md runs the pipeline internally, writes the payload to disk (including AGENTS.md writing rules), and returns total_chunks with read instructions
  2. The client calls read_payload_chunk(project_path, chunk_index=0), then increments chunk_index until has_more is false
  3. The client concatenates all data fields — the payload contains the rules and analysis data needed to write AGENTS.md
  4. The payload file is automatically deleted after the last chunk is read
scan_codebase flow (pure context, no AGENTS.md mandate)
  1. scan_codebase runs the analysis and writes a pure data payload to disk
  2. Same chunked read via read_payload_chunk
  3. The client uses the payload for any purpose — code review, planning, Q&A

This flow is pure MCP — no filesystem access required from the client side. Any MCP-compatible client can follow it.

Cache and Payload Location

All runtime artifacts are stored outside your project, in the user cache directory:

~/.cache/agents-md-generator/<project-hash>/cache.json  ← incremental scan cache

The <project-hash> is a SHA-256 of the project's absolute path — unique per project. Nothing is written to your repository.

Note: The server also writes a temporary payload.json to this directory during analysis, but it is managed entirely by the read_payload_chunk tool and deleted automatically after the last chunk is read. You never need to access it directly.


Project Configuration

Create .agents-config.json at your project root to customize behavior. This file is optional — all fields have defaults, and you can commit it to share settings with your team.

Full default configuration
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}

Options

KeyDefaultDescription
project_size"medium"Project scale — tunes all internal caps and thresholds (see Project Size Profiles)
exclude(see above)Glob patterns to exclude from analysis
include[]If non-empty, only analyze files matching these patterns
languages"auto""auto" detects all supported languages, or pass a list like ["typescript", "python"]
agents_md_path"./AGENTS.md"Output path for the generated file
max_file_size_bytes1048576Files larger than this are skipped (default: 1 MB)

Environment Variables

VariableDefaultDescription
AGENTS_MD_LOG_LEVELINFOServer log verbosity. Set to DEBUG to see per-file analysis details. Valid values: DEBUG, INFO, WARNING, ERROR

Project Size Profiles

The project_size setting controls how aggressively the payload is compressed. A single knob tunes all internal caps — methods per class, symbols per file, directory aggregation, route caps, tree depth, and impact filtering.

ProfileLines (guidance)Impact filterDescription
"small"0–15kmediumGenerous caps — nearly everything is included. Best for small projects where full visibility matters.
"medium" (default)15k–50kmediumBalanced caps suitable for most projects.
"large"50k+highAggressive compression — only structural/breaking changes in diffs, more directory collapsing, tighter symbol caps.
Detailed profile values
ConstantSmallMediumLarge
Methods per class30128
Symbols per file402010
Dir aggregation threshold20105
Files per layer (before overflow)1585
Aggregation sample size543
Route controllers cap301510
Routes per controller1585
Go handlers cap1585
Directory tree depth432
Impact filtermediummediumhigh

What the Analysis Detects

Environment Variables

The server scans all source files for environment variable references using language-specific patterns:

LanguagePattern detected
JavaScript / TypeScriptprocess.env.VAR_NAME
Pythonos.environ['VAR'], os.getenv('VAR')
Goos.Getenv("VAR")
RubyENV['VAR']
Rustenv!("VAR"), var("VAR")

It also parses .env.example, .env.template, and .env.sample files at the project root.

Entry Points

Files named index, main, app, server, program, bootstrap, or startup (with any supported extension) are detected as entry points and annotated with their inferred role (e.g., "HTTP server bootstrap", "Electron main process").

Public API Surface

Tree-sitter parses each source file and extracts public symbols — classes, functions, methods, interfaces — filtering out private/protected members and underscore-prefixed symbols. For classes and structs, constructors (when they have parameters) and public properties are also included, revealing dependency injection patterns and data shapes. Interface methods are always included as they define the public contract. These are used to detect naming conventions, DI patterns, and export contracts across layers.

Architectural Distillation

For large codebases, the tool applies several heuristics to ensure the payload remains high-signal:

  • Boilerplate Suppression — common directories like Migrations, bin, obj, and Properties are automatically flagged and collapsed in the project structure, preventing them from bloating the directory listing.
  • Low-Entropy Summarization — files that primarily contain data structures (DTOs, Entities) with no logic methods are "minified". Instead of listing every property, the tool provides a high-level summary (e.g., "Contains 25 DTO classes").
  • Semantic Clustering — the aggregator groups these minified summaries at the directory level, allowing the consuming AI to understand entire data layers through a single line of signal.
  • Instruction Embedding — when called via generate_agents_md, writing rules are embedded directly in the payload so the AI agent reads the "Rules of Engagement" before processing the code architecture. Direct scan_codebase calls return pure data with no mandate.

Credits

AGENTS.md format based on the open agents.md standard.

Back to top

Licensed under the MIT License

来源:README.md,提交 156c70c

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.6.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分