oblio-mcp-server
This server acts as an MCP server for Oblio.eu, enabling natural language interaction (e.g., via Claude Desktop) to manage fiscal documents, payments, e-Factura submissions, and reference data.
Document Management
Create invoices (
factura), proformas, or delivery notices (aviz) with full line item details; supports anidempotencyKeyto prevent duplicate issuance on retriesGet a single document by series and number
List documents with filters (series, client, date range, status, pagination)
Cancel a document (reversible)
Restore a previously cancelled document
Delete a document permanently (only the last in a series)
Payments
Record a payment (
incasare) against an existing invoice, specifying method (e.g., Chitanta, Card, Ordin de plata), amount, and date; defaults to the full remaining balance
e-Factura / SPV (ANAF)
Submit issued invoices to Romania's SPV (e-Factura / ANAF)
Check SPV processing status (0 = processing, 1 = success, 2 = errors, -1 = not sent)
Reference Data (Nomenclatures)
Query companies, saved clients, products, VAT rates, document series, languages, and management units (
gestiuni) to ensure valid inputs for document creation
Webhooks
Subscribe external endpoints to Oblio events (stock changes, document lifecycle updates, payment recordings)
List and delete webhook subscriptions
Multi-company Support
Switch the active company CIF at runtime and check which CIF is currently in use, allowing management of multiple companies from a single Oblio account
Configuration
API credentials (email, secret, optional default CIF) are set via environment variables, with optional OAuth token persistence
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@oblio-mcp-serverIssue invoice to client CIF RO12345678 for 1500 RON"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
oblio-mcp-server
A Model Context Protocol server for Oblio.eu — issue invoices, proformas and delivery notices, collect payments, submit e-Factura to Romania's SPV, and query your account's reference data through natural language, from Claude Desktop or any MCP client.
Unofficial community project. Not affiliated with or endorsed by Oblio Software; it builds on their public API and official Node SDK.
Features
Built on Oblio's official SDK (
@obliosoftware/oblioapi) — no hand-rolled HTTP layer for the core APIFull document lifecycle — create, fetch, list, cancel, restore and delete invoices, proformas and delivery notices (avize)
Payments — record collections (incasari) against invoices, with all Oblio payment methods
e-Factura / SPV — submit invoices to ANAF's SPV and poll their processing status
Nomenclatures — discover valid series names, VAT rates, saved clients, products, languages and management units before issuing documents
Webhooks — subscribe external endpoints to Oblio events (stock changes, document drafts/updates/cancellations, recorded payments)
Multi-company — switch the active company CIF at runtime via
set_cifClient-side idempotency guard — pass an
idempotencyKeytocreate_documentand retries won't double-issue a documentZod-validated inputs — every tool input is schema-checked with descriptive field docs
MCP tool annotations — read-only / destructive / idempotent hints on every tool, so clients can gate confirmations appropriately
Related MCP server: oblio-mcp
Prerequisites
Node.js >= 20
An Oblio.eu account with API access
Getting API credentials
In Oblio, go to Setari > Date Cont. You need:
the account email (acts as the OAuth client id)
the API secret (acts as the OAuth client secret)
your company CIF (e.g.
RO12345678) — optional at startup; it can also be set at runtime with theset_ciftool
Installation
Claude Desktop / MCP clients — via npx
Add to your MCP client configuration (e.g. claude_desktop_config.json). Straight from GitHub (npx builds it on first run):
{
"mcpServers": {
"oblio": {
"command": "npx",
"args": ["-y", "github:horatiuvlad/oblio-mcp-server"],
"env": {
"OBLIO_API_EMAIL": "you@example.com",
"OBLIO_API_SECRET": "your-api-secret",
"OBLIO_CIF": "RO12345678"
}
}
}
}Once the package is published to npm, "args": ["-y", "oblio-mcp-server"] will work as well.
From a local build
git clone https://github.com/horatiuvlad/oblio-mcp-server.git
cd oblio-mcp-server
npm install
npm run build{
"mcpServers": {
"oblio": {
"command": "node",
"args": ["/path/to/oblio-mcp-server/dist/index.js"],
"env": {
"OBLIO_API_EMAIL": "you@example.com",
"OBLIO_API_SECRET": "your-api-secret",
"OBLIO_CIF": "RO12345678"
}
}
}
}Environment variables
Variable | Required | Description |
| yes | Oblio account email (Setari > Date Cont) |
| yes | Oblio API secret (Setari > Date Cont) |
| no | Default company CIF; can be changed at runtime with |
| no | Path where the OAuth access token is persisted so it survives restarts (defaults to in-memory only) |
Tools
Documents
Tool | Description |
| Issue an invoice, proforma or delivery notice (aviz); supports an optional |
| Fetch a single document by series name and number, with totals, status and a link |
| List documents with filters: series, number, client (cif/email/phone/code), issue-date range, draft/cancelled/collected flags, optional line items / payments / SPV status, sorting and pagination |
| Cancel (annul) a document; it stays in Oblio and can be restored later |
| Restore a previously cancelled document to its active state |
| Permanently delete a document (Oblio only allows deleting the last one in a series) |
Payments
Tool | Description |
| Record a payment (incasare) against an existing invoice; defaults to the full remaining amount when no value is given |
Nomenclatures
Tool | Description |
| Fetch reference data: companies, saved clients, products, VAT rates, document series, languages, or management units (gestiuni) |
e-Factura
Tool | Description |
| Submit an issued invoice to Romania's SPV (e-Factura / ANAF) |
| Fetch the SPV status and archive for a submitted invoice (0 = processing, 1 = success, 2 = errors, -1 = not sent) |
Webhooks
Tool | Description |
| Subscribe an endpoint to an Oblio event: |
| List all webhook subscriptions with topic, endpoint and id |
| Delete a webhook subscription by id |
Company
Tool | Description |
| Set the active company CIF used for subsequent requests (switch between companies on one account) |
| Return the company CIF currently in effect |
Why another Oblio MCP?
It sits on Oblio's official SDK rather than reimplementing the API surface
It ships with a test suite and strict typechecking
create_documenthas a client-side idempotency guard, so agent retries don't silently issue duplicate invoicesFull e-Factura / SPV coverage — submit and track invoices with ANAF, not just issue them locally
Development
npm run build # compile to dist/
npm test # run the test suite
npm run typecheck # tsc --noEmitKeeping up with the Oblio API (docs drift)
Oblio publishes no machine-readable API spec — the HTML docs at
oblio.eu/api are the de-facto contract that
src/schemas.ts hand-encodes. Three layers guard against silent drift:
Docs snapshot —
scripts/oblio-docs-snapshot.mjsextracts the contract-bearing parts of the docs page (endpoints, parameter tables, response samples) intodocs/oblio-api.snapshot.md. Theoblio-docs-driftworkflow re-fetches weekly and, on any change, opens a PR with the refreshed snapshot and the diff.Agent draft — when the
ANTHROPIC_API_KEYrepo secret is configured, the same workflow runs Claude Code on the drift PR branch to translate the docs diff into realsrc/schemas.ts/ tool changes (including.describe()text), verified with typecheck + tests and pushed as a commit on the PR. A human still reviews and merges; without the secret the PR is opened with a manual checklist instead.SDK tripwire — Renovate flags releases of
@obliosoftware/oblioapi, which usually accompany API changes.
node scripts/oblio-docs-snapshot.mjs --check # exit 3 + diff on drift
node scripts/oblio-docs-snapshot.mjs --update # refresh the snapshotLicense
Maintenance
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
- AlicenseBqualityAmaintenanceProvides a comprehensive MCP interface to the AbraFlexi ERP REST API, enabling management of invoices, contacts, products, bank transactions, and other evidence through natural language.Last updated211MIT
- FlicenseAqualityDmaintenanceUnofficial MCP server for Oblio.eu accounting software enabling natural language interaction to create invoices, manage documents, collect payments, query nomenclatures, and submit e-Factura to Romania's SPV system.Last updated121

docnova-mcpofficial
AlicenseAqualityBmaintenanceMCP server for e-invoice platforms. Enables natural language querying of invoices, partners, company data, and financial reports.Last updated1876MIT- AlicenseCqualityCmaintenanceEnables natural language interaction with the WeFact invoicing platform, allowing users to manage debtors, invoices, products, subscriptions, and perform various administrative tasks via MCP-compatible clients.Last updated181AGPL 3.0
Related MCP Connectors
AI-native ERP MCP: ES/EU fiscal compliance (VeriFactu/TicketBAI/Facturae), invoicing, tax, banking
Romania e-Factura invoices for AI agents: build UBL 2.1 CIUS-RO, upload to ANAF/SPV, query.
Hosted MCP server for Mini Accountant: invoices, expenses, customers, analytics, tax estimates.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/horatiuvlad/oblio-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server