使用说明

项目简介

Metasearch MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型(LLM)客户端提供便捷的元搜索功能。它集成了 Tavily API 和 SearXNG API,能够执行网络搜索和图片搜索,并将结果以结构化的形式返回给客户端,从而增强 LLM 在信息检索方面的能力。

主要功能点

  • 资源 (Resources) 管理: 服务器预定义了可用的搜索资源,客户端可以查询并了解可用的搜索能力,例如预设的 “日本首相是谁” 的网络搜索资源和 “东京天际线” 的图片搜索资源。
  • 工具 (Tools) 注册与执行: 提供了 'search' 和 'image_search' 两个工具,分别用于执行基于文本的网络搜索和基于关键词的图片搜索。工具支持参数配置,例如搜索深度和图片数量限制。
  • 标准 MCP 协议: 遵循 MCP 协议标准,通过 JSON-RPC 与客户端通信,易于集成到任何支持 MCP 协议的 LLM 应用中。
  • 灵活部署: 支持本地命令执行、Docker Compose 部署等多种方式,方便用户在不同环境下运行和使用。

安装步骤

  1. 下载仓库代码:

    git clone https://github.com/YeonwooSung/metasearch-mcp.git
    cd metasearch-mcp
  2. 配置 Tavily API 密钥 (用于 'search' 工具):

    • 访问 Tavily 官网 注册并获取 API 密钥。
    • 在项目根目录下创建 '.env' 文件,并添加以下内容,将 'YOUR_TAVILY_API_KEY' 替换为您的实际密钥:
      TAVILY_API_KEY=YOUR_TAVILY_API_KEY
    • 或者,您也可以在运行服务器时通过环境变量 'TAVILY_API_KEY' 设置。
  3. (可选) 配置 SearXNG URL (用于 'image_search' 工具):

    • 如果您有自部署的 SearXNG 服务,可以通过设置环境变量 'SEARXNG_URL' 来指定 SearXNG 服务的地址。默认情况下,服务器会尝试连接到 'http://searxng:8080',这通常用于 Docker Compose 部署场景。如果您不需要图片搜索功能,或者使用默认 SearXNG 配置,可以跳过此步骤。
    • 如果您需要修改 SearXNG URL,可以在 '.env' 文件中添加或修改 'SEARXNG_URL' 变量,例如:
    SEARXNG_URL=http://your_searxng_instance:8080
    • 或者,您也可以在运行服务器时通过环境变量 'SEARXNG_URL' 设置。
  4. 安装 Python 依赖: 建议使用 'uv' 或 'pip' 安装项目依赖。

    # 使用 uv (推荐,如果已安装 uv)
    uv pip install -r requirements.txt
    
    # 或者使用 pip
    pip install -r requirements.txt
  5. 运行 MCP 服务器: 使用 'uv' 或 'python' 命令运行 'src/server.py' 文件。

    # 使用 uv (推荐)
    uv run src/server.py
    
    # 或者使用 python
    python -m src.server

    服务器成功启动后,将监听标准输入输出 (stdio),等待 MCP 客户端连接。

服务器配置 (MCP 客户端配置)

要将此 MCP 服务器集成到支持 MCP 协议的客户端(例如 Claude Desktop, Cursor 等),您需要配置客户端以连接到此服务器。以下是针对不同客户端的配置示例。

针对 Claude Desktop 的配置 (编辑 'claude_desktop_config.json' 文件):

  1. 找到配置文件: 根据您的操作系统,找到 Claude Desktop 的配置文件 'claude_desktop_config.json':

    • macOS: '~/Library/Application\ Support/Claude/claude_desktop_config.json'
    • Windows: 'C:\Users[username]\AppData\Roaming\Claude\claude_desktop_config.json'
  2. 编辑配置文件: 在 'mcpServers' 字段下添加一个新的服务器配置项,例如 'metasearch-server'。配置项需要包含 'command' 和 'args' 字段,以及 'env' 字段用于传递环境变量。

    "mcpServers": {
      "metasearch-server": {  // 服务器名称,客户端内唯一标识
        "command": "uv",      // 启动服务器的命令,这里假设您使用 uv 运行
        "args": [             // 命令参数列表
          "--directory",      // 指定工作目录
          "/path/to/metasearch-mcp", //  替换为您的 metasearch-mcp 仓库的绝对路径
          "run",              // uv 的 run 命令
          "src/server.py"     // 服务器启动脚本路径
        ],
        "env": {               // 环境变量
          "TAVILY_API_KEY": "YOUR_TAVILY_API_KEY", //  您的 Tavily API 密钥,**请替换为您的实际密钥**
          "PYTHONIOENCODING": "utf-8" //  设置 Python 编码为 utf-8,避免编码问题
        }
      }
    }

    注意:

    • 请将 '/path/to/metasearch-mcp' 替换为您实际的 'metasearch-mcp' 仓库的绝对路径。
    • 请将 'YOUR_TAVILY_API_KEY' 替换为您从 Tavily 官网获取的 API 密钥。
    • 'command' 和 'args' 的配置需要确保客户端能够正确执行服务器启动脚本。
    • 'server name' ('metasearch-server') 是您在 Claude Desktop 中引用该服务器的名称,可以自定义。
  3. 重启 Claude Desktop: 保存配置文件后,重启 Claude Desktop 使配置生效。

针对 Cursor 的配置 (在 Cursor 设置中添加 MCP Server):

  1. 打开 Cursor 设置: 在 Cursor 中打开设置界面。

  2. 添加 MCP Server: 在设置中找到 MCP Server 相关的配置项(通常在 "Extensions" 或 "Agents" 类别下),点击 "Add Server" 或类似按钮。

  3. 填写服务器配置信息: 根据 Cursor 的 MCP Server 配置界面,填写以下信息:

    • Name: 'metasearch-server' (或您自定义的服务器名称)
    • Type: 'command'
    • Command: '/path/to/your/script.sh' (或者直接使用 'uv run src/server.py',但建议使用脚本封装环境变量)
    • Script 内容示例 ('/path/to/your/script.sh'):
      #!/bin/bash
      TARGET_DIR=/path/to/metasearch-mcp  # 替换为您的仓库路径
      cd "${TARGET_DIR}"
      export TAVILY_API_KEY="YOUR_TAVILY_API_KEY" # 替换为您的 Tavily API 密钥
      export PYTHONIOENCODING=utf-8
      uv run src/server.py
    • 注意: 请确保脚本文件具有执行权限 ('chmod +x /path/to/your/script.sh'),并将脚本路径配置到 Cursor 的 "Command" 字段中。
  4. 保存配置: 保存 Cursor 的 MCP Server 配置。

Docker Compose 部署 (本地环境):

如果您无法使用 Claude Desktop 等客户端,或者需要在本地环境中测试 MCP 服务器和客户端,可以使用 Docker Compose 快速部署。

  1. 安装 Docker 和 Docker Compose: 确保您的系统已安装 Docker 和 Docker Compose。
  2. 运行 Docker Compose: 在项目根目录下执行以下命令启动 Docker Compose:
    docker compose up -d
    这将会启动 MCP 服务器和一个简单的客户端容器。服务器容器会运行 'src/server.py',客户端容器会运行 'src/client.py' 并与服务器通信。
  3. 查看客户端输出: 使用以下命令查看客户端容器的日志输出,以查看工具列表和工具调用结果:
    docker logs mcp_client
    或者进入客户端容器执行命令:
    docker exec -it mcp_client /bin/bash
    uv --directory /usr/src/app/mcp-server-tavily/src run client.py

基本使用方法

配置完成后,在支持 MCP 协议的客户端中,您可以指示 LLM 使用 'search' 或 'image_search' 工具来进行搜索。

例如,在 Claude Desktop 或 Cursor 中,您可以这样提问:

  • "请搜索一下镰仓今天有什么活动" (使用 'search' 工具进行网络搜索)
  • "搜索东京塔的图片" (使用 'image_search' 工具进行图片搜索)

客户端会将这些请求转换为 MCP 协议的工具调用,发送给 Metasearch MCP Server。服务器会执行相应的搜索操作,并将结果返回给客户端,最终由 LLM 呈现给用户。

注意: 具体的使用方式和提示词可能因不同的 MCP 客户端而略有差异,请参考您使用的客户端的文档。

信息

分类

网页与API