MCP 协议中台
慧策 · MCP 协议中台
Одной фразой: инфраструктура MCP-протокола — позволяет производственным линиям самостоятельно регистрировать источники данных и инструменты, а нижестоящие агенты обнаруживают и вызывают их через стандартный протокол MCP. Платформа — это «протокольный конвейер», она не несёт никакой бизнес-логики.
Содержание
Позиционирование и границы
Зачем нужна MCP-платформа?
В компании несколько производственных линий (кросс-граничный ERP, внутренняя электронная коммерция, складская WMS, финансовые расчёты...), и у каждой есть потребности в запросах данных. Если на каждую линию форкать отдельный MCP-сервер и менять реализацию инструментов, мы попадём в ловушку «каждая новая линия — новые правки кода».
Ключевая идея: создать инфраструктуру, которая занимается только реализацией MCP-протокола и каркасом диспетчеризации инструментов. Платформа определяет протокольный контракт, а производственные линии подключаются по контракту самостоятельно.
Что платформа делает и чего не делает
┌─────────── 本平台范围 ───────────┐
│ │
AI Agent ──MCP──→ │ MCP Protocol Tool Registry │ ←── API 契约 ←── 产线
│ Auth / Rate Cache / Degrade │
│ Adapter Framework │
│ Admin Console Observability │
│ │
└────────────┬─────────────────────┘
│ Data Source Adapter SPI
▼
┌──────────────────────────────────────┐
│ 产线数据源(产线自管) │
│ MySQL / Doris / StarRocks / HTTP API │
│ Redis / ES / ... │
└──────────────────────────────────────┘✅ В зоне ответственности | ❌ Вне зоны ответственности |
Полная реализация MCP-протокола (на базе Spring AI MCP Server 1.1.2) | Любая SQL/API-логика конкретных инструментов (это делают линии) |
Реестр инструментов (CRUD + управление версиями + горячая загрузка) | ETL-конвейеры / построение широких таблиц / очистка данных |
Каркас адаптеров источников данных (MySQL/PG/Doris/HTTP/Redis) | Интеграция с вышестоящими API (ERP, BI, сторонние) |
Конвейер промежуточного ПО (аутентификация/лимитирование/кэш/деградация/логирование/мониторинг) | Бизнес-формулы / алгоритмы / правила |
Консоль администрирования (управление источниками данных + управление инструментами + панель мониторинга) | OAuth2.0 / RBAC / мультитенантность (Phase 2) |
SDK для производственных линий (Java + Python) | Сопровождение подключения линий / разработка инструментов |
Ключевой принцип дизайна: платформа не понимает бизнес. Инструмент — это просто запись конфигурации в MySQL (имя + JSON Schema + ссылка на источник данных + шаблон запроса). Производственная линия решает, как назвать инструмент, как написать SQL, какой TTL кэша задать.
Ключевая концепция: что такое MCP
MCP (Model Context Protocol) — это стандартный протокол взаимодействия AI-агентов с внешними инструментами/данными, открытый компанией Anthropic. Аналогия с USB-C: до MCP каждое AI-приложение писало собственный клейкий код для интеграции с источниками данных; с MCP агент обнаруживает и вызывает инструменты через единый протокол tools/list → tools/call.
flowchart LR
A["🤖 AI Agent<br/>Claude Desktop / LangChain / OpenAI"] -->|"tools/list<br/>tools/call<br/>JSON-RPC 2.0"| B["🔌 MCP 协议中台<br/>Spring AI MCP Server"]
B -->|"Adapter SPI"| C["🗄️ MySQL"]
B -->|"Adapter SPI"| D["🗄️ Doris"]
B -->|"Adapter SPI"| E["🌐 HTTP API"]
B -->|"Adapter SPI"| F["📦 Redis"]Ключевой принцип дизайна: агент управляет «намерением» (понимает, что нужно пользователю), платформа управляет «протоколом» (реализация MCP + маршрутизация инструментов + промежуточное ПО), производственная линия управляет «данными» (регистрирует источники данных + пишет SQL/конфигурацию).
Обзор архитектуры
Многоуровневая архитектура
flowchart TB
subgraph Agent["AI Agent 层(外部)"]
Claude["Claude Desktop"]
LangChain["LangChain Client"]
OpenAI["OpenAI Agent SDK"]
end
subgraph Platform["MCP 协议中台(本平台)"]
direction TB
subgraph Protocol["MCP Protocol Layer"]
Handshake["initialize 握手<br/>协议版本协商 · 能力交换"]
JSONRPC["JSON-RPC 2.0 Router<br/>tools/list · tools/call · tools/schema<br/>resources/list · resources/read"]
Transport["Transport: HTTP SSE / Streamable HTTP"]
end
subgraph Middleware["Middleware Pipeline(Filter Chain)"]
direction LR
Auth["鉴权<br/>API Key + BCrypt"] --> RateLimit["限流<br/>Token Bucket"]
RateLimit --> Cache["缓存<br/>Caffeine L1 + Redis L2"]
Cache --> Degrade["降级<br/>4 级状态机"]
Degrade --> Log["日志·监控<br/>TraceId · Prometheus"]
end
subgraph Core["Tool Engine"]
Dispatcher["ToolDispatcher<br/>Tool 解析 · 路由"]
Registry["Tool Registry<br/>元数据管理 · 版本管理 · 热加载"]
Executor["Tool Executor<br/>参数校验 · 模板渲染<br/>结果映射 · 输出校验"]
end
subgraph Adapter["Data Source Adapter Framework"]
SPI["Adapter SPI<br/>接口契约 · 连接池 · 健康检查 · 查询护栏"]
Builtin["内置适配器<br/>MySQL · PostgreSQL · Doris · HTTP · Redis"]
end
subgraph Admin["Admin Console"]
ToolMgmt["Tool 管理"]
DSMgmt["数据源管理"]
Dashboard["监控大盘"]
Alarm["告警配置"]
end
end
subgraph Datasources["产线数据源(产线自管)"]
MySQL_DS["MySQL 产线 A"]
Doris_DS["Doris 产线 B"]
HTTP_API["HTTP API 产线 C"]
Redis_DS["Redis 产线 D"]
end
Agent -->|"MCP Protocol"| Handshake
Handshake --> JSONRPC
JSONRPC --> Auth
Middleware --> Dispatcher
Dispatcher --> Registry
Dispatcher --> Executor
Executor --> SPI
Admin --> Registry
Admin --> DSMgmt
SPI --> Builtin
Builtin --> DatasourcesОбязанности уровней
Уровень | Ключевые обязанности | Граничные ограничения |
Уровень MCP Protocol | рукопожатие | Протокольный уровень не интересуется, откуда берутся инструменты и что за источники данных |
Middleware Pipeline | аутентификация → лимитирование → кэш → деградация → логирование и мониторинг, паттерн Filter Chain, обязательный путь запроса | Полностью конфигурируемый, линии выбирают стратегии в конфигурации инструмента |
Tool Engine | ToolDispatcher разбирает маршруты, Tool Registry управляет метаданными, Tool Executor выполняет проверку параметров + рендеринг шаблонов + маппинг результатов | Развязка Protocol и Registry через ToolDispatcher |
Adapter Framework | контракт SPI-интерфейса адаптеров + 5 встроенных адаптеров + защитные ограничения запросов (max_rows/timeout/чёрный список DDL) | Платформа делает только адаптацию, не интересуется содержимым данных |
Admin Console | управление источниками данных, управление регистрацией инструментов, панель мониторинга, настройка алертов (Vue 3 + Arco Design) | Самообслуживание для администраторов производственных линий |
Ключевой дизайн
Инструмент = метаданные, а не код
С точки зрения платформы инструмент — это просто запись в MySQL. Производственная линия регистрирует инструмент через API или консоль:
{
"id": "my_query_tool",
"name": "my_query_tool",
"description": "查询最近 N 条订单(给 LLM 看的描述)",
"parameters": {
"type": "object",
"properties": {
"limit": { "type": "integer", "default": 20, "maximum": 100 }
}
},
"datasource_id": "ds_my_line",
"query": {
"type": "SQL",
"template": "SELECT a, b, c FROM orders ORDER BY created_at DESC LIMIT {{.limit}}"
},
"cache": { "level": "BOTH", "l1_ttl_sec": 60, "l2_ttl_sec": 300 }
}Что делает платформа: проверяет корректность параметров → рендерит шаблон → выполняет через адаптер → маппит результат → возвращает. Всю бизнес-логику решает производственная линия.
Модель данных (6 ключевых таблиц)
erDiagram
Datasource ||--o{ Tool : "绑定"
Tool ||--o{ ToolVersion : "版本"
Tool ||--o{ CachePolicy : "缓存策略"
Tool ||--o{ DegradePolicy : "降级策略"
Tool ||--o{ InvocationLog : "调用记录"
Datasource {
string id PK "ds_example"
string type "DORIS / MYSQL / PG / HTTP / REDIS"
json connection "主机·端口·库名·凭据引用"
json pool_config "连接池配置"
string status "ONLINE / OFFLINE / ERROR"
}
Tool {
string id PK "my_tool_001"
string name "对 Agent 可见的工具名"
string description "详细的工具描述给 LLM 看"
json parameters "JSON Schema — 输入参数定义"
string datasource_id FK "绑定数据源"
string query_template "SQL 或 HTTP URL 模板"
json result_mapping "字段映射"
json transform "字段级转换规则"
string status "DRAFT / ONLINE / OFFLINE"
}
InvocationLog {
bigint id PK
string tool_id FK
string trace_id "全链路追踪 ID"
int latency_ms "执行耗时"
boolean cache_hit "是否命中缓存"
int degrade_level "降级级别"
timestamp created_at "TTL 7 天"
}Возможности промежуточного ПО (платформа «дарит» производственным линиям)
Возможность | Описание |
Аутентификация | API Key + BCrypt, на базе |
Лимитирование | Token Bucket, 3 уровня: глобальный / производственная линия / инструмент |
Кэш | Caffeine L1 (локальный <1мс) + Redis L2 (распределённый общий), TTL настраивается линией |
Деградация | 4 уровня автоматической деградации: устаревший кэш → только локальный кэш → статическое значение по умолчанию → отказ 503 |
Наблюдаемость | Автоматическая инструментация: объём вызовов/успешность/P95/попадания в кэш/число деградаций, Prometheus + Grafana |
Журнал вызовов | таблица |
Три способа подключения
Способ | Сценарий применения | Объём работы линии |
SQL-шаблон | запрос одной таблицы, простой JOIN, агрегация | написать 1 SQL + заполнить форму |
HTTP-шаблон | вызов существующего REST API линии | заполнить URL-шаблон |
SDK-плагин | многошаговая агрегация, сложные вычисления | написать 50–200 строк Java/Python |
Технологический стек
Уровень | Выбор | Версия | Причина |
Реализация MCP-протокола | Spring AI MCP Server | 1.1.2 | Проверено на внутреннем демо, встроены JSON-RPC Router + Transport + рукопожатие |
Аутентификация |
| 0.0.5 | Библиотека сообщества, проверена на демо. API Key + BCrypt |
Базовый каркас | Java 21 + Spring Boot | 3.4.7 | Технологический стек Java компании, версии выровнены с внутренним демо |
Фронтенд консоли администрирования | Vue 3 + Vite + Arco Design | — | Лёгкий, стек фронтенд-группы компании |
Хранилище метаданных | MySQL 8.0 | — | Конфигурация инструментов, конфигурация источников данных, журналы вызовов |
Кэш | Caffeine (L1) + Redis 6.2 (L2) | — | L1 локальный <1мс, L2 распределённый общий |
Мониторинг | Micrometer + Prometheus + Grafana | — | Нативная интеграция Spring Boot |
Центр конфигурации | Nacos 2.x | — | Уже есть в компании, хранение учётных данных и конфигураций |
Развёртывание | Docker Compose (разработка) + K8s (продакшн) | — | Выровнено с инфраструктурой компании |
Выбор базового каркаса: Spring AI MCP Server 1.1.2 полностью реализует протокол MCP 2024-11-05. Платформа не реализует протокольный уровень заново, а поверх Spring AI делает три вещи: (1) динамическую регистрацию инструментов (замена статической аннотации
@McpTool), (2) адаптацию источников данных и выполнение шаблонов, (3) общий конвейер промежуточного ПО.
Структура проекта
intent_plan/
├── docs/
│ └── superpowers/
│ └── specs/
│ ├── 2026-07-16-mcp-platform-plan.md # MCP 协议中台建设计划(主文档)
│ └── 2026-07-16-cross-border-mcp-boundary-design.md # 产线协作契约
├── mcp-server/ # MCP Server 核心(Spring Boot)
│ └── src/main/java/com/wangdian/mcp/
│ ├── protocol/ # MCP 协议层(Spring AI 集成)
│ ├── registry/ # Tool 注册中心(动态注册 + 版本管理)
│ ├── executor/ # Tool 执行器(校验 + 模板 + 映射)
│ ├── adapter/ # 数据源适配框架(SPI + 内置适配器)
│ ├── middleware/ # 中间件管道(鉴权/限流/缓存/降级)
│ ├── admin/ # 管理控制台 API(/admin/*)
│ └── sdk/ # 产线 SDK(Java)
├── mcp-server-admin/ # 管理控制台前端(Vue 3 + Arco Design)
├── mcp-sdk-python/ # 产线 SDK(Python)
├── docker-compose.yml # 本地开发环境
└── README.mdБыстрый старт
⚠️ Проект в разработке, ниже — ожидаемый процесс запуска.
Предварительные требования
JDK 21 + Maven 3.9+
Docker 20.10+ и Docker Compose 2.20+
Доступ к внутренней сети компании (Nacos / MySQL / Redis)
Локальная разработка
# 1. 克隆项目
git clone <repo-url> && cd intent_plan
# 2. 启动开发环境中间件
docker compose up -d mysql redis nacos-standalone
# 3. 初始化数据库
# 执行 docs/superpowers/specs/ 下的 DDL 脚本
# 4. 启动 MCP Server
cd mcp-server
mvn spring-boot:run
# 5. 验证 MCP 协议
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":0}'Порты сервисов
Сервис | Порт | Описание |
MCP Server | 8080 | конечная точка MCP JSON-RPC ( |
Admin Console | 8080 | консоль администрирования ( |
MySQL | 3306 | хранилище метаданных |
Redis | 6379 | кэш L2 |
Nacos | 8848 | центр конфигурации / обнаружение сервисов |
Подключение производственных линий
Подключение линии занимает всего 3 шага, без участия разработчиков платформы:
Шаг 1: регистрация источника данных
curl -X POST http://mcp-platform:8080/api/v1/datasources \
-H "Content-Type: application/json" \
-H "X-API-Key: <your_api_key>" \
-d '{
"id": "ds_my_line",
"type": "MYSQL",
"connection": {
"host": "10.x.x.x", "port": 3306, "database": "my_db",
"credential_ref": "nacos:my-line/db-pwd"
},
"pool_config": { "min": 2, "max": 10, "timeout_sec": 30 }
}'Шаг 2: регистрация инструмента
curl -X POST http://mcp-platform:8080/api/v1/tools \
-H "Content-Type: application/json" \
-H "X-API-Key: <your_api_key>" \
-d '{
"id": "my_query",
"name": "my_query",
"description": "查询我的订单数据",
"parameters": { "type": "object", "properties": { "limit": { "type": "integer" } } },
"datasource_id": "ds_my_line",
"query": { "type": "SQL", "template": "SELECT * FROM orders LIMIT {{.limit}}" }
}'Шаг 3: вызов агентом
После регистрации инструмент вступает в силу на всех экземплярах в течение 30 секунд. Нижестоящие агенты вызывают через стандартный протокол MCP:
Agent → POST /mcp
{"jsonrpc":"2.0", "method":"tools/list", "id":1}
Agent ← {"jsonrpc":"2.0", "result":{"tools":[..., {"name":"my_query", ...}]}, "id":1}
Agent → POST /mcp
{"jsonrpc":"2.0", "method":"tools/call", "params":{"name":"my_query","arguments":{"limit":20}}, "id":2}
Agent ← {"jsonrpc":"2.0", "result":{"content":[{"type":"text","text":"[{\"col\":\"val\"}]"}]}, "id":2}Индекс документации
Документ | Назначение | Читатель |
Архитектура платформы, декомпозиция WBS, вехи, риски | Все | |
Контракт взаимодействия линий, протокол подключения | Команда платформы + команды линий |
Дорожная карта проекта
gantt
title MCP 协议中台路线图
dateFormat YYYY-MM-DD
axisFormat W%W
section M1 · 协议核心(W1)
Spring AI 集成 + 动态 Tool 注册 POC :m1, 2026-07-20, 5d
section M2 · 工具引擎(W2)
Tool Registry + Executor + Adapter :m2, after m1, 5d
section M3 · 生产就绪(W3)
Middleware Pipeline + 降级演练 :m3, after m2, 5d
section M4 · 管理控制台(W4-W5)
Admin Console + SDK :m4, after m3, 10d
section M5 · 上线(W6)
集成测试 + 压测 + 灰度 :m5, after m4, 5dЭтап | Цель | Время |
Phase 1 · MVP | Ключевые возможности MCP-платформы: динамическая регистрация инструментов + 5 адаптеров источников данных + конвейер промежуточного ПО + консоль администрирования + SDK | 6 недель |
Phase 2 · Расширение | Горячая загрузка плагинов + OAuth2.0/RBAC/мультитенантность + изоляция через пользовательский ClassLoader + больше адаптеров (ES/Mongo/GraphQL) | 3–6 месяцев |
Phase 3 · Коммерциализация | MCP Marketplace + биллинг и метрики + мультикластерное планирование + зеркала с деидентификацией данных | 6 месяцев+ |
Статус проекта:
этап проектирования · ожидает ревью| Команда: 2,5 человека (TL + BE + общий FE) | Срок: 6 недельЕсть вопросы? Сначала посмотрите План строительства MCP-платформы.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/qiyingshicaiji/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server