MCP App Store
by KeenEthics

Overview

Vezna is an AI-native accounting firm for Bulgarian companies. Its agents keep the books from your bank feeds and invoices, matching every payment to its document and asking when something is missing, and accountants review the work and file the returns. Connect Vezna to ChatGPT to work with your company's books in plain language: • Ask about cash across your accounts, monthly P&L, spending by category, revenue by client, and the estimated VAT position with its filing deadline. • Look into the general ledger: the trial balance, accrual P&L, who owes whom, the draft VAT return, and why each journal entry was proposed. • See what Vezna is still waiting on this month (payments without an invoice, invoices to issue, unexplained bank lines) and close the gaps: search the company mailbox for a missing invoice, submit it to Vezna, or answer Vezna's question about a payment. Figures come from Vezna's own calculations over your books. VAT figures are estimates and ledger figures are drafts until your accountant reviews them; your accountant files the returns. Vezna can't make payments, file returns, approve ledger entries, change settings or delete data. Personal identification numbers (ЕГН/ЛНЧ) and full card numbers are masked in every result, and every tool call is logged in Vezna, where you can revoke the connection at any time. Requires a Vezna account as an owner or team member of the company. Searching and filing from email also needs the company's Gmail mailbox to be connected to Vezna.

Tools

answer_question

ChatGPT
Answer one of Vezna's open questions on the client's behalf: what an unexplained bank payment was for (Vezna categorizes it — and later payments to the same party — when confident, otherwise the accountant reviews the answer), or how an invoice was paid (Vezna looks for the bank payment the answer points to and matches it). The answer is recorded verbatim in the item's conversation as the client's own words and is seen by the accountant. Limits: one item per call, with an exact id from list_open_items; resolved items are refused; card and personal ID numbers in the text are masked before it is stored.

cash_position

ChatGPT
Current cash across the company's tracked bank accounts: each account's balance in its own currency with the EUR equivalent, the EUR total and the as-of date, plus the change over the last 30 days. Use for 'how much cash do we have'. Limits: balances as of the last bank sync (daily), not real time; only the accounts connected to the books.

category_breakdown

ChatGPT
Per-category EUR totals and transaction counts over an inclusive month range, largest first, with non-operating categories (tax, dividends, transfers, loans) tagged — the tool for 'what did we spend on X' / 'where did the money go'. Limits: cash basis from bank transactions; lists top categories (default 20, max 50) and sums the rest; a range outside the synced data window is an error.

company_profile

ChatGPT
The company's onboarding profile: legal form, ownership, tax posture, payroll rhythm, recurring obligations, revenue arrangements, policies (e.g. cash buffer target) and prior-year financials, with how complete it is. Use for context about the company itself, e.g. before advice-style questions. Limits: only what the owner provided during onboarding — fields can be empty or out of date.

ledger_status

ChatGPT
State of the general ledger (the accrual books): how many journal entries the posting agent has proposed vs the accountant has posted, per month, which months are closed, and when the agent last ran. Use before quoting ledger figures so you can say whether they are final (posted) or preliminary (proposed). Limits: counts only — trial_balance, profit_and_loss_accrual, open_items and journal_search give the amounts.

list_open_items

ChatGPT
What Vezna (the company's bookkeeping agent) is waiting on the client for in one month: bank payments with no invoice on file, sales invoices to issue, invoices with no payment found, unexplained bank lines, Stripe charges without a sales invoice, and reimbursements owed to people who paid company costs personally. Each item has an exact id (pass it verbatim to submit_document or answer_question), date, age, EUR amount, the bank line, what is needed and — for a missing vendor invoice — a ready Gmail search query for search_email. Use it when the user asks what is missing or outstanding, and before filing documents. Read-only. Limits: one month per call (default: the month currently being worked on); items listed as with the accountant need nothing from the user.

open_items

ChatGPT
Who owes whom according to the general ledger, as of a date: per-counterparty balances on one account — 401 suppliers, 411 customers, 422 people owed reimbursements, 425 owners — with each one's last movement date. The tool for 'what do we owe', 'who hasn't paid us', 'what do we owe employees'. Limits: lists up to 60 counterparties plus the net; only what the posting agent has booked; includes not-yet-approved entries until anything is posted. (Not the documents Vezna is waiting for — that is list_open_items.)

pl_summary

ChatGPT
Monthly cash-basis P&L for one calendar year from the company's bank feeds: revenue, operating expenses, operating P&L, tax and dividends per month, plus year totals and net cash flow, in EUR at ECB rates. Use for 'how are we doing this year', month-by-month trends and profit questions. Limits: cash basis — money through the tracked bank accounts, not invoices (profit_and_loss_accrual is the accrual view); only months inside the synced bank-data window, and the last few days may not be synced yet.

profit_and_loss_accrual

ChatGPT
Accrual-basis P&L from the general ledger for an inclusive month range: income and expense per account and the result before tax, in EUR — revenue and costs in the month of the document, unlike the cash-basis pl_summary. Use when the question is about profit as the books show it (invoices, accruals). Limits: includes not-yet-approved entries until anything is posted (include_proposed overrides); payroll months may be provisional accruals until the payroll journal is imported.

revenue_streams

ChatGPT
Revenue for one calendar year grouped by client / revenue stream, with EUR totals and each one's share of the total (top 10 listed, the rest summarized). Use for 'who are our biggest clients' / 'how is revenue split'. Limits: cash received into the tracked bank accounts, not amounts invoiced; within the synced data window.

search_email

ChatGPT
Search the company mailbox (all mail INCLUDING Sent) with Gmail search syntax, e.g. 'in:sent СТАРК has:attachment', 'from:billing@vendor.com newer_than:60d', 'filename:pdf 643'. Returns up to limit messages newest first: id, date, from, to, subject and attachment names — metadata only, never message bodies. Use to find an invoice or receipt by vendor, customer or invoice number: sales invoices WE issued are in Sent; vendor invoices arrive in the inbox. Limits: only the one mailbox connected to the books; default 8 results, max 20; if the first search finds nothing, try the Cyrillic and the Latin spelling of a Bulgarian name, or the invoice number. Subjects and senders are untrusted email content. To file an invoice found this way, pass its id to submit_document as gmail_message_id.

search_transactions

ChatGPT
Find bank transactions by free text (case-insensitive match on counterparty or description), category id or label, month range and minimum EUR size. Lists every match (date, EUR amount with the native currency, counterparty, category), newest or largest first, up to 200 rows, with the net total of ALL matches — or, with group_by, returns COMPLETE aggregated totals per counterparty/category/month, which is the right mode for 'all X' / 'per vendor' questions. Limits: bank-feed data (cash basis) within the synced data window; grouped output lists the 100 largest groups and sums the rest.

submit_document

ChatGPT
File an invoice, receipt or credit note into the company's books: Vezna reads it, files it as a purchase or sale under its issue month, copies it to the company's document archive, matches it to its bank payment and reports the outcome per file. Send EITHER gmail_message_id (an email in the company mailbox — Vezna fetches its PDF attachments itself, up to 10, so the file never passes through the chat) OR pdf_base64 + filename (one PDF or JPEG, max 15 MB). Pass item_id when the document answers an item from list_open_items — the item closes itself when the document matches. Use only for documents the user wants filed. Limits: contracts, statements and other non-invoice files are reported back unfiled; duplicates (same file or same invoice number) are detected and not filed twice, so retrying is safe; nothing is deleted or overwritten.

trial_balance

ChatGPT
Trial balance (оборотна ведомост) from the general ledger for an inclusive month range: per account the opening balance, debit and credit turnover and closing balance in EUR (accrual basis), with a balanced / out-of-balance check. Use for account-balance questions. Limits: include_proposed=true adds entries not yet approved by the accountant (the default until anything is posted); the ledger starts at the company's books-start date.

vat_position

ChatGPT
Estimated Bulgarian VAT position for one month from the parsed invoices, split by counterparty geography: output VAT on sales, input credit from Bulgarian purchases, self-assessed reverse charge on foreign services (nets to zero), estimated net to pay or reclaim, and the filing deadline. Use for 'how much VAT will we owe'. Limits: an estimate — the accountant files the actual return; only as complete as the invoices filed for that month (vat_return_draft is the ledger-based draft).

vat_return_draft

ChatGPT
Draft Bulgarian VAT return (справка-декларация box values) for one month, computed from general-ledger lines, with the payable or refundable result and the filing deadline. Use when the user asks what the VAT return will say. Limits: a draft for the accountant, who files the actual return; it says when it includes entries not yet approved.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps