kingdee_star
kingdee_star —— MCP-сервер Kingdee Cloud Star
GC032 Финансовый агент · сторона Kingdee (со стороны DingTalk уже подключена через DingTalk MCP, этот репозиторий — только Kingdee). Выравнивание по требованиям v2.1: этап 1 — только чтение + расчёт налога по счетам-фактурам + генерация报文 для待录入报销单.
Важное изменение в v0.2.0: аутентификация, эндпоинты и механизм расчёта налога переписаны по официальной документации и результатам тестов в песочнице. Константы эндпоинтов из v0.1.0 (типа
/finance/expense) на реальном шлюзе не существуют, не используйте их.
Содержание
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
Аутентификация (два уровня учётных данных, не перепутайте)
Уровень | Значение | Назначение |
ISV-приложение |
| Заголовок |
Арендатор/учётный набор |
| Расчёт |
Цепочка:
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-AddrТри частые ловушки (обработаны в signer.py, перед изменениями сначала посмотрите комментарии):
hash_hmac(..., raw_output=false)возвращает hex-строку, входом для base64 является эта hex-строка, а не raw digest.В строке для подписи имена заголовков — в нижнем регистре, причём nonce идёт первым, timestamp — вторым, что противоположно порядку, объявленному в
X-Api-SignHeaders; в конце также есть перевод строки.X-GW-Router-Addr(берётся изdomainв推送-сообщении, напримерhttps://tf.jdy.com) — обязательный глобальный заголовок, в официальной документации все 370 интерфейсов помечены как обязательные.
Быстрый старт
pip install -r requirements.txt
cp .env.example .env # 填入凭据
pytest -q # 单测应全绿
python test_connection.py # 联调:配置→网络→鉴权→只读→dry-runВ Windows просто дважды щёлкните run_test.bat (результат записывается в connection_test_result.txt).
Использование в качестве MCP-сервера
python -m kingdee_star.server # stdioОбъедините kingdee-star из mcp.config.json в конфигурацию mcpServers клиента (измените cwd и env).
Совместим с двумя мажорными версиями mcp — 1.x и 2.x.
Список инструментов (17)
Категория | Инструменты | Эндпоинт |
Мета/аутентификация |
| — |
Пробник |
|
|
Только чтение·счета |
|
|
Только чтение·проводки |
|
|
Только чтение·счета-фактуры |
|
|
Только чтение·поступления/платежи |
|
|
Только чтение·контрагенты |
|
|
Только чтение·возмещения |
|
|
Расчёт |
| локально, Kingdee не вызывается |
Генерация报文 |
| только dry-run, см. ниже |
Счета-фактуры по продажам и по закупкам — это не два эндпоинта, фильтрация через
bill_type/invoice_typeвfi/invoice_fp.
⚠ Реальные ограничения записи возмещений
В официальной открытой платформе всего 370 интерфейсов, в модуле ebx есть только один GET — «детали报销单»,
нет ни списка报销单, ни какого-либо интерфейса сохранения报销单.
Поэтому «автозаполнение черновика报销单 счетами-фактурами» из требований v2.1 не может быть записано в базу через открытый API:
kdy_fill_reimbursementвыдаёт только готовый к вводу报文 с уже рассчитанным налогом и прошедшей проверкой соответствия,dry_run=Falseбудет явно отклонён.Для реальной автоматической записи возможен только не-открытый API-канал (RPA / фронтовые интерфейсы / заказ кастомного интерфейса у Kingdee).
Границы безопасности
JDY_READONLY=true→ чистое чтение.Защитный слой — белый список + отказ по умолчанию: обход через изменение пути (хвостовой слэш, подпути, регистр) невозможен.
Запись платежей/проводок/счетов, отправка возмещений на утверждение → навсегда запрещено (
FORBID_ENDPOINTS), выполняется вручную.Полный аудит: журнал
kingdee_star.audit.
Механизм расчёта налога
Тип счёта-фактуры | Методика |
Специальный (专票) | Берётся налог и сумма без налога с самого счёта-фактуры |
Пассажирские перевозки (с указанным налогом) | Берётся налог с счёта-фактуры; при отсутствии |
Железнодорожный | ÷1,09×9% |
Авиационный | (цена билета + топливный сбор)÷1,09×9%, для проверки используется |
Автомобильный/водный | ÷1,03×3% |
Прочие обычные | Не подлежит вычету; если налог указан на счёте-фактуре, выдаётся предупреждение с требованием подтвердить тип вручную |
При вычете по пассажирским перевозкам отсутствует пассажир → проверка соответствия помечает как не подлежащий вычету. Отрицательные (красные) счета-фактуры отклоняются напрямую.
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