
NULA.BG
io.github.encorp-io由 GitHub 账号 encorp-io 发布v0.1.0更新于 Oct 24, 2026
Bulgarian accounting platform nula.bg: invoices, bills, OCR, customers, inventory and banking.
概览
面向保加利亚会计平台 nula.bg 的非官方 MCP 服务器,让助手查询和管理发票、采购单、OCR、客户、库存与银行数据。
- 可以做什么
- 按公司编号或增值税号查询企业,并列出客户与往来单位、商品价格与库存、银行账户与流水,附带应收账龄、月度汇总和银行流水与发票的匹配建议;启用相应模块时还可查看 NRA 与 NOI 单据状态。搜索、预览、创建、修改发票,标记已付或已发送,下载 PDF、发送邮件,以及删除最后一张发票。搜索和创建采购单(含第 117 条协议),并更新采购单分类。从本地磁盘上传最多 10 份文档做 OCR,并查看识别状态与配额。提供开票、处理票据、月末复核和催收逾期款的提示模板,以及零税率依据、协议依据和枚举值等资源。
- 适用场景
- 适合已在用 nula.bg 的保加利亚企业和会计,希望让助手在对话中起草和开具发票、用 OCR 归档采购单据、跟进应收账款并核对银行付款。建议先以只读模式试用评估。
- 运行要求
- 通过 npx 或 Claude Desktop 的 .mcpb 包在本地以 stdio 运行;npx 方式需要 Node.js 20 或更高版本。需要 nula.bg 的 API 密钥,放在 NULA_API_KEY 中;多家公司可用 NULA_PROFILES 提供别名到密钥的 JSON 映射。需要访问 nula.bg 的网络。可选设置包括模块、默认币种与语言、下载目录和允许上传的文件夹。
安装
在 SourceWeft 中
- 打开 控制台中的 NULA.BG,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
nulabg-mcp
[CI] [npm] [Node.js] [License: MIT]
MCP сървър за счетоводната платформа nula.bg. Дава на Claude и на други AI асистенти (Claude Desktop, Claude Code, Cursor, VS Code…) достъп до вашите фактури, покупки, OCR, клиенти, склад и банки чрез nula.bg API ключ.
Неофициален клиент. Проектът не е свързан с nula.bg. Работи върху публичното им REST API.
🇬🇧 In English: an MCP server for nula.bg, a Bulgarian cloud accounting platform — invoices, bills with OCR, customers, inventory, bank feeds and derived reports, over an API key. Read-only by default. Install the
.mcpbbundle in Claude Desktop, or runnpx -y nulabg-mcpwithNULA_API_KEYset. The rest of this README is in Bulgarian, because the platform, its documents and its users are; the tool descriptions the model sees are in English. Issues and pull requests in either language are welcome.
Какво може
21 tools при разрешени промени, 13 в режим само за четене (по подразбиране), 25 с включени nra и noi.
При няколко фирми се появява и nula_list_companies.
Освен това има:
- Prompts:
issue-invoice,process-receipts,month-end-review,collect-overdue. - Resources: основанията за 0% ДДС, основанията за протоколи, всички стойности на enum-ите и PDF на фактура.
Примерни заявки:
- „Издай фактура на ЕИК 123456789 за 10 часа консултации по 60 € без ДДС, платима по банка до 15 дни.“
- „Качи всички PDF-и от ~/Documents/Фактури/Септември като покупки и ми покажи какво е разпознато.“
- „Кои клиенти ми дължат пари от над 30 дни?“
- „Сравни входящите плащания по банковата сметка за септември с неплатените фактури.“
Инсталация
Нужен е API ключ от nula.bg, генериран от вашия акаунт в nula.bg. Ключът дава достъп до данните на фирмата, затова го пазете като парола.
🔒 По подразбиране сървърът е само за четене. Claude може да търси и чете, но не може да създава, редактира, изпраща или трие нищо в nula.bg. Така тестването и оценката са безопасни. За да разрешите промени, задайте
NULA_READ_ONLY=false(в Claude Desktop: махнете отметката „Само четене“ в настройките на разширението).
Claude Desktop (препоръчително)
- Свалете
nulabg-mcp-<версия>.mcpbот Releases. - Отворете файла с двоен клик (или Settings → Extensions → Install Extension).
- Въведете API ключа. Той се пази в keychain-а на системата. „Само четене“ е включено по подразбиране.
Node.js не е нужен, защото Claude Desktop го съдържа.
Claude Code
С право на промени (след като сте тествали):
Cursor / Windsurf / Claude Desktop (ръчно)
~/.cursor/mcp.json или claude_desktop_config.json:
VS Code
.vscode/mcp.json. Ключът се иска при стартиране и не се записва във файла:
Проверка на ключа от терминала:
Настройки
Няколко фирми (за счетоводители)
Всеки tool получава параметър company, а nula_list_companies показва наличните фирми без ключовете.
Безопасност
- Преглед преди създаване.
nula_create_invoiceиnula_create_billиматpreview_only. Асистентът е инструктиран първо да покаже номер, редове и суми и да изчака потвърждение. - Потвърждение в клиента. Създаването, редакцията, изпращането по имейл и изтриването искат изрично „да“ чрез MCP elicitation, когато клиентът го поддържа. Tools, които изпращат или трият, са маркирани като
destructive, така че клиентите искат одобрение. - Изтриване. nula.bg трие само последната фактура. Tool-ът изисква номера ѝ (
expected_number), отказва, ако последната е друга, и отказва предварително, ако фактурата е осчетоводена (виж „Ограничения“). - Без повторни опити при запис. Заявки, които създават, променят, изпращат или трият, никога не се повтарят автоматично. При timeout отговорът казва „статусът е неизвестен, проверете преди нов опит“.
- Файлове. Четат се само PDF, JPG и PNG (по съдържание, не по разширение), само от
NULA_FILE_ROOTS, без скрити папки, до 10 MB. URL-и се приемат самоhttps, без локални и вътрешни адреси. - Ключът. Не се логва и не се връща в отговори. Логовете отиват в stderr.
- Само четене по подразбиране. Докато не зададете изрично
NULA_READ_ONLY=false, tools, които създават, променят, изпращат или трият, изобщо не се регистрират, така че Claude не може да ги извика. При грешно изписана стойност сървърът остава само за четене. - Без подаване към НАП и НОИ. Подаването на декларации изисква КЕП и не е достъпно през този сървър.
Ограничения (v0.1)
- Проверено срещу реален акаунт на 26.09.2026. Всички 13 read tools и операциите със запис (издаване, редакция, платена/изпратена, PDF, имейл) работят с истински данни. Форматите на отговорите са документирани в docs/research/nula-api-analysis.md §8–§9. Единственото, което не минава, е изтриването — виж по-долу. OCR, НАП и НОИ не са тествани, защото ключът няма достъп до тях.
- OCR, НАП и НОИ изискват ключ с достъп до фирмата. С ключ, създаден в профила, тези endpoint-и връщат 403 „This token is not scoped to a team you can access“. Останалите модули работят.
- Артикули: търсенето по SKU минава през обхождане на каталога, защото
/open-cart/products/{sku}иgetItemDetailsвръщат 404 дори за съществуващи артикули, а филтърътsearchне търси по SKU. - Покупка по id:
/ocr/bill/{id}работи само за документи, минали през OCR; за останалите сървърът намира покупката в списъка. - „Изпратена“ фактура: nula.bg не връща такъв статус, затова
nula_update_invoice_metadataиска и двата флага (is_paidиis_sent) или номера на фактурата. - Изтриването на фактура често е невъзможно през API-то.
DELETE /api/v1/deleteInvoiceсе вика без параметри и трие последната издадена фактура, но връща HTTP 403 (с празно съобщение) за осчетоводен документ. Във фирма със счетоводен модул всички фактури излизат сhas_accounting: true, тоест изтриването не минава и документът се маха ръчно от уеб приложението или с кредитно известие. Tool-ът проверява това предварително, вместо да праща обречена заявка. - Callback URL при покупки.
createBillизискваcallback_url. По подразбиране се подава адресът на самия nula.bg, така че данни не излизат към трети страни. Ако имате собствен webhook, задайтеNULA_BILL_CALLBACK_URL. - Липсващи API операции. nula.bg API няма създаване или редакция на контрагент (клиентът се създава автоматично с първата фактура), GET на фактура по id, справки по ДДС и плащания.
Разработка
Стек:
- TypeScript;
@modelcontextprotocol/server2.x (MCP spec 2026-07-28, съвместим и с клиенти от 2025 г.);- zod 4;
- Node.js ≥ 20.
Архитектура и решения: docs/SPEC.md. Проучване: docs/research/.
Release: стъпките и предварителните проверки са в docs/RELEASING.md. Накратко: вдигате версията в package.json, обновявате CHANGELOG.md и пускате tag vX.Y.Z; GitHub Actions публикува в npm с provenance, прикачва .mcpb към GitHub Release и обновява MCP Registry.
Принос
Issues и pull requests са добре дошли — на български или на английски. Най-полезни са докладите за несъответствия с истинското API (имена и типове на полета, без реални данни), защото официалната документация описва почти само заявките.
- Как се работи по проекта: CONTRIBUTING.md
- Правила на общността: CODE_OF_CONDUCT.md
- Уязвимости: SECURITY.md (не през публичен issue)
Лиценз
MIT © Encorp
来源:README.md,提交 7789906
工具
0版本历史
1- v0.1.0最新Sep 27, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分