kingdee_star
kingdee_star —— Kingdee Cloud MCP Server
GC032 Finanz-Agent · Kingdee-Seite (die DingTalk-Seite ist bereits über DingTalk MCP angebunden, dieses Repository macht nur Kingdee). Abgestimmt auf Anforderung v2.1: Phase 1 nur lesend + Rechnungssteuerberechnung + Erzeugung von Meldungen für noch zu erfassende Spesenabrechnungen.
Wichtige Änderung in v0.2.0: Authentifizierung, Endpunkte und Steuer-Engine wurden gemäß offizieller Dokumentation und Sandbox-Tests neu geschrieben. Die Endpunkt-Konstanten aus v0.1.0 (wie
/finance/expense) existieren auf dem echten Gateway nicht, bitte nicht weiterverwenden.
Inhaltsverzeichnis
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
Authentifizierung (zwei Ebenen von Anmeldedaten, nicht verwechseln)
Ebene | Wert | Verwendung |
ISV-App |
|
|
Mandanten-Kontenrahmen |
| Berechnung von |
Kette:
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-AddrDrei häufige Stolperfallen (in signer.py bereits behandelt, vor Änderungen zuerst die Kommentare lesen):
hash_hmac(..., raw_output=false)liefert einen Hex-String zurück, die Base64-Eingabe ist dieser Hex-String, nicht der rohe Digest.Die Header-Namen in der zu signierenden Zeichenkette sind kleingeschrieben, und die nonce steht vorne, der timestamp hinten – entgegengesetzt zur Reihenfolge, die in
X-Api-SignHeadersdeklariert ist; am Ende steht zusätzlich ein Zeilenumbruch.X-GW-Router-Addr(aus demdomain-Feld der Push-Meldung, z. B.https://tf.jdy.com) ist ein global verpflichtender Header – in der offiziellen Dokumentation sind alle 370 Schnittstellen als Pflichtfeld markiert.
Schnellstart
pip install -r requirements.txt
cp .env.example .env # 填入凭据
pytest -q # 单测应全绿
python test_connection.py # 联调:配置→网络→鉴权→只读→dry-runUnter Windows einfach run_test.bat doppelklicken (Ergebnis wird in connection_test_result.txt geschrieben).
Verwendung als MCP Server
python -m kingdee_star.server # stdiokingdee-star aus mcp.config.json in die mcpServers-Konfiguration des Clients übernehmen (cwd und env anpassen).
Kompatibel mit den beiden Hauptversionen mcp 1.x und 2.x.
Werkzeugliste (17)
Kategorie | Werkzeug | Endpunkt |
Meta/Authentifizierung |
| — |
Sonde |
|
|
Nur lesen·Konten |
|
|
Nur lesen·Belege |
|
|
Nur lesen·Rechnungen |
|
|
Nur lesen·Zahlungen |
|
|
Nur lesen·Geschäftsbeziehungen |
|
|
Nur lesen·Spesen |
|
|
Berechnung |
| lokal, ruft Kingdee nicht auf |
Meldungserzeugung |
| nur dry-run, siehe unten |
Ausgangs-/Eingangsrechnungen sind nicht zwei Endpunkte, sondern werden über
bill_type/invoice_typevonfi/invoice_fpgefiltert.
⚠ Realistische Einschränkungen beim Schreiben von Spesenabrechnungen
Die offizielle offene Plattform umfasst insgesamt 370 Schnittstellen, das ebx-Modul hat nur ein einziges GET für „Spesenabrechnungsdetails",
es gibt weder eine Spesenabrechnungsliste noch irgendeine Schnittstelle zum Speichern von Spesenabrechnungen.
Daher kann das „automatische Ausfüllen von Spesenabrechnungsentwürfen mit Rechnungen" aus Anforderung v2.1 nicht über die offene API in der Datenbank gespeichert werden:
kdy_fill_reimbursementerzeugt nur Meldungen mit bereits berechneter Steuer und bestandener Compliance-Prüfung,dry_run=Falsewird explizit abgelehnt.Für eine echte automatische Übernahme bleibt nur der Weg über nicht-offene API-Kanäle (RPA / Frontend-Schnittstellen / bei Kingdee eine kundenspezifische Schnittstelle anfragen).
Sicherheitsgrenzen
JDY_READONLY=true→ rein lesend.Die Schutzschicht ist Whitelist + Standard-Ablehnung: Pfadmanipulationen (nachgestellter Schrägstrich, Unterpfade, Groß-/Kleinschreibung) können nicht umgangen werden.
Zahlungen/Belege/Konten schreiben, Spesenabrechnungen zur Genehmigung einreichen → dauerhaft verboten (
FORBID_ENDPOINTS), nur manuell auszuführen.Vollständige Prüfung:
kingdee_star.audit-Log.
Steuer-Engine
Rechnungsart | Berechnungsmethode |
Sonderrechnung (MwSt.) | Steuerbetrag und Nettobetrag von der Rechnung übernehmen |
Personenbeförderung (mit ausgewiesenem Steuerbetrag) | Steuerbetrag von der Rechnung übernehmen; fehlendes |
Bahn | ÷1,09×9% |
Flug | (Ticketpreis+Kraftstoffzuschlag)÷1,09×9%, Prüfung mit |
Straße/Wasser | ÷1,03×3% |
Sonstige Normalrechnungen | Nicht abzugsfähig; wenn ein Steuerbetrag ausgewiesen ist, wird ein Hinweis zur manuellen Bestätigung der Rechnungsart ausgegeben |
Fehlt bei der Personenbeförderung die reisende Person → Compliance-Prüfung setzt auf nicht abzugsfähig. Negative (rote) Rechnungen werden direkt abgelehnt.
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