kingdee_star
kingdee_star —— Servidor MCP de Kingdee Cloud Galaxy
Agente financiero GC032 · lado Kingdee (el lado DingTalk ya está conectado mediante el MCP de DingTalk; este repositorio solo cubre Kingdee). Alineado con el requisito v2.1: Fase 1 solo lectura + cálculo de impuestos de facturas + generación de mensajes pendientes de registro para solicitudes de reembolso.
Cambio importante en v0.2.0: La autenticación, los endpoints y el motor de impuestos se han reescrito según la documentación oficial y las pruebas reales en el sandbox. Las constantes de endpoints de v0.1.0 (como
/finance/expense) no existen en la pasarela real; no las reutilice.
Índice
kingdee_star/
├── kingdee_star/
│ ├── config.py # 环境/凭据(两层:ISV + 租户),只读/写开关
│ ├── signer.py # jdy 网关签名(X-Api-Signature / app_signature)
│ ├── models.py # Invoice / ExpenseDraft / ExpenseLine
│ ├── tax_engine.py # 发票税额决策树(专票/铁路/航空/旅客运输/公路水路/其他)
│ ├── guards.py # 只读守卫 + 受控写入守卫(白名单+默认拒绝)+ 审计
│ └── star_client.py # 鉴权 + 只读查询 + 报销报文生成
├── test_connection.py # 分层联调测试(配置→网络→鉴权→只读→dry-run)
├── run_test.bat # Windows 一键跑:装依赖 + 单测 + 联调
├── tests/ # pytest:税额引擎 + 签名算法
└── .env.example # 配置模板Related MCP server: QuickBooks Online MCP Server
Autenticación (dos niveles de credenciales, no los confunda)
Nivel | Valores | Uso |
Aplicación ISV |
| Cabecera |
Cuenta del inquilino |
| Calcula |
Cadena:
POST /jdyconnector/app_management/push_app_authorize?outerInstanceId=...
→ data[0].appKey / appSecret
GET /jdyconnector/app_management/kingdee_auth_token?app_key=..&app_signature=..
→ data['app-token'](有效期约 2h)
GET /jdy/v2/{module}/{object}
→ 头带 app-token + X-Api-* 签名 + X-GW-Router-AddrTres trampas fáciles de pisar (signer.py ya las maneja; lea los comentarios antes de modificar):
hash_hmac(..., raw_output=false)devuelve una cadena hexadecimal; la entrada del base64 es este hex, no el digest crudo.Los nombres de cabecera en la cadena a firmar están en minúsculas, y el nonce va primero, el timestamp después, en orden inverso al declarado en
X-Api-SignHeaders; además hay un salto de línea al final.X-GW-Router-Addr(tomado deldomaindel mensaje push, p. ej.https://tf.jdy.com) es una cabecera obligatoria global; los 370 endpoints de la documentación oficial la marcan todos como obligatoria.
Inicio rápido
pip install -r requirements.txt
cp .env.example .env # 填入凭据
pytest -q # 单测应全绿
python test_connection.py # 联调:配置→网络→鉴权→只读→dry-runEn Windows, haga doble clic en run_test.bat (el resultado se escribe en connection_test_result.txt).
Uso como servidor MCP
python -m kingdee_star.server # stdioFusione kingdee-star de mcp.config.json en la configuración mcpServers del cliente (cambie cwd y env).
Compatible con las versiones principales 1.x y 2.x de mcp.
Lista de herramientas (17)
Categoría | Herramientas | Endpoint |
Meta/Autenticación |
| — |
Sonda |
|
|
Solo lectura·Cuentas |
|
|
Solo lectura·Comprobantes |
|
|
Solo lectura·Facturas |
|
|
Solo lectura·Cobros/Pagos |
|
|
Solo lectura·Partes relacionadas |
|
|
Solo lectura·Reembolsos |
|
|
Cálculo |
| Local, no llama a Kingdee |
Generación de mensajes |
| Solo dry-run, ver más abajo |
Las facturas de ventas/salientes y de compras/entrantes no son dos endpoints; se filtran con
bill_type/invoice_typedefi/invoice_fp.
⚠ Restricciones reales de escritura de reembolsos
La plataforma abierta oficial tiene 370 endpoints en total; el módulo ebx solo tiene un GET de «detalle de solicitud de reembolso»,
no hay ni lista de solicitudes de reembolso ni ningún endpoint de guardado de solicitudes de reembolso.
Por lo tanto, el «rellenado automático de borradores de solicitudes de reembolso con facturas» del requisito v2.1 no se puede persistir mediante la API abierta:
kdy_fill_reimbursementsolo produce mensajes pendientes de registro con impuestos ya calculados y validación de cumplimiento superada;dry_run=Falsese rechaza explícitamente.Para escribir automáticamente de verdad, solo queda el canal no-API-abierta (RPA / interfaz frontend / solicitar a Kingdee una interfaz personalizada).
Límites de seguridad
JDY_READONLY=true→ solo lectura pura.La capa de guardia es de lista blanca + denegación por defecto: las variaciones de ruta (barra final, subrutas, mayúsculas/minúsculas) no pueden eludirla.
Pagos/escritura de comprobantes/cuentas, envío de reembolsos a aprobación → prohibidos permanentemente (
FORBID_ENDPOINTS), ejecución manual.Auditoría completa: registro
kingdee_star.audit.
Motor de impuestos
Tipo de factura | Criterio |
Factura especial | Toma el impuesto indicado y el importe sin impuestos |
Transporte de pasajeros (impuesto indicado) | Toma el impuesto indicado; si falta |
Ferrocarril | ÷1,09×9 % |
Aviación | (Tarifa + recargo por combustible)÷1,09×9 %, validación con |
Carretera/Vía fluvial | ÷1,03×3 % |
Otras facturas ordinarias | No deducible; si la factura ya indica impuesto, lanza un aviso pidiendo confirmación manual del tipo de factura |
Deducción de transporte de pasajeros sin viajero → la validación de cumplimiento la marca como no deducible. Las facturas con importe negativo (facturas en rojo) se rechazan directamente.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables querying SAP SuccessFactors OData API metadata and managing Role-Based Permission (RBP) configurations. It provides tools for retrieving entity metadata, listing permission roles, and inspecting user-specific access rights through MCP-compatible clients.2911MIT
- AlicenseBqualityAmaintenanceEnables interaction with the QuickBooks Online Accounting API to manage customers, invoices, expenses, and payments through MCP-compatible clients. It supports comprehensive financial workflows and the generation of reports like Profit and Loss or Balance Sheets.1332Apache 2.0
- AlicenseBqualityBmaintenanceEnables AI assistants to operate Kingdee Cloud Star ERP via natural language, including querying, creating, submitting, auditing, and deleting business documents.8157MIT
- FlicenseNot gradedqualityBmaintenanceExposes enterprise WeChat approval, report, and check-in data reading capabilities through the MCP protocol, enabling WorkBuddy and CodeBuddy to read historical business data.7
Related MCP Connectors
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
PayPal MCP Pack — read-only access to PayPal transactions, orders, invoices, and disputes.
Remote MCP for Japan's EDINET DB — 3,800 listed companies' financials & filings (OAuth)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/adambbhe/kingdee-star-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server