Skip to main content
Glama
adambbhe

kingdee_star

by adambbhe

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-приложение

JDY_CLIENT_ID / JDY_CLIENT_SECRET

Заголовок X-Api-ClientID + HMAC-ключ для X-Api-Signature

Арендатор/учётный набор

JDY_APP_KEY / JDY_APP_SECRET

Расчёт app_signature, обмен на app-token

Цепочка:

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, перед изменениями сначала посмотрите комментарии):

  1. hash_hmac(..., raw_output=false) возвращает hex-строку, входом для base64 является эта hex-строка, а не raw digest.

  2. В строке для подписи имена заголовков — в нижнем регистре, причём nonce идёт первым, timestamp — вторым, что противоположно порядку, объявленному в X-Api-SignHeaders; в конце также есть перевод строки.

  3. 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)

Категория

Инструменты

Эндпоинт

Мета/аутентификация

kdy_health kdy_auth_fetch_token

Пробник

kdy_current_user

sys/current_user_info

Только чтение·счета

kdy_list_account kdy_list_account_type

fi/account fi/account_type

Только чтение·проводки

kdy_list_voucher kdy_get_voucher

fi/voucher fi/voucher_detail

Только чтение·счета-фактуры

kdy_list_invoice kdy_get_invoice

fi/invoice_fp fi/invoice_detail

Только чтение·поступления/платежи

kdy_list_ar_receive kdy_list_ap_pay

arap/ar_credit arap/ap_credit

Только чтение·контрагенты

kdy_reconciliation kdy_customer_debt

arap/reconciliation_statement arap/customer_debt

Только чтение·возмещения

kdy_get_reimb_detail kdy_list_expense

ebx/reimb_detail (интерфейса списка не существует)

Расчёт

kdy_calc_invoice_tax

локально, Kingdee не вызывается

Генерация报文

kdy_fill_reimbursement

только 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.

Механизм расчёта налога

Тип счёта-фактуры

Методика

Специальный (专票)

Берётся налог и сумма без налога с самого счёта-фактуры

Пассажирские перевозки (с указанным налогом)

Берётся налог с счёта-фактуры; при отсутствии face_tax — явная ошибка, без тихого понижения

Железнодорожный

÷1,09×9%

Авиационный

(цена билета + топливный сбор)÷1,09×9%, для проверки используется taxable_base(), а не total

Автомобильный/водный

÷1,03×3%

Прочие обычные

Не подлежит вычету; если налог указан на счёте-фактуре, выдаётся предупреждение с требованием подтвердить тип вручную

При вычете по пассажирским перевозкам отсутствует пассажир → проверка соответствия помечает как не подлежащий вычету. Отрицательные (красные) счета-фактуры отклоняются напрямую.

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    B
    maintenance
    Enables 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.
    29
    11
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Enables 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.
    133
    2
    Apache 2.0
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI assistants to operate Kingdee Cloud Star ERP via natural language, including querying, creating, submitting, auditing, and deleting business documents.
    81
    57
    MIT

View all related MCP servers

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)

View all MCP Connectors

Latest Blog Posts

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