Appearance
开放 MCP
将平台能力以 MCP(Model Context Protocol)工具形式开放给 Cursor 等外部 Agent 使用。
功能说明
Server:/mcp;工具:ProCode/Mcps;可选:接口 f_is_mcp=1、菜单 MCP 管理中的 t_mcp。
一、概述
1.1 什么是开放 MCP?
开放 MCP 是指将平台内部能力通过 MCP Server 以标准化工具(Tools)的形式暴露给外部 AI Agent(如 Cursor、Claude Desktop、Cline 等),使外部 Agent 能够调用平台的业务接口完成实际任务。
1.2 核心定位
| 维度 | 说明 |
|---|---|
| MCP 角色 | 仅作为标准化入口协议,负责协议转换与工具注册 |
| 业务逻辑 | 仍由平台原有的 Logic 层承载,与 HTTP 接口结果完全一致 |
| 数据一致性 | MCP 调用与常规 HTTP 调用共享同一套业务逻辑,无重复实现 |
⚠️ 重要原则: MCP Server 不做业务逻辑,只做协议适配。所有业务处理仍走原有 Logic 层。
二、架构原理
plain
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ 外部 Agent │ │ 开放 MCP Server │ │ 平台 Logic │
│ (Cursor/Claude) │────▶│ /mcp (SSE/Stdio)│────▶│ 业务逻辑层 │
│ │ │ │ │ │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │ │
│ ▼ ▼
│ ┌──────────────────┐ ┌─────────────────┐
│ │ 工具注册中心 │ │ 数据存储层 │
│ │ ProCode/Mcps │ │ (DB/Cache) │
│ └──────────────────┘ └─────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ MCP 协议层:负责工具发现 (list_tools)、调用 (call_tool)、资源读取 │
│ 业务层:与 HTTP 接口共享同一套 Logic,返回结果格式完全一致 │
└─────────────────────────────────────────────────────────────────────┘2.1 数据流说明
- 外部 Agent 通过 MCP 协议连接到
/mcp端点 - MCP Server 注册平台工具(来自
ProCode/Mcps) - Agent 调用工具时,MCP Server 将参数透传给对应 Logic
- Logic 执行业务逻辑,返回结果
- MCP Server 将结果包装为 MCP 格式返回给 Agent
三、核心概念
3.1 名词解释
| 名词 | 说明 |
|---|---|
MCP 资源 t_mcp | 平台内部给智能体节点使用的 MCP 资源配置表 |
| 开放 MCP Server | 对外暴露的 MCP 服务端,供外部 Agent(Cursor、Claude 等)连接使用 |
| ProCode/Mcps | 工具注册中心,定义了平台对外开放的 MCP 工具列表 |
3.2 关键约定
| 约定项 | 说明 |
|---|---|
| ID 参数类型 | 入参中的 ID 字段统一为 string 类型,由入口层转换为 long 后传入 Logic |
| 写操作确认 | 所有涉及数据写入的操作(增删改)必须要求用户确认,禁止静默执行 |
| 只读操作 | 查询类操作可直接返回结果,无需额外确认 |
原理
MCP 只是入口,业务仍在 Logic;与 HTTP 结果一致。
名词解释
| 名词 | 说明 |
|---|---|
| MCP 资源 t_mcp | 给智能体节点用 |
| 开放 MCP Server | 给外部 Agent 用 |
属性说明
| 约定 | 说明 |
|---|---|
| ID | string 入参,入口转 long |
| 写数据 | 需用户确认 |
示例
Cursor 连接后 list 工具,抽测 list_forms。
