Skip to main content
Glama

Oblio MCP by usefulapi

Server Details

Read Oblio clients, products and documents; create proformas, issue, collect and cancel invoices.

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
93.9% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 18 tools

Disambiguation5/5

Each tool targets a distinct resource and action: cancel/restore/get/collect/issue/create/delete/list all have clear, non-overlapping scopes. The detailed descriptions clarify edge cases (e.g., issue_invoice vs create_proforma, explicit SPV send vs automatic sending).

Naming Consistency5/5

Every tool follows the same oblio_verb_noun pattern (e.g., oblio_create_proforma, oblio_list_clients, oblio_cancel_document). The only slight outlier is oblio_send_einvoice_to_spv, but it still follows verb_noun_to_noun consistently with the prefix.

Tool Count4/5

18 tools is slightly above the ideal 3-15 range, but the count is justified by the domain's many distinct resources (invoices, proformas, notices, webhooks, and several nomenclatures). The set is well-scoped, though some simple list endpoints could theoretically be consolidated.

Completeness3/5

Core document and webhook lifecycles are covered (create proforma, issue invoice, collect, cancel, restore, send to SPV, webhook CRUD), but there is no tool to create a notice (aviz) despite notices being referenced in cancel/restore/get. There is also no way to list proformas or notices, which limits discovery and creates a notable gap.

Available Tools

18 tools
oblio_cancel_documentCancel a document (fiscal)A
Destructive
Inspect

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//cancel.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
typeYesinvoice (factura), proforma or notice (aviz de insotire).
numberYesDocument number within the series, digits only (0055 and 55 are the same).
confirmNoMust be true. Set it only after the user has confirmed this exact action in this conversation.
series_nameYesDocument series name (from oblio_list_series), for example FCT.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With destructiveHint=true and idempotentHint=false already declared, the description still adds real value: the cancelled invoice remains in the series but becomes void, the external SPV side-effect must be checked separately, and the call is not retried. It doesn't say whether the cancellation can be undone via oblio_restore_document, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the capitalised verb and scope, then behavioural consequences, requirements and endpoint in four tight sentences with no filler. The endpoint path is marginally redundant but harmless.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, open-world mutation with no output schema, the description covers the resulting state, the confirmation gate, and the external SPV consequence — enough for an agent to act safely. Failure behaviour and reversibility (restore availability) are the only unstated pieces.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with cif, series_name, number and confirm all documented in the schema (including the confirm-after-approval rule). The description only restates the confirm:true requirement and the type values, adding little beyond structured data, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (CANCEL) plus the exact resource set (invoice, proforma, notice) and even the underlying endpoint. An agent can distinguish this from siblings like oblio_restore_document or oblio_get_document without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: confirm:true plus explicit user approval is required, and if the document already reached e-Factura/SPV the agent should check the SPV side. It does not name the inverse alternative (oblio_restore_document) or state when not to cancel, so it stops short of a full when/when-not routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_collect_invoiceRecord an invoice payment (collect)A
Destructive
Inspect

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.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
numberYesDocument number within the series, digits only (0055 and 55 are the same).
collectYes
confirmNoMust be true. Set it only after the user has confirmed this exact action in this conversation.
series_nameYesDocument series name (from oblio_list_series), for example FCT.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, but the description adds real context: what actually changes (the invoice's paid status), that the change 'is not reversible from the API', and that a confirm:true gate plus explicit user approval of the amount is required. It does not cover failure behavior or permission requirements, so it stops short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and its effect, followed by prerequisites and the endpoint. Nothing is padding and no sentence merely restates the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent mutation with a nested collect object and no output schema, the description covers effect, irreversibility, and the confirmation requirement. It leaves some gaps (permission/auth needs, what a failed or partial collection returns), but nothing that would cause an agent to invoke it incorrectly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so the baseline is 3. The description reiterates the confirm:true gate and parenthetically lists payment channels (receipt, bank order, card) that map to the collect.type enum, but it adds no syntax, defaults, or constraints beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names a specific verb and resource ('Record that an issued invoice was paid') and even pins the endpoint (PUT /api/docs/invoice/collect). That is clearly distinct from sibling actions like oblio_issue_invoice, oblio_cancel_document, and oblio_restore_document, so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states hard preconditions for use: 'Needs confirm: true and the user's approval of the amount' and 'Not retried'. That is clear context for when to call it, but it never names an alternative or a when-not condition (e.g., partial vs. full collection, or how it differs from cancel/restore), so routing is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_create_proformaCreate a proformaA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
clientYes
currencyNoDocument currency (default "RON").
due_dateNoDue date yyyy-mm-dd.
languageNoDocument language code from oblio_list_languages (default "RO").
mentionsNoMentions printed on the document.
productsYes1-200 lines: products/services (name + price) or discounts (name + discount).
precisionNoDecimals, 2 to 4 (default 2).
issue_dateNoIssue date yyyy-mm-dd (default today).
issuer_nameNoPrepared by (intocmit de).
series_nameYesDocument series name (from oblio_list_series), for example FCT.
order_numberNoOrder number (BT-13).
work_stationNoWork point (only with stock enabled; default "Sediu").
exchange_rateNoExchange rate for a foreign-currency document (default: the company's setting).
internal_noteNoInternal note, not visible to the client.
idempotency_keyNoUnique key so Oblio drops a duplicate of the same request.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this destructive/non-idempotent, and the description adds real context the annotations cannot convey: the number is consumed immediately, there is no draft state, no e-mail is sent, and the response shape (series, number, PDF link) is described. The retry caveat is exactly the operational detail an agent needs for a non-idempotent write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the critical distinction (proforma vs fiscal invoice) first, then behaviour, then prerequisites, then return, then failure handling. Six short clauses, each carrying unique information; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 16-parameter, nested-object write tool with no output schema, the description covers purpose, prerequisites, side effects, return content and error recovery. The only unaddressed element is the optional idempotency_key, which the 94%-covered schema documents on its own.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 94%, so the schema carries the parameter burden and the baseline is 3. The description adds no per-parameter meaning beyond steering the agent to the VAT-rate and series lookup tools, which is useful routing but not parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ("Create a PROFORMA") with an immediate disambiguation from the sibling it is not ("not a fiscal invoice"). The "preferred first step" framing tells an agent where this sits relative to oblio_issue_invoice without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit prerequisites are named with the exact sibling tools to call first (oblio_list_vat_rates, oblio_list_series, plus client/lines checks), and retry behaviour is stated: "Not retried: if the reply is an error, look in Oblio before repeating." This is when-to-use, what-to-prepare, and when-not-to-retry in one compact block.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_create_webhookCreate a webhookA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
topicYesThe event to subscribe to.
confirmNoMust be true. Set it only after the user has confirmed this exact action in this conversation.
endpointYesHTTPS URL that receives the notifications.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the mutation/destructive/openWorld profile, and the description adds genuinely new behavioral detail: account data will be POSTed to the URL, the receiver must complete a base64 X-Oblio-Request-Id handshake with a 200, and confirmation is mandatory. It stops short of describing success response or what happens on repeated subscriptions, but it earns credit for going well beyond the annotation set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with no filler: purpose, security/behavioral requirements, and the confirm gate, with the HTTP route appended for grounding. Everything is front-loaded and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent, open-world mutation with no output schema, the description supplies the safety preconditions, receiver contract, and confirmation requirement an agent needs. Minor gaps remain around return value and duplicate-subscription behavior, though the idempotentHint=false annotation partially covers the latter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantic grouping to the topic enum by naming the event families (stock, drafts, updates, cancellations, collections) and reinforces the user-confirmation gate on confirm. The cif and endpoint parameters are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (subscribe/create) and resource (an HTTPS endpoint receiving Oblio events), and enumerates the event families covered (stock changes, draft/update/cancel of documents, collections). An agent can immediately distinguish this from oblio_list_webhooks and oblio_delete_webhook without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear preconditions: the endpoint must be user-named and user-controlled, must return 200 with the base64 of X-Oblio-Request-Id, and the call requires confirm: true. It does not, however, name alternatives such as listing existing webhooks first or deleting duplicates, so the routing guidance is partial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_delete_webhookDelete a webhookA
Destructive
Inspect

Delete a webhook subscription by id (from oblio_list_webhooks). Needs confirm: true. DELETE /api/webhooks/{id}.

NameRequiredDescriptionDefault
idYesWebhook id from oblio_list_webhooks.
confirmNoMust be true. Set it only after the user has confirmed this exact action in this conversation.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, so safety is covered. The description adds two behavioral facts not in the annotations: that a second, user-confirmed call (confirm=true) is required and the underlying DELETE endpoint. It doesn't spell out irreversibility explicitly, but the annotations plus this context are solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three terse clauses, front-loaded with the action and id source, followed by the confirmation requirement and endpoint. No filler sentences; every fragment earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter destructive DELETE with full schema annotations and no meaningful return payload, this is essentially complete. A sentence on irreversibility or failure modes would round it out, but nothing required to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (id and confirm) are already documented in the schema, including the confirmation protocol. The description restates both without adding format or edge-case detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Delete a webhook subscription") and names the sibling tool that produces the required id (oblio_list_webhooks), which separates it cleanly from oblio_create_webhook and oblio_list_webhooks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear preconditions: obtain the id from oblio_list_webhooks and set confirm to true only after user confirmation. It stops short of stating when NOT to delete or what alternatives exist (e.g. disabling a subscription), so it is not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_get_documentGet a documentB
Read-only
Inspect

One invoice, proforma or notice by series and number: type, series, number, link to the PDF and (invoices) the collections. GET /api/docs/.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
typeYesinvoice (factura), proforma or notice (aviz de insotire).
numberYesDocument number within the series, digits only (0055 and 55 are the same).
series_nameYesDocument series name (from oblio_list_series), for example FCT.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read. The description adds useful return-content context (type, series, number, PDF link, collections for invoices), which partly compensates for the missing output schema, but says nothing about auth, error behavior, or what a missing document returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with what the tool returns and the keying scheme. The trailing raw endpoint 'GET /api/docs/<type>' is marginally useful but is the only slightly extraneous element.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly steps in to summarize the returned fields (type, series, number, PDF link, collections). Combined with 100% schema coverage and a readOnly annotation, an agent has enough to invoke it correctly, though usage routing remains thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter is already documented with examples and formats. The description merely echoes type/series/number without adding format, syntax, or edge-case detail beyond the schema, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb-and-resource: retrieves ONE invoice, proforma or notice identified by series and number. The singular framing implicitly contrasts with the list-oriented siblings (oblio_list_invoices), but no sibling is named explicitly, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says how the document is keyed but never states when to use this tool versus oblio_list_invoices or the create/cancel/restore siblings. No prerequisites or exclusions are given; the only routing hints (oblio_list_companies, oblio_list_series) live in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_issue_invoiceIssue an invoice (fiscal, irreversible)A
Destructive
Inspect

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.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
clientNoThe client. Required unless reference_document is given (then Oblio takes it from the referenced document).
collectNoRecord the payment together with the invoice.
confirmNoMust be true. Set it only after the user has confirmed this exact action in this conversation.
currencyNoDocument currency (default "RON").
due_dateNoDue date yyyy-mm-dd.
languageNoDocument language code from oblio_list_languages (default "RO").
mentionsNoMentions printed on the document.
productsNo1-200 lines: products/services (name + price) or discounts (name + discount). Required unless reference_document is given.
precisionNoDecimals, 2 to 4 (default 2).
use_stockNoTake the goods out of stock (only with stock enabled).
issue_dateNoIssue date yyyy-mm-dd (default today).
issuer_nameNoPrepared by (intocmit de).
series_nameYesDocument series name (from oblio_list_series), for example FCT.
collect_dateNoCollection date yyyy-mm-dd.
order_numberNoOrder number (BT-13).
work_stationNoWork point (only with stock enabled; default "Sediu").
delivery_dateNoDelivery date yyyy-mm-dd.
exchange_rateNoExchange rate for a foreign-currency document (default: the company's setting).
internal_noteNoInternal note, not visible to the client.
idempotency_keyYesREQUIRED unique key for this invoice (for example a UUID) so Oblio drops a duplicate of the same request.
reference_documentNoBase the invoice on a proforma or notice, or reverse an invoice.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive=true and idempotent=false, but the description adds substantial context beyond them: no draft state, no post-issue editing, irreversible number consumption, cancellation-only recovery, optional ANAF e-Factura/SPV transmission, and no client e-mail. These are exactly the consequences an agent needs before firing an irreversible fiscal write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a dense single paragraph, but it is front-loaded with the action and irreversibility, followed by prerequisites and behavioral caveats in a sensible order. Nearly every sentence earns its place, with only mild redundancy between the narrative and the schema's own notes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 22-parameter, nested, irreversible write with no output schema, the description covers the critical safety context (confirmation, idempotency, irreversibility, retry handling, e-mail behavior) that the schema cannot express. It does not describe what a successful response contains or how errors are surfaced, but the essentials for correct invocation are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 22 parameters in depth. The description restates a few high-signal ones (confirm, idempotency_key, reference_document, collect, delivery_date) but adds no syntax, format, or constraint detail beyond what the schema carries. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ("ISSUE a real INVOICE") and immediately characterizes it as a legal fiscal document that consumes the next number in the series. It implicitly distinguishes itself from sibling document tools (proforma creation via reference_document, cancellation, separate collection) so an agent knows this is the finalizing step, not a draft.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states concrete prerequisites (confirm:true, idempotency_key, explicit user approval) and a clear safety rule (not retried; inspect Oblio before repeating), plus that no e-mail is sent. It implies the cancellation path and the optional collect step, but it never names the sibling tools (oblio_cancel_document, oblio_collect_invoice) as the alternatives for those flows, so it falls short of a full when-to-use/when-not matrix.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_list_clientsList or search clientsA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
nameNoClient name to search.
offsetNoStart position, a multiple of 250 (0 default); use next_offset from the previous reply.
client_cifNoCIF of the client to find.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuinely new behavioral context: the 250-per-page cap and the next_offset paging contract, plus the underlying endpoint. It does not describe the response shape, but that is a minor gap for a read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the resource stated first and pagination second; the endpoint is tagged on at the end. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, fully-schematized list tool this covers the essentials: what is returned (clients of a company), how to filter, and how to page. Only the absence of any hint about the sibling list tool keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (cif, name, offset, client_cif) is already documented in the schema, including the next_offset paging hint. The description adds only a paraphrase of that same information, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (clients of a company) and the filtering options, and the title confirms the list/search action. It does not explicitly distinguish itself from the adjacent oblio_list_companies sibling, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: filter by name or client CIF when searching, page with next_offset. There is no explicit when-to-use-vs-alternative guidance and no mention of the oblio_list_companies companion tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_list_companiesList companiesA
Read-only
Inspect

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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes the safe-read profile. The description adds valuable context beyond that — the returned fields, the GET endpoint, and its role as a prerequisite for other tools — but it does not mention authentication or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact elements — resource with fields, first-call guidance, and endpoint — with no wasted words. The most useful information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, read-only list tool with no output schema, the description supplies what the agent needs: the resource, returned fields, endpoint, and its dependency role. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so parameter semantics are not applicable. Per the rubric, zero parameters gives a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource — companies linked to the connected Oblio account — and names the returned fields (CIF, name, access level). It clearly identifies what the tool retrieves, though it lacks an explicit action verb and does not explicitly contrast itself with other list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives strong usage context: 'Good first call: every other tool needs a CIF from here.' This tells the agent exactly when to invoke it and why, but no when-not-to-use condition is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_list_invoicesList invoicesA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
draftNotrue = only drafts, false = only issued.
numberNoOnly this document number.
offsetNoStart position (0 default); use next_offset from the previous reply.
canceledNotrue = only canceled, false = only not canceled.
order_byNo
collectedNotrue = only collected (paid), false = only not collected.
order_dirNo
client_cifNoOnly invoices of the client with this CIF.
client_codeNoOnly invoices of the client with this code.
series_nameNoOnly this series.
client_emailNoOnly invoices of the client with this e-mail.
issued_afterNoIssued on or after yyyy-mm-dd.
issued_beforeNoIssued on or before yyyy-mm-dd.
with_collectsNoInclude the collections.
with_productsNoInclude the invoice lines.
limit_per_pageNoResults per page, 1-100 (default 100).
with_einvoice_statusNoInclude the e-Factura (SPV) status.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true, so the safety profile is already covered. The description adds genuinely useful behavior beyond that: results are newest-first by default, pagination is driven by next_offset, and products/collections/e-Factura status are opt-in payload expansions that change response weight. It omits any note on rate limits or result-count caps, keeping it at 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the resource and filter scope, then defaults, then the pagination contract. The parenthetical filter list is dense but each clause corresponds to real parameters. The trailing endpoint URL is marginal but cheap.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter paginated list tool with no output schema, the description covers the two things an agent most needs: how ordering defaults and how to page using next_offset from the previous reply. It doesn't state the response envelope or total-count behavior, which matters when there is no output schema, but overall it is sufficient to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 89% and the schema documents the toggles precisely (draft = only drafts vs only issued). The description still adds value by grouping the 18 parameters into filter families and mapping the optional flags (with_products, with_collects, with_einvoice_status) to what they actually enrich in the reply. Slightly above the baseline-3 case for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (invoices), scopes it to a company, and enumerates the filter families (series, number, dates, client, draft/canceled/collected). An agent can distinguish it from oblio_list_clients/oblio_list_products and from oblio_get_document (single document) by resource alone. It stops short of explicitly contrasting with those siblings, so a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is operational guidance for pagination ('Pass next_offset as offset for the next page') and the default ordering, which is real usage help. However, there is no explicit when-to-use statement or exclusion — nothing tells the agent to prefer oblio_get_document for a single invoice or when a filter combination is pointless. Usage is implied by the resource name rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_list_languagesList document languagesA
Read-only
Inspect

Foreign languages a company can issue documents in (code, name). GET /api/nomenclature/languages.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description only restates the HTTP verb via 'GET /api/nomenclature/languages', which adds little. It does usefully disclose the return shape (code, name), which the missing output schema would otherwise leave unknown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence plus a short endpoint reference; the resource scope and return fields are front-loaded. The raw endpoint path is slightly redundant with the name/annotations but remains compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only nomenclature lookup with full schema coverage, the description covers what the tool returns (code, name pair) and what it represents, compensating for the absent output schema. Only explicit usage guidance is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single cif parameter is fully documented there, including its source (oblio_list_companies) and format. The description adds no parameter-level meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource: 'foreign languages a company can issue documents in', plus the returned fields (code, name). It is clearly distinguishable from sibling list tools such as oblio_list_vat_rates or oblio_list_series, though the verb ('list') is only implied by the name rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrasing 'languages a company can issue documents in' implies the use case (selecting a language when issuing a document), but there is no explicit when-to-use statement, no prerequisites, and no mention of alternatives. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_list_managementList stock managementsA
Read-only
Inspect

Stock managements (gestiuni) of a company with their work point and type; works only when stock is enabled. GET /api/nomenclature/management.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuine behavioral context beyond that: the stock-enabled precondition (a gating condition the agent must know) and the fact that returned managements carry a work point and type. It does not mention pagination, but for a simple nomenclature list this is solid added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the resource and precondition front-loaded, followed by the endpoint for orientation. No filler, though the endpoint reference is marginally redundant for an agent choosing a tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by naming the returned fields (work point and type) and the stock-enabled precondition. Together with a fully documented single parameter and a readOnly annotation, an agent has enough to call this correctly; only return-shape details like count or ordering are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single required 'cif' parameter, and the schema already explains where CIF comes from (oblio_list_companies) with a format example. The description adds nothing about the parameter, so the baseline 3 for high schema coverage is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: listing stock managements (gestiuni) for a company, and includes the local Romanian term plus the underlying endpoint GET /api/nomenclature/management. It is clearly distinguishable from all siblings, which cover documents, clients, invoices, webhooks and other nomenclatures, though it does not explicitly name a sibling it differs from.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives one real precondition — 'works only when stock is enabled' — which tells the agent when the tool is applicable. However, it offers no guidance on alternatives or what to do when stock is disabled, and there is no explicit when-to-use framing beyond that gate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_list_productsList or search productsA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
codeNoProduct code to find.
nameNoProduct name to search.
offsetNoStart position, a multiple of 250 (0 default); use next_offset from the previous reply.
managementNoStock management to search in (see oblio_list_management).
work_stationNoWork point of that management.
include_unsalableNotrue = include products marked as not for sale.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already establishes the safe read-only profile, and the description adds genuinely useful behavior beyond it: page size (250), the next_offset-as-offset paging convention, and the set of fields returned. That is real added context for a list endpoint, though it stops short of describing sort/filter interaction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences plus the endpoint reference; the resource and its attributes are front-loaded with no filler. The first sentence is only lightly fragmentary but still earns its space by summarizing return fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with full schema coverage and no output schema, the definition covers the resource, the attributes returned, and pagination. It does not explain sorting or how filters combine, but nothing critical for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters are already documented in structured fields. The description's pagination note ('Up to 250 per page: pass next_offset as offset') largely repeats what the offset schema text already states, so it adds little beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (products and services of a company) and enumerates the returned fields (unit, price, VAT, stock quantities), which clearly distinguishes it from siblings like oblio_list_clients or oblio_list_invoices. It lacks an explicit action verb (list/search) in the body text, relying on the title for that, so it falls just short of the top tier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no explicit mention of alternatives. The only routing hints ('see oblio_list_management', 'from oblio_list_companies') live in the schema, not the description, so an agent gets no narrative steering here.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_list_seriesList document seriesA
Read-only
Inspect

Document series of a company (type Factura/Proforma/Aviz, name, start, next number, default). Use the name as series_name. GET /api/nomenclature/series.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already covers the safety profile, so the bar is lower; the description still adds value by disclosing the returned object's shape (type, name, start, next number, default) and the underlying endpoint. It does not mention pagination, auth requirements, or rate limits, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very compact: the resource and its fields are front-loaded, followed by a terse usage tip and the GET path. No filler, though the parenthetical field list is dense and 'Use the name as series_name' is slightly cryptic out of context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only lookup with annotations covering safety and no output schema, the description compensates by listing the returned fields. Missing only minor details such as what 'default' and 'next number' signify or whether the result is paginated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single cif parameter is already explained (format plus example RO37311090 and its source from oblio_list_companies). The description adds nothing about the parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource ('Document series of a company') and enumerates the fields it carries (type Factura/Proforma/Aviz, name, start, next number, default), so an agent knows exactly what it retrieves. No sibling lists series, so there is no real ambiguity, though the description doesn't explicitly differentiate itself from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: you call it to inspect a company's series definition. It gives one actionable workflow hint ('Use the name as series_name'), but no explicit when-to-use, prerequisites, or alternatives for other lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_list_vat_ratesList VAT ratesA
Read-only
Inspect

VAT rates (name, percent, default) of a company; use the name and percent on document lines. GET /api/nomenclature/vat_rates.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read. The description contributes the return field set and the underlying GET path, which is useful, but says nothing about pagination, result size, or whether an unknown CIF errors or returns empty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact sentence with the resource and return fields front-loaded, followed by the endpoint. No filler, though the trailing HTTP path is marginal value for an agent that only needs the tool contract.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the parenthetical field list is the only disclosure of return shape and it is included. For a trivial one-parameter read tool this is close to sufficient; only error/empty behavior is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the single cif parameter is fully documented in the schema, including a pointer to oblio_list_companies and a concrete example. The description adds nothing about the parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (VAT rates) and enumerates the salient returned fields (name, percent, default), so the agent knows exactly what comes back. It doesn't explicitly contrast with a sibling, but the resource is unambiguous within the oblio_list_* family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"use the name and percent on document lines" gives implied usage context — you fetch these to populate document lines — but there is no statement of when to call this versus another lookup, nor any prerequisite or exclusion beyond the CIF requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_list_webhooksList webhooksA
Read-only
Inspect

The webhook subscriptions of the account (id, CIF, topic, endpoint). GET /api/webhooks.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the HTTP endpoint (GET /api/webhooks) and, more usefully, the shape of what comes back (id, CIF, topic, endpoint), which matters since no output schema exists. Pagination and ordering behavior are still unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact fragments with no filler, and the resource scope is front-loaded before the endpoint reference. The phrasing is telegraphic rather than fully formed prose, but nothing needs to be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only list tool with no output schema, the description supplies the essentials: what is returned, at what scope, and via which endpoint. Only pagination/result-size behavior is missing, which is minor at this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4 per the rubric. The description correctly implies no inputs are required; there is nothing to document beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the specific resource ('webhook subscriptions of the account') and even enumerates the returned fields (id, CIF, topic, endpoint), which cleanly separates it from create_webhook and delete_webhook in the sibling list. The listing verb is only implied by the title rather than stated in the description, which keeps it just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scope ('of the account') implies the usage context, and no filtering or prerequisites exist for a zero-parameter list. However, there is no explicit when-to-use statement or mention of alternatives, so guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_restore_documentRestore a cancelled document (fiscal)A
Destructive
Inspect

Restore a previously CANCELLED invoice, proforma or notice. Needs confirm: true and the user's approval. Not retried. PUT /api/docs//restore.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
typeYesinvoice (factura), proforma or notice (aviz de insotire).
numberYesDocument number within the series, digits only (0055 and 55 are the same).
confirmNoMust be true. Set it only after the user has confirmed this exact action in this conversation.
series_nameYesDocument series name (from oblio_list_series), for example FCT.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true, idempotent=false and readOnly=false. The description adds real value beyond them by disclosing the human-approval gate, the mandatory confirm flag, and that the call is not retried (reinforcing non-idempotency). It stops short of explaining exactly what state change occurs or what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the purpose and followed by the critical precondition and a compact endpoint reference. No filler, and the safety-critical requirement is not buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive fiscal operation with no output schema, the definition covers the key prerequisites (cancelled state, confirm, user approval) and the endpoint. It omits what the restored document looks like afterward and any dependent effects, a minor gap given annotations already flag destructiveness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters including the confirm semantics. The description's 'Needs confirm: true' restates schema content rather than adding new parameter meaning; baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Restore') and resource (CANCELLED invoice, proforma or notice), including the required precondition that the document be cancelled. An agent can distinguish this from oblio_cancel_document, its inverse sibling, without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear conditions for invocation: the document must be cancelled, confirm must be true, and the user must have approved. It does not explicitly name the alternative (oblio_cancel_document) or state when not to use it, which keeps it short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oblio_send_einvoice_to_spvSend an invoice to e-Factura (SPV)A
Destructive
Inspect

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.

NameRequiredDescriptionDefault
cifYesCIF of YOUR company in Oblio (from oblio_list_companies), for example RO37311090.
numberYesDocument number within the series, digits only (0055 and 55 are the same).
confirmNoMust be true. Set it only after the user has confirmed this exact action in this conversation.
series_nameYesDocument series name (from oblio_list_series), for example FCT.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses irreversibility (an accepted document cannot be withdrawn), that the operation is not retried, the confirmation requirement, and the meaning of each return code (-1/0/1/2). The annotations only flag destructive/non-idempotent; the description explains the practical consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but zero-waste: purpose, irreversibility warning, prerequisite, retry guidance, and return codes are all front-loaded in four short sentences. Every clause carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by explaining the return payload (text, sent, and the code values). Combined with the endpoint and safety caveats, an agent has everything needed to call and interpret this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so cif, number, series_name and confirm are already fully documented in the schema. The description restates the confirm requirement but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (SEND) and resource (issued invoice to ANAF e-Factura/SPV), plus the underlying endpoint POST /api/docs/einvoice. It is clearly distinguishable from siblings like oblio_issue_invoice or oblio_cancel_document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the precondition (confirm: true plus the user's approval), the when-not-to-retry rule, and names the alternative oblio_list_invoices with with_einvoice_status for checking status before repeating. Nothing about routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables issuing invoices, proformas, and delivery notices, collecting payments, submitting e-Factura to Romania's SPV, and querying reference data on Oblio.eu through natural language from MCP clients.
    12
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Unofficial 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.
    12
    272 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables integration with Fatture in Cloud to manage Italian electronic invoices through natural conversation, including creating, sending, and tracking invoices and financial data.
    44 PyPI
    25
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.