Oblio MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Read Oblio clients, products and documents; create proformas, issue, collect and cancel invoices.
18 tools: 8 can delete or cancel things, 1 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels8Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads9Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http oblio https://oblio.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...nnected Oblio account. Good first call: every other tool needs a CIF from here. GET /api/nomencl..."
The server marks "oblio_list_products" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "oblio_list_products" says "list": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
18 tools
Deletes or cancels 8Claude Code: deny
oblio_cancel_documentCANCEL an invoice, proforma or notice.No findings
Why it is in this group
- The name "oblio_cancel_document" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it CANCEL an invoice, proforma or notice. A cancelled invoice stays in the series but is void; if it was already sent to e-Factura / SPV, check the SPV side as well. Needs confirm: true and the user's approval. Not retried. PUT /api/docs/<type>/cancel.
Annotations the server declares
- title: Cancel a document (fiscal)
- destructiveHint: true
- readOnlyHint: false
- idempotentHint: false
- openWorldHint: true
oblio_collect_invoiceRecord that an issued invoice was paid (receipt, bank order, card...).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Record that an issued invoice was paid (receipt, bank order, card...). Changes the invoice's paid status and is not reversible from the API. Needs confirm: true and the user's approval of the amount. Not retried. PUT /api/docs/invoice/collect.
Annotations the server declares
- title: Record an invoice payment (collect)
- destructiveHint: true
- readOnlyHint: false
- idempotentHint: false
- openWorldHint: true
oblio_create_proformaCreate a PROFORMA (not a fiscal invoice; the preferred first step).No findings
Why it is in this group
- The name "oblio_create_proforma" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a PROFORMA (not a fiscal invoice; the preferred first step). It takes the next number of the series immediately, there is no draft state, and Oblio sends no e-mail. Check client, lines, VAT (oblio_list_vat_rates) and series (oblio_list_series) first. Returns the series, number and a PDF link. Not retried: if the reply is an error, look in Oblio before repeating. POST /api/docs/proforma.
Annotations the server declares
- title: Create a proforma
- destructiveHint: true
- readOnlyHint: false
- idempotentHint: false
- openWorldHint: true
oblio_create_webhookSubscribe an HTTPS endpoint to an Oblio event (stock changes, drafts/updates/cancellations of documents, collections).No findings
Why it is in this group
- The name "oblio_create_webhook" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Subscribe an HTTPS endpoint to an Oblio event (stock changes, drafts/updates/cancellations of documents, collections). Oblio will POST account data to that URL, so only use an endpoint the user named and controls; it must answer 200 with the base64 of the X-Oblio-Request-Id header. Needs confirm: true. POST /api/webhooks.
Annotations the server declares
- title: Create a webhook
- destructiveHint: true
- readOnlyHint: false
- idempotentHint: false
- openWorldHint: true
oblio_delete_webhookDelete a webhook subscription by id (from oblio_list_webhooks).No findings
Why it is in this group
- The name "oblio_delete_webhook" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a webhook subscription by id (from oblio_list_webhooks). Needs confirm: true. DELETE /api/webhooks/{id}.
Annotations the server declares
- title: Delete a webhook
- destructiveHint: true
- readOnlyHint: false
- idempotentHint: false
- openWorldHint: true
oblio_issue_invoiceISSUE a real INVOICE.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it ISSUE a real INVOICE. This is a legal fiscal document: it takes the next number in the series at once, there is no draft state, it cannot be edited, and it can only be cancelled afterwards (it may also be sent to ANAF e-Factura / SPV, automatically if the account is set up so). Needs confirm: true, an idempotency_key, and the user's explicit approval of the exact client, lines, totals and series. Optionally base it on a proforma or notice (reference_document), record the payment at once (collect) or set the delivery date. Not retried: if the reply is an error, look in Oblio before repeating. Oblio never e-mails the client from this tool. POST /api/docs/invoice.
Annotations the server declares
- title: Issue an invoice (fiscal, irreversible)
- destructiveHint: true
- readOnlyHint: false
- idempotentHint: false
- openWorldHint: true
oblio_restore_documentRestore a previously CANCELLED invoice, proforma or notice.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Restore a previously CANCELLED invoice, proforma or notice. Needs confirm: true and the user's approval. Not retried. PUT /api/docs/<type>/restore.
Annotations the server declares
- title: Restore a cancelled document (fiscal)
- destructiveHint: true
- readOnlyHint: false
- idempotentHint: false
- openWorldHint: true
oblio_send_einvoice_to_spvSEND an issued invoice to ANAF e-Factura (SPV).No findings
Why it is in this group
- The name "oblio_send_einvoice_to_spv" says "send": a word for sending, and what is sent cannot be taken back.
- The description says "Irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it SEND an issued invoice to ANAF e-Factura (SPV). Irreversible: a document accepted by ANAF cannot be withdrawn from this API. Needs confirm: true and the user's approval. Not retried: check the status with oblio_list_invoices (with_einvoice_status) before repeating. Returns text, sent and a code (-1 not sent, 2 errors, 0 processing, 1 sent). POST /api/docs/einvoice.
Annotations the server declares
- title: Send an invoice to e-Factura (SPV)
- destructiveHint: true
- readOnlyHint: false
- idempotentHint: false
- openWorldHint: true
Changes things 1Claude Code: ask
oblio_list_productsProducts and services of a company with unit, price, VAT and (with stock) quantities.1 finding
Why it is in this group
- The name "oblio_list_products" says "list": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "oblio_list_products" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "oblio_list_products" says "list": a word for reading.
Description, as the server wrote it Products and services of a company with unit, price, VAT and (with stock) quantities. Up to 250 per page: pass next_offset as offset. GET /api/nomenclature/products.
Annotations the server declares
- title: List or search products
- readOnlyHint: true
Only reads 9Claude Code: allow
oblio_get_documentOne invoice, proforma or notice by series and number: type, series, number, link to the PDF and (invoices) the collections.No findings
Why it is in this group
- The name "oblio_get_document" says "get": a word for reading.
Description, as the server wrote it One invoice, proforma or notice by series and number: type, series, number, link to the PDF and (invoices) the collections. GET /api/docs/<type>.
Annotations the server declares
- title: Get a document
- readOnlyHint: true
oblio_list_clientsClients of a company, optionally filtered by name or client CIF.No findings
Why it is in this group
- The name "oblio_list_clients" says "list": a word for reading.
Description, as the server wrote it Clients of a company, optionally filtered by name or client CIF. Up to 250 per page: pass next_offset as offset for the next page. GET /api/nomenclature/clients.
Annotations the server declares
- title: List or search clients
- readOnlyHint: true
oblio_list_companiesThe companies (CIF, name, your access level) linked to the connected Oblio account.1 finding
Why it is in this group
- The name "oblio_list_companies" says "list": a word for reading.
Findings
- Warn
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...nnected Oblio account. Good first call: every other tool needs a CIF from here. GET /api/nomencl..."
Description, as the server wrote it The companies (CIF, name, your access level) linked to the connected Oblio account. Good first call: every other tool needs a CIF from here. GET /api/nomenclature/companies.
Annotations the server declares
- title: List companies
- readOnlyHint: true
oblio_list_invoicesInvoices of a company with filters (series, number, dates, client, draft/canceled/collected), newest first by default.No findings
Why it is in this group
- The name "oblio_list_invoices" says "list": a word for reading.
Description, as the server wrote it Invoices of a company with filters (series, number, dates, client, draft/canceled/collected), newest first by default. Optional products, collections and e-Factura (SPV) status per invoice. Pass next_offset as offset for the next page. GET /api/docs/invoice/list.
Annotations the server declares
- title: List invoices
- readOnlyHint: true
oblio_list_languagesForeign languages a company can issue documents in (code, name).No findings
Why it is in this group
- The name "oblio_list_languages" says "list": a word for reading.
Description, as the server wrote it Foreign languages a company can issue documents in (code, name). GET /api/nomenclature/languages.
Annotations the server declares
- title: List document languages
- readOnlyHint: true
oblio_list_managementStock managements (gestiuni) of a company with their work point and type; works only when stock is enabled.No findings
Why it is in this group
- The name "oblio_list_management" says "list": a word for reading.
Description, as the server wrote it Stock managements (gestiuni) of a company with their work point and type; works only when stock is enabled. GET /api/nomenclature/management.
Annotations the server declares
- title: List stock managements
- readOnlyHint: true
oblio_list_seriesDocument series of a company (type Factura/Proforma/Aviz, name, start, next number, default).No findings
Why it is in this group
- The name "oblio_list_series" says "list": a word for reading.
Description, as the server wrote it Document series of a company (type Factura/Proforma/Aviz, name, start, next number, default). Use the name as series_name. GET /api/nomenclature/series.
Annotations the server declares
- title: List document series
- readOnlyHint: true
oblio_list_vat_ratesVAT rates (name, percent, default) of a company; use the name and percent on document lines.No findings
Why it is in this group
- The name "oblio_list_vat_rates" says "list": a word for reading.
Description, as the server wrote it VAT rates (name, percent, default) of a company; use the name and percent on document lines. GET /api/nomenclature/vat_rates.
Annotations the server declares
- title: List VAT rates
- readOnlyHint: true
oblio_list_webhooksThe webhook subscriptions of the account (id, CIF, topic, endpoint).No findings
Why it is in this group
- The name "oblio_list_webhooks" says "list": a word for reading.
Description, as the server wrote it The webhook subscriptions of the account (id, CIF, topic, endpoint). GET /api/webhooks.
Annotations the server declares
- title: List webhooks
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http oblio https://oblio.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__oblio__oblio_list_companies",
"mcp__oblio__oblio_list_vat_rates",
"mcp__oblio__oblio_list_series",
"mcp__oblio__oblio_list_languages",
"mcp__oblio__oblio_list_management",
"mcp__oblio__oblio_list_clients",
"mcp__oblio__oblio_get_document",
"mcp__oblio__oblio_list_invoices",
"mcp__oblio__oblio_list_webhooks"
],
"ask": [
"mcp__oblio__oblio_list_products"
],
"deny": [
"mcp__oblio__oblio_create_proforma",
"mcp__oblio__oblio_issue_invoice",
"mcp__oblio__oblio_collect_invoice",
"mcp__oblio__oblio_cancel_document",
"mcp__oblio__oblio_restore_document",
"mcp__oblio__oblio_send_einvoice_to_spv",
"mcp__oblio__oblio_create_webhook",
"mcp__oblio__oblio_delete_webhook"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as oblio. Review it before you use it.