模型上下文协议服务器

一个基于Spring Framework和Jetty的轻量级模型上下文协议(MCP)服务器,支持注解驱动的工具注册和基于Servlet的请求处理。

  • by Mangesh1511
  • Java
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Mangesh1511/spring-jetty-mcp-server

使用说明

🚀 Spring MCP服务器(Jetty+Maven)

轻量级的 模型上下文协议(MCP)服务器 使用 Spring框架 并部署在 喷气,作为传统Java web应用程序的一部分运行。

该项目使用注释驱动的注册和基于servlet的请求管道通过MCP实现动态工具执行。


📌 特性

  • ✅ 自定义MCP服务器实现
  • ✅ 基于注释的工具定义
  • ✅ 基于Servlet的请求处理(/mcp)
  • ✅ Maven+Jetty集成
  • ✅ 轻量级,可部署为WAR
  • ✅ 易于使用新工具进行扩展

🛠️ 技术栈

  • Java 17+
  • Spring框架(基于XML的配置)
  • 梅文
  • 码头服务器
  • Servlet API

📁 项目结构

src/
 └── main/
     ├── java/com/spring/
     │    ├── mcp/        # MCP core logic
     │    ├── demo/       # Sample controller
     │    └── ...
     ├── resources/
     │    └── spring/     # Spring XML configs
     └── webapp/
          └── WEB-INF/
               └── web.xml

▶️ 本地运行

1.克隆存储库

git clone https://github.com/your-username/your-repo.git
cd your-repo

2.建设项目

mvn clean install

3.使用Jetty运行

mvn jetty:run

4.访问申请

http://localhost:8080

📡 MCP端点

POST /mcp

所有MCP请求均通过以下方式处理:

McpDelegatingServlet

🧪 添加新工具

使用注释创建方法:

@McpTool(name = "exampleTool")
public String example(
    @McpToolParam(name = "input") String input
) {
    return "Processed: " + input;
}

就是这样——该工具将在启动时自动注册。


🚀 部署

📦 构建WAR文件

mvn clean package

WAR文件将在以下位置生成:

target/your-app-name.war

🌐 在码头上部署(独立)

选项1:使用码头住宅

  1. 复制WAR文件:
cp target/your-app-name.war <JETTY_HOME>/webapps/
  1. 启动码头:
java -jar start.jar

选项2:使用嵌入式Jetty(已配置)

mvn jetty:run

🐳 Docker部署(可选)

# Build image
docker build -t mcp-server .

# Run container
docker run -p 8080:8080 mcp-server

🔗 详细解释

👉 深入了解架构、工具注册和MCP流程:

阅读完整博客→


🔐 配置说明

  • 在以下位置更新Spring配置:

    • application-context.xml
    • dispatcher-servlet.xml
  • 避免提交敏感数据


🧩 扩展项目

  • 通过注释添加新工具
  • 插件缓存(Redis/Memcached)
  • 添加身份验证层
  • 启用异步/流式执行

📄 许可证

MIT许可证


👨‍💻 作者

曼吉什·帕蒂尔 后端工程师|Java |Spring |系统设计