Token导航 LogoToken导航TokenDH.com
Spring MCP logo
AI代理stdio官方级别未说明来源级核验

Spring MCP

MCP Server

基于Spring AI的MCP协议服务器,为AI助手提供标准化工具和资源访问,支持自动工具注册、SSE传输和无样板代码开发。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
JavaClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

tutorsquid

提供方

tutorsquid

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 8080:8080 spring-mcp-server

详细介绍

Spring AI MCP服务器

模型上下文协议(MCP)服务器实现 春季AI 以及Spring Boot。该服务器通过MCP协议为人工智能助手提供对工具和资源的标准化访问,只需最少的自定义开发。

概述

模型上下文协议(MCP)是一种开放协议,使AI助手能够安全地访问外部数据源和工具。此实施利用 Spring AI的MCP启动程序 创建一个具有自动工具注册、SSE传输支持和零样板代码的生产就绪MCP服务器。

特性

  • Spring AI MCP集成:基于 spring-ai-mcp-server-webflux-spring-boot-starter
  • 注释驱动工具:使用 @McpTool 自动刀具注册注释
  • 无状态协议:用于可靠工具执行的简单请求/响应协议
  • WebFlux传输:响应式Spring WebFlux,用于高效处理请求
  • 零沸点板:无需手动JSON-RPC处理或回调注册
  • 内置工具:计算器(加、减、乘、除)、回声、时间和随机数
  • 内置资源:系统信息、配置、文档和API参考
  • 内置提示:代码审查、数据分析、调试和文档模板
  • 弹簧靴执行器:生产就绪的健康检查和监测端点
  • 自动配置:Spring AI自动处理所有MCP协议细节

建筑

┌─────────────────────────────────────────┐
│   Spring Boot Application               │
│  ┌────────────────────────────────────┐ │
│  │  @McpTool Annotated Methods        │ │
│  │  (McpToolsService)                 │ │
│  ├────────────────────────────────────┤ │
│  │  @McpResource Annotated Methods    │ │
│  │  (McpResourcesService)             │ │
│  ├────────────────────────────────────┤ │
│  │  @McpPrompt Annotated Methods      │ │
│  │  (McpPromptsService)               │ │
│  └────────────────────────────────────┘ │
│              ↓                           │
│  ┌────────────────────────────────────┐ │
│  │  Spring AI MCP Server              │ │
│  │  (Auto-configured)                 │ │
│  └────────────────────────────────────┘ │
│              ↓                           │
│  ┌────────────────────────────────────┐ │
│  │  WebFlux SSE Endpoint (/mcp)       │ │
│  └────────────────────────────────────┘ │
└─────────────────────────────────────────┘
              ↓ HTTP SSE
      ┌──────────────────┐
      │   MCP Client     │
      │   (Claude, etc)  │
      └──────────────────┘

先决条件

  • Java 17或更高版本
  • Maven 3.6+

快速开始

1.建设项目

mvn clean install

2.运行服务器

mvn spring-boot:run

服务器将于启动 http://localhost:8080 与:

  • MCP SSE端点位于 /mcp
  • 执行器健康端点位于 /actuator/health

3.测试服务器

检查服务器运行状况:

curl http://localhost:8080/actuator/health

答复:

{
  "status": "UP"
}

可用工具

服务器会自动公开所有带注释的方法 @McpTool:

1.添加

将两个数字相加。

参数:

  • a:第一个数字(必填)
  • b:第二个数字(必填)

2.减去

从第一个数字中减去第二个数字。

参数:

  • a:第一个数字(必填)
  • b:第二个数字(必填)

3.相乘

将两个数字相乘。

参数:

  • a:第一个数字(必填)
  • b:第二个数字(必填)

4.分割

将第一个数字除以第二个数字。

参数:

  • a:数字(必填)
  • b:分母,不能为零(必填)

5.回声

回应提供的信息。

参数:

  • message:要回显的消息(必填)

6.获取当前时间

返回当前日期和时间。

参数:

  • timezone:时区(可选,默认为系统时区)

7.随机数

生成一个介于最小值和最大值之间的随机数。

参数:

  • min:最小值(必填)
  • max:最大值(必填)

可用资源

服务器会自动公开所有带注释的方法 @McpResource:

1.欢迎留言

URI: resource://welcome

欢迎新用户介绍Spring MCP Server。

2.系统信息

URI: resource://system/info

动态资源提供当前系统信息,包括时间戳、Java版本、操作系统详细信息和内存使用情况。返回JSON格式。

3.服务器配置

URI: resource://config/server

当前服务器配置和功能,包括协议类型、启用的功能和端点。返回JSON格式。

4.文件

URI: resource://docs/{topic}

为各种主题提供文档的参数化资源。可用主题:

  • tools -关于MCP工具的文档
  • resources -关于MCP资源的文档
  • prompts -关于MCP提示的文档
  • getting-started -入门指南

返回Markdown格式。

5.API参考

URI: resource://api/reference

以纯文本格式列出所有可用工具、资源和提示的快速参考指南。

可用提示

服务器会自动公开所有带注释的方法 @McpPrompt:

1.问候

姓名: greeting

生成个性化的问候语。

参数:

  • name:要问候的人的姓名(必填)
  • timeOfDay:一天中的时间-上午、下午、晚上(可选)

2.代码审查

姓名: code-review

生成一个全面的代码审查提示,用于分析代码。

参数:

  • language:编程语言(必填)
  • focusArea:需要关注的具体方面,如安全性、性能、可读性(可选)

3.数据分析

姓名: analyze-data

生成分析数据或数据集的提示。

参数:

  • dataType:正在分析的数据类型(必填)
  • goal:分析目标或问题(必填)
  • context:有关数据的其他上下文(可选)

4.会议纪要

姓名: meeting-summary

生成创建结构化会议摘要的提示。

参数:

  • topic:会议主题或标题(必填)
  • participants:参与者列表,逗号分隔(可选)

5.调试助手

姓名: debug-helper

为故障排除问题生成系统调试提示。

参数:

  • issue:错误消息或问题描述(必填)
  • stack:技术栈或环境(必填)
  • attemptedSolutions:已经尝试过的内容(可选)

6.文档生成器

姓名: generate-docs

生成创建技术文档的提示。

参数:

  • component:要记录的组件或功能(必填)
  • audience:目标受众-开发人员、用户、管理员(必填)
  • format:文档格式-markdown、html、javadoc(可选)

7.SQL助手

姓名: sql-helper

根据需求生成构建SQL查询的提示。

参数:

  • requirement:要检索或修改的数据的描述(必填)
  • dbType:数据库类型,如MySQL、PostgreSQL(可选)
  • performance:性能考虑因素,如索引、优化(可选)

项目结构

src/
├── main/
│   ├── java/com/example/mcpserver/
│   │   ├── McpServerApplication.java        # Main application
│   │   └── service/
│   │       ├── McpToolsService.java         # Tools with @McpTool annotations
│   │       ├── McpResourcesService.java     # Resources with @McpResource annotations
│   │       └── McpPromptsService.java       # Prompts with @McpPrompt annotations
│   └── resources/
│       └── application.properties           # Configuration
└── test/
    └── java/com/example/mcpserver/          # Tests

添加新工具

使用Spring AI添加新工具非常简单 @McpTool 注释。无需手动注册回调或处理JSON-RPC!

步骤1:创建一个方法并对其进行注释

@Service
public class MyToolsService {

    @McpTool(
        name = "weather",
        description = "Get current weather for a city"
    )
    public String getWeather(
        @McpToolParam(description = "City name", required = true)
        String city,

        @McpToolParam(description = "Temperature unit (C or F)", required = false)
        String unit
    ) {
        // Your implementation
        return "Weather in " + city + ": 72°" + (unit != null ? unit : "F");
    }
}

第二步:就是这样!

Spring AI自动:

  • 发现您的 @McpTool 带注释的方法
  • 在MCP服务器上注册它们
  • 从生成JSON模式 @McpToolParam 注释
  • 处理所有协议通信

注释详细信息

@McpTool

  • name:工具名称(显示给AI客户端)
  • description:这个工具做什么

@McpToolParam

  • description:参数说明
  • required:参数是否为必填项(true/false)

添加新资源

资源是客户端可以访问的只读数据或内容。使用Spring AI添加资源很简单 @McpResource 注释。

步骤1:创建一个方法并对其进行注释

@Service
public class MyResourcesService {

    @McpResource(
        uri = "resource://company/info",
        name = "Company Information",
        description = "Information about the company",
        mimeType = "application/json"
    )
    public Map getCompanyInfo() {
        Map info = new HashMap<>();
        info.put("name", "Acme Corp");
        info.put("founded", 2020);
        info.put("industry", "Technology");
        return info;
    }
}

第二步:就是这样!

Spring AI自动:

  • 发现你的 @McpResource 带注释的方法
  • 在MCP服务器上注册它们
  • 使它们可以通过资源URI访问
  • 处理所有协议通信

注释详细信息

@Mcp资源

  • uri:资源URI(例如,“resource://my/resource“或”resource://docs/{id}“)
  • name:资源名称(显示给AI客户端)
  • description:资源提供了什么
  • mimeType:内容类型(例如,“text/plain”、“application/json”、“text/markdown”)

@McpResourceParam (用于参数化URI)

  • description:参数说明

资源URI模式

静态资源:

@McpResource(uri = "resource://config")
public String getConfig() { ... }

参数化资源:

@McpResource(uri = "resource://user/{id}")
public String getUser(@McpResourceParam String id) { ... }

添加新提示

提示是可重用的模板,有助于构建与语言模型的交互。使用Spring AI添加提示很简单 @McpPrompt 注释。

步骤1:创建一个方法并对其进行注释

@Service
public class MyPromptsService {

    @McpPrompt(
        name = "explain-code",
        description = "Generate a prompt for explaining code functionality"
    )
    public String explainCode(
        @McpPromptParam(description = "Programming language", required = true)
        String language,

        @McpPromptParam(description = "Detail level (basic, intermediate, advanced)", required = false)
        String level
    ) {
        String detailLevel = level != null ? level : "intermediate";
        return String.format(
            "Please explain the following %s code at a %s level:\n\n" +
            "Include:\n" +
            "1. What the code does\n" +
            "2. Key concepts used\n" +
            "3. How it works step by step\n",
            language, detailLevel
        );
    }
}

第二步:就是这样!

Spring AI自动:

  • 发现您的 @McpPrompt 带注释的方法
  • 在MCP服务器上注册它们
  • 从生成参数模式 @McpPromptParam 注释
  • 处理所有协议通信

注释详细信息

@mcpprompt

  • name:提示名称(AI客户端用于调用提示)
  • description:提示模板的作用是什么

@McpPromptParam

  • description:参数说明
  • required:参数是否为必填项(true/false)

提示模板最佳实践

  1. 清晰地组织你的提示:使用章节、要点和编号列表
  2. 让他们变得灵活:使用参数为不同场景自定义提示
  3. 提供上下文:在模板中包含相关背景信息
  4. 要具体:清晰的指示会带来更好的结果
  5. 使用markdown:格式化提示以提高可读性

配置

编辑 src/main/resources/application.properties:

# Server port
server.port=8080

# Spring AI MCP Server Configuration
spring.ai.mcp.server.name=spring-mcp-server
spring.ai.mcp.server.version=1.0.0
spring.ai.mcp.server.type=ASYNC
spring.ai.mcp.server.protocol=STATELESS

# Actuator endpoints
management.endpoints.web.exposure.include=health,info
management.endpoint.health.show-details=when-authorized

# Logging
logging.level.org.springframework.ai.mcp=DEBUG
logging.level.com.example.mcpserver=DEBUG

配置属性

属性描述默认值
spring.ai.mcp.server.name服务器名称-
spring.ai.mcp.server.version服务器版本-
spring.ai.mcp.server.type服务器类型(异步或同步)SYNC
spring.ai.mcp.server.protocol协议(无状态或流式)无状态

MCP端点

MCP端点

Spring AI MCP服务器在以下位置自动公开MCP端点:

http://localhost:8080/mcp

此端点以无状态模式实现模型上下文协议,允许AI客户端:

  • 列出可用工具
  • 使用参数调用工具
  • 以简单的请求/响应格式接收结果

执行器端点

弹簧靴执行器提供生产就绪监控:

健康端点

curl http://localhost:8080/actuator/health

答复:

{
  "status": "UP"
}

可用的执行器端点

  • /actuator/health -应用程序健康信息
  • /actuator/info -应用程序信息(如果已配置)

生产大楼

创建一个生产就绪的JAR:

mvn clean package

运行JAR:

java -jar target/spring-mcp-server-1.0.0.jar

Docker支持

创建一个 Dockerfile:

FROM eclipse-temurin:17-jre
COPY target/spring-mcp-server-1.0.0.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]

构建并运行:

docker build -t spring-mcp-server .
docker run -p 8080:8080 spring-mcp-server

与Claude Desktop一起使用

要将此MCP服务器与Claude Desktop一起使用,请添加到您的Claude配置文件中:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "spring-mcp-server": {
      "url": "http://localhost:8080/mcp"
    }
  }
}

重新启动Claude Desktop,工具将可用。

发展

运行测试

mvn test

代码风格

这个项目使用标准的Java代码约定和Spring Boot最佳实践。

技术

  • 弹簧靴3.4.0 -应用框架
  • 春季AI 1.0.0-M6 -MCP服务器实现
  • Spring WebFlux -SSE的响应式web框架
  • 弹簧靴执行器 -生产监控

为什么选择Spring AI MCP?

之前(自定义实施)

  • 手动JSON-RPC请求/响应处理
  • 自定义控制器和服务层
  • 手动工具/资源/提示模式定义
  • 手动回叫注册
  • 15+源文件

之后(Spring AI)

  • 注释驱动(@McpTool, @McpResource, @McpPrompt)
  • 自动配置
  • 自动发现和注册
  • 零样板
  • 4个源文件(1个应用程序+3个服务)

结果: 代码减少85%,生产就绪的MCP服务器,在几分钟内提供工具、资源和提示!

许可证

MIT许可证

贡献

欢迎投稿!请随时提交拉取请求。

资源

目录标签

目录标签

JavaClaudeAI代理AI工具集成本地部署协议服务器Spring框架自动注册WebFlux

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP