nulabg-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NULA_API_KEY | No | API ключ (задължителен, освен ако не ползвате NULA_PROFILES) | |
| NULA_BASE_URL | No | Базов URL на API. | https://nula.bg |
| NULA_PROFILES | No | Няколко фирми: `{"firma-a":"ключ1","firma-b":"ключ2"}` или път до JSON файл. | |
| NULA_TOOLSETS | No | Кои модули да са активни; `all` включва и `nra`, `noi`. | core,invoices,bills,ocr,customers,inventory,banking,insights |
| NULA_LOG_LEVEL | No | Ниво на логване (debug, info, warn, error). | info |
| NULA_READ_ONLY | No | Само четене. Промени в nula.bg се разрешават само с изрично false (0, no, off). Всяка друга стойност оставя режима само за четене. | true |
| NULA_FILE_ROOTS | No | Папки, от които може да се качват файлове (разделени с `:`, на Windows с `;`). | ~ |
| NULA_TIMEOUT_MS | No | Таймаут на заявките в милисекунди. | 30000 |
| NULA_DOWNLOAD_DIR | No | Къде се записват PDF и XML. | ~/Downloads/nula |
| NULA_CONFIRM_WRITES | No | Потвърждение в клиента преди създаване, изпращане и изтриване (ако клиентът поддържа elicitation); `never` го изключва. | elicit |
| NULA_DEFAULT_PROFILE | No | Фирма по подразбиране при `NULA_PROFILES`. | |
| NULA_MAX_CONCURRENCY | No | Максимален брой едновременни заявки. | 4 |
| NULA_DEFAULT_CURRENCY | No | Валута за нови документи. | EUR |
| NULA_DEFAULT_LANGUAGE | No | Език на PDF и имейл (`bg` / `en`). | bg |
| NULA_BILL_CALLBACK_URL | No | Адрес, който nula.bg уведомява след създаване на покупка. | https://nula.bg/ |
| NULA_DEFAULT_INVOICE_CATEGORY | No | Категория за нови фактури (nula.bg изисква поне една). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| nula_lookup_companyA | Look up a company (фирма) by Bulgarian EIK (ЕИК/БУЛСТАТ), EU VAT number or name via nula.bg (Commercial Register / VIES). Use it BEFORE creating an invoice or bill for a counterparty you have not seen, to get the exact legal name and VAT number. Never invent an EIK. |
| nula_search_invoicesA | Find sales documents (фактури, проформи, дебитни/кредитни известия) by period, customer, type or number. Pass |
| nula_get_invoice_pdfA | Download the PDF of an invoice in Bulgarian or English and save it locally (or return it inline). |
| nula_search_billsA | Find purchase documents (покупки, входящи фактури от доставчици) by period, supplier or number. Pass bill_id to get one bill in full with its lines. |
| nula_ocr_statusA | List documents sent to OCR (newest first) with their recognition status, or get one recognised document with its lines (give document_type and id). Also reports the remaining OCR quota. |
| nula_search_customersA | Find customers/counterparties (клиенти, контрагенти) by name, EIK or VAT number, or get one by id. nula.bg has no API to create customers directly: nula_create_invoice creates a missing customer automatically. |
| nula_search_itemsA | Find products/services (артикули) with prices and available stock (наличност). Give sku for an exact match, or query/name to match the name. Use it before invoicing to reuse the correct item name, sku and price. |
| nula_list_item_categoriesA | List item categories (категории на артикули) that have at least one item. |
| nula_list_bank_accountsA | List the bank accounts (банкови сметки) connected in nula.bg, with their ids for nula_list_bank_transactions. |
| nula_list_bank_transactionsA | List bank transactions (банкови движения) of one account for a period. Get account ids from nula_list_bank_accounts. |
| nula_receivables_reportA | Unpaid and overdue sales invoices (вземания, просрочени фактури) as of a date, grouped by customer with aging buckets (0–30 / 31–60 / 61–90 / 90+ days overdue). Read-only. |
| nula_period_summaryB | Summary for a month or period: number and totals of sales and purchases, VAT charged vs VAT on purchases, top customers and suppliers. Indicative only: this is NOT the official VAT return (справка-декларация). |
| nula_match_bank_transactionsA | Suggest which incoming bank transactions pay which unpaid sales invoices (by amount, invoice number in the payment reason, customer name/EIK). Only suggestions: nothing is changed. Mark invoices paid with nula_update_invoice_metadata after the user agrees. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| month-end-review | Sales, purchases, unpaid invoices, pending OCR and unmatched bank transactions for a month. |
| collect-overdue | Find overdue invoices and draft reminder e-mails (nothing is sent automatically). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| zero-vat-reasons | Codes 1–57 for zero_vat_reason (legal basis for a 0% VAT rate under ЗДДС). |
| protocol-reasons | Codes 1–32 for protocol.reason on purchase bills. |
| enums | Document types, payment methods, line kinds, tax credit types, VAT rates and OSS countries. |
TDQS
Scored across 13 tools
Each tool targets a distinct resource or action: company lookup, invoices, bills, receivables, OCR, customers, items, bank data, and period summaries. The only mild overlap is nula_lookup_company vs. nula_search_customers, but the descriptions clarify that one is an external registry check and the other searches internal counterparties.
All tools use the nula_ prefix and snake_case, with mostly verb_noun patterns like search_invoices, get_invoice_pdf, list_bank_accounts, and match_bank_transactions. A few names such as nula_ocr_status, nula_period_summary, and nula_receivables_report drop the verb, so the pattern is not perfectly uniform but remains readable.
13 tools is a well-scoped size for an accounting/CRM data-access server. Each tool covers a distinct aspect of the domain without redundancy or bloat.
The tool set is almost entirely read-only, yet several descriptions reference missing mutation tools such as nula_create_invoice and nula_update_invoice_metadata. This creates dead ends for core workflows like creating invoices/bills or completing invoice matching by actually marking invoices paid.