使用说明
回购文件MCP(Bun)
通用的 MCP stdio服务器 这暴露了a 本地存储库签出 (文档+代码)到任何MCP主机。
专为“一个代码库,多个实例”工作流而设计:
- 您多次运行同一服务器二进制文件,
- 每个实例通过env指向不同的仓库,
- 每个实例都有自己的工具前缀+URI方案。
它提供了什么
工具(名称有前缀)
给定 MCP_TOOL_PREFIX=telegraph,工具包括:
telegraph_read_repo_file--从repo签出读取任何文本文件telegraph_list_docs--将文档页面列为slug -> docs/...(slug是从文档文件路径推断出来的)telegraph_get_doc--阅读slug的文档页面telegraph_search_docs--在文档目录中搜索telegraph_search_code--在通用代码目录中搜索telegraph_refresh_index--重建文档索引telegraph_git_fetch—git fetch --prune --tags用于仓库(可选助手)telegraph_info--打印服务器设置(路径、前缀等)
资源(名称以URI方案作为前缀)
给定 MCP_URI_SCHEME=telegraph,资源包括:
telegraph://readmetelegraph://contributingtelegraph://doc/{slug}
提示
{prefix}_doc_writer--“编写关于此仓库的指南/答案”的入门工作流。
安装
bun install
bun run build
运行(stdio)
MCP_REPO_ROOT=/ABS/PATH/to/repo \
MCP_TOOL_PREFIX=myrepo \
MCP_URI_SCHEME=myrepo \
bun run start
在stdio模式下,日志将转到 标准错误 有目的(stdout是为MCP JSON-RPC保留的)。
环境变量
必修的:
MCP_REPO_ROOT--本地仓库结账的绝对路径
可选:
MCP_TOOL_PREFIX--工具名称前缀(默认值:repo)MCP_URI_SCHEME--资源URI方案(默认:从工具前缀派生)MCP_REPO_LABEL--提示中使用的文本标签(默认值:repo根的basename)MCP_DOCS_DIR--相对于repo根目录的docs目录(默认:docs)MCP_DOCS_DISCOVERY_DEPTH--如果> 0和MCP_DOCS_DIR是一个普通文件夹名称,自动发现此深度以下的匹配文档目录(默认值:3)MCP_DOCS_EXTS--逗号分隔的文档扩展名(默认:.md,.mdx)MCP_CODE_DIRS--逗号分隔的dirs用于搜索代码(默认值:src,config,routes,database,resources,tests)MCP_CODE_EXTS--逗号分隔的代码搜索扩展名(默认:.php,.md,.json,.yml,.yaml,.xml,.ts,.js)
限制:
MCP_MAX_FILE_BYTES(默认值:512KB)MCP_DEFAULT_MAX_CHARS(默认值:50k个字符)
Git助手:
MCP_GIT_AUTO_FETCH=1--奔跑git fetch --prune --tags服务器启动时一次(默认:关闭)MCP_GIT_FETCH_TIMEOUT_MS--fetch命令超时(默认值:30000)
兼容性:
- 如果
MCP_REPO_ROOT如果未设置,服务器将回退到MCP_TELEGRAPH_ROOT(旧名称)。
Codex配置(两个实例;一个代码库)
将此添加到 ~/.codex/config.toml:
[mcp_servers.telegraph_docs]
command = "/ABS/PATH/TO/bun"
cwd = "/ABS/PATH/TO/mcp"
args = ["run", "build/index.js"]
[mcp_servers.telegraph_docs.env]
MCP_REPO_ROOT = "/ABS/PATH/TO/telegraph"
MCP_TOOL_PREFIX = "telegraph"
MCP_URI_SCHEME = "telegraph"
MCP_REPO_LABEL = "defstudio/telegraph"
[mcp_servers.laravel_data_docs]
command = "/ABS/PATH/TO/bun"
cwd = "/ABS/PATH/TO/mcp"
args = ["run", "build/index.js"]
[mcp_servers.laravel_data_docs.env]
MCP_REPO_ROOT = "/ABS/PATH/TO/laravel-data"
MCP_TOOL_PREFIX = "laravel_data"
MCP_URI_SCHEME = "laravel-data"
MCP_REPO_LABEL = "spatie/laravel-data"
Claude桌面配置(两个实例)
看 claude_desktop_config.example.json.
备注
- 文档slug是从文件路径推断出来的(排序前缀如
01.,01-,01_被剥离)。 - 如果文档文件是
index.md在文件夹中,slug是文件夹名称(例如。guide/index.md→guide). - 随着
MCP_DOCS_DISCOVERY_DEPTH > 0,嵌套文档,如packages/*/docs也会被索引,它们的slug会得到一个前缀(例如。packages/actions/...).
