项目简介

Search MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器应用,旨在为大型语言模型(LLM)客户端提供强大的上下文信息和功能扩展。该服务器专注于提供网页搜索和相似内容查找能力,特别为 Claude Desktop 等 MCP 客户端设计,能够显著增强 LLM 在信息检索和处理方面的能力。

主要功能点

  • 网页搜索 (Web Search): 允许 LLM 客户端通过工具调用执行网页搜索,并抓取搜索结果页面内容,为 LLM 提供最新的网络信息。
  • 相似内容查找 (Similarity Search): 支持从之前的搜索结果中提取相关信息,通过相似性搜索帮助 LLM 快速回顾和利用历史搜索数据。

安装步骤

  1. 克隆仓库

    git clone https://github.com/DeepSpringAI/search_mcp_server
    cd search_mcp_server
  2. 创建并激活虚拟环境

    uv venv
    .venv\Scripts\activate  # Windows
    source .venv/bin/activate  # macOS/Linux
  3. 安装依赖

    uv pip install -e .
  4. 配置环境变量

    创建 '.env' 文件,并根据需要配置以下环境变量:

    EMBEDDING_URL=http://sample-url.com/api/embed  # 嵌入服务URL
    OLLAMA_URL=http://sample-url.com/  # Ollama 服务器URL
    EMBEDDING_MODEL=sample-model  # 嵌入模型名称
    SEARCHAPI_API_KEY=your_searchapi_api_key # searchapi.io API 密钥
    FIRECRAWL_API_KEY=your_firecrawl_api_key # firecrawl.com API 密钥

    注意: 'AZURE_OPENAI_ENDPOINT' 和 'AZURE_OPENAI_API_KEY' 环境变量虽然在仓库中有提及,但服务器核心功能似乎未使用 Azure OpenAI,主要使用了 Ollama 和 Embedding 服务。请根据实际使用情况配置。

服务器配置

对于 MCP 客户端(例如 Claude Desktop),您需要配置 MCP 服务器的启动命令。以下是一个典型的 'claude_desktop_config.json' 配置文件示例,展示了如何配置 Search MCP Server:

{
  "mcpServers": {
    "search-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/search_mcp_server/src/parquet_mcp_server",  //  请替换为您的 search_mcp_server 仓库中 src/parquet_mcp_server 目录的绝对路径
        "run",
        "main.py"
      ]
    }
  }
}

配置参数说明:

  • 'server name': 'search-mcp-server' (服务器名称,客户端用以识别和调用)
  • 'command': 'uv' (启动命令,这里使用 uv 运行器)
  • 'args': 启动参数列表,包括:
    • '--directory': '/path/to/search_mcp_server/src/parquet_mcp_server' (指定服务器代码所在的目录,请务必替换为实际路径)
    • 'run': 运行命令
    • 'main.py': 服务器主程序文件名

请务必根据您的实际环境修改 '/path/to/search_mcp_server/src/parquet_mcp_server' 为服务器代码所在的真实路径。

基本使用方法

配置完成后,MCP 客户端即可通过 JSON-RPC 协议与 Search MCP Server 通信,并调用其提供的工具。

可用工具:

  1. search-web: 执行网页搜索并抓取结果。

    • 必需参数:
      • 'queries': 搜索查询列表 (字符串数组)
    • 可选参数:
      • 'page_number': 搜索结果页码 (整数,默认为 1)
  2. extract-info-from-search: 从之前的搜索结果中提取相关信息。

    • 必需参数:
      • 'queries': 用于合并的搜索查询列表 (字符串数组)

示例 Prompt:

  • 网页搜索: '请使用 search-web 工具搜索 "macbook" 和 "笔记本电脑",并抓取第 1 页的结果。'
  • 提取信息: '请使用 extract-info-from-search 工具,从之前关于 "macbook" 的搜索中提取相关信息。'

更多使用细节和测试方法,请参考仓库 'README.md' 文件和 'src/tests' 目录下的测试代码。

信息

分类

网页与API