使用说明
项目简介
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 部署等多种方式,方便用户在不同环境下运行和使用。
安装步骤
-
下载仓库代码:
git clone https://github.com/YeonwooSung/metasearch-mcp.git cd metasearch-mcp -
配置 Tavily API 密钥 (用于 'search' 工具):
- 访问 Tavily 官网 注册并获取 API 密钥。
- 在项目根目录下创建 '.env' 文件,并添加以下内容,将 'YOUR_TAVILY_API_KEY' 替换为您的实际密钥:
TAVILY_API_KEY=YOUR_TAVILY_API_KEY - 或者,您也可以在运行服务器时通过环境变量 'TAVILY_API_KEY' 设置。
-
(可选) 配置 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' 设置。
-
安装 Python 依赖: 建议使用 'uv' 或 'pip' 安装项目依赖。
# 使用 uv (推荐,如果已安装 uv) uv pip install -r requirements.txt # 或者使用 pip pip install -r requirements.txt -
运行 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' 文件):
-
找到配置文件: 根据您的操作系统,找到 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'
-
编辑配置文件: 在 '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 中引用该服务器的名称,可以自定义。
-
重启 Claude Desktop: 保存配置文件后,重启 Claude Desktop 使配置生效。
针对 Cursor 的配置 (在 Cursor 设置中添加 MCP Server):
-
打开 Cursor 设置: 在 Cursor 中打开设置界面。
-
添加 MCP Server: 在设置中找到 MCP Server 相关的配置项(通常在 "Extensions" 或 "Agents" 类别下),点击 "Add Server" 或类似按钮。
-
填写服务器配置信息: 根据 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" 字段中。
-
保存配置: 保存 Cursor 的 MCP Server 配置。
Docker Compose 部署 (本地环境):
如果您无法使用 Claude Desktop 等客户端,或者需要在本地环境中测试 MCP 服务器和客户端,可以使用 Docker Compose 快速部署。
- 安装 Docker 和 Docker Compose: 确保您的系统已安装 Docker 和 Docker Compose。
- 运行 Docker Compose: 在项目根目录下执行以下命令启动 Docker Compose:
这将会启动 MCP 服务器和一个简单的客户端容器。服务器容器会运行 'src/server.py',客户端容器会运行 'src/client.py' 并与服务器通信。docker compose up -d - 查看客户端输出: 使用以下命令查看客户端容器的日志输出,以查看工具列表和工具调用结果:
或者进入客户端容器执行命令:docker logs mcp_clientdocker 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