README
🚀 Baidu 搜索 MCP 服务器
本项目是一个提供百度搜索功能的模型上下文协议(MCP)服务器,具备内容获取和解析的额外功能,能为大语言模型提供便捷的搜索服务。
🚀 快速开始
本服务器可通过不同方式进行安装和配置,以下为你详细介绍:
- 若要使用,需先完成服务器的安装,安装方式有通过 Smithery 或
uv两种。 - 安装完成后,还需对 Claude Desktop 进行配置,以实现与服务器的连接。
✨ 主要特性
- 网页搜索:通过百度进行高级速率限制和结果格式化。
- 内容获取:检索并解析网页内容,具备智能文本提取功能。
- 速率限制:内置搜索和内容获取的防护机制。
- 错误处理:全面的错误处理和日志记录。
- 大语言模型友好的输出格式:专为大型语言模型设计的结果格式。
📦 安装指南
通过 Smithery 安装
使用 Smithery 自动安装适用于Claude Desktop的Baidu搜索服务器:
npx -y @smithery/cli install @Evilran/baidu-mcp-server --client claude
通过 uv 安装
直接从PyPI使用 uv 安装:
uv pip install baidu-mcp-server
💻 使用示例
配置 Claude Desktop
- 下载 Claude Desktop。
- 创建或编辑你的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
添加以下配置:
{
"mcpServers": {
"baidu-search": {
"command": "uvx",
"args": ["baidu-mcp-server"]
}
}
}
- 重启 Claude Desktop。
开发
本地开发时,可以使用MCP CLI:
# 使用 MCP Inspector 运行
mcp dev server.py
# 为测试安装到本地环境
mcp install server.py
可用工具
搜索工具
async def search(query: str, max_results: int = 10) -> str
在百度上执行网页搜索并返回格式化结果。
参数:
query: 搜索查询字符串max_results: 返回的最大结果数(默认值:10)
返回: 包含标题、链接和片段的格式化字符串。
内容获取工具
async def fetch_content(url: str) -> str
抓取并解析网页内容。
参数:
url: 要抓取内容的网页 URL
返回: 清理后的格式化文本内容。
📚 详细文档
速率限制
- 搜索:每分钟最多30次请求。
- 内容获取:每分钟最多20次请求。
- 自动队列管理和等待时间。
结果处理
- 移除广告和无关内容。
- 清理百度跳转链接。
- 格式化结果以优化大语言模型的使用体验。
- 适当截断长文本。
错误处理
- 全面错误捕捉和报告。
- 详细日志通过MCP上下文记录。
- 在速率限制或超时情况下实现优雅降级。
🔧 技术细节
此服务器提供了百度搜索功能,并具备内容获取和解析的额外能力。通过内置的速率限制和错误处理机制,保障了服务的稳定性和可靠性。同时,其输出格式经过优化,更适合大语言模型使用。
🤝 贡献
欢迎提出问题和拉取请求!以下是一些潜在的改进方向:
- 添加更多搜索参数(地区、语言等)。
- 提升内容解析选项。
- 增加常用内容的缓存层。
- 实现额外的速率限制策略。
📄 许可证
此项目在MIT License下开源。
🙏 致谢
感谢 @Evilran 为本项目做出的贡献。
Scan to contact