DocsHub MCP服务器
MCP服务器,通过以下方式为AI客户端提供对开发人员文档的访问 llms.txt 文件夹。显示工具、资源和提示。
先决条件
你必须有 紫外线 安装在您的机器上。 *(macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh)*
配置
DocsHub从以下位置加载其项目列表 docs_config.yaml 文件。源按以下顺序尝试:
DOCSHUB_CONFIG环境变量 --设置为本地文件路径 *或* 遥控器https://指向原始YAML文件的URL(例如,托管在GitHub存储库中的文件)docs_config.yaml在工作目录中~/.config/docshub/docs_config.yaml--用户级配置- 捆绑默认值 --the
docs_config.yaml在DocsHub仓库中(当找不到其他配置时自动用作回退)
YAML格式:
projects:
- name: "FastAPI"
description: "FastAPI official documentation"
llms_txt_url: "https://fastapi.tiangolo.com/llms.txt"使用GitHub存储库中的远程配置:
集 DOCSHUB_CONFIG 到原始文件URL:
DOCSHUB_CONFIG=https://raw.githubusercontent.com/ORG/docshub/main/docs_config.yaml您可以将其作为MCP服务器配置中的环境变量传递给任何AI客户端(请参阅 客户端设置 在......下面
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
DOCSHUB_CONFIG | *(无)* | 本地文件路径或 https:// 配置文件的URL。 |
DOCSHUB_CONFIG_RELOAD_INTERVAL | 900 | 配置重新加载检查之间的秒数。服务器在后台轮询此源,并在项目列表更改时通知客户端。吃起来 0 完全禁用轮询。 |
DOCSHUB_CACHE_TTL | 1800 | 将提取的文档缓存在内存中的秒数。TTL窗口内的后续工具调用会立即提供服务,无需网络往返。吃起来 0 禁用缓存。 |
______________________________________________________________________
客户端设置
MCP服务器配置
克劳德桌面版, VS代码库,以及 GitHub Copilot命令行界面 使用相同的JSON格式。将此块添加到 mcpServers 每个客户端配置文件中的对象(请参阅下面的每个客户端说明):
{
"mcpServers": {
"docshub": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/rkratky/docshub",
"docshub"
]
}
}
}加载遥控器 docs_config.yaml,添加一个 env 按键:
{
"mcpServers": {
"docshub": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/rkratky/docshub",
"docshub"
],
"env": {
"DOCSHUB_CONFIG": "https://raw.githubusercontent.com/ORG/docshub/main/docs_config.yaml"
}
}
}
}______________________________________________________________________
克劳德桌面版
- 打开配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json
- 将上面的配置块添加到
mcpServers对象。 - 完全退出并重新启动Claude Desktop。
______________________________________________________________________
VS代码——Cline扩展
- 打开VS Code并打开 克莱恩 扩展侧边栏。
- 点击 MCP服务器 icon → 配置MCP服务器 打开
cline_mcp_settings.json. - 将上面的配置块添加到
mcpServers对象。 - 保存。Cline会自动重新启动服务器。
______________________________________________________________________
GitHub副本(VS代码)
VS Code中的GitHub Copilot使用VS Code的原生MCP配置,其格式略有不同。
选项A——用户设置 (适用于所有工作区):
- 打开VS Code用户设置:
Ctrl+,→ 打开设置(JSON) (右上角图标)。 - 添加以下内容:
{
"mcp": {
"servers": {
"docshub": {
"type": "stdio",
"command": "uvx",
"args": [
"--from", "git+https://github.com/rkratky/docshub",
"docshub"
]
}
}
}
}选项B——工作区设置 (仅限于一个项目):
创建或编辑 .vscode/mcp.json 在项目根目录中:
{
"servers": {
"docshub": {
"type": "stdio",
"command": "uvx",
"args": [
"--from", "git+https://github.com/rkratky/docshub",
"docshub"
]
}
}
}保存后,打开 GitHub Copilot 聊天助手 --the docshub 工具将自动可用。
______________________________________________________________________
克劳德代码
运行此命令一次以在用户范围内注册服务器:
claude mcp add --scope user docshub -- \
uvx --from git+https://github.com/rkratky/docshub docshub使用遥控器 docs_config.yaml,在运行命令之前设置环境变量或将其添加到shell配置文件中:
export DOCSHUB_CONFIG=https://raw.githubusercontent.com/ORG/docshub/main/docs_config.yaml______________________________________________________________________
GitHub Copilot命令行界面
编辑 ~/.copilot/mcp-config.json (首次运行时由CLI自动创建;您也可以手动创建)并添加 上面的配置块 到 mcpServers 对象。
使用遥控器 docs_config.yaml,添加一个 env 服务器条目的密钥:
{
"mcpServers": {
"docshub": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/rkratky/docshub",
"docshub"
],
"env": {
"DOCSHUB_CONFIG": "https://raw.githubusercontent.com/ORG/docshub/main/docs_config.yaml"
}
}
}
}配置文件位置可以通过设置 COPILOT_HOME 环境变量。
______________________________________________________________________
用法
DocsHub公开了三种类型的MCP原语: 工具 (由AI自动调用), 资源 (按需附上上下文),以及 提示 (预定义的对话发起者)。
工具
当你询问文档时,AI会自动调用这些:
| 工具 | 说明 |
|---|---|
list_available_docs | 列出已配置的项目。总是先打电话来了解有什么可用的。 |
get_project_docs | 获取项目的文档。尝试 llms-full.txt 首先(完整文档);回落到 llms.txt (页面URL索引)如果不可用。 |
read_doc_page | 通过URL获取特定页面。仅在以下情况下需要 get_project_docs 返回a llms.txt 指数。 |
例子: *“查看FastAPI的文档,并告诉我如何编写路由。”*
性能说明: 默认情况下,获取的文档在内存中缓存30分钟(DOCSHUB_CACHE_TTL);设置为0禁用缓存。服务器还每15分钟在后台轮询一次配置源(DOCSHUB_CONFIG_RELOAD_INTERVAL)并在项目列表更改时通知连接的客户端,因此可以在不重新启动服务器的情况下添加或删除文档集;着手0禁用轮询。
资源
资源提供对文档注册表和内容的结构化访问。当您想将AI嵌入特定项目的文档时,请将它们附加到您的对话上下文中。
| URI | 描述 |
|---|---|
docshub://projects | 所有已配置项目的JSON列表,包括名称和描述。 |
docshub://project/{name}/docs | 指定项目的原始文档内容。 |
提示
提示是常见文档任务的预定义对话启动器。如何调用它们取决于你的AI客户端(寻找提示/斜线命令选择器或类似工具):
| 提示 | 参数 | 描述 |
|---|---|---|
query_docs | project_name, question | 使用项目文档回答特定问题。 |
summarize_project | project_name | 对项目文档进行结构化概述。 |
