MCP服务器模板

一个基于Java和Spring AI的MCP服务器实现,提供基本工具和配置示例,适用于快速开发MCP服务器。

  • by gmogmzGithub
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 gmogmzGithub/mcp-java-skeleton

使用说明

MCP服务器模板-Java(Spring AI)

使用Java实现模型上下文协议(MCP)服务器 春季AI.

关于

这是一个最小的MCP服务器框架,演示了如何使用Java和Spring AI构建MCP服务器。它提供了一个基本的工具实现,您可以将其用作自己的MCP服务器的起点。

特性

  • 工具:返回模拟工作数据的示例工作搜索工具
  • Spring Boot集成:基于Spring Boot构建,易于配置和部署
  • Maven支持:使用Maven进行依赖管理和构建
  • 最小设置:仅包括演示MCP功能所需的基本组件

⚠️ 重要SSE警告

SSE运输限制:此服务器当前使用服务器发送事件(SSE)传输,因为Spring AI尚不支持流式HTTP。SSE已知存在可靠性问题:

  • 连接中断:SSE连接可能会在活动几分钟后中断
  • 间歇性连接:您可能会遇到需要手动重新连接的周期性断开连接
  • 弃用的协议:SSE已被正式弃用,转而支持流式HTTP

春季AI 1.1.0 (计划发布:2025年9月30日)将包括对Streamable HTTP的支持。一旦该版本可用,此模板将进行更新。

推荐:对于生产使用,考虑使用支持Streamable HTTP且没有这些可靠性问题的Python或TypeScript MCP模板。

跟随https://github.com/spring-projects/spring-ai/issues/3145Spring AI Streamable HTTP支持更新。

先决条件

  • Java 17或更高版本
  • Maven 3.6+(或使用附带的Maven包装器)

快速开始

使用Maven Wrapper(推荐)

./mvnw clean compile
./mvnw spring-boot:run

使用Maven系统

mvn clean compile
mvn spring-boot:run

配置

应用程序属性

您可以通过创建来配置应用程序 application-local.yml 在 src/main/resources/ 地方发展:

# Add your configuration here
logging:
  level:
    com.example.mcp: DEBUG

使用示例

使用MCP检查器运行

  1. 启动服务器:

    ./mvnw spring-boot:run
    
  2. 运行MCP检查器:

    npx @modelcontextprotocol/inspector
    
  3. 配置检查器:

    • 集 Transport Type 到 Streamable HTTP
    • 集 URL 到 http://localhost:8080/mcp
    • 点击 Connect
  4. 从检查器界面测试可用工具

从VS代码连接

  1. 将此配置添加到游标代码中 mcp.json:

    {
       "mcpServers": {
          "java-mcp": {
             "url": "http://localhost:8082/mcp"
          }
       }
    }
    
  2. 首先构建JAR文件:

    ./mvnw clean package
    
  3. 更新中的路径 settings.json 指向您的JAR文件 target/mcp-java-skeleton-1.0.0.jar

  4. 在VS Code中启动服务器,并使用GitHub Copilot Chat进行测试:

    Show me a few Software Engineer jobs in Austin
    

发展

项目结构

src/
├── main/java/com/example/mcp/java/skeleton/
│   ├── SkeletonMcpDaemon.java          # Main application class
│   ├── tools/
│   │   ├── JobsToolsService.java       # Tool implementations
│   │   └── dto/JobDto.java            # Data transfer objects
│   └── configuration/
│       ├── JobsToolsConfiguration.java # Tool configuration
│       ├── PromptConfiguration.java   # Prompt configuration
│       └── ResourceConfiguration.java # Resource configuration
└── test/                              # Unit tests

添加新工具

  1. 在中创建服务类 tools 包裹
  2. 用注释方法 @Tool 将它们作为MCP工具公开
  3. 在配置类中注册服务

例子:

@Service
public class MyToolsService {
    @Tool(description = "My custom tool")
    public String myTool(String input) {
        return "Result: " + input;
    }
}

添加资源

  1. 创建一个新的配置类,类似于 JobsToolsConfiguration
  2. 添加 SyncResourceSpecification 豆子
  3. 实现资源处理程序

添加提示

  1. 为提示创建新的配置类
  2. 添加 SyncPromptSpecification 豆子
  3. 实现提示处理程序

运行测试

./mvnw test

生产大楼

创建JAR文件

./mvnw clean package

可执行JAR将在 target/mcp-java-skeleton-1.0.0.jar.

运行JAR

java -jar target/mcp-java-skeleton-1.0.0.jar

贡献

  1. 复刻仓库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 提交拉取请求