Skip to main content
Glama
stornoro

Storno CLI

by stornoro

integration_invoicing_activity

Determine if a company invoices through Storno and how many invoices it issued in the last 30 days to qualify for benefits.

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

TableJSON 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.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It discloses the authentication model (shared integration key, not user token), the exact return shape, the counting rules (issued outgoing invoices only, excluding drafts/cancelled/rejected), and the behavior for unknown fiscal codes and suspended organizations (both return active: false). It also documents error responses for missing/wrong keys. This is exemplary transparency.

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 dense but well-organized, front-loading the core purpose and then covering authentication, return shape, counting rules, and error cases in a logical flow. Every sentence adds meaningful information; there is no fluff or repetition. It is longer than average, but the complexity of the tool's behavior justifies the 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?

For a tool with no output schema and no annotations, the description is remarkably complete. It covers the input (fiscal code, window), the output (exact fields), the authentication model, edge cases (unknown code, suspended org, missing key, wrong key), and the business logic (what counts as an invoice). An agent has everything needed to call this tool correctly and interpret its results.

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 description coverage is 100%, so the schema already documents all three parameters well. The description adds value by explaining the meaning of the output fields (invoicesLast30d, windowDays, invoicesInWindow) and the counting semantics, which complements the parameter docs. It doesn't add much beyond the schema for the parameters themselves, but the output semantics are valuable context. Baseline 3 is exceeded because the description clarifies the relationship between window and invoicesLast30d.

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 clearly states the tool's purpose: checking whether a fiscal code invoices through Storno and how many invoices it issued recently. It specifies the resource (fiscal code/CUI/CIF), the action (check), and the output scope. It also distinguishes itself from other tools by noting it is built for platforms giving benefits for invoicing, and it explicitly lists what it does NOT return.

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 explains when to use this tool (for platforms giving users a benefit for invoicing) and provides critical usage context: it is NOT authenticated with the user token, uses a shared integration key, and describes error conditions (404 when not enabled, 401 for wrong key). It also clarifies what counts and what doesn't (only issued outgoing invoices, not drafts/cancelled/rejected), which helps an agent decide when this tool is appropriate.

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