Solr MCP Server

使用说明(简明易懂,便于快速上手):

  • 项目简介
    • 该项目实现了一个基于 MCP 的服务器,能够把 Apache Solr 的查询、索引、模式化元数据等能力以 MCP 工具(Tools)形式暴露给 AI 客户端,并通过资源(Resources)提供可读的数据接口,通过传输通道(如 STDIO、HTTP/WebSocket 等)与客户端通信。
  • 主要功能点
    • MCP 服务器核心能力:注册并暴露工具(例如 search、index_json_documents、index_csv_documents、index_xml_documents 等)、提供资源、支持提示/模板渲染等能力,符合 MCP 的通用后端角色。
    • 与 Solr 的深度集成:提供 Solr Collections/Schema 的查询与统计、健康状态、索引文档、以及基于 Solr 的搜索能力。
    • 传输协议与安全:支持 STDIO 与 HTTP 传输模式(HTTP 模式可选 OAuth2 资源服务器安全,CORS 兼容 MCP Inspector)。
    • 容器化与部署友好:提供 Docker 映像构建、基于 Spring Boot 的应用结构,以及测试覆盖(包含集成测试与容器化集成测试)。
  • 安装步骤
    • 构建与打包:在项目根目录执行构建命令,将生成可运行的 JAR 包。
    • 运行方式(多选其一):
      • STDIO 模式(默认):通过 Docker 直接运行容器、或使用 JAR 包在本地启动,容器内外部 Solr 地址通过 SOLR_URL 进行注入配置。
      • HTTP 模式:同样支持通过 Docker 运行并暴露 HTTP 服务端口(默认 8080),可选传入 PROFILES=http 来启用 HTTP 配置和 OAuth2 安全。
  • 服务器配置(用于 MCP 客户端连接的 JSON 配置描述)
    • 服务器名称(serverName):Solr-MCP
    • 启动命令(command):执行服务器的启动方式,可选为
      • Docker 启动镜像的命令行(例如 Docker 运行命令,包含必要的环境变量,如 SOLR_URL,以及模式选择 PROFILES)。
      • 或直接使用 Java 命令启动打包好的 JAR 文件(java -jar path/to/solr-mcp-版本.jar)。
    • 参数(args):根据所选启动方式不同而不同的参数列表
      • 若使用 Docker STDIO 模式:args 可能包括 ["run","-i","--rm","ghcr.io/apache/solr-mcp:latest"],并通过环境变量配置 SOLR_URL 指向 Solr 地址。
      • 若使用 Docker HTTP 模式:args 可能包括 ["run","-p","8080:8080","--rm","ghcr.io/apache/solr-mcp:latest"],并通过环境变量配置 PROFILES=http 与 SOLR_URL。
      • 若直接使用 JAR 启动:args 可能包括 ["-jar","/absolute/path/to/solr-mcp-1.0.0-SNAPSHOT.jar"],并通过环境变量配置 SOLR_URL 与 PROFILES。
    • 说明注解
      • MCP 客户端需要的仅是启动命令与参数(command、args),以便通过该服务器建立连接并调用 MCP 工具;具体的授权、路由和接口实现均在服务器端完成。
  • 基本使用方法
    • 启动后,MCP 客户端(如 Claude Desktop)可以通过以下方式与服务器对接:
      • 配置 solr-mcp 服务器条目,提供启动命令和参数(并可选环境变量,例如 SOLR_URL、PROFILES)。
      • 使用 MCP 远程/传输适配器连接到服务器的 MCP 端点(STDIO 或 HTTP),并通过工具清单发现、调用具体工具(如 search、index_json_documents、listCollections 等)。
    • 常用流程示例(对开发者友好):
      • 连接并探查可用工具与资源。
      • 使用 search 工具执行对 Solr 集合的查询,搭配过滤、分面、排序和分页等参数。
      • 通过 index-json-documents/ index-csv-documents / index-xml-documents 工具批量索引文档到指定 Solr 集群的集合。
      • 通过 check-health、get-collection-stats、get-schema 等工具获取集合的健康状态、统计信息和模式信息。
    • 调试与运维要点
      • 确保 Solr 服务可访问(通过 SOLR_URL 指定正确的 Solr 基础地址)。
      • HTTP 模式开启时若需 OAuth2,请按文档配置 issuer、域名、客户端等信息并使用正确的访问令牌进行调用。
      • 在容器化环境下,遵循 README 中的部署指南,使用 Jib 构建的镜像或者 JAR/Docker Compose 的组合。

服务器信息