Skip to main content
Glama

Get sales invoice from SEF

sef_get_invoice
Read-onlyIdempotent

Retrieve a sales invoice and its current status from SEF by invoiceId to verify its processing state.

Instructions

Returns a sales invoice and its status from SEF by SEF invoiceId.

Input Schema

NameRequiredDescriptionDefault
invoiceIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is covered. The description adds that status is part of the result, but says nothing about what happens for an unknown invoiceId, what status values exist, or whether results are cached/eventually consistent — relevant given the openWorldHint.

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?

One front-loaded sentence with no filler; the verb, result, source system, and keying parameter all appear immediately.

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

Completeness3/5

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

For a single-parameter read with rich annotations and no output schema, the definition is minimal but workable. It leaves gaps on how to obtain the invoiceId and on failure semantics (not-found, auth/setup requirements given the sef_check_setup/sef_setup_company siblings), which an agent would need in practice.

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 0% for the single required parameter, so the description must carry the meaning. It does clarify that the id is the SEF-side invoiceId rather than an internal or draft id, which is genuinely useful, but adds no format, range, or sourcing (how to obtain a valid id) 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 a specific verb ('Returns') and resource ('a sales invoice and its status') scoped to SEF, which distinguishes it from siblings like sef_get_draft (local draft) and sef_list_invoice_ids (enumeration). It does not explicitly name a sibling to contrast with, but the resource is concrete enough to select on.

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: the agent must infer that this is the lookup to use after sending an invoice or when it already holds a SEF-side id. There is no stated when-not-to-use (e.g., versus sef_get_draft for unsent invoices) and no mention of where the invoiceId comes from, such as sef_list_invoice_ids.

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