MCP server for AI assistants

eFaktúra exposes a remote MCP server(Model Context Protocol) so Claude, ChatGPT, Claude Code, Cursor or your own agent can work with your company's invoices, customers and expenses directly — no code required. Authorization is standard OAuth 2.1, access is always bound to one company and subject to the same permissions, limits and audit trail as the REST Agent API.

Connecting

ClientSteps
Claude.aiSettings → Connectors → Add custom connector → URL https://api.efaktura.sk/mcp
ChatGPTSettings → Apps & connectors → Create → MCP server URL
Claude Codeclaude mcp add --transport http efaktura https://api.efaktura.sk/mcp
Cursor / any MCP clientStreamable HTTP endpoint https://api.efaktura.sk/mcp

The client sends you to the eFaktúra sign-in (e-mail + password, 2FA if enabled), then you choose the company and approve what the assistant may do. Reads are on by default, writes are opt-in. Revoke access any time in the app under Settings → Integrations → API keys (the connection carries an “Assistant” badge).

Technical parameters

ParameterValue
MCP endpointhttps://api.efaktura.sk/mcp (Streamable HTTP, POST)
ProtocolMCP 2026-07-28, plus 2025-06-18 stateless for older clients
Protected resource metadatahttps://api.efaktura.sk/.well-known/oauth-protected-resource/mcp
Authorization server metadatahttps://api.efaktura.sk/.well-known/oauth-authorization-server
AuthorizationOAuth 2.1, authorization code + PKCE (S256), refresh token
Client registrationDynamic Client Registration or Client ID Metadata Document
Access tokenJWT (EdDSA), 1 h lifetime, audience = MCP endpoint, claim org_id
Rate limits and quotasSame as the REST Agent API for the company's plan

Scopes

The assistant receives the intersection of what you approved and what your role in the company allows. Identity scopes openid profile email offline_access only match the account and refresh the token.

ScopeAllows
invoice:readRead invoices and attachments; Peppol: status and delivery evidence, recipient lookup, XML preflight, received documents (detail, PDF, XML, acknowledge), event log; customer vehicles
invoice:createIssue invoices (with an idempotency key)
invoice:updateEdit invoice content (items, dates, notes), change status (paid, cancelled, overdue), add and remove attachments
invoice:sendSend invoices to the Peppol network one by one or in batch (requires confirmation) and e-mail reminders
invoice:downloadDownload PDF and UBL XML of issued invoices
contact:readRead customers and search the company register
contact:createCreate customers (with an idempotency key)
receipt:readRead expenses, vendors, projects, statistics and the payment QR
receipt:createRecord expenses, upload documents with OCR, parse a payment QR, create vendors and projects
receipt:updateEdit expenses and projects, record payments, run OCR, bulk actions
receipt:approveApprove and reject expenses
report:readMonthly dashboard
bank:readBank accounts and account movements
inventory:readWarehouses, stock levels, stock documents
inventory:writeCreate and confirm stock documents
autopark:readFleet: vehicles, documents (MOT, emissions, vignettes), insurance, fines, deadlines, installment sales, vehicle register
autopark:writeWrite vehicles, documents, insurance, fines and installments
contract:readContracts, their payments and totals
contract:createCreate contracts
contract:updateEdit contracts and generate payments

Tools

The tools cover the whole Agent API — every module, reads and writes. The list shown in the client follows the granted scopes; names are stable (snake_case, English), descriptions are Slovak/English.

ModuleTools
Invoiceslist_invoices, get_invoice, get_invoice_payments, create_invoice, update_invoice, update_invoice_status, send_invoice_reminder, download_invoice_pdf, download_invoice_xml, list_invoice_attachments, add_invoice_attachment, delete_invoice_attachment
Peppolsend_invoice_peppol, send_invoices_peppol_batch, get_peppol_status, get_peppol_sent_evidence, lookup_peppol_recipient, validate_peppol_xml, get_peppol_submission, list_received_peppol_documents, get_received_peppol_document, get_received_peppol_evidence, acknowledge_received_peppol_document, download_received_peppol_pdf, download_received_peppol_xml, list_peppol_events
Customers, vendors, registerlist_customers, get_customer, create_customer, update_customer, list_vendors, get_vendor, create_vendor, search_companies, get_company_by_ico
Expenses and projectslist_expenses, get_expense, create_expense, upload_expense_document, update_expense, approve_expense, reject_expense, mark_expense_paid, process_expense_ocr, bulk_update_expenses, scan_payment_qr, get_expense_payment_qr, get_expense_stats, list_projects, get_project, create_project, update_project
Dashboard and bankget_dashboard_summary, list_bank_accounts, list_bank_movements
Inventorylist_warehouses, list_stock_levels, get_stock_level, list_stock_documents, get_stock_document, create_stock_document, confirm_stock_document
Vehicles and fleetlist_vehicles, get_vehicle, get_vehicle_by_plate, list_fleet_vehicles, create_fleet_vehicle, lookup_vehicle_register, list_vehicle_documents, create_vehicle_document, list_vehicle_fines, create_vehicle_fine, list_vehicle_insurances, create_vehicle_insurance, list_fleet_deadlines, list_installment_sales, get_installment_sale, create_installment_sale, add_installment_item, record_installment_payment
Contractslist_contracts, get_contract, list_contract_payments, get_contract_stats, create_contract, update_contract, generate_contract_payments

Downloaded files (PDF, XML) arrive as an embedded resource (PDF base64, XML as text) together with the file name and size. Lists are paginated (page/per_page, limit/offset or cursor depending on the endpoint). Write tools accept idempotency_key wherever the API supports it.

Peppol sending is a two-step tool. send_invoice_peppol without confirm: truereturns a preview only (number, recipient, amount) and sends nothing. Sending is irreversible and consumes the company's Peppol credit.

Example prompts

List my overdue invoices and how many days late each one is.
Issue an invoice to Novák s.r.o. for 12 hours of consulting at €60 net, due in 14 days.
Check whether the company with IČO 36631124 is on Peppol and, if so, send invoice 2026-0142.
What did I spend on fuel in August 2026?
Download the PDF of invoice 2026-0142 and send it to me as an attachment.
Which documents are waiting for approval? Approve all from Slovnaft.
What moved on the company bank account last week, and what is still unmatched?
What expires in the fleet within 30 days (MOT, insurance, vignettes)?
How many units of product ABC-1 are in stock, and in which warehouse?

Errors the assistant receives

SituationTool response
Connection revokedHTTP 401, error connection_revoked — connect the assistant again
Missing permissionisError with code FORBIDDEN / INSUFFICIENT_SCOPE naming the missing role
Document quota exhaustedisError with hint “upgrade the package under Settings → Subscription”
Rate limit exceededisError with retryAfterSeconds

Privacy and data

The assistant only sees the company you selected and only within the approved scopes. Every call is written to the API audit log (the same table as API keys) and kept under the API-log retention policy. eFaktúra does not send data to AI model providers — data flows only to the client you connected. Tokens are bound to our endpoint (RFC 8707) and cannot be used elsewhere. Privacy policy: efaktura.sk/ochrana-osobnych-udajov.

Sandbox

Companies in sandbox mode (test Peppol) get a test-mode key: Peppol sending goes to the test network, never to production. Use it to rehearse prompts before going live.