最近,我们注意到一些技术团队开始探讨MaxKB是否支持以MCP(Model Context Protocol,模型上下文协议)的方式对外提供服务。这一需求的背景非常明确:随着企业中多个AI智能体(例如客服、财务、运维、人事等)陆续部署,大家越来越需要一个能够统一调度、动态响应的入口。
传统做法是预先固化工作流,然后在MaxKB应用的高级编排中通过逻辑判断调用任意一个智能体。这样的做法不仅灵活性低,面对以下几类实际需求时也会显得力不从心:
■业务需求变更频繁: 业务规则、制度、流程经常调整,固定流程无法实时适配;
■ 上下文动态组合: 用户单次提出的问题可能涉及多个领域,例如"帮我订一张去北京的高铁票,并确认差旅标准"。这一场景需要同时调用财务、差旅和OA三个智能体,传统的编排方式必须提前穷举所有组合,使得工作流体量膨胀,同时缺乏扩展性;
■ 智能体动态上下线: 每新增或下线一个智能体时,必须修改整个工作流的编排逻辑;
■ 用户意图变化: 对话中用户随时追加约束或修改条件时,传统节点难以回溯,引入工作流上下文又容易导致Token大量消耗与大模型幻觉增加;
■ 智能体能力无法协同: 无法让各个智能体在运行时互相调用和配合。
一、解决方案
MaxKB应用启用API KEY后,利用对外提供的API接口,将其封装为标准MCP Tool。每个应用的配置、功能与工具描述可以作为部署变量动态提供给大模型上下文,从而实现针对不同应用分别部署独立的MCP服务。
此方案目前已实现功能包括:
■ 符合标准的MCP Tool接口,可以被Claude Desktop、Cursor、Dify、LangChain等客户端直接调用;
■ 支持流式传输(streamable_http)。
基于上述功能,将MaxKB应用发布为MCP服务后再接入到业务系统智能体,可以带来以下优势:
■ 零编排调用: 支持MaxKB以及Claude、Cursor、Dify、LangChain等MCP兼容客户端在对话过程中动态识别和调用MaxKB工具,无需预定义流程;
■ 即插即用: 新增/下线应用仅需调整MCP配置,无需重构整体工作流;
■ 多智能体并行处理: 用户单次查询可以同时触发多个MaxKB应用的MCP Tool(例如财务+人事+运维),结果自动汇总返回;
■ 用户问题动态调整: 通过大模型提示词,在用户的问题无法回答或者检索不到内容时,让AI动态调整用户问题(比如当用户提问"如何报销差旅"没有检索到答案时,可以让AI尝试改写用户问题为"出差发票如何申请报销"),然后调用MCP应用查询。
二、实现方法
1. 适用于MaxKB V1版本
已经打包好镜像,下载后可直接运行:
下载链接:
js
https://f2c-east-1258036468.cos.ap-shanghai.myqcloud.com/MaxKB%E5%BA%94%E7%94%A8%EF%BC%88%E5%8B%BF%E5%88%A0%EF%BC%89/maxkb-app-mcp.tar
加载镜像使用以下命令:
js
> docker load -i maxkb-app-mcp.tar
> 配置docker-compose.yml如下:
> version:'3.8'
> services:
> mcp-maxkb-server:
> image: maxkb-app-mcp:latest
> container_name: maxkb-mcp-app
> ports:
> - "8000:8000"# Host:Container port mapping
> environment:
> API_KEY:"application-30XXXXX"# 替换为你的实际MaxKB应用 API 密钥
> BASE_URL:"https://xxxxxxxx/api/application" # 替换为你的实际部署的MaxKB地址,并加上/api/application
> APP_ID:"53e12e8e-ac93-11ef-959e-0242xxxxxxxac180002"# 替换为你的实际MaxKB应用 API ID
> SERVER_NAME:"飞致云公司员工手册查询助手"# MaxKB应用名称,修改你时间应用名称
> TOOL_NAME:"ai_chat"# MCP工具名称,可以自定义
> TOOL_DESCRIPTION:"发送消息关于查询飞致云员工手册查询信息,提供飞致云公司员工手册查询能力,支持查询出差、发票、入职、人事等员工手册等相关内容"# 重点描述为此MaxKB应用具备的能力和作用,此处描述越详细越好,能够提供MCP使用的准确率
> restart: always
2. 适用于MaxKB V2版本
已经打包好镜像,下载后可直接运行:
下载链接:
https://f2c-east-1258036468.cos.ap-shanghai.myqcloud.com/MaxKB%E5%BA%94%E7%94%A8%EF%BC%88%E5%8B%BF%E5%88%A0%EF%BC%89/maxkbv2-app-mcp.tar
加载镜像使用以下命令:
css
docker load -i maxkbv2-app-mcp.tar
配置docker-compose.yml如下:
arduino
version:'3.8'services: mcp-maxkbv2-server: image: maxkbv2-app-mcp:latest container_name: maxkbv2-mcp-app ports: -"18010:8000"# 将主机的8000端口映射到容器的8000端口 environment: # 设置环境变量 API_KEY:"application-xxxxx"# 替换为你的实际 API 密钥 BASE_URL:"https://xxxxxxx"#替换为你的实际部署的MaxKB地址 SERVER_NAME:"医院HIS系统智能问答系统" TOOL_NAME:"maxkb_chat" TOOL_DESCRIPTION:"发送消息查询医院HIS系统使用说明,包含出入院、护士站、住院、门诊、药房等使用模块" restart: always
启动并查看日志:
docker-compose up -ddocker logs -f maxkbv2-mcp-app
查看日志,看到如下界面即为成功。
三、使用方式
1. 配置MCP服务
在MaxKB应用的AI对话节点配置MCP工具。JSON格式如下:
json
{ "maxkb-mcp": { "url":"http://hostip:port/mcp", "transport":"streamable_http" }}
此外,也可以采用MaxKB的MCP调用节点来配置MCP。在下方工具列表中,可以查看刚刚我们在docker-compose文件中自定义的MaxKB应用MCP工具及描述。

2. 测试问答效果
在高级编排页面调试对话,大模型将根据用户的问题,自动调用对应的MaxKB应用MCP工具获取答案并回复。

四、总结
通过上述方案,企业可以直接将现有的MaxKB智能体应用,以MCP的方式对外提供服务,无需开发即可显著提升智能体应用的跨域协作能力,同时也能够大幅降低业务智能体扩展与迭代的复杂度。依托MCP协议,MaxKB能够帮助企业快速构建可扩展、易维护的一体化AI应用生态。