Token导航 LogoToken导航TokenDH.com
MCP Aggregator logo
运维云端未说明官方级别未说明来源级核验

MCP Aggregator

MCP Server

MCP Java SDK实现的服务端聚合与代理调用工具,支持远程MCP工具和本地API工具的聚合调用,适用于需要统一管理和代理多种工具的场景。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
Kotlin工具管理云端部署

安装说明

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

作者 / 组织

AiKrai001

提供方

AiKrai001

最后核验

2026/5/17 20:23

快速接入

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

详细介绍

MCP 聚合器使用说明

MCP Java SDK(io.modelcontextprotocol.sdk:mcp)实现 MCP 服务端聚合与代理调用能力。本文档说明运行方式、配置要点、权限与过滤机制、调用示例及故障排查。

简易MCP聚合 (使用codex编写) ![](https://gips3.baidu.com/it/u=3298532305,1496547238&fm=3081&app=3081&f=PNG?w=1802&h=1047) ![](https://gips2.baidu.com/it/u=115495338,2245974943&fm=3081&app=3081&f=PNG?w=1802&h=1047) ![](https://gips0.baidu.com/it/u=1308974999,145882510&fm=3081&app=3081&f=PNG?w=1802&h=1047)

项目概述

  • MCP 端点:/mcp(Streamable HTTP)
  • 聚合两类工具:

- 远程 MCP 工具(STDIO / SSE / Streamable HTTP):通过上游客户端采集工具列表并代理调用 - 本地 API 工具(VIRTUAL):从数据库维护的 HTTP API 定义生成 MCP 工具并转发请求

  • 权限控制:基于访问令牌 Token 进行会话级工具过滤(列表过滤 + 调用兜底)

运行环境

  • JDK:21
  • 构建:Gradle 8.x
  • 数据库:默认 H2(./db/demo),可外置数据库通过 Spring 配置覆盖
  • 端口:server.port(默认 18080)

快速开始

# 构建
gradle build -x test

# 开发运行
gradle bootRun

# 生产运行
java -jar build/libs/*-SNAPSHOT.jar
  • MCP 端点:http://localhost:18080/mcp
  • H2 控制台(默认开启):/h2-console

上游 MCP 服务配置

支持三种类型:

  • STDIO:配置 command + arguments(可选 environment
  • SSE:配置 baseUrl + endpoint(连接前预检 text/event-stream
  • Streamable HTTP:配置 baseUrl + endpoint

同步工具:

  • 创建/更新服务会触发工具刷新
  • 也可通过“同步工具”操作主动刷新(参考 Controller/Service)

本地 API 工具(VIRTUAL)

  • 在数据库维护 HTTP API 定义(URL、PATH、METHOD、HEADERS、超时、输入 Schema)
  • 将 API 工具绑定到 VIRTUAL 类型服务,自动生成同名 MCP 工具并由服务端执行 HTTP 请求

相关数据与服务:

  • API 工具仓储:src/main/kotlin/com/app/repository/mcp/ApiToolRepository.kt:1
  • API 工具业务:src/main/kotlin/com/app/service/mcp/ApiToolService.kt:1
  • VIRTUAL 工具生成/同步:src/main/kotlin/com/app/service/mcp/VirtualToolRegistry.kt:1

命名空间与重名规避

  • 为避免不同上游工具重名,远程 MCP 工具注册时使用“展示名”:`

.`

  • 服务的 prefix 为空时,沿用原始工具名
  • 调用远端时仍使用原始工具名(仅注册展示名加前缀)

权限与工具过滤

请求头:

  • Authorization: Bearer

工具刷新机制

  • 创建/更新 MCP 服务、绑定/解绑 API 工具、远程工具列表同步成功后 → 自动触发注册集刷新
  • 刷新策略:计算差异 → addTool/removeToolnotifyToolsListChanged() 通知客户端刷新
  • 刷新入口:src/main/kotlin/com/app/mcp/McpAggregator.kt:52

JSON-RPC 调用示例

tools/list:

POST http://localhost:18080/mcp
Content-Type: application/json
Authorization: Bearer 

{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "tools/list",
  "params": {}
}

tools/call:

POST http://localhost:18080/mcp
Content-Type: application/json
Authorization: Bearer 

{
  "jsonrpc": "2.0",
  "id": "2",
  "method": "tools/call",
  "params": {
    "name": "",
    "arguments": {
      "k": "v"
    }
  }
}

故障排查

  • 远程工具未出现:

- 检查服务是否启用、类型是否正确 - SSE 端点需返回 text/event-stream(预检失败会在日志中提示) - 是否配置了 prefix 导致展示名变化

  • 调用被拒:

- Token 是否包含该“展示名”的授权(当服务有 prefix 时应为 .

  • 列表未过滤:

- 是否带了有效 Token - 查看 McpAccessTokenFilter 日志是否建立上下文

变更记录

  • 替换 Spring AI → 纯 MCP Java SDK
  • 移除:Spring AI 相关依赖与工具回调 Provider
  • 新增:McpServletConfigMcpAggregator(服务端直接注册工具并代理调用)
  • 加强:基于前缀的命名空间、会话级列表过滤与调用兜底

如需进一步将权限注入迁移到 MCP 传输上下文(替代 ThreadLocal),或增加示例脚本(Postman / HTTPie),请在 Issue 或任务中说明。

目录标签

目录标签

Kotlin工具管理云端部署本地部署服务端聚合代理调用API聚合

接入字段

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

未说明

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

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明token部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP