使用说明
项目简介
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 简化了部署流程。
安装步骤
-
克隆仓库
git clone https://github.com/allenday/solr-mcp.git cd solr-mcp -
启动 SolrCloud (需要 Docker 和 docker-compose 环境)
docker-compose up -d -
安装依赖
python -m venv venv source venv/bin/activate # 或 venv\Scripts\activate (Windows) pip install poetry poetry install -
索引示例数据 (可选,用于快速体验搜索功能)
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 -
运行 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' 参数。
基本使用方法
- 启动 Solr MCP Server 后,MCP 客户端可以通过 Stdio 协议与之建立连接。
- 客户端可以发送 JSON-RPC 请求调用服务器提供的 Tool,例如:
- 调用 'solr_search' Tool 进行关键词搜索。
- 调用 'solr_vector_search' Tool 进行向量搜索。
- 调用 'solr_hybrid_search' Tool 进行混合搜索。
- 调用 'solr_embed_and_index' Tool 索引文档。
- 请求参数和返回结果遵循 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 响应。
信息
分类
数据库与文件