Skip to main content
Glama
stornoro

Storno CLI

Official
by stornoro

partner_verify

Check a client or supplier against ANAF or VIES and store the verification snapshot on the partner, flagging VAT status changes and invalidating records when registrations degrade.

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

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

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

Despite annotations covering the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), the description adds substantial behavioral context: it lists exactly which snapshot fields are stored, enumerates change types returned in `result.changes`, explains error semantics (not_applicable, registry_unavailable with snapshot preservation, not_found), discloses the side-effect notification on degrading changes, and states the required permission and throttling. This goes well beyond what annotations provide.

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 dense paragraph, front-loaded with purpose and then details. Every sentence earns its place, but the parenthetical lists and error explanations could be structured as bullets for faster scanning. It is information-rich without being redundant.

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?

With no output schema, the description fully explains the return shape: updated partner fields, `result` with checked/source/changes/error, and notification side effect. It also covers permissions and throttling. An agent has everything needed to invoke and interpret the tool correctly.

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%, so the schema already fully documents the three parameters (type enum, uuid, companyId override). The description does not add syntax or format details beyond what the schema provides, but it does implicitly clarify that `type` selects the registry path. Baseline 3 is appropriate when schema does the heavy lifting.

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 clear verb ('Check') and specific resource ('one client or supplier'), names both registries (ANAF for CUI, VIES for EU VAT), and notes the snapshot storage side effect. This distinguishes it from siblings like clients_anaf_lookup and clients_vies_lookup, which are single-registry lookups, and from partners_verify_all.

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 makes clear this is for a single partner and explains when each registry applies based on partner type (CUI vs VAT number). It also documents error conditions for individuals/non-EU partners. However, it does not explicitly name or compare against the sibling partners_verify_all for bulk operations, leaving that routing inference to the agent.

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