Skip to main content
Glama
beel-es

BeeL MCP server

Official
by beel-es

beel_create_invoice_batch

Issue or update status for up to 50 invoices in one batch, with per-invoice success/failure reporting. Simplifies bulk invoice management by processing each transaction in its own atomic operation.

Instructions

Applies one operation — ISSUE or STATUS — to up to 50 invoices of this company and reports, invoice by invoice, which succeeded and which failed.

Not atomic: each invoice is processed in its own transaction, and since issuing is irreversible, the ones already issued stay issued if a later one fails. Downloading PDFs, sending email and exporting are not operations of this batch: use pdf-archive, deliveries and exports.

Endpoint: POST /v1/companies/{company_id}/invoices/batches

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes
company_idYesNIF (company) the operation acts on. It is the only source of context: the account that owns it is derived from it, and the `BeeL-Active-Company` header plays no part. A NIF you do not reach answers `403`, and so does a NIF that does not exist, so the existence of a NIF in another account is never disclosed.
idempotency_keyNoOptional idempotency key for this operation. Omit it and one is derived from the request itself, which makes a blind retry safe but also collapses a SECOND, deliberately identical operation into the first for 24 hours. Set it — to an order id, or anything unique per intended operation — whenever you mean to create something that may look identical to what you just created.
Behavior5/5

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

Despite annotations already indicating readOnlyHint=false and idempotentHint=false, the description adds significant behavioral context: 'Not atomic: each invoice is processed in its own transaction, and since issuing is irreversible, the ones already issued stay issued if a later one fails.' It also mentions per-invoice reporting and the endpoint. This goes well beyond the annotations and is crucial for an agent to understand side effects.

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?

The description is two tightly written paragraphs plus a single endpoint line. It front-loads the core purpose, then adds caveats and exclusions, then the endpoint. Every sentence carries essential information with no repetition or filler. This is a model of conciseness without under-specification.

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 batch mutation tool with non-atomic semantics, the description covers all essential guidance: what it does, per-invoice reporting, irreversibility, exclusions, and the HTTP endpoint. It complements the schema (which details parameters) and annotations (which flag write behavior). Nothing critical is missing for an agent to invoke it 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 67%, and the schema itself provides detailed descriptions for 'operation', 'new_status', 'invoice_ids', and 'payment_date'. The description adds little beyond restating the operations and mentioning the 50-invoice limit (already in schema maxItems). While it does not harm, it does not meaningfully enhance parameter understanding beyond what the schema already provides.

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 precise statement: 'Applies one operation — ISSUE or STATUS — to up to 50 invoices of this company and reports, invoice by invoice, which succeeded and which failed.' It clearly identifies the resource (invoices), the action (batch operation), and the scope (company). It also differentiates from sibling operations like pdf-archive, deliveries, and exports, making its purpose unmistakable.

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?

The description explicitly states when not to use this tool: 'Downloading PDFs, sending email and exporting are not operations of this batch: use `pdf-archive`, `deliveries` and `exports`.' It also warns about irreversibility and non-atomicity, which guides an agent on whether to use this batch tool vs. single-invoice alternatives. This is explicit and actionable.

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

Install Server

Other Tools

Latest Blog Posts

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/beel-es/beel-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server