name: kingdee-mcp-dev
description: |
Knowledge base for the Kingdee MCP Dev Squad. Covers how to integrate the Kingdee Cloud Star OpenAPI (ApiDoc) interfaces into the kingdee-mcp Python+FastMCP project: WebAPI login/metadata caching, field-discovery SOP, 二开 (customized) bill pitfalls, and the ApiDoc coverage tracking template.
metadata:
version: "1.0.0"
金蝶 MCP 开发团 · 知识库
本 Skill 是 kingdee-mcp-dev 专家团的共享知识底座,供主理人(龚联达)与四位团员(范探源 / 寇豆码 / 严过关 / 温书成)在协作时查阅。目标是把金蝶开放平台 ApiDoc 的全部接口集成进 D:\AI\projects\kingdee-mcp。
项目事实(已实证,勿凭记忆)
- 源码位置:
D:\AI\projects\kingdee-mcp,Python + FastMCP。
- 工具规模:
src/kingdee_mcp/server.py 当前 97 个 @mcp.tool(2026-08-07 实测 97;本日新增 6 个标准动作通用工具 kingdee_cancel_bills / kingdee_void_bills / kingdee_close_bill / kingdee_unclose_bill / kingdee_forbid_bills / kingdee_enable_bills,覆盖 14/15 标准动作;报表由 kingdee_query_report 覆盖;覆盖 13 大业务域 + 4 个 SQL Server 探查)。
- 构建后端:
hatchling(python -m build),dist/ 产物 kingdee_mcp-0.2.0-py3-none-any.whl / .tar.gz。
- 运行环境:金蝶 K3Cloud
http://<K3Cloud-Server>/k3cloud/,账套 <ACCT_ID>(<公司名>)。
- 登录方式:仅账号密码(
ValidateUser),无第三方应用授权;配置 KINGDEE_SERVER_URL / KINGDEE_ACCT_ID / KINGDEE_USERNAME / KINGDEE_PASSWORD。
- WebAPI 权限拒绝返回
[[{'Result':{报错}}]](r[0][0] 是 dict),正常数据返回 [[值,...]](r[0][0] 是标量)—— 写查询脚本务必用此区分,否则会把错误当数据。
ApiDoc 结构(浏览器实测)
https://openapi.open.kingdee.com/ApiDoc 是 Element UI(el-tree) SPA,需真实浏览器爬取。结构为 16 业务领域 → 77 模块 → 操作(标准金蝶 WebAPI 动作集):
- 16 业务领域:员工服务、财务会计、税务管理、成本管理、资产管理、管理会计、供应链、电商与分销、零售管理、生产制造、质量管理、星空云服务、基础管理、BOS、移动应用、PLM。
- 标准操作动作(每个单据模块通用):保存 / 提交 / 审核 / 反审核 / 撤销 / 下推 / 作废 / 整单关闭 / 反关闭 / 批量保存 / 单据查询 / 查看 / 暂存 / 删除,外加部分领域专属动作(如费用类「申请单退款」)。
- 原始抓取树见
references/api-inventory-raw.json(领域→模块已全量;操作级仅在「员工服务」域完整抓取,其余域操作需逐模块切换抓取)。
集成工作流(团队 SOP 映射)
| 阶段 | 负责团员 | 关键动作 | 输入 → 输出 |
|---|
| 探字段 / WebAPI 映射 | 范探源 | kingdee_get_fields 探 FormId 与字段 Key;映射 ApiDoc 操作到 Save/Submit/Audit/Push/ExecuteBillQuery | 任务 → 字段/操作映射表 |
实现 @mcp.tool | 寇豆码 | 复用提速工具,落地工具代码 | 映射表 → 工具签名 |
| 测试回归 | 严过关 | bin/kmcp test + 用例;区分权限拒绝 vs 正常数据 | 工具签名 → 回归报告 |
| 文档 / 发布 | 温书成 | 更新 docs/、mcp_optimization_notes.md、CHANGELOG;bin/kmcp build → twine upload → Pages | 变更 → 发布清单 |
提速工具(已落地 server.py,优先复用)
kingdee_validate_bill:保存前校验,返回 auto_fixes / missing_required / entry_issues / suggestions,不真正保存。
kingdee_get_bill_template:取已验证 model 骨架,支持 SAL_Quotation / SAL_SaleOrder / PUR_PurchaseOrder。
kingdee_refresh_metadata:强制刷新元数据。
- 元数据已落盘缓存到
~/.workbuddy/kingdee_metadata_cache/。
推荐工作流:get_bill_template → 填数 → validate_bill → save_bill。
必读参考
references/webapi-login-cache.md — 金蝶 WebAPI 登录机制、元数据缓存读取与刷新。
references/field-discovery-sop.md — kingdee_get_fields 探字段的标准操作流程与返回解析。
references/ercustom-pitfalls.md — 本环境二开单据坑(SAL_SaleOrder 二开、TRNV_Receipt/PaymentSlip、FCUSTID 全大写、FBaseUnitId 等)。
references/apidoc-coverage-template.md — ApiDoc 覆盖进度跟踪表模板,配合 bin/kmcp coverage 使用。
references/avoid-duplication.md — 防止重复开发红线:通用/专用工具清单 + 决策树 + bin/kmcp tools 查重用法。开工前必读。
助手命令(bin/kmcp)
团队配套 CLI bin/kmcp:
bin/kmcp test — 跑 evals/ + tests/ 回归(连真实金蝶环境)。
bin/kmcp build — python -m build 构建 wheel / sdist。
bin/kmcp list-tools — 统计 @mcp.tool 数量。
bin/kmcp coverage — 对照 references/api-inventory-raw.json 输出 ApiDoc 覆盖进度。