## 新增服务模块 ### 1. ERP服务 (hzhub-erp) - 新增独立的ERP数据适配服务 - 支持SQL Server 2008 R2数据源 - 提供动态API配置管理系统 - 包含客户管理、销售数据等业务接口 ### 2. 系统服务 (hzhub-system) - 新增独立的系统管理服务 - 用户、角色、权限、部门、菜单管理 - 租户管理、操作日志、在线用户监控 - 工作流引擎(warm-flow)集成 - 企业微信审批同步功能 ### 3. API网关 (hzhub-gateway) - 新增Spring Cloud Gateway网关服务 - JWT认证、路由分发、限流熔断 - XSS防护、请求日志记录 - 统一入口端口8080 ## 后台管理功能增强 ### ERP动态API管理 - 新增动态API配置管理界面 - API测试、文档预览、统计监控 - 错误日志查看、缓存管理 - 从数据库表自动导入API配置 ### 系统管理增强 - 企业微信配置管理 - 企业微信审批同步配置 - 部门和用户管理优化 ## 员工门户功能完善 ### 业务页面 - 审批中心:工作流审批、待办任务 - CRM管理:客户关系管理 - 经销商管理:经销商数据展示 - 供应链管理:采购、库存、销售 - BI报表:数据可视化分析 - ERP数据探索:SQL Server数据查询 ### 个人中心 - 基本设置:个人信息管理 - 安全设置:密码修改、登录日志 - 锁屏功能:自动锁屏、手动锁屏 ### 其他功能 - 标签页管理:多标签页导航 - 页面缓存:keepAlive缓存机制 - 会话超时:自动检测并提示 ## 经销商门户 ### 页面路由 - 新增经销商管理页面路由 - AI聊天界面完善 ## 文档更新 - ERP API数据库初始化指南 - ERP API前端完整实现文档 - ERP API测试和验证指南 - Gateway路由迁移计划 - 项目配置文档更新 ## 部署脚本 - 统一启动/停止/重启脚本 - Docker Compose配置优化 - Nginx配置文件更新 ## 技术栈 - 后端: Spring Boot 3.5.8, Java 17 - 前端: Vue 3, TypeScript, Element Plus, Vben Admin - 工作流: warm-flow 1.8.2 - 网关: Spring Cloud Gateway - 数据库: MySQL 8.0, SQL Server 2008 R2 - 缓存: Redis 7 - 向量库: Weaviate 1.25.0 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
337 lines
6.3 KiB
Markdown
Executable File
337 lines
6.3 KiB
Markdown
Executable File
# MCP工具管理模块 - API接口文档
|
||
|
||
## 概述
|
||
|
||
本文档描述了MCP工具管理模块的REST API接口,供前端开发人员参考。
|
||
|
||
## 基础信息
|
||
|
||
- **Base URL**: `/api/mcp`
|
||
- **认证方式**: Bearer Token (SaToken)
|
||
- **响应格式**: JSON
|
||
|
||
---
|
||
|
||
## 1. MCP工具管理
|
||
|
||
### 1.1 查询工具列表(分页)
|
||
|
||
**接口**: `GET /tool/list`
|
||
|
||
**权限**: `mcp:tool:list`
|
||
|
||
**请求参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| name | String | 否 | 工具名称(模糊查询) |
|
||
| description | String | 否 | 工具描述(模糊查询) |
|
||
| type | String | 否 | 工具类型:LOCAL/REMOTE/BUILTIN |
|
||
| status | String | 否 | 状态:0-启用, 1-禁用 |
|
||
| pageNum | Integer | 是 | 页码,默认1 |
|
||
| pageSize | Integer | 是 | 每页数量,默认10 |
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"rows": [
|
||
{
|
||
"id": 1,
|
||
"name": "ReadFileTool",
|
||
"description": "读取文件内容工具",
|
||
"type": "BUILTIN",
|
||
"status": "0",
|
||
"configJson": null,
|
||
"createTime": "2026-03-08 10:00:00",
|
||
"updateTime": "2026-03-08 10:00:00"
|
||
}
|
||
],
|
||
"total": 1
|
||
}
|
||
```
|
||
|
||
### 1.2 查询工具列表(不分页)
|
||
|
||
**接口**: `GET /tool/all`
|
||
|
||
**权限**: `mcp:tool:list`
|
||
|
||
**请求参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| keyword | String | 否 | 关键词 |
|
||
| type | String | 否 | 工具类型 |
|
||
| status | String | 否 | 状态 |
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"tools": [
|
||
{
|
||
"id": 1,
|
||
"name": "ReadFileTool",
|
||
"description": "读取文件内容工具",
|
||
"type": "BUILTIN",
|
||
"status": "0"
|
||
}
|
||
],
|
||
"total": 1
|
||
}
|
||
```
|
||
|
||
### 1.3 获取工具详情
|
||
|
||
**接口**: `GET /tool/{id}`
|
||
|
||
**权限**: `mcp:tool:query`
|
||
|
||
**路径参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | Long | 是 | 工具ID |
|
||
|
||
### 1.4 新增工具
|
||
|
||
**接口**: `POST /tool`
|
||
|
||
**权限**: `mcp:tool:add`
|
||
|
||
**请求体**:
|
||
```json
|
||
{
|
||
"name": "MyMcpTool",
|
||
"description": "我的MCP工具",
|
||
"type": "REMOTE",
|
||
"status": "0",
|
||
"configJson": "{\"baseUrl\": \"http://localhost:8080/mcp\"}"
|
||
}
|
||
```
|
||
|
||
### 1.5 修改工具
|
||
|
||
**接口**: `PUT /tool`
|
||
|
||
**权限**: `mcp:tool:edit`
|
||
|
||
**请求体**: 同新增工具
|
||
|
||
### 1.6 删除工具
|
||
|
||
**接口**: `DELETE /tool/{ids}`
|
||
|
||
**权限**: `mcp:tool:remove`
|
||
|
||
**路径参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| ids | String | 是 | 工具ID,多个用逗号分隔 |
|
||
|
||
### 1.7 更新工具状态
|
||
|
||
**接口**: `PUT /tool/{id}/status`
|
||
|
||
**权限**: `mcp:tool:edit`
|
||
|
||
**路径参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | Long | 是 | 工具ID |
|
||
|
||
**请求参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| status | String | 是 | 状态:0-启用, 1-禁用 |
|
||
|
||
### 1.8 测试工具连接
|
||
|
||
**接口**: `POST /tool/{id}/test`
|
||
|
||
**权限**: `mcp:tool:query`
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"message": "连接测试成功",
|
||
"toolCount": 5,
|
||
"tools": ["tool1", "tool2", "tool3", "tool4", "tool5"]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 2. MCP市场管理
|
||
|
||
### 2.1 查询市场列表
|
||
|
||
**接口**: `GET /market/list`
|
||
|
||
**权限**: `mcp:market:list`
|
||
|
||
**请求参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| name | String | 否 | 市场名称 |
|
||
| description | String | 否 | 市场描述 |
|
||
| status | String | 否 | 状态 |
|
||
| pageNum | Integer | 是 | 页码 |
|
||
| pageSize | Integer | 是 | 每页数量 |
|
||
|
||
### 2.2 获取市场工具列表
|
||
|
||
**接口**: `GET /market/{marketId}/tools`
|
||
|
||
**权限**: `mcp:market:query`
|
||
|
||
**路径参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| marketId | Long | 是 | 市场ID |
|
||
|
||
**请求参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| page | Integer | 否 | 页码,默认1 |
|
||
| size | Integer | 否 | 每页数量,默认10 |
|
||
|
||
### 2.3 刷新市场工具
|
||
|
||
**接口**: `POST /market/{marketId}/refresh`
|
||
|
||
**权限**: `mcp:market:edit`
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"message": "刷新成功",
|
||
"addedCount": 3,
|
||
"updatedCount": 5
|
||
}
|
||
```
|
||
|
||
### 2.4 加载工具到本地
|
||
|
||
**接口**: `POST /market/tool/{toolId}/load`
|
||
|
||
**权限**: `mcp:market:edit`
|
||
|
||
**路径参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| toolId | Long | 是 | 市场工具ID |
|
||
|
||
### 2.5 批量加载工具
|
||
|
||
**接口**: `POST /market/tools/batchLoad`
|
||
|
||
**权限**: `mcp:market:edit`
|
||
|
||
**请求体**:
|
||
```json
|
||
{
|
||
"toolIds": [1, 2, 3]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 3. 工具调用日志
|
||
|
||
### 3.1 查询调用日志
|
||
|
||
**接口**: `GET /tool/callLog`
|
||
|
||
**权限**: `mcp:tool:query`
|
||
|
||
**请求参数**:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| toolId | Long | 否 | 工具ID |
|
||
| sessionId | Long | 否 | 会话ID |
|
||
| startDate | Date | 否 | 开始日期 |
|
||
| endDate | Date | 否 | 结束日期 |
|
||
| pageNum | Integer | 是 | 页码 |
|
||
| pageSize | Integer | 是 | 每页数量 |
|
||
|
||
### 3.2 获取工具统计
|
||
|
||
**接口**: `GET /tool/{toolId}/metrics`
|
||
|
||
**权限**: `mcp:tool:query`
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"toolId": 1,
|
||
"toolName": "ReadFileTool",
|
||
"today": {
|
||
"callCount": 100,
|
||
"successCount": 95,
|
||
"failureCount": 5,
|
||
"avgDurationMs": 150,
|
||
"successRate": 95.0
|
||
},
|
||
"week": {
|
||
"callCount": 500,
|
||
"successCount": 475,
|
||
"failureCount": 25,
|
||
"avgDurationMs": 160,
|
||
"successRate": 95.0
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 4. 状态码说明
|
||
|
||
| 状态码 | 说明 |
|
||
|--------|------|
|
||
| 200 | 请求成功 |
|
||
| 401 | 未认证 |
|
||
| 403 | 无权限 |
|
||
| 404 | 资源不存在 |
|
||
| 500 | 服务器错误 |
|
||
|
||
---
|
||
|
||
## 5. 前端页面需求
|
||
|
||
### 5.1 MCP工具管理页面 (`/mcp/tool`)
|
||
|
||
**功能**:
|
||
- 工具列表展示(分页)
|
||
- 工具搜索和筛选
|
||
- 新增/编辑/删除工具
|
||
- 工具状态切换
|
||
- 工具连接测试
|
||
|
||
**表格列**:
|
||
- 工具名称
|
||
- 工具描述
|
||
- 工具类型(标签显示)
|
||
- 状态(开关)
|
||
- 创建时间
|
||
- 操作(编辑、删除、测试)
|
||
|
||
### 5.2 MCP市场管理页面 (`/mcp/market`)
|
||
|
||
**功能**:
|
||
- 市场列表展示
|
||
- 市场工具浏览
|
||
- 刷新市场工具
|
||
- 加载工具到本地
|
||
|
||
### 5.3 工具调用日志页面 (`/mcp/log`)
|
||
|
||
**功能**:
|
||
- 调用日志列表
|
||
- 按工具/日期筛选
|
||
- 成功率统计
|
||
- 响应时间统计
|
||
|
||
**图表**:
|
||
- 每日调用次数趋势图
|
||
- 工具调用成功率饼图
|
||
- 平均响应时间柱状图
|