Skip to main content
Glama
Storno CLI

Storno CLI

Official
by stornoro

integration_invoicing_activity

Read-onlyIdempotent

Check whether a fiscal code (CUI/CIF) invoices through Storno and count issued invoices in a recent window, so platforms can verify benefit eligibility without company or amount data.

Instructions

Check whether a fiscal code (CUI/CIF) invoices through Storno, and how many invoices it issued recently. Built for platforms that give their users a benefit for invoicing here, so it is NOT authenticated with your user token — the credential is a shared integration key, configured server-side as INTEGRATION_API_KEY. Returns only { active, invoicesLast30d, windowDays, invoicesInWindow }: no company name, no amounts, no clients. Counts issued outgoing invoices only — drafts, cancelled and rejected ones do not count, so a company cannot earn a benefit by issuing and voiding. Returns active: false for an unknown fiscal code and for a suspended organization alike. If the server has no key configured the endpoint answers 404 ("not enabled"), and a wrong key answers 401.

Input Schema

NameRequiredDescriptionDefault
cuiYesFiscal code to look up. Written however you have it — "RO12345678", "12345678", spaced or dotted are all accepted
windowNoHow many days back to count, 1-365 (default 30). The 30-day figure is reported as invoicesLast30d regardless
integrationKeyNoThe shared integration key. Falls back to the STORNO_INTEGRATION_KEY environment variable when omitted

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.49

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: discloses a separate credential model (shared INTEGRATION_API_KEY, server-side), the exact return shape, the counting rule (issued outgoing only; drafts/cancelled/rejected excluded), the meaning of active:false for unknown vs suspended orgs, and the 404/401 error semantics. This is substantive behavioral context an agent could not infer from annotations.

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?

Dense but every sentence carries information — purpose first, then auth model, return shape, counting rules, then error codes. It is on the long side, but nothing is filler; a slight tightening of the return-shape sentence would make it a 5.

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 3-param read-only lookup with no output schema, the description supplies everything an agent needs: what it returns, how counts are computed, auth expectations, and failure modes. Nothing material is left to inference.

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 100%, so the baseline is 3, but the description adds real meaning: integrationKey is a shared server-side credential rather than the user token, and it clarifies that invoicesLast30d is always reported regardless of the chosen window. That closes the subtle semantic gap the schema only hints at.

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+resource (check whether a fiscal code invoices through Storno, and count recent issued invoices) and scopes it to an integration use case, which clearly separates it from the user-facing invoices_* siblings. An agent can tell it is a lookup/eligibility check, not a listing tool.

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 usage context — built for platforms granting a benefit for invoicing here — and explicitly warns that it is NOT authenticated with the user token. It does not name an alternative sibling or spell out when-not to call it, but the audience framing makes the intended caller unambiguous.

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

Deploy Server

Other Tools