Token导航 LogoToken导航

MCP Server · AI代理

Springboot MCP Gateway

一个Spring Boot库,自动将REST和GraphQL端点暴露为MCP工具,使LLM引擎能够动态发现和执行API端点。

未说明官方级别未说明来源级核验工具 0
Java模型集成AI代理

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
shaibachar
提供方
shaibachar

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Springboot MCP Gateway 属于AI代理类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,客户端适配情况以官方文档为准,没有现成的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

公开资料仍需确认:安装命令

详细介绍

Spring Boot MCP网关库

一个Spring Boot库,自动将REST和GraphQL端点公开为MCP(模型上下文协议)工具,使LLM引擎能够动态发现和执行API端点。

特性

  • 🔍 自动端点发现:扫描并发现Spring Boot应用程序中的所有REST和GraphQL端点
  • 🛠️ MCP工具生成:使用JSON模式自动将REST和GraphQL端点转换为MCP工具定义
  • 🚀 运行时执行:通过MCP接口执行任何发现的端点
  • 📊 GraphQL支持:完全支持GraphQL查询和突变
  • 🔒 结构化错误有效载荷:使用错误代码、请求ID和结构化详细信息增强错误响应
  • 📋 增强元数据:丰富的参数元数据,包括javaType、graphqlType和可空字段
  • ⚡ 发现缓存:每端点TTL缓存,可配置刷新以实现最佳性能
  • 🔐 线程安全:具有适当内存管理和生命周期挂钩的无锁并发缓存
  • 📝 全部文件:适用于所有公共API的全面Javadoc
  • 🐛 调试日志记录:用于故障排除的详细调试级别日志记录
  • ✅ 已测试:包括单元测试和集成测试

什么是MCP?

模型上下文协议(MCP)是一种标准化的方式,用于公开大型语言模型(LLM)可以与之交互的工具和资源。此库为Spring Boot REST和GraphQL端点实现了MCP,允许LLM:

  • 发现可用的API端点作为工具
  • 通过JSON模式理解端点参数
  • 使用适当的参数映射执行端点

建造和测试

  • 使用以下命令运行库测试 mvn test 从存储库根目录。
  • Maven必须到达Maven Central才能下载Spring Boot BOM和相关依赖项。如果你看到 403 Forbidden 错误,删除或更新中的任何代理配置 ~/.m2/settings.xml 并在启用网络访问的情况下重试。

安装

梅文

将以下依赖项添加到您的 pom.xml:


    com.shaibachar
    spring-boot-mcp-lib
    1.0.0-SNAPSHOT

Gradle

implementation 'com.shaibachar:spring-boot-mcp-lib:1.0.0-SNAPSHOT'

用法

基本设置

  1. 将依赖项添加到Spring Boot项目中
  2. 库会自动配置自己,不需要额外的配置!
  3. 您的REST和GraphQL端点会自动作为MCP工具公开

REST示例

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

@RestController
@RequestMapping("/api")
public class UserController {
    
    @GetMapping("/users/{id}")
    public User getUser(@PathVariable String id) {
        return userService.findById(id);
    }
    
    @PostMapping("/users")
    public User createUser(@RequestBody User user) {
        return userService.create(user);
    }
}

GraphQL示例

@Controller
public class UserGraphQLController {
    
    @QueryMapping
    public User getUserById(@Argument Long id) {
        return userService.getUserById(id).orElse(null);
    }
    
    @MutationMapping
    public User createUser(@Argument String name, @Argument String email) {
        User user = new User();
        user.setName(name);
        user.setEmail(email);
        return userService.createUser(user);
    }
}

要启用GraphQL支持,请添加Spring for GraphQL依赖关系:


    org.springframework.boot
    spring-boot-starter-graphql

MCP端点

添加库后,以下MCP端点将自动可用:

列出可用工具
GET /mcp/tools

将所有发现的REST和GraphQL端点作为MCP工具及其模式返回。

响应示例:

{
  "tools": [
    {
      "name": "get_api_users_id_getUser",
      "description": "Calls GET /api/users/{id} (Controller: UserController, Method: getUser)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "javaType": "java.lang.String",
            "nullable": false
          }
        },
        "required": ["id"]
      }
    },
    {
      "name": "graphql_query_getUserById",
      "description": "Calls GraphQL QUERY 'getUserById' (Controller: UserGraphQLController, Method: getUserById)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "graphqlType": "Long",
            "javaType": "java.lang.Long",
            "nullable": true
          }
        }
      }
    }
  ]
}
执行工具
POST /mcp/tools/execute
Content-Type: application/json

{
  "name": "get_api_users_id_getUser",
  "arguments": {
    "id": "123"
  }
}

响应示例:

{
  "content": [
    {
      "type": "text",
      "text": "{\"id\":\"123\",\"name\":\"John Doe\"}"
    }
  ],
  "isError": false,
  "requestId": "550e8400-e29b-41d4-a716-446655440000"
}

错误响应示例:

{
  "content": [
    {
      "type": "text",
      "text": "Tool not found: invalid_tool_name"
    }
  ],
  "isError": true,
  "errorCode": "tool_not_found",
  "requestId": "550e8400-e29b-41d4-a716-446655440001",
  "details": null
}

错误代码:

  • validation_error:请求参数无效
  • tool_not_found:请求的工具不存在
  • execution_error:执行工具时出错
  • serialization_error:序列化结果时出错
  • internal_error:内部服务器错误
刷新工具缓存
POST /mcp/tools/refresh

强制刷新发现的端点(如果控制器是动态注册的,则很有用)。

螺纹安全和性能

该库专为高并发生产环境而设计:

线程安全

  • 无锁缓存:发现服务使用 ConcurrentHashMap 用于无锁的线程安全缓存
  • 双重检查锁定:工具映射服务使用优化的延迟初始化
  • 不可变数据:所有端点元数据类在构造后都是不可变的
  • 防御性复制:公共API返回副本以防止外部突变

内存管理

  • 有界缓存:缓存自然受到端点数量的限制
  • 基于TTL的驱逐:可配置的TTL(默认5分钟)可防止无限增长
  • 生命周期挂钩: @PreDestroy 确保停机时进行适当清理的方法
  • 无内存泄漏:没有线程池、计划任务或无限制集合

性能特征

  • 温缓存:使用O(1)查找的亚毫秒响应时间
  • 冷缓存:通过反思,初步发现需要几秒钟的时间
  • 刷新:已同步以防止并发重建

看 spec/implementation_parallel.md 用于详细的螺纹安全分析和符合并行性规范。

配置

缓存配置

在中配置发现缓存TTL application.properties:

# Cache TTL in milliseconds (default: 300000 = 5 minutes)
mcp.cache.ttl-millis=600000

或在 application.yml:

mcp:
  cache:
    ttl-millis: 600000  # 10 minutes

日志记录

默认情况下,该库使用SLF4J进行DEBUG级别的日志记录。要配置日志记录,请添加到 application.properties:

# Set to DEBUG to see detailed endpoint discovery and execution logs
logging.level.com.shaibachar.springbootmcplib=DEBUG

# Set to INFO for production
logging.level.com.shaibachar.springbootmcplib=INFO

参数名称

为了确保在编译后的代码中保留参数名称(对于正确的参数映射很重要),请将此添加到您的 pom.xml:


    org.apache.maven.plugins
    maven-compiler-plugin
    
        
true

    

运作原理

  1. 端点发现:应用程序启动时,库会扫描:

- 春天 RequestMappingHandlerMapping 发现所有已注册的REST端点 - Spring GraphQL控制器用于发现所有GraphQL查询和突变

  1. 工具生成:每个端点都转换为MCP工具,具有:

- 基于HTTP方法/GraphQL操作类型、路径/字段名和处理程序方法名的唯一名称 - 端点功能的描述 - 描述输入参数的JSON模式

  1. 运行时执行:执行工具时:

- 库找到相应的端点 - 将提供的参数映射到方法参数 - 调用实际控制器方法 - 以JSON格式返回结果

建筑

┌─────────────────────────────────────────┐
│   LLM / MCP Client                      │
└────────────┬────────────────────────────┘
             │
             │ HTTP Requests
             │
┌────────────▼────────────────────────────┐
│   McpController                         │
│   - GET /mcp/tools                      │
│   - POST /mcp/tools/execute             │
└────────────┬────────────────────────────┘
             │
        ┌────┴─────┐
        │          │
┌───────▼──────┐ ┌▼─────────────────────┐
│ToolMapping   │ │ToolExecution        │
│Service       │ │Service              │
└───────┬──────┘ └┬────────────────────┘
        │         │
        │    ┌────▼──────┐
        │    │Endpoint   │
        └────►Discovery  │
             │Service    │
             └───────────┘
                  │
        ┌─────────▼──────────┐
        │ Spring MVC         │
        │ Controllers        │
        └────────────────────┘

规格

详细规格请参见 spec 目录并直接映射到实现的行为:

api参考

模型

  • McpTool:表示MCP工具定义
  • McpToolsResponse:包含可用工具列表的响应
  • McpToolExecutionRequest:请求执行工具
  • McpToolExecutionResponse:工具执行的响应
  • EndpointMetadata:REST端点的内部表示
  • GraphQLEndpointMetadata:GraphQL端点的内部表示

服务

  • EndpointDiscoveryService:从Spring MVC中发现REST端点
  • GraphQLDiscoveryService:发现GraphQL查询和突变
  • McpToolMappingService:将端点映射到MCP工具
  • McpToolExecutionService:通过调用端点来执行工具

配置

  • McpAutoConfiguration:库的自动配置

发展

建筑

mvn clean install

运行测试

mvn test

测试覆盖率

图书馆包括:

  • 所有核心部件的单元测试
  • 使用测试Spring Boot应用程序进行集成测试
  • 端点发现、工具映射和执行测试

需求

  • Java 17或更高版本
  • 弹簧靴3.2.0或更高版本
  • Maven 3.6+(用于构建)

许可证

该项目根据MIT许可证获得许可。

贡献

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

支持

有关问题和疑问,请在GitHub上打开问题。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

SpringBoot库Java本地部署REST端点GraphQL支持MCP协议LLM集成

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Springboot MCP Gateway

MCP World · 本页

0未说明未标注1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Springboot MCP Gateway 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Springboot MCP Gateway 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Springboot MCP Gateway 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Springboot MCP Gateway 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Springboot MCP Gateway 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP