MCP Client 客户端
这篇解决什么
角色如何挂上远端 MCP 工具。读完能对上 ai_chat_role.mcp_client_names 和 YAML 里 sse.connections 的 key,不要和本地 ai_tool 混成一张表。
默认端口 48080。本地工具见 AI 工具。对话见 AI 聊天对话。
示意图:连接名写在 YAML。角色只存名字列表。发送时拼成 mcp - filesystem 再找 Client。
从哪改
Starter 默认 spring.ai.mcp.client.enabled: false。不打开、不配 SSE,角色里勾了也注入不了。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 角色 | /ai/chat-role | ruoyi-office/yudao-module-ai/.../controller/admin/model/AiChatRoleController.java |
| 字段 | mcpClientNames | AiChatRoleDO |
| 注入 | SyncMcpToolCallbackProvider | AiChatMessageServiceImpl#getToolCallbackListByRoleId |
| 配置 | enabled / name / sse.connections | yudao-module-ai-server 与 yudao-server 的 yaml |
| 前端 | 角色表单多选 | ruoyi-office-vben/apps/web-antd/src/views/ai/model/chatRole/ |
官方菜单:聊天角色 2773。没有「MCP Client」叶子。
YAML 示例连接名 filesystem,地址 http://127.0.0.1:8089,端点 /sse。name 默认 mcp。匹配时全名是 mcpClientCommonProperties.getName() + " - " + mcpClientName。
字典常量 AI_MCP_CLIENT_NAME = ai_mcp_client_name。客户默认 dump/latest 没有这批字典行,下拉可能空,要自己按 YAML key 补。
字段
| 名称 | 说明 | 仓库路径 |
|---|---|---|
mcpClientNames | 连接名列表 | AiChatRoleDO |
toolIds | 本地工具 id | 同上,并行不互斥 |
和 ai_tool 的差别:本地 name 走 ToolCallbackResolver;MCP 走已连接的 McpSyncClient。
字典和 YAML 要对齐
表单选项来自字典,真正连的是 sse.connections 的 key。只补字典、不配连接,对话调不到远端工具。
能力范围
AI MCP 属于全功能版能力。OA 版默认没有这一页。
按本仓库 DO 生成的 ER。MCP 没有单独配置表。
配置与操作
Starter 默认 spring.ai.mcp.client.enabled: false。打开后在 YAML sse.connections 写连接名(示例 filesystem → http://127.0.0.1:8089/sse)。角色页(2773,/ai/console/chat-role)勾 mcpClientNames,匹配全名是 mcp - {连接名}。
字典 ai_mcp_client_name 默认 dump 没有,下拉空要按 YAML key 自补。只补字典、不配连接,对话调不到远端。和 ai_tool.toolIds 并行不互斥。开启见 AI 功能设计。

本系统截图:控制台 → 聊天角色。MCP 连接名勾在角色上,不是独立配置表。
