Skip to main content
Glama
Storno CLI

Storno CLI

Official
by stornoro

einvoice_config_save

Idempotent

Create or update an e-invoice provider configuration with API credentials to enable e-invoicing for a company. Set provider-specific JSON settings for xrechnung, sdi, ksef, or facturx.

Instructions

Create or update an e-invoice provider configuration for a company. Use this to enable a provider and set API credentials. Config is provider-specific JSON: xrechnung requires {clientId, clientSecret} for ZRE API; sdi requires {certPath, certPassword} or {apiEndpoint, apiKey} for intermediary; ksef requires {authToken, nip}; facturx requires {clientId, clientSecret, siret} for Chorus Pro. ANAF config is managed separately via ANAF tokens.

Input Schema

NameRequiredDescriptionDefault
configNoProvider-specific configuration as JSON object
enabledNoWhether this provider is active (default: true)
providerYesE-invoicing provider to configure
companyIdNoCompany UUID (uses default if not specified)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.17

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the safety and repeat-call profile is covered. The description adds that config is provider-specific and that ANAF is out of scope, but it does not say whether an existing configuration is overwritten, whether credentials are validated against the provider, or what a successful call returns.

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?

Front-loaded with the purpose, then the use case, then the credentials spec, then the ANAF exclusion. The dense per-provider enumeration is semicolon-structured and every clause carries information an agent needs to build a valid call.

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?

For a 4-parameter upsert with a nested free-form object and no output schema, the description covers the hardest part (valid config shapes) and the scope boundary. Remaining gaps are overwrite semantics and error behavior on invalid credentials.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema leaves `config` as a free-form object with additionalProperties and no key documentation; the description supplies exactly the missing per-provider key sets (xrechnung clientId/clientSecret, sdi certPath/certPassword or apiEndpoint/apiKey, ksef authToken/nip, facturx clientId/clientSecret/siret). That is real added meaning beyond the 100% schema coverage.

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 pair and resource: 'Create or update an e-invoice provider configuration for a company.' That is unmistakably distinct from the sibling read/delete/test tools (einvoice_config_list, einvoice_config_delete, einvoice_config_test) and from einvoice_submit.

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?

'Use this to enable a provider and set API credentials' gives a concrete when-to-use condition, and the closing sentence explicitly excludes ANAF by pointing to the separate ANAF token flow (anaf_tokens). It stops short of naming the exact sibling tools for validation or listing, but the routing signal is clear.

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