使用说明

项目简介

Solr MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,它允许大型语言模型(LLM)客户端通过标准化的 MCP 协议与 Apache Solr 搜索引擎进行交互。该服务器集成了 Solr 的强大搜索功能,包括关键词搜索、向量相似度搜索以及混合搜索,旨在为 LLM 应用提供丰富的上下文信息检索能力。

主要功能点

  • MCP 服务器: 实现了 Model Context Protocol 协议,可以作为 LLM 客户端的后端服务。
  • 关键词搜索: 支持标准的 Solr 关键词查询,能够根据关键词检索文档。
  • 向量搜索: 集成了向量搜索功能,利用文档的向量嵌入实现语义搜索。
  • 混合搜索: 结合关键词搜索和向量搜索的优势,提供更精准和全面的搜索结果。
  • 文档索引: 支持将文档内容和向量嵌入索引到 Solr,方便后续的搜索。
  • 工具集成: 以 MCP Tool 的形式暴露 Solr 的各项功能,易于 LLM 客户端调用。
  • 易于部署: 通过 Docker 和 docker-compose 简化了部署流程。

安装步骤

  1. 克隆仓库

    git clone https://github.com/allenday/solr-mcp.git
    cd solr-mcp
  2. 启动 SolrCloud (需要 Docker 和 docker-compose 环境)

    docker-compose up -d
  3. 安装依赖

    python -m venv venv
    source venv/bin/activate  # 或 venv\Scripts\activate (Windows)
    pip install poetry
    poetry install
  4. 索引示例数据 (可选,用于快速体验搜索功能)

    python scripts/process_markdown.py data/bitcoin-whitepaper.md --output data/processed/bitcoin_sections.json
    python scripts/create_unified_collection.py unified
    python scripts/unified_index.py data/processed/bitcoin_sections.json --collection unified
  5. 运行 MCP 服务器

    poetry run python -m solr_mcp.server

服务器配置

MCP 客户端需要配置以下信息以连接到 Solr MCP Server:

{
  "server name": "solr-mcp",
  "command": "poetry",
  "args": ["run", "python", "-m", "solr_mcp.server"]
  // command: 启动服务器的命令,这里使用 poetry 运行 Python 脚本
  // args:    命令参数,指定运行 'solr_mcp.server' 模块
}

注意:

  • 确保在 'solr-mcp' 仓库根目录下启动 MCP 客户端,以便 'poetry run' 命令能够正确执行。
  • 如果需要指定配置文件或开启 debug 模式,可以修改 'args' 数组,例如添加 '--config <config_path>' 或 '--debug' 参数。

基本使用方法

  1. 启动 Solr MCP Server 后,MCP 客户端可以通过 Stdio 协议与之建立连接。
  2. 客户端可以发送 JSON-RPC 请求调用服务器提供的 Tool,例如:
    • 调用 'solr_search' Tool 进行关键词搜索。
    • 调用 'solr_vector_search' Tool 进行向量搜索。
    • 调用 'solr_hybrid_search' Tool 进行混合搜索。
    • 调用 'solr_embed_and_index' Tool 索引文档。
  3. 请求参数和返回结果遵循 MCP 协议规范,具体 Tool 的参数定义可以参考仓库中 'solr_mcp/tools/' 目录下的文件。

例如,客户端可以发送以下 JSON-RPC 请求调用 'solr_search' 工具进行关键词搜索:

{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "execute_tool",
  "params": {
    "name": "solr_search",
    "arguments": {
      "query": "bitcoin",
      "collection": "unified",
      "rows": 5
    }
  }
}

服务器会返回包含搜索结果的 JSON-RPC 响应。

信息

分类

数据库与文件