文档查找器MCP
MCP(模型上下文协议)服务器,使用SerpAPI在网络上搜索包文档,并以干净、可读的格式返回内容。
特性
- 🔍 搜索文档:搜索有关任何软件包或库的文档
- 📄 获取内容:提取并清理文档页面内容
- 🚀 组合搜索和提取:搜索和检索热门结果的一步式工具
- 📝 Markdown输出:以干净的markdown格式返回内容
- 🎯 智能内容提取:自动识别主要内容区域
特性
工具(可执行操作)
工具是执行操作的功能——搜索网络和获取文档内容。
提示(可重用模板)
提示是预构建的模板,指导LLM如何有效地将文档查找器用于常见任务。这些为学习、故障排除和比较软件包提供了结构化的工作流程。
可用工具
1. search_documentation
使用谷歌搜索搜索有关软件包的文档。
参数:
package_name(必填):包/库的名称search_query(可选):其他搜索词(例如“安装”、“API参考”)num_results(可选):要返回的结果数(默认值:5,最大值:10)
例子:
search_documentation("fastapi", "authentication tutorial", 5)2. fetch_documentation_content
从特定文档URL获取和提取内容。
参数:
url(必填):文档页面的URLmax_length(可选):以字符为单位的最大内容长度
例子:
fetch_documentation_content("https://fastapi.tiangolo.com/tutorial/", 50000)3. search_and_fetch_documentation
搜索并自动获取顶部结果的便利工具。
参数:
package_name(必填):包/库的名称search_query(可选):其他搜索词max_content_length(可选):最大内容长度(默认值:50000)
例子:
search_and_fetch_documentation("react", "hooks tutorial")可用提示
get_documentation
一个灵活的提示模板,用于获取任何包的文档。
参数:
package_name(必填):包/库的名称query(可选):关于包的特定主题、功能或问题
示例:
# General documentation
get_documentation("fastapi")
# Specific topic
get_documentation("fastapi", "authentication")
# Specific function
get_documentation("pandas", "DataFrame.merge")
# Troubleshooting
get_documentation("requests", "SSL certificate errors")设置
1.安装依赖项
uv sync或者使用pip:
pip install -e .2.获取SerpAPI密钥
- 注册一个免费帐户 https://serpapi.com/
- 从仪表板获取API密钥
- 将其设置为环境变量:
export SERPAPI_KEY="your_api_key_here"或者创建一个 .env 文件:
SERPAPI_KEY=your_api_key_here
# Optional: Custom User-Agent
USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.363.运行服务器
python main.py或者使用紫外线:
uv run main.py使用MCP客户端
服务器运行后,您可以将其与任何兼容MCP的客户端(如Claude Desktop)一起使用。
Claude桌面配置示例
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
选项1:基于命令(自动启动服务器)
{
"mcpServers": {
"documentation-finder": {
"command": "uv",
"args": [
"--directory",
"/Users/krypton/PycharmProjects/Documentation-Finder-MCP",
"run",
"main.py"
],
"env": {
"SERPAPI_KEY": "your_api_key_here"
}
}
}
}选项2:直接HTTP连接
首先,手动启动服务器:
uv run main.py然后配置Claude Desktop以连接到正在运行的服务器:
{
"mcpServers": {
"documentation-finder": {
"url": "http://localhost:8000/sse"
}
}
}示例用法
连接到MCP客户端后,您可以:
直接使用工具
- “搜索React钩子文档”
- “查找最新的FastAPI身份验证文档”
- “从以下位置获取文档https://docs.python.org/3/library/asyncio.html"
使用提示
- 使用
get_documentation提示了解任何软件包 - 添加特定查询以关注特定主题、功能或问题
- 提示引导AI有效地使用文档工具
运作原理
- 搜索:使用SerpAPI(谷歌搜索)查找相关文档页面
- 获取:从文档URL下载HTML内容
- 提取:使用BeautifulSoup识别和提取主要内容区域
- 清洁:删除导航、页脚和其他非内容元素
- 转换:使用html2text转换HTML以清除标记
- 返回:提供格式化、可读的文档内容
备注
- SerpAPI免费套餐包括每月100次搜索
- 服务器智能地从文档页面中提取主要内容
- 内容以markdown格式返回,以提高可读性
- 自动超时处理(每个请求30秒)
- 用户代理欺骗,以确保与大多数网站的兼容性
许可证
麻省理工学院
