Skip to main content
Glama

A-Cube MCP by usefulapi

Create a draft invoice

acube_create_draft_invoice

WRITE: saves a new invoice as a DRAFT in A-Cube. Nothing is sent to the SDI until acube_send_draft_invoice. Not idempotent: calling it twice creates two drafts. Validate first with acube_validate_invoice. POST /invoices/draft.

Input Schema

NameRequiredDescriptionDefault
fattura_elettronica_bodyYesExactly one invoice body (an array with one object), snake_case keys: dati_generali (dati_generali_documento...), dati_beni_servizi (dettaglio_linee, dati_riepilogo), optional dati_pagamento. Field names as in the A-Cube Italy API reference.
fattura_elettronica_headerNoFatturaPA header as A-Cube JSON (snake_case keys): dati_trasmissione (codice_destinatario, pec_destinatario), cedente_prestatore (seller), cessionario_committente (buyer). Give the full header (seller and buyer) for a draft you intend to send: A-Cube only fills in transmission data automatically, and acube_validate_invoice shows what is missing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare idempotentHint=false and destructiveHint=false, but the description converts that into an actionable consequence: calling twice creates two drafts. It also clarifies the draft is inert until sent, which goes beyond the annotation set. It omits permissions/auth requirements and error behavior, so not 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?

Four short sentences, front-loaded with the WRITE marker, each carrying distinct information (draft semantics, non-idempotency, validation prerequisite, endpoint). 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?

Covers the mutation semantics, duplication risk, and pipeline position for a nested-body tool with no annotations gap. The remaining gap is the return shape: with no output schema, the description never says the response yields the draft identifier an agent would need for acube_send_draft_invoice.

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 nested field guidance (dati_generali, dati_beni_servizi, full header with seller and buyer) lives in the schema itself. The description adds no parameter-level detail beyond naming the endpoint, 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?

Opens with a specific verb and resource plus scope: 'WRITE: saves a new invoice as a DRAFT in A-Cube.' It also distinguishes itself from the send path by name (acube_send_draft_invoice), so an agent can tell create-draft from send-draft 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 sequencing: validate first with acube_validate_invoice, nothing reaches the SDI until acube_send_draft_invoice. It names the prerequisite and the follow-up tool, which is exactly the when/when-next guidance an agent needs.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.