Kingdee MCP Server —— 让 AI 直接操作金蝶云星空 ERP
⚠️ 本项目为第三方开源,非金蝶官方出品,与金蝶软件(Kingdee)无任何隶属或授权关系。

Kingdee MCP Server 是金蝶云星空(Kingdee Cloud Star)ERP 的 MCP(Model Context Protocol) 服务端,让 Claude、Cursor、Windsurf、Cline 等 AI 助手能够通过自然语言直接操作金蝶 ERP 系统。
官方网站:https://wahailong.github.io/KingdeeMCP/
为什么需要金蝶 MCP?
传统 ERP 操作繁琐,需要在多个界面间切换。有了 金蝶 MCP Server,你可以:
- 直接对 AI 说:"查询本月已审核的采购订单"
- 直接对 AI 说:"帮我新建一张销售订单"
- 直接对 AI 说:"审核这几张入库单"
- 在微信、WhatsApp、Telegram 中通过 OpenClaw 操作金蝶
AI 会自动调用金蝶 API 完成操作,无需手动登录 ERP 界面。
对实施与开发的价值
实施阶段
- 快速验证配置:用自然语言直接查数据,无需登录 ERP 界面逐层点菜单
- 数据核查:批量查询单据状态、库存数量,快速定位问题
- 客户演示:现场说"查一下你们的采购订单",AI 实时返回结果,演示效果直观
日常使用
- 业务人员自助查询,减少依赖实施人员的频率
- 批量提交、审核单据,替代重复的手工操作
- 通过微信 / WhatsApp 直接操作金蝶,无需打开 ERP 客户端
开发阶段
- 用
kingdee_list_forms、kingdee_get_fields 快速探索表单结构,替代翻文档
- 自然语言调试接口,比手写 API 请求效率更高
- 可作为内部工具基础进行二次开发,快速扩展自定义工具
支持的 AI 客户端
功能特性
- 101 个工具:覆盖生产、成本、资产、审计、采购、销售、库存、单据附件、财务、委外加工、财务报表等 17 大业务域
- 元数据动态查询:
get_bill_template / validate_bill / refresh_metadata,元数据本地缓存
- 4 个 SQL Server 探查工具:搜索表、搜索字段、查看表结构、金蝶元数据候选发现
- 自然语言操作:用中文直接描述需求,AI 自动转换为 API 调用
- 异步高性能:基于 async/await,支持并发请求
- 自动重试:Session 过期自动重登,连接失败自动重试
- 安全认证:采用金蝶官方 WebAPI 认证,账号密码(ValidateUser)登录,兼容公有云和私有云,无第三方应用授权
- 类型安全:基于 Pydantic 数据验证,参数自动补全
- 易于扩展:基于 FastMCP 框架,轻松添加自定义工具
- 使用示例:提供 9 个常见业务场景示例,覆盖查询、新建、审核、下推等操作
快速安装
或使用 uvx 直接运行(推荐,无需手动安装):
远程部署(HTTP / SSE 模式)
默认以 stdio 模式运行(本地 MCP 客户端通过子进程调用)。若要把服务部署到服务器、或用网关/托管平台(如 Smithery)远程调用、免客户端安装,可改用 HTTP 类传输:
# SSE 模式(兼容性好,旧客户端首选)
uvx kingdee-mcp --transport sse --host 0.0.0.0 --port 8000
# Streamable HTTP 模式(MCP 新版推荐)
uvx kingdee-mcp --transport streamable-http --host 0.0.0.0 --port 8000
- SSE 端点:
http://<host>:<port>/sse
- Streamable HTTP 端点:
http://<host>:<port>/mcp
远程模式下仍需金蝶账号密码(通过 KINGDEE_* 环境变量注入)。HTTP 只是传输通道,并不替代金蝶认证——客户端连上来后,工具调用照样要走金蝶 ValidateUser 登录。
也可用环境变量代替命令行参数:KINGDEE_MCP_TRANSPORT(stdio/sse/streamable-http)、KINGDEE_MCP_HOST、KINGDEE_MCP_PORT。
Docker 部署
不想在服务器上折腾 Python 环境的,直接用容器。
方式一:拉现成镜像(最快)
docker run --rm -p 8000:8000 --env-file .env ghcr.io/wahailong/kingdeemcp:latest
镜像随每次发版自动构建推送,latest 跟最新 tag 走,也可以锁定具体版本号如 :0.2.2。
方式二:docker compose(推荐长期运行)
cp .env.example .env # 填 4 个 KINGDEE_* 变量
docker compose up -d
docker compose logs -f
方式三:本地自己构建
docker build -t kingdee-mcp .
# 国内网络慢可换 pip 源:
docker build --build-arg PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/ -t kingdee-mcp .
起来之后 MCP 客户端连 http://<宿主机IP>:8000/mcp(Streamable HTTP)。
几个容易踩的点:
- 容器默认以
streamable-http 模式监听 0.0.0.0:8000。别改回 127.0.0.1 —— 那样只有容器内部能连,宿主机映射了端口也访问不到。
- 想让容器当本地 MCP 客户端的子进程用(stdio 模式):
docker run -i --rm --env-file .env -e KINGDEE_MCP_TRANSPORT=stdio ghcr.io/wahailong/kingdeemcp:latest
- 配置对不对,先自检一把(不起服务,只跑一次金蝶登录):
docker run --rm --env-file .env ghcr.io/wahailong/kingdeemcp:latest --check
- 容器里跑的是金蝶 API 那部分。SQL Server 直连探查工具还需要额外装微软 ODBC 驱动(
msodbcsql18),镜像里只预装了 unixodbc 基础库。
配置教程
第一步:金蝶云星空后台授权
- 准备一个金蝶云星空账号(建议专用集成账号,不要用 Administrator)
- 本服务采用**账号密码(ValidateUser)**登录,无需创建第三方应用、也无需 AppID / AppSecret
- 为该账号分配所需模块的操作权限
第二步:配置 MCP 客户端
在你的 MCP 客户端配置文件中添加以下内容:
{
"mcpServers": {
"kingdee": {
"command": "uvx",
"args": ["kingdee-mcp"],
"env": {
"KINGDEE_SERVER_URL": "http://your-server/k3cloud/",
"KINGDEE_ACCT_ID": "你的账套ID",
"KINGDEE_USERNAME": "金蝶账号",
"KINGDEE_PASSWORD": "金蝶账号密码"
}
}
}
}
配置文件位置:
| 客户端 | 配置文件路径 |
|---|
| Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Cursor | Settings → MCP → Add Server |
| Claude Code CLI | ~/.claude/settings.json |
| OpenClaw | 使用 openclaw mcp set 命令配置,自动热加载无需重启 |
第三步:重启客户端
配置完成后重启你的 MCP 客户端即可开始使用。
OpenClaw 用户:使用 openclaw mcp set 配置后会自动热加载,无需重启网关。
环境变量说明
| 变量 | 说明 | 示例 |
|---|
KINGDEE_SERVER_URL | 金蝶服务器地址(需包含 /k3cloud/) | http://your-server/k3cloud/ |
KINGDEE_ACCT_ID | 账套ID | your-acct-id |
KINGDEE_USERNAME | 金蝶账号 | your-username |
KINGDEE_PASSWORD | 金蝶账号密码(ValidateUser 登录,必填) | your-password |
KINGDEE_ATTACHMENT_TIMEOUT | 附件传输读写等待时间(秒,可选,默认 120;连接超时仍为 30) | 120 |
MCP_SQLSERVER_HOST | SQL Server 主机(可选,用于数据库探查) | localhost |
MCP_SQLSERVER_PORT | SQL Server 端口(默认 1433) | 1433 |
MCP_SQLSERVER_DATABASE | 数据库名 | AIS20260309171043 |
MCP_SQLSERVER_USER | SQL Server 用户(建议只读账号) | sa |
MCP_SQLSERVER_PASSWORD | SQL Server 密码 | xxxx |
⚠️ 从 0.1.0 升级的破坏性变更(重要)
0.2.0 起,登录方式从「第三方应用授权(AppID + AppSecret)」改为「账号密码(ValidateUser)」,旧版的 KINGDEE_APP_ID / KINGDEE_APP_SEC 环境变量已失效。
如果你之前的 MCP 客户端配置里用的是 AppID / AppSecret,升级后会出现登录失败。请按以下方式迁移:
- 在金蝶云星空创建一个专用集成账号(不要用 Administrator);
- 把 MCP 配置里的环境变量改为:删除
KINGDEE_APP_ID、KINGDEE_APP_SEC,新增 KINGDEE_PASSWORD = 该集成账号的密码;
- 重启 MCP 客户端。
之所以改用账号密码,是因为账号密码(ValidateUser) 是以真实用户身份执行 WebAPI、会携带该用户自身的业务权限(含 WebApi 数据权限控制);而第三方应用授权(LoginByAppSecret) 以应用身份登录、不携带真实用户权限,报表等依赖数据权限的查询会受应用授权范围限制,无法按用户权限正常执行。
可用工具列表
共 101 个工具,按业务域分组(每组列出代表性工具,完整清单见 src/kingdee_mcp/server.py):
| 业务域 | 数量 | 代表性工具 |
|---|
| 通用单据 | 15 | kingdee_save_bill · kingdee_submit_bills · kingdee_audit_bills · kingdee_unaudit_bills · kingdee_delete_bills · kingdee_validate_bill · kingdee_push_bill · kingdee_close_bill |
| 生产制造 | 12 | kingdee_query_production_orders · kingdee_save_production_order · kingdee_query_mrp_result · kingdee_push_production_pick |
| 成本核算 | 12 | kingdee_query_material_cost · kingdee_query_cost_calculation · kingdee_save_cost_adjustment · kingdee_query_finished_product_cost |
| 固定资产 | 6 | kingdee_query_fixed_asset · kingdee_save_asset · kingdee_query_asset_depreciation |
| 库存 | 9 | kingdee_query_inventory · kingdee_query_stock_bills · kingdee_push_stock_transfer · kingdee_query_transfer_direct |
| 委外加工 | 1 | kingdee_query_outsource_orders(委外订单 SUB_SubReqOrder:在制量/逾期/回货交期) |
| 审计合规 | 6 | kingdee_query_operation_logs · kingdee_query_audit_log · kingdee_query_change_log · kingdee_query_permission_changes · kingdee_create_and_audit · kingdee_push_and_audit |
| 采购 | 5 | kingdee_query_purchase_orders · kingdee_query_purchase_requisitions · kingdee_query_purchase_inquiry · kingdee_query_purchase_order_progress · kingdee_query_supplier_quotes |
| 销售 | 4 | kingdee_query_sale_orders · kingdee_query_sale_quotations · kingdee_query_sales_outstock · kingdee_query_delivery_notice |
| 工作流/审批 | 4 | kingdee_query_pending_approvals · kingdee_workflow_approve · kingdee_query_approval_flow |
| 基础资料/权限 | 5 | kingdee_query_materials · kingdee_query_partners · kingdee_query_user · kingdee_query_role · kingdee_query_permission |
| 元数据/探查 | 8 | kingdee_get_fields · kingdee_list_forms · kingdee_get_bill_template · kingdee_discover_tables |
| 系统/其他 | 8 | kingdee_query_system_config · kingdee_query_quality_inspections · kingdee_query_expense_reimburse · kingdee_query_number_rule · kingdee_query_loan_balance · kingdee_query_data_backup |
| 统计 | 2 | kingdee_usage_stats · kingdee_usage_report |
| 财务报表 | 1 | kingdee_query_report(GetSysReportData 专用端点,查科目余额表/账龄分析表等总账报表) |
| 单据附件 | 2 | kingdee_upload_attachment · kingdee_download_attachment(表头/分录附件、分块传输) |
| 财务收款 | 1 | kingdee_query_receipts(收款单 AR_Receivable:实收金额/结算方式/核销金额) |
元数据探查含 4 个 SQL Server 工具(kingdee_discover_tables / kingdee_discover_columns / kingdee_describe_table / kingdee_discover_metadata_candidates),需配置 MCP_SQLSERVER_* 环境变量。
元数据查询
| 工具名称 | 功能说明 |
|---|
kingdee_list_forms | 搜索可用表单(不知道 form_id 时使用) |
kingdee_get_fields | 获取表单字段列表 |
数据查询(只读操作)