MCP协议微服务

基于Spring Boot的微服务,实现MCP协议的HTTP SSE传输,支持工具注册与远程调用,适用于VS Code等客户端集成。

  • by FedeMedel
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 FedeMedel/codexMcp

使用说明

MCP Spring Boot 服务器

这个项目包含一个Spring Boot微服务,实现了HTTP SSE传输 模型上下文协议(MCP) 通过桥接向客户暴露如VS Code等自定义工具 mcp-remote。

主要特点

  • Spring Boot 3 使用MVC(spring-boot-starter-web)。
  • Spring AI 1.0.3 与……一起 启动器;开始者 spring-ai-starter-mcp-server-webmvc 以便未来与大型语言模型(LLM)供应商进行集成。
  • 交通 HTTP Server-Sent Events(HTTP服务器发送事件) 兼容MCP(GET /mcp/sse 以打开流并 POST /mcp/sse 用于从客户端发送JSON-RPC消息)。
  • 工具注册(ToolCatalog) 示例的实施 time 它返回IANA时区的当前日期和时间。
  • 详细记录日志以观察会话和MCP消息的生命周期。

如何执行

./mvnw spring-boot:run

该应用程序展示在 http://localhost:8080/。

与mcp-remote的集成

  1. 在你的本地机器上启动这个服务。
  2. 配置 mcp-remote 指向SSE终端点:
    • GET http://localhost:8080/mcp/sse 以打开流。
    • POST http://localhost:8080/mcp/sse 用于发送消息(包括头部信息) X-MCP-Session 在响应中返回的标识符 GET)。
  3. Copilot 或 VS Code 将能够通过以下方式发现可用工具: tools/list 并用它们来执行 tools/call。

终点(或“终端点”)

方法 路径 描述
GET (中文可译为)“获取”或“发送GET请求” /mcp/sse 打开一个SSE流并接收 notifications/ready
帖子(发布) /mcp/sse 向服务器发送JSON-RPC 2.0消息

发展

  • 使用Java 17。
  • 其中包含了用于管理SSE(服务器发送事件)会话的组件McpSessionRegistry)和信息(McpProtocolService)。
  • 要添加新的MCP工具,请创建一个 @Component 以实施 McpTool 并且目录会自动进行展示。

注: 在这种环境下,Maven Central 的工件不可用,因此首次编译可能需要访问内部仓库或在可联网的环境下运行 Maven。