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.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Heventure Search MCPfind recent developments in quantum computing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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来改进这个项目!