使用说明

项目简介

ReActMCP Web Search Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于为大型语言模型(LLMs)提供实时的网络搜索功能。它集成了 Exa API,能够执行基础和高级的网络搜索,并以 Markdown 格式返回结构化的搜索结果,包括标题、URL、发布日期和内容摘要。此服务器旨在作为更广泛的 ReActMCP 项目的一部分,与其他 MCP 工具和服务协同工作,增强 AI 助手的多功能性。

主要功能点

  • 基础网络搜索: 支持使用 Exa API 执行简单的关键词网络搜索。
  • 高级网络搜索: 允许用户使用更丰富的搜索参数,如指定域名、包含特定关键词、以及按日期范围过滤搜索结果,以更精确地获取信息。
  • Markdown 格式化输出: 搜索结果以 Markdown 格式返回,方便 LLM 客户端解析和展示,包含标题、URL、发布日期和摘要等信息,易于集成到对话或文档中。
  • MCP 协议集成: 遵循 MCP 协议标准,易于集成到任何支持 MCP 协议的 LLM 客户端或 AI 助手框架中,作为工具扩展其能力。

安装步骤

  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
  4. 配置环境变量 在项目根目录下创建 '.env' 文件,并添加 Exa API 密钥。您可能还需要配置 OpenAI API 密钥,尽管当前仓库的 'web_search.py' 代码中未使用,但在 'main.py' 中被客户端使用,因此建议配置。
    EXA_API_KEY=your_exa_api_key_here
    OPENAI_API_KEY=your_openai_api_key_here # 客户端可能需要
    请替换 'your_exa_api_key_here' 为您在 Exa API 平台申请的有效 API 密钥。

服务器配置

MCP 客户端需要配置以下信息以启动和连接 ReActMCP Web Search Server。配置通常在客户端的 MCP 配置文件中进行 (例如仓库中的 'mcp_config.json')。

{
  "websearch": {  // 服务器名称,客户端通过此名称引用和调用
    "command": "python", // 启动服务器的命令,这里使用 python 解释器
    "args": ["web_search.py"], // 启动命令的参数,指向服务器脚本
    "encoding_error_handler": "ignore",
    "description": "Web search capability using Exa API that provides real-time internet search results. Supports both basic and advanced search with filtering options including domain restrictions, text inclusion requirements, and date filtering. Returns formatted results with titles, URLs, publication dates, and content summaries.", // 服务器功能描述,用于客户端展示
    "required_env_vars": ["EXA_API_KEY"], // 服务器运行所需的环境变量,客户端应确保这些变量已配置
    "active": true //  标记服务器是否启用,客户端可以根据此配置决定是否启动该服务器
  }
}

配置参数说明:

  • 'websearch': 服务器的名称,客户端使用此名称来标识和管理该服务器连接。可以自定义,需要与客户端配置中引用的服务器名称一致。
  • 'command': 启动服务器进程的可执行命令。通常为 Python 解释器 'python' 或 'python3'。
  • 'args': 传递给 'command' 的参数列表,用于指定服务器脚本的路径。这里指向 'web_search.py' 文件,确保路径正确。
  • 'encoding_error_handler': 处理编码错误的策略,'ignore' 表示忽略错误,通常保持默认即可。
  • 'description': 对服务器功能的详细描述,客户端可以展示这些描述信息给用户或在内部使用。
  • 'required_env_vars': 服务器启动和运行所依赖的环境变量列表。客户端在启动服务器前应检查并确保这些环境变量已设置。
  • 'active': 布尔值,指示此服务器配置是否启用。客户端可以读取此配置来决定是否启动对应的 MCP 服务器。

注意: MCP 客户端需要读取此配置信息,并根据 'command' 和 'args' 启动 'web_search.py' 脚本,建立与 MCP 服务器的连接,才能使用其提供的网络搜索工具。

基本使用方法

  1. 启动 MCP 服务器 在 'ReActMCP' 仓库目录下,打开终端并激活虚拟环境(如果已创建),运行以下命令启动 Web Search Server:

    python web_search.py

    服务器成功启动后,将开始监听来自 MCP 客户端的请求。

  2. 从 MCP 客户端调用工具 在支持 MCP 协议的 LLM 客户端中 (例如仓库中提供的 'main.py' 示例客户端),配置好上述服务器连接信息后,即可通过客户端向 'websearch' 服务器发送请求,调用其提供的 'search_web' 和 'advanced_search_web' 工具进行网络搜索。

    例如,在 'main.py' 客户端代码中,已经展示了如何配置并启动 'websearch' 服务器,并使用 'create_react_agent' 创建 LangGraph ReAct agent,该 agent 可以利用 'client.get_tools()' 获取到的工具,从而调用 'websearch' 服务器提供的网络搜索功能。

    用户可以通过自然语言指令,指示 LLM 客户端使用网络搜索工具来获取信息。客户端会将指令转换为对 MCP 服务器工具的调用,服务器执行搜索并将结果返回给客户端,最终呈现给用户。

信息

分类

网页与API