Skip to main content
Glama
stornoro

Storno CLI

by stornoro

partner_verify

Verify a client or supplier against ANAF or VIES, store the VAT status snapshot, and alert on changes like lost VAT registration or inactivation.

Instructions

Check one client or supplier at ANAF (Romanian company with CUI) or VIES (EU partner with a VAT number) and store the snapshot on it: vatRegistered, vatOnCollection (+ vatOnCollectionFrom/To), inactive, efacturaRegistered, viesValid, verificationNotes, vatStatusCheckedAt. Returns the updated partner and result: checked (bool), source (anaf | vies), changes (became_inactive, reactivated, lost_vat_registration, vat_registered, vat_on_collection, vat_on_collection_ended, vies_invalid, vies_valid) and error (not_applicable for individuals / non-EU partners, registry_unavailable when the registry did not answer — the previous snapshot is kept, not_found when ANAF does not know the CUI). A degrading change also sends the partner.status_changed notification to the company members. Requires the client-edit permission; throttled per user like the registry lookups.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYesPartner kind
uuidYesClient or supplier UUID
companyIdNoCompany UUID (overrides STORNO_COMPANY_ID env var)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.48

TDQS

A4.2/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, and it excels: it enumerates the stored snapshot fields, the result structure with all change types, the error semantics (not_applicable, registry_unavailable, not_found) including that the previous snapshot is kept, the side-effect notification on degrading changes, and the permission and throttling constraints. This is exceptionally transparent and leaves little to inference.

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 a single, information-dense paragraph that leads with the core action and then lists the stored fields, result fields, errors, side effects, and permissions. Every sentence carries relevant detail, and the structure is logical (purpose → output → errors → side effects → constraints). It is long but warranted given the tool's complexity, so it earns a 4 rather than 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 tool with two registries, multiple stored fields, a rich result enum, and error cases, the description is remarkably complete. It explains what happens on each error, what gets stored, what triggers a notification, and the required permission. Nothing an agent needs to invoke this tool correctly or interpret its output is missing, and the output structure is fully described despite the lack of an output schema.

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?

The input schema already provides descriptions for all three parameters (type, uuid, companyId) with 100% coverage. The tool description does not add any additional parameter-level detail beyond what the schema states; it only implies the partner kind via 'client or supplier'. Since the schema does the heavy lifting, a baseline of 3 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 opens with a specific verb ('Check') and a clear resource ('one client or supplier'), and names both registries (ANAF and VIES) plus the stored fields. It implicitly distinguishes itself from siblings like partners_verify_all by limiting scope to a single partner, so an agent can tell it apart without inspecting other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the operation's scope ('one client or supplier') and the required permission, but it does not explicitly mention when to prefer this tool over alternatives such as partners_verify_all or the dedicated lookup tools (clients_anaf_lookup, clients_vies_lookup). There is no when-not-to-use guidance, so the context is clear but exclusions are absent.

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