Skip to main content
Glama

慧策 · MCP 协议中台

Одной фразой: инфраструктура MCP-протокола — позволяет производственным линиям самостоятельно регистрировать источники данных и инструменты, а нижестоящие агенты обнаруживают и вызывают их через стандартный протокол MCP. Платформа — это «протокольный конвейер», она не несёт никакой бизнес-логики.


Содержание


Related MCP server: OmniMCP

Позиционирование и границы

Зачем нужна 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

рукопожатие initialize, маршрутизатор JSON-RPC 2.0, транспорт SSE/Streamable HTTP (на базе Spring AI MCP Server 1.1.2, не изобретаем велосипед)

Протокольный уровень не интересуется, откуда берутся инструменты и что за источники данных

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, на базе mcp-server-security 0.0.5 + Spring Security

Лимитирование

Token Bucket, 3 уровня: глобальный / производственная линия / инструмент

Кэш

Caffeine L1 (локальный <1мс) + Redis L2 (распределённый общий), TTL настраивается линией

Деградация

4 уровня автоматической деградации: устаревший кэш → только локальный кэш → статическое значение по умолчанию → отказ 503

Наблюдаемость

Автоматическая инструментация: объём вызовов/успешность/P95/попадания в кэш/число деградаций, Prometheus + Grafana

Журнал вызовов

таблица InvocationLog, линии могут запрашивать «какие параметры агент передал моему инструменту и что вернулось»

Три способа подключения

Способ

Сценарий применения

Объём работы линии

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 + рукопожатие initialize. Не изобретаем протокольный велосипед

Аутентификация

mcp-server-security + Spring Security

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 (:8080/mcp)

Admin Console

8080

консоль администрирования (:8080/admin/*)

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}

Индекс документации

Документ

Назначение

Читатель

План строительства MCP-платформы

Архитектура платформы, декомпозиция WBS, вехи, риски

Все

Дизайн границ ответственности MCP-сервиса

Контракт взаимодействия линий, протокол подключения

Команда платформы + команды линий


Дорожная карта проекта

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-платформы.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to access a unified catalog of tools from various APIs (OpenAPI, GraphQL, MCP, Google Discovery) through the MCP protocol.
    2 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to discover, monitor, and control industrial hardware like ESP32 machine controllers and inspection cameras through a standardized MCP interface.
    5
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables enterprise AI agents to discover and invoke MCP tools, resources, and prompts across GitHub, ITSM, and business systems through a policy-controlled gateway with human approval and auditability.
    MIT