一个模型上下文协议(MCP)服务器,使AI代理能够通过结构化接口访问和理解包文档。
此MCP服务器有两种不同的使用模式:
阅读文档模式 (read-docs-{name}):当同时提供name和git-repo-path时,服务器作为指定仓库的文档阅读器,生成访问文档的工具。
创建文档模式 (create-read-docs):当没有提供仓库信息时,服务器作为创建文档结构的指南,提供如何设置文档文件的说明。
MCP支持以下命令行参数:
--name:包或库的名称(在阅读文档模式下必需)--git-repo-path:git仓库路径(http或ssh)(在阅读文档模式下必需)
--personal-token:用于git认证的个人访问令牌(可选)
--branch:读取文档的分支
main--docs-path:文档文件夹路径
docs--clone-location:克隆git仓库的路径
--mode:MCP服务器的操作模式
normal(默认),two-step--include-src:包含源代码阅读能力(可选)
true以启用从仓库中读取源文件false此MCP需要直接克隆目标git仓库。您必须确保在使用此工具前拥有对仓库的适当访问权限。对于私有仓库,您有几个认证选项:
--personal-token参数传递您的个人访问令牌。这是最可靠的方法,并且适用于所有主要的Git托管提供商。使用个人访问令牌:
# 使用HTTPS URL
npx -y read-docs-mcp --name=MyDocs --git-repo-path=https://github.com/user/private-repo --personal-token=your_personal_access_token_here
# 使用SSH URL(自动转换为HTTPS)
npx -y read-docs-mcp --name=MyDocs --git-repo-path=git@gitlab.service-hub.tech:frontend/private-repo.git --personal-token=your_personal_access_token_here
MCP支持个人访问令牌用于HTTPS和SSH URL:
HTTPS URL:
SSH URL: 当提供个人令牌时,SSH URL会自动转换为带适当认证的HTTPS:
git@gitlab.service-hub.tech:frontend/repo.githttps://oauth2:token@gitlab.service-hub.tech/frontend/repo.git如果没有适当的认证,MCP将无法克隆私有仓库。
运行MCP服务器时,您可以使用--mode参数指定不同的模式:
npx -y read-docs-mcp --name=MyDocs --git-repo-path=https://github.com/user/repo
# 或显式地:
npx -y read-docs-mcp --name=MyDocs --git-repo-path=https://github.com/user/repo --mode=normal
在正常模式下,服务器为每个模块和操作创建单独的工具(例如,get-hooks-list,get-hooks-details,get-components-list等)。
npx -y read-docs-mcp --name=MyDocs --git-repo-path=https://github.com/user/repo --mode=two-step
在两步模式下,服务器不会为每个模块创建单独的工具,而是创建这五个通用工具:
这种方法显著减少了工具总数,使得MCP服务器更高效且易于管理。
要在Cursor中使用此MCP,请向您的Cursor设置添加以下配置:
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName"
]
}
}
}
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName",
"--include-src=true"
]
}
}
}
{
"mcpServers": {
"create-read-docs": {
"command": "npx",
"args": ["-y", "read-docs-mcp"]
}
}
}
{
"mcpServers": {
"read-docs-{name}": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName"
]
}
}
}
{
"mcpServers": {
"read-docs-{name}": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName",
"--include-src=true"
]
}
}
}
{
"mcpServers": {
"create-read-docs": {
"command": "cmd",
"args": ["/c", "npx", "-y", "read-docs-mcp"]
}
}
}
如果您想指定自定义文档目录:
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName",
"--docs-path=documentation"
]
}
}
}
为了更好地处理大型文档集,使用两步模式:
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName",
"--mode=two-step"
]
}
}
}
使用个人访问令牌访问私有仓库:
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/private-repo",
"--name=YourLibName",
"--personal-token=your_personal_access_token_here"
]
}
}
}
对于使用SSH URL的自托管GitLab实例:
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=git@gitlab.some-host.com:some-group/your-repo.git",
"--name=YourLibName",
"--personal-token=your_gitlab_access_token_here"
]
}
}
}
安全提示:安全地存储您的个人访问令牌。考虑使用环境变量而不是在配置中硬编码令牌。
MCP服务器期望以下结构用于阅读文档模式:
仓库/
├── docs/ (可配置)
│ ├── read-docs-mcp.json
│ ├── hooks/
│ │ ├── read-module-docs-mcp.json
│ │ ├── list.md
│ │ ├── overview.md
│ │ ├── use-state.md
│ │ └── ...
│ ├── components/
│ │ ├── read-module-docs-mcp.json
│ │ └── ...
│ └── ...
└── package.json
{
"name": "SomeLibrary",
"description": "一个用于某种目的的库",
"version": "1.0.1",
"moduleList": ["hooks", "components", "directives", "utils"],
"fileName": "overview.md",
"moduleFolderNamingPattern": "kebab"
}
name,description:用于MCP服务器构建version:如果未提供,则回退到package.json中的版本,或默认为"0.1.0"moduleList:文档模块列表;如果未提供,则使用docs目录下的所有文件夹fileName:用于概述的文件。如果未提供,默认为"overview.md"moduleFolderNamingPattern:模块文件夹的命名模式。可以是"kebab","camel","snake","pascal"或"original"。默认为"kebab"支持以下命名模式用于模块文件夹和详细文件:
kebab-case(默认):单词小写并用连字符分隔
camelCase:第一个单词小写,后续单词大写且无分隔符
snake_case:单词小写并用下划线分隔
PascalCase:每个单词大写且无分隔符
original:使用模块列表中提供的名称,不做任何转换
{
"get-all": {
"name": "get-hook-list",
"description": "获取钩子列表",
"fileName": "list.md"
},
"get-details": {
"name": "get-hook-details",
"description": "获取钩子的详细信息",
"paramDescription": "钩子名称",
"namingPattern": "kebab"
},
"get-overview": {
"name": "get-hook-overview",
"description": "获取钩子模块的概述",
"fileName": "overview.md"
}
}
当您已设置MCP服务器与仓库一起使用时,可以使用它来探索文档:
使用read-docs-{YourLibName} MCP,我想探索{YourLibName}的文档。你能:
1. 获取可用模块的概述
2. 显示可用的钩子列表
3. 提供特定钩子的详细信息
4. 给我组件模块的概述
我对了解这个库中的身份验证工作原理特别感兴趣。
当您使用MCP服务器而没有仓库时,可以请求帮助创建文档:
使用create-read-docs MCP,我需要为我的库创建可用于read-docs-mcp的文档。你能帮我设置所需的结构和文件吗?
使用read-docs-{PackageName} MCP,我想探索[包名称]的文档。你能:
1. 获取可用模块的概述
2. 显示可用的钩子列表
3. 提供useAuth钩子的详细信息
4. 给我组件模块的概述
我对了解这个库中的身份验证工作原理特别感兴趣。
使用read-docs-{PackageName} MCP,我需要用[包名称]库实现一个带有验证的表单。请:
1. 显示可用的组件
2. 获取Form组件的详细信息
3. 获取Input组件的详细信息
4. 解释如何使用这些组件进行表单验证
如果有文档中的代码示例,请高亮显示它们。
使用read-docs-{PackageName} MCP,我在寻找关于库中身份验证的文档。你能:
1. 使用模糊搜索找到所有与“auth”相关的文件
2. 根据搜索结果,获取最相关身份验证文档的详细信息
3. 展示如何使用库实现身份验证
模糊搜索应帮助我们快速定位相关文档文件。
使用read-docs-{PackageName} MCP(配置为--include-src=true),我需要了解useAuth钩子是如何实现的。请:
1. 首先,获取useAuth钩子的文档详细信息
2. 根据文档,阅读useAuth的源代码文件以了解实现
3. 根据文档和源代码解释身份验证流程的工作方式
请记住,首先优先考虑文档,然后仅在需要额外实现细节时才使用源代码。
使用create-read-docs MCP,我需要为我的React组件库设置文档。你能帮我创建文件夹结构和必要的配置文件吗?
使用create-read-docs MCP,我已经开始为我的实用函数创建文档。应该如何为各个实用函数创建详细的文档?
MCP根据文档结构和操作模式动态生成工具。所有工具都以前缀为包名称,以避免在使用多个read-docs-mcp实例时发生冲突。
在正常模式下,对于moduleList中的每个模块,最多可以生成三个工具,加上一个可选的源文件阅读工具:
获取模块中的所有项目列表。
参数:
返回:
list.md)获取模块中特定项目的详细信息。
参数:
name(字符串):要获取详细信息的项目名称返回:
namingPattern命名的详细文件内容(默认为kebab-case)获取模块的概述。
参数:
返回:
overview.md)按关键词智能优先级搜索文件。
参数:
keyword(字符串):在文件名和内容中搜索的关键词返回:
结果格式如下:
类型:模块
名称:someModule
或
类型:详细
名称:someDetail
模块:someModule
在两步模式下,MCP生成五个通用工具,而不是为每个模块生成单独的工具,加上一个可选的源文件阅读工具:
获取项目概述。
参数:
返回:
获取所有可用模块的列表。
参数:
返回:
获取特定模块的概述。
参数:
module(字符串):模块名称返回:
获取特定模块中的项目列表。
参数:
module(字符串):模块名称返回:
获取模块中特定项目的详细信息。
参数:
module(字符串):模块名称name(字符串):要获取详细信息的项目名称返回: