Heventure Search MCP

Heventure Search MCP

Enables web search without API keys using DuckDuckGo and Bing search engines, and retrieves webpage content. Supports multiple search engines simultaneously with privacy protection and asynchronous processing.

Category
访问服务器

README

MCP Web Search Server

一个无需API key的网页搜索MCP(Model Context Protocol)服务器,支持DuckDuckGo和必应搜索引擎提供网页搜索功能。

功能特性

  • 🔍 多引擎搜索: 支持DuckDuckGo和必应搜索引擎,无需API key
  • 📄 网页内容获取: 获取指定网页的文本内容
  • 🚀 异步处理: 基于asyncio的高性能异步处理
  • 🛡️ 安全可靠: 不需要任何外部API密钥,保护隐私
  • 🌐 多种搜索方式: 支持API和HTML两种搜索方式
  • 灵活选择: 可选择单一搜索引擎或组合使用

安装方式

方式一:通过 PyPI 安装(推荐)

# 从 PyPI 安装
pip install heventure-search-mcp

# 然后运行
heventure-search-mcp

方式二:通过 uvx 安装

# 从 PyPI 运行
uvx heventure-search-mcp

# 或者从 GitHub 运行
uvx --from git+https://github.com/HughesCuit/heventure-search-mcp.git server.py

方式三:通过 pip 从源码安装

# 直接从 GitHub 安装
pip install git+https://github.com/HughesCuit/heventure-search-mcp.git

# 然后运行(三种方式任选其一)
heventure-search-mcp                    # 使用命令行工具
python -m server                        # 直接运行模块
python -c "import server; import asyncio; asyncio.run(server.main())"  # 编程方式

方式四:手动安装依赖

# 克隆仓库
git clone https://github.com/HughesCuit/heventure-search-mcp.git
cd heventure-search-mcp

# 安装依赖
pip install -r requirements.txt

使用方法

直接运行服务器

python server.py

作为MCP服务器使用

在你的MCP客户端配置中添加此服务器:

{
  "mcpServers": {
    "web-search": {
      "command": "python",
      "args": ["/path/to/server.py"]
    }
  }
}

在Trae AI中使用

在Trae AI中添加此MCP服务器,请使用以下配置:

{
  "mcpServers": {
    "heventure-search-mcp": {
      "command": "uvx",
      "args": [
        "heventure-search-mcp"
      ]
    }
  }
}

或者如果你已经本地安装了包:

{
  "mcpServers": {
    "heventure-search-mcp": {
      "command": "python",
      "args": [
        "-m",
        "heventure_search_mcp"
      ]
    }
  }
}

可用工具

1. web_search

搜索网页内容,支持多种搜索引擎

参数:

  • query (string, 必需): 搜索查询词
  • max_results (integer, 可选): 最大结果数量 (默认: 10, 范围: 1-20)
  • search_engine (string, 可选): 搜索引擎选择 (默认: "both")
    • "duckduckgo": 仅使用DuckDuckGo搜索
    • "bing": 仅使用必应搜索
    • "both": 同时使用两个搜索引擎

示例:

{
  "query": "Python编程教程",
  "max_results": 5,
  "search_engine": "both"
}

使用不同搜索引擎:

// 仅使用DuckDuckGo
{
  "query": "机器学习算法",
  "search_engine": "duckduckgo"
}

// 仅使用必应
{
  "query": "人工智能发展",
  "search_engine": "bing"
}

2. get_webpage_content

获取指定网页的文本内容

参数:

  • url (string, 必需): 要获取内容的网页URL

示例:

{
  "url": "https://example.com"
}

技术实现

搜索引擎

本服务支持多个搜索引擎,提供更全面的搜索结果:

DuckDuckGo

  1. 无需API key: 提供免费的搜索API
  2. 隐私保护: 不跟踪用户搜索历史
  3. 即时答案: 支持即时答案和相关主题
  4. 多种接口: 支持API和HTML两种访问方式

必应搜索

  1. 丰富结果: 提供详细的搜索结果和摘要
  2. 高质量: 微软搜索引擎的高质量结果
  3. HTML解析: 通过HTML页面解析获取结果
  4. 补充搜索: 与DuckDuckGo形成良好互补

搜索策略

  1. DuckDuckGo策略: 优先使用API,不足时使用HTML解析
  2. 必应策略: 通过HTML页面解析获取搜索结果
  3. 组合策略: 当选择"both"时,合并两个引擎的结果
  4. 结果优化: 自动去重、排序和格式化结果

内容提取

  • 使用BeautifulSoup解析HTML内容
  • 自动移除脚本和样式标签
  • 清理和格式化文本内容
  • 限制内容长度避免过长响应

项目结构

mcp_dev/
├── server.py          # 主服务器文件
├── requirements.txt   # 项目依赖
├── README.md         # 项目说明
└── config.json       # MCP配置示例

配置说明

用户代理

服务器使用标准的浏览器用户代理字符串来避免被网站阻止:

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'

超时设置

  • 网页内容获取超时: 10秒
  • 搜索请求超时: 默认aiohttp超时

内容限制

  • 网页内容最大长度: 2000字符
  • 最大搜索结果数: 20个

错误处理

服务器包含完善的错误处理机制:

  • 网络请求失败自动重试
  • 解析错误优雅降级
  • 详细的错误日志记录
  • 用户友好的错误消息

注意事项

  1. 网络依赖: 需要稳定的网络连接
  2. 速率限制: 请合理使用,避免过于频繁的请求
  3. 内容准确性: 搜索结果来自第三方,请自行验证内容准确性
  4. 法律合规: 请遵守相关法律法规和网站使用条款

开发和发布

本地开发

# 克隆仓库
git clone https://github.com/HughesCuit/heventure-search-mcp.git
cd heventure-search-mcp

# 安装开发依赖
pip install -e .
pip install build twine

# 运行测试
python test_server.py

# 运行基准测试
python benchmark.py

发布到PyPI

项目包含自动化发布脚本:

# 发布到TestPyPI(测试)
python publish.py test

# 发布到正式PyPI
python publish.py prod

# 仅构建包
python publish.py build

# 清理构建文件
python publish.py clean

发布前准备:

  1. 配置PyPI API Token:

    # 在 ~/.pypirc 中配置
    [pypi]
    username = __token__
    password = your-api-token
    
    [testpypi]
    username = __token__
    password = your-test-api-token
    
  2. 更新版本号(在 pyproject.toml 中)

  3. 更新 CHANGELOG.md(如果有)

  4. 确保所有测试通过

许可证

MIT License

贡献

欢迎提交Issue和Pull Request来改进这个项目!

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选