Docy:AI指尖的文档
通过即时访问技术文档来增强您的AI助手的能力。
Docy让您的AI在需要时直接访问所需的技术文档。不再有过时的信息、断开的链接或速率限制,只需准确、实时地访问文档,以获得更精确的编码帮助。
为什么选择Docy?
- 即时文档访问:直接访问React、Python、crawl4ai和您使用的任何其他技术栈中的文档
- 热重载支持:无需重新启动即可动态添加新的文档源-只需编辑.docy.urls文件!
- 智能高速缓存:减少延迟和外部请求,同时保持内容新鲜
- 自托管控制:将文档访问权限限制在安全范围内
- 无缝MCP集成:轻松使用Claude、VS Code和其他启用MCP的AI工具
备注:Claude可能默认使用其内置的WebFetchTool而不是Docy。要明确请求Docy的功能,请使用类似以下的标注:“请使用Docy查找…”
Docy MCP服务器
提供文档访问功能的模型上下文协议服务器。此服务器使LLM能够通过crawl4ai抓取文档网站来搜索和检索其中的内容。使用FastMCP v2构建。
使用Docy
以下是Docy如何帮助完成常见文档任务的示例:
# Verify implementation against documentation
Are we implementing Crawl4Ai scrape results correctly? Let's check the documentation.
# Explore API usage patterns
What do the docs say about using mcp.tool? Show me examples from the documentation.
# Compare implementation options
How should we structure our data according to the React documentation? What are the best practices?借助Docy,Claude Code可以直接访问和分析来自配置源的文档,从而更有效地提供基于文档的准确指导。
为确保Claude Code在文档相关任务中优先考虑Docy,请在项目的 CLAUDE.md 文件:
## Documentation Guidelines
- When checking documentation, prefer using Docy over WebFetchTool
- Use list_documentation_sources_tool to discover available documentation sources
- Use fetch_documentation_page to retrieve full documentation pages
- Use fetch_document_links to discover related documentation将这些说明添加到您的 CLAUDE.md 该文件有助于Claude Code在处理文档时始终如一地使用Docy,而不是其内置的web获取功能。
可用工具
list_documentation_sources_tool-列出所有可用的文档来源
- 无需参数
fetch_documentation_page-通过URL作为markdown获取文档页面的内容
- url (string,必填):从中获取内容的URL
fetch_document_links-从文档页面获取所有链接
- url (string,必填):从中获取链接的URL
提示
- 文档_来源
- 列出所有可用的文档源及其URL和类型 - 无需任何论据
- 文档_页
- 以markdown的形式从特定URL获取文档页面的完整内容 - 论据: - url (string,必填):要获取的特定文档页面的URL
- 文档链接
- 从文档页面获取所有链接以发现相关内容 - 论据: - url (字符串,必填):从中获取链接的文档页面的URL
安装
使用紫外线(推荐)
使用时 uv 不需要特定的安装。我们将 使用 uvx 直接运行 *mcp服务器docy*.
使用PIP
或者,您可以安装 mcp-server-docy 通过pip:
pip install mcp-server-docy安装后,您可以使用以下命令将其作为脚本运行:
DOCY_DOCUMENTATION_URLS="https://docs.crawl4ai.com/,https://react.dev/" python -m mcp_server_docy使用Docker
你也可以使用Docker镜像:
docker pull oborchers/mcp-server-docy:latest
docker run -i --rm -e DOCY_DOCUMENTATION_URLS="https://docs.crawl4ai.com/,https://react.dev/" oborchers/mcp-server-docy全局服务器设置
对于团队或多项目开发,请查看 server/README.md 有关运行可在多个项目之间共享的持久性SSE服务器的说明。此设置允许您维护具有共享文档URL和缓存的单个Docy实例。
配置
为Claude.app进行配置
添加到您的Claude设置中:
Using uvx
"mcpServers": {
"docy": {
"command": "uvx",
"args": ["mcp-server-docy"],
"env": {
"DOCY_DOCUMENTATION_URLS": "https://docs.crawl4ai.com/,https://react.dev/"
}
}
}Using docker
"mcpServers": {
"docy": {
"command": "docker",
"args": ["run", "-i", "--rm", "oborchers/mcp-server-docy:latest"],
"env": {
"DOCY_DOCUMENTATION_URLS": "https://docs.crawl4ai.com/,https://react.dev/"
}
}
}Using pip installation
"mcpServers": {
"docy": {
"command": "python",
"args": ["-m", "mcp_server_docy"],
"env": {
"DOCY_DOCUMENTATION_URLS": "https://docs.crawl4ai.com/,https://react.dev/"
}
}
}配置VS代码
对于手动安装,请将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以按 Ctrl + Shift + P 和打字 Preferences: Open User Settings (JSON).
您可以选择将其添加到名为的文件中 .vscode/mcp.json 在您的工作空间中。这将允许您与他人共享配置。
请注意mcp使用时需要密钥mcp.json文件。
Using uvx
{
"mcp": {
"servers": {
"docy": {
"command": "uvx",
"args": ["mcp-server-docy"],
"env": {
"DOCY_DOCUMENTATION_URLS": "https://docs.crawl4ai.com/,https://react.dev/"
}
}
}
}
}Using Docker
{
"mcp": {
"servers": {
"docy": {
"command": "docker",
"args": ["run", "-i", "--rm", "oborchers/mcp-server-docy:latest"],
"env": {
"DOCY_DOCUMENTATION_URLS": "https://docs.crawl4ai.com/,https://react.dev/"
}
}
}
}
}配置选项
可以使用环境变量配置应用程序:
DOCY_DOCUMENTATION_URLS(string):以逗号分隔的文档网站URL列表(例如,“https://docs.crawl4ai.com/,https://react.dev/")DOCY_DOCUMENTATION_URLS_FILE(string):包含文档URL的文件的路径,每行一个(默认值:“.docy.URLs”)DOCY_CACHE_TTL(整数):缓存生存时间(秒)(默认值:432000)DOCY_CACHE_DIRECTORY(string):缓存目录的路径(默认:“.docy.cache”)DOCY_USER_AGENT(string):HTTP请求的自定义用户代理字符串DOCY_DEBUG(布尔值):启用调试日志记录(“true”、“1”、“yes”或“y”)DOCY_SKIP_CRAWL4AI_SETUP(boolean):在启动时跳过crawl4ai设置命令(“true”、“1”、“yes”或“y”)DOCY_TRANSPORT(string):要使用的传输协议(选项:“sse”或“stdio”,默认值:“stdio“)DOCY_HOST(string):绑定服务器的主机地址(默认值:“127.0.0.1”)DOCY_PORT(整数):运行服务器的端口(默认值:8000)
环境变量可以直接设置或通过 .env 文件。
URL配置文件
作为设置的替代方案 DOCY_DOCUMENTATION_URLS 环境变量,您可以创建 .docy.urls 项目目录中的文件,每行一个URL:
https://docs.crawl4ai.com/
https://react.dev/
# Lines starting with # are treated as comments
https://docs.python.org/3/这种方法尤其适用于:
- 您希望与团队共享文档源的项目
- 在版本控制中存储URL是有益的存储库
- 要避免环境变量值过长的情况
服务器将首先检查 DOCY_DOCUMENTATION_URLS 环境变量,如果没有找到,它将查找 .docy.urls 文件。
URL文件的热重新加载
使用时 .docy.urls 对于文档源文件,服务器实现了一种热重载机制,在每次请求时读取文件,而不是缓存URL。这意味着您可以:
- 在中添加、删除或修改文档URL
.docy.urls服务器运行时的文件 - 请查看后续致电中立即反映的这些变化
list_documentation_sources_tool或其他文档工具 - 修改文档源时避免重新启动服务器
这在开发期间或需要快速向正在运行的服务器添加新文档源时特别有用。
文档URL最佳实践
您配置的URL最好指向文档索引或介绍页面,其中包含:
- 目录
- 导航结构
- 内部和外部链接集
这使得LLM能够:
- 从高级文档页面开始
- 通过链接发现相关子页面
- 根据需要导航到特定文档
强烈建议使用结构良好的子页面的文档网站,因为它:
- 通过允许LLM专注于相关部分,最大限度地减少上下文使用
- 通过文档提高导航效率
- 提供了一种自然的方式来探索和查找信息
- 减少了一次加载整个文档集的需要
例如,LLM可以从索引页面开始,识别相关部分,然后根据需要导航到特定的子页面,而不是加载整个文档网站。
缓存行为
MCP服务器自动缓存文档内容以提高性能:
- 启动时,服务器从以下位置预取并缓存所有配置的文档URL
DOCY_DOCUMENTATION_URLS - 缓存生存时间(TTL)可以通过配置
DOCY_CACHE_TTL环境变量 - 每个访问的新站点都会自动加载到缓存中,以减少流量并缩短响应时间
- 缓存的内容使用
diskcache图书馆 - 缓存位置可以通过以下方式配置
DOCY_CACHE_DIRECTORY环境变量(默认值:“.docy.cache”) - 缓存在服务器重启之间持续存在,为频繁访问的文档提供了更好的性能
缓存的例外情况
虽然大多数内容都是为了性能而缓存的,但也有特定的例外:
- 文档URL列表:使用时
.docy.urls文件,文档源列表从不缓存,而是在每次请求时重新读取文件,以支持URL的热重新加载 - 页面内容:文档页面的实际内容仍然根据配置的TTL进行缓存
这种混合方法既为内容访问提供了性能优势,也为文档源管理提供了灵活性。
地方发展
- 在开发模式下运行:
fastmcp dev src/mcp_server_docy/__main__.py --with-editable . - 访问API:
http://127.0.0.1:6274 - 与MCP检查员一起运行:
uv run --with fastmcp --with-editable /Users/oliverborchers/Desktop/Code.nosync/mcp-server-docy --with crawl4ai --with loguru --with diskcache --with pydantic-settings fastmcp run src/mcp_server_docy/__main__.py
调试
您可以使用MCP检查器调试服务器。对于uvx安装:
DOCY_DOCUMENTATION_URLS="https://docs.crawl4ai.com/" npx @modelcontextprotocol/inspector uvx mcp-server-docy或者,如果您已将软件包安装在特定目录中或正在其上开发:
cd path/to/docy
DOCY_DOCUMENTATION_URLS="https://docs.crawl4ai.com/" npx @modelcontextprotocol/inspector uv run mcp-server-docy故障排除:Claude Code CLI中出现“找不到工具”错误
如果在Claude Code CLI中遇到“找不到mcp_docy\_\_fetch_documentation_page的ERROR Tool”等错误,请按照以下步骤操作:
- 创建一个
.docy.urls使用文档URL在当前目录中创建文件:
https://docs.crawl4ai.com/
https://react.dev/- 使用Docker和SSE传输协议运行服务器,并挂载URL文件:
docker run -i --rm -p 8000:8000 \
-e DOCY_TRANSPORT=sse \
-e DOCY_HOST=0.0.0.0 \
-e DOCY_PORT=8000 \
-v "$(pwd)/.docy.urls:/app/.docy.urls" \
oborchers/mcp-server-docy- 配置您的Claude代码
.mcp.json要使用SSE端点,请执行以下操作:
{
"mcp": {
"servers": {
"docy": {
"type": "sse",
"url": "http://localhost:8000/sse"
}
}
}
}此配置:
- 使用已安装
.docy.urls文档源的文件而不是环境变量 - 从默认stdio模式切换到SSE(服务器发送事件)协议
- 使服务器可以从容器外部访问
- 暴露端口8000上的服务器以进行HTTP访问
当服务器作为需要通过HTTP访问的独立服务运行时,建议使用SSE传输,这对Docker部署特别有用。
发布过程
该项目使用GitHub Actions进行自动发布:
- 更新中的版本
pyproject.toml - 使用创建新标签
git tag vX.Y.Z(例如。,git tag v0.1.0) - 按下标签
git push --tags
这将自动:
- 验证中的版本
pyproject.toml匹配标签 - 运行测试和棉绒检查
- 构建并发布到PyPI
- 构建并发布到Docker Hub
oborchers/mcp-server-docy:latest和oborchers/mcp-server-docy:X.Y.Z
贡献
我们鼓励捐款以帮助扩展和改进mcp服务器文档。无论您是想添加新功能、增强现有功能还是改进文档,您的意见都是有价值的。
有关其他MCP服务器和实现模式的示例,请参阅: https://github.com/modelcontextprotocol/servers
欢迎拉取请求!请随时贡献新想法、错误修复或增强功能,使mcp服务器docy更加强大和有用。
许可证
mcp服务器docy根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。
