学习笔记 | 如何将MaxKB应用对外发布为MCP服务?

最近,我们注意到一些技术团队开始探讨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应用生态。

相关推荐
戴着眼镜看不清1 小时前
2025年最新开源Nano Banana Plus商业化系统本地搭建教程
人工智能·gemini·nanobanana
love530love2 小时前
EPGF 架构下的 Python 环境变量设置建议——Anaconda 路径精简后暴露 python 及工具到环境变量的配置记录 [三]
开发语言·人工智能·windows·python·架构·conda·epgf 架构
卡奥斯开源社区官方2 小时前
AI设计功能性病毒:从DNA语言模型到精准杀菌实战
人工智能·语言模型·自然语言处理
山石玉人2 小时前
lora微调大语言模型(qwen1.5-chat)
人工智能·语言模型·自然语言处理
小oo呆2 小时前
【自然语言处理与大模型】大模型应用开发四个场景
人工智能·自然语言处理
邂逅星河浪漫3 小时前
【Spring AI】Ollama大模型-智能对话实现+项目实战(Spring Boot + Vue)
java·人工智能·spring boot·vue·prompt·agent·ollama
jwybobo20074 小时前
使用Azure OpenAI Realtime模型实现语音助理
人工智能·azure
weixin_446260854 小时前
Perplexica - 开源AI搜索引擎,让搜索更智能
人工智能·搜索引擎·开源
盟接之桥4 小时前
盟接之桥EDI软件:中国制造全球化进程中的连接挑战与路径探索
大数据·网络·人工智能·安全·制造
视觉&物联智能5 小时前
【杂谈】-重构注意力经济:人工智能重塑短视频内容生态
人工智能·ai·重构·aigc·agi·短视频