ReActMCP Web Search

ReActMCP Web Search

一个 MCP 服务器,它使用 Exa API 将实时网页搜索功能集成到 AI 助手中,提供带有格式化 Markdown 结果的基础和高级搜索功能。

远程shell执行
高级AI推理
媒体内容处理
AI记忆系统
数据库交互
AI内容生成
AI集成系统
数据与应用分析
访问服务器

README

ReActMCP Web Search

ReActMCP Web Search 是一个 MCP (模型上下文协议) 服务器,它将网络搜索功能集成到您的 AI 助手框架中。它利用 Exa API 执行基本和高级网络搜索,返回实时的、Markdown 格式的结果,包括标题、URL、发布日期和内容摘要。

此存储库是更广泛的 ReActMCP 项目的一部分,该项目连接各种 MCP 工具和服务器,以使您的 AI 助手具备广泛的功能。


目录


功能

  • 基本网络搜索: 使用 Exa API 执行简单的搜索。
  • 高级网络搜索: 使用额外的过滤选项,例如域名限制、文本包含要求和日期过滤器。
  • Markdown 输出: 以 Markdown 格式化搜索结果,以便轻松地整合标题、URL 和摘要。
  • MCP 集成: 轻松将此工具添加到您的 MCP 服务器生态系统中,以实现多工具 AI 辅助。

要求

  • Python 3.8+
  • python-dotenv
  • exa_py (Exa API 客户端)
  • 您的 MCP 框架可能需要的其他依赖项

安装

  1. 克隆存储库

    git clone https://github.com/mshojaei77/ReActMCP.git
    cd ReActMCP
    
  2. 创建虚拟环境 (可选但推荐)

    python -m venv venv
    source venv/bin/activate  # 在 Windows 上使用: venv\Scripts\activate
    
  3. 安装依赖项

    pip install -r requirements.txt
    

配置

环境变量

在项目根目录中创建一个 .env 文件,其中至少包含以下变量:

EXA_API_KEY=your_exa_api_key_here
OPENAI_API_KEY=...

Exa API 需要此密钥才能执行网络搜索。

MCP 配置

MCP 配置文件 mcp_config.json 定义了 MCP 服务器的设置和可用工具。 提供了一个示例配置:

{
  "websearch": {
    "script": "web_search.py",
    "encoding_error_handler": "ignore",
    "description": "使用 Exa API 的网络搜索功能,提供实时的互联网搜索结果。 支持基本和高级搜索,并具有过滤选项,包括域名限制、文本包含要求和日期过滤。 返回格式化的结果,包括标题、URL、发布日期和内容摘要。",
    "required_env_vars": ["EXA_API_KEY"],
    "active": true
  },
  "settings": {
    "model": "gpt-4o",
    "system_prompt_path": "system_prompt.txt"
  }
}

您可以通过修改默认结果数量或添加新的 MCP 工具等参数来个性化或扩展此配置。

系统提示

system_prompt.txt 文件配置 AI 助手的行为和语气。 它指导响应友好、引人入胜且信息丰富,并包含表情符号。 提供了一个示例提示:

你是一个乐于助人、知识渊博的 AI 助手,具有网络搜索功能。 你的目标是向用户提供准确、全面和最新的信息。
使用大量表情符号,让你的回复有趣且引人入胜。

## 可用的搜索工具

- `search_web`: 基本网络搜索,根据查询返回结果
- `advanced_search_web`: 高级搜索,具有域名、所需文本和日期范围的过滤选项

## 回答问题的指南

1. 对于自你的训练数据以来可能已更改的当前信息或事实,请使用适当的搜索工具来查找最新和最相关的信息。

2. 对于一般查询,请使用 `search_web`,对于更具体的需求,请使用带有适当过滤器的 `advanced_search_web`。

3. 制定精确的搜索查询,以最大限度地提高结果相关性。

4. 对于最近的信息,请在高级搜索中使用 `max_age_days` 参数将结果限制为最近的出版物。

5. 在定位特定来源时,请使用 `include_domains` 参数来集中搜索。

6. 通过包含搜索结果中的 URL 来引用来源。

7. 对于不足或矛盾的结果,请承认局限性并解释发现。

8. 将复杂的主题分解为有组织的章节。

9. 提供对有争议话题的平衡观点。

10. 对不确定性保持透明,而不是编造信息。

11. 保持乐于助人、信息丰富和对话式的语气。

## 响应质量标准

你的响应应该结构良好、事实准确,并根据用户对该主题的理解程度进行定制。 在回复时间敏感或事实查询之前,请使用网络搜索功能作为访问当前信息的主要工具。

随意调整系统提示以使其与您期望的助手行为保持一致。


用法

运行 Web Search 服务器

MCP 服务器在 servers 目录中实现。 要运行服务器,只需执行它:

python servers/web_search.py

此命令将启动 MCP 服务器,该服务器侦听请求并公开以下工具:

  • search_web: 执行基本网络搜索。
  • advanced_search_web: 执行具有过滤选项的高级网络搜索。

测试工具

web_search.py 中,提供了一个测试函数 test_search()(当前已注释掉),用于演示搜索功能的基本用法。 您可以通过取消注释测试执行块并使用 Python 的 asyncio 运行器来运行此测试:

if __name__ == "__main__":
    import asyncio
    # 取消注释以下行以执行测试搜索
    # asyncio.run(test_search())
    mcp.run()

这将打印示例查询的搜索结果,并帮助您验证该工具是否按预期运行。


Claude Desktop 配置:

通过将以下内容添加到您的配置中,配置 Claude Desktop 以使用此服务器:

{
  "mcpServers": {
    "websearch": {
         "command": "python",
         "args": ["path/to/servers/exa_web_search.py"]
       }
  }
}

故障排除

  • 缺少 EXA_API_KEY: 确保 .env 文件已使用您有效的 Exa API 密钥正确设置。
  • 依赖项问题: 验证是否已安装所有必需的 Python 包(检查您的 requirements.txt 文件)。 如果需要,重新安装软件包。
  • API 错误: 如果在网络搜索期间遇到错误,请检查您的网络连接并验证 Exa API 状态。

许可证

此项目已获得 MIT 许可证的许可。 有关详细信息,请参见 LICENSE 文件。


贡献

欢迎贡献! 如果您有建议、错误修复或改进,请打开一个问题或提交一个拉取请求。

祝您编码愉快,并享受使用 ReActMCP Web Search 构建您的个性化多工具 AI 助手! 🚀😊

Star 历史

<a href="https://www.star-history.com/#mshojaei77/ReActMCP&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=mshojaei77/ReActMCP&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=mshojaei77/ReActMCP&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=mshojaei77/ReActMCP&type=Date" /> </picture> </a>

推荐服务器

Playwright MCP Server

Playwright MCP Server

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

官方
精选
TypeScript
VeyraX

VeyraX

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

官方
精选
本地
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 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
mult-fetch-mcp-server

mult-fetch-mcp-server

一个多功能的、符合 MCP 规范的网页内容抓取工具,支持多种模式(浏览器/Node)、格式(HTML/JSON/Markdown/文本)和智能代理检测,并提供双语界面(英语/中文)。

精选
本地
AIO-MCP Server

AIO-MCP Server

🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。

精选
本地
Knowledge Graph Memory Server

Knowledge Graph Memory Server

为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。

精选
本地
Hyperbrowser

Hyperbrowser

欢迎来到 Hyperbrowser,人工智能的互联网。Hyperbrowser 是下一代平台,旨在增强人工智能代理的能力,并实现轻松、可扩展的浏览器自动化。它专为人工智能开发者打造,消除了本地基础设施和性能瓶颈带来的麻烦,让您能够:

精选
本地