Provides web search capabilities using DuckDuckGo's search engine, supporting both API and HTML parsing methods to retrieve search results without requiring an API key.
MCP Web Search Server
一个无需API key的网页搜索MCP(Model Context Protocol)服务器,支持DuckDuckGo和必应搜索引擎提供网页搜索功能。
功能特性
🔍 多引擎搜索: 支持DuckDuckGo和必应搜索引擎,无需API key
📄 网页内容获取: 获取指定网页的文本内容
🚀 异步处理: 基于asyncio的高性能异步处理
🛡️ 安全可靠: 不需要任何外部API密钥,保护隐私
🌐 多种搜索方式: 支持API和HTML两种搜索方式
⚡ 灵活选择: 可选择单一搜索引擎或组合使用
安装方式
方式一:通过 PyPI 安装(推荐)
方式二:通过 uvx 安装
方式三:通过 pip 从源码安装
方式四:手动安装依赖
使用方法
直接运行服务器
作为MCP服务器使用
在你的MCP客户端配置中添加此服务器:
在Trae AI中使用
在Trae AI中添加此MCP服务器,请使用以下配置:
或者如果你已经本地安装了包:
可用工具
1. web_search
搜索网页内容,支持多种搜索引擎
参数:
query(string, 必需): 搜索查询词max_results(integer, 可选): 最大结果数量 (默认: 10, 范围: 1-20)search_engine(string, 可选): 搜索引擎选择 (默认: "both")"duckduckgo": 仅使用DuckDuckGo搜索"bing": 仅使用必应搜索"both": 同时使用两个搜索引擎
示例:
使用不同搜索引擎:
2. get_webpage_content
获取指定网页的文本内容
参数:
url(string, 必需): 要获取内容的网页URL
示例:
技术实现
搜索引擎
本服务支持多个搜索引擎,提供更全面的搜索结果:
DuckDuckGo
无需API key: 提供免费的搜索API
隐私保护: 不跟踪用户搜索历史
即时答案: 支持即时答案和相关主题
多种接口: 支持API和HTML两种访问方式
必应搜索
丰富结果: 提供详细的搜索结果和摘要
高质量: 微软搜索引擎的高质量结果
HTML解析: 通过HTML页面解析获取结果
补充搜索: 与DuckDuckGo形成良好互补
搜索策略
DuckDuckGo策略: 优先使用API,不足时使用HTML解析
必应策略: 通过HTML页面解析获取搜索结果
组合策略: 当选择"both"时,合并两个引擎的结果
结果优化: 自动去重、排序和格式化结果
内容提取
使用BeautifulSoup解析HTML内容
自动移除脚本和样式标签
清理和格式化文本内容
限制内容长度避免过长响应
项目结构
配置说明
用户代理
服务器使用标准的浏览器用户代理字符串来避免被网站阻止:
超时设置
网页内容获取超时: 10秒
搜索请求超时: 默认aiohttp超时
内容限制
网页内容最大长度: 2000字符
最大搜索结果数: 20个
错误处理
服务器包含完善的错误处理机制:
网络请求失败自动重试
解析错误优雅降级
详细的错误日志记录
用户友好的错误消息
注意事项
网络依赖: 需要稳定的网络连接
速率限制: 请合理使用,避免过于频繁的请求
内容准确性: 搜索结果来自第三方,请自行验证内容准确性
法律合规: 请遵守相关法律法规和网站使用条款
开发和发布
本地开发
发布到PyPI
项目包含自动化发布脚本:
发布前准备:
配置PyPI API Token:
# 在 ~/.pypirc 中配置 [pypi] username = __token__ password = your-api-token [testpypi] username = __token__ password = your-test-api-token更新版本号(在
pyproject.toml中)更新
CHANGELOG.md(如果有)确保所有测试通过
许可证
MIT License
贡献
欢迎提交Issue和Pull Request来改进这个项目!