Skip to main content
Glama
beel-es

BeeL MCP server

Official
by beel-es

beel_patch_series

Idempotent

Partially update an invoice series with only the fields you provide, preserving all others. Handles restrictions on numbering after invoicing and default series reassignment.

Instructions

Updates only the fields present in the body, leaving every other field of the series as it is. A field sent as null clears it, which only description supports. The numbering fields — code, format, counter_reset and initial_number — are rejected once the series has issued invoices.

default_series cannot be used to clear the default: sending false for the series that currently is the default answers DEFAULT_CANNOT_BE_UNMARKED, because it would leave the document type with active series and no default, and issuing without an explicit series_id would then fail with SERIES_DEFAULT_NOT_FOUND. Hand the default over with PUT /v1/companies/{company_id}/series/{series_id}/default on the new series, which unmarks the previous one. Sending false for a series that is not the default is a no-op.

Endpoint: PATCH /v1/companies/{company_id}/series/{series_id}

⚠️ Fiscal guardrails — read before calling:

  • How invoice numbers are formed, and why numbering can never be rewritten. (resource: beel://guardrails/series-and-numbering)

For the exhaustive rules and worked examples, call beel_docs_search.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes
series_idYesSeries ID
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.
Behavior5/5

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

Annotations indicate readOnlyHint false (write), openWorldHint true, idempotentHint true, destructiveHint false. The description aligns and adds substantial behavioral detail: it discloses that null only clears description, that numbering fields are rejected post-issuance, the exact error codes for default unmarking, and the no-op behavior for non-defaults. It also provides a guardrail resource link. This far exceeds the minimum and provides crucial operational nuance.

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?

The description is long but well-structured: it opens with the core partial-update rule, then covers the nuanced default_series behavior, then the endpoint, a guardrail warning, and a pointer to further docs. Every sentence adds necessary detail for correct usage; no fluff. It is somewhat dense but organized in clear paragraphs, deserving a 4 rather than a 5 due to its length.

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?

Given the complexity of partial updates, numbering restrictions, and default-series handling, this description covers all critical aspects. It mentions specific error codes, the no-op case, the guardrail resource, and directs to docs for exhaustive rules. Since there is no output schema, it appropriately explains what to expect only implicitly, but the behavioral rules are thorough. For a patch operation with many edge cases, this is complete.

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 input schema already provides rich descriptions for each field, including null semantics and restrictions (e.g., description can be null, active cannot be deactivated if default). The tool description adds value by clarifying which fields are 'numbering fields' (code, format, counter_reset, initial_number) and that only description supports explicit null clearing. It also explains the default_series handoff behavior in the context of the boolean parameter. This goes beyond the schema, though it doesn't enumerate every parameter individually—the schema carries that load, so a 4 is appropriate.

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 states a specific verb ('Updates') and resource ('series'), and clearly explains the partial-update semantics ('only the fields present in the body'). It distinguishes itself from a full PUT by describing what happens to omitted fields and nulls. This is unambiguous and differentiates it from sibling patch tools like beel_patch_invoice.

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?

The description provides clear context on when to use this tool and important usage constraints: it explains the default_series behavior, the specific error when trying to unmark a default, and points to the PUT endpoint for handing over the default. It also mentions that numbering fields are rejected after invoices are issued. It does not explicitly contrast with a full PUT for general updates, but it implies that PUT would be the alternative for replacing all fields. This is strong guidance, only missing an explicit 'use PUT when you want a full replace'.

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