sindi-ai-mcp-server
使用说明内容(Markdown格式)
-
项目简介
- 该仓库实现了一个完整的 MCP 服务器端,支持 MCP 的核心能力:资源(Resource)和资源模板(Resource Template)的注册与读取、工具(Tool)的注册与执行、提示(Prompt)的定义与渲染,以及会话管理和服务端通知机制。服务器通过 JSON-RPC 与 MCP 客户端通信,支持多种传输协议(REST/Servlet、SSE、Streamable HTTP),并提供 Jakarta EE/ CDI 风格的扩展点。
-
主要功能点
- 资源与资源模板的管理
- 工具的注册、参数类型转换、执行与结果封装
- 提示的注册、参数绑定与渲染
- 会话管理、日志、取消和进度通知
- 多传输协议支持:REST SSE、Servlet SSE、Streamable HTTP
- 自动化特性注册与发现(通过扫描注解定义的 MCP Features)
- 与 MCP Inspector 等前端工具的对接
-
安装步骤
- 克隆仓库并在项目根目录执行 Maven 打包:
- mvn clean package -e
- 进入示例目录并按需要启动相应的服务器协议(rest 或 servlet)的示例服务器:
- 例如运行 REST 版本的示例服务器并启动后端服务
- 打开 MCP Inspector(浏览器),连接到服务器暴露的传输端点进行功能测试
- 克隆仓库并在项目根目录执行 Maven 打包:
-
服务器配置(客户端连接所需配置.json,客户端不直接需要)
- MCP 客户端连接 MCP 服务器时需要一个配置来告知启动命令与参数等信息。以下为示例配置项,描述服务器的名称与启动指令,客户端仅用于说明连接关系,不需要实际执行本配置。
- 说明:serverName 为 MCP 客户端显示的服务器名称,command/args 为启动服务器的命令及参数(实际启动由服务器端执行环境负责,客户端仅用于示意连接信息)。
- 示例(JSON): { "serverName": "Sindi AI MCP Server", "command": "java", "args": ["-jar", "sindi-ai-mcp-server.jar"] }
- 备注:以上配置不用于代码实现,仅用于帮助理解客户端如何描述需要连接的 MCP 服务器及其启动信息。
-
基本使用方法
- 启动后端服务后,使用 MCP Inspector 等工具连接服务器的传输端点(如 SSE 的端点、Streamable HTTP 的端点)。
- 通过 Inspector 发送 MCP 请求(如列出工具/资源、执行工具、获取提示、读取资源等),查看服务器返回的 JSON-RPC 响应与通知。
- 结合示例特性,您可以注册自定义 Tool、Prompt、Resource,并通过 MCP 服务端执行与获取结果。
-
其他注意
- 该实现包含 REST、Servlet、SSE、Streamable HTTP 等传输实现,支持 Jakarta EE 与纯 Java 运行时环境的集成。
- 代码结构清晰,核心模块覆盖 SPI、运行时、特性定义与执行、服务器实现等方面,具备运行能力与扩展能力。