Skip to main content
Glama
Ownership verified

Server Details

French & European company registry for AI agents: KYB, sanctions, annual accounts. x402, no API key.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 77 of 77 tools scored. Lowest: 3.6/5.

Server CoherenceC
Disambiguation2/5

Several French company bundles overlap in purpose (get_french_company_file, get_french_company_kyb_file, get_french_company_intelligence, get_french_company_health_summary) and procurement/competitor tools overlap (get_french_company_public_procurement, get_eu_procurement_awards, get_company_procurement_competitors). Although descriptions try to differentiate, an agent could easily select the wrong tool when looking for a company overview or procurement history.

Naming Consistency4/5

Most tools follow a consistent get_/list_/search_ + country + entity pattern, e.g. get_french_company_profile, list_danish_company_filings, so navigation is predictable. Deviations like check_french_regulator_alerts, suggest_company_names, verify_iban_bank, and the prepare_* verbs are understandable but break the strict verb_noun pattern.

Tool Count1/5

77 tools is excessive for a single server regardless of how broad the domain is; the calibration treats 50+ as an extreme mismatch. While France is well covered and several countries appear, much of the surface is micro-endpoints (list_/get_ filing pairs per country) that could be consolidated.

Completeness3/5

France coverage is impressively complete (identity, financials, legal events, procurement, IP, risk, surveillance, invoicing), and the surveillance lifecycle has create/get/renew/stop. But European coverage is inconsistent: Germany has only insider transactions, Spain only acts, and several major jurisdictions lack accounts/officers/insolvency; an agent expecting 'European company due diligence' will hit dead ends.

Available Tools

77 tools
check_french_regulator_alertsA
Read-only
Inspect

French financial regulator (AMF) alerts and registers — scam check: screen a name against the official AMF blacklists (unauthorized investment websites, scams, AMF impersonation) and look up PSAN crypto-provider registrations and licensed asset-management companies (SGP) by name or SIREN. Use before trusting an investment site, a crypto provider or an asset manager operating in France. Official AMF open data, refreshed daily. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
nomNoName to screen (site, brand, company) — required unless siren is given
sirenNo9-digit SIREN for PSAN/SGP register lookup — required unless nom is given
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already mark the tool read-only and open-world; the description adds beyond that by disclosing the official AMF open-data source, daily refresh cadence, and the x402 payment requirement with a $0.01 cost. These are non-obvious behavioral traits not inferable from the annotations.

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?

Three sentences pack purpose, use case, data source, freshness, and payment cost with no filler. The core action is front-loaded in the first sentence, and every clause carries useful information.

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 paid, four-parameter tool with an output schema and read-only/open-world annotations, the description covers the key selection and invocation facts: what it checks, who it is for, where the data comes from, how fresh it is, and what it costs. Missing pieces like payment-quote behavior and parameter requirements are already covered in the input 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?

Schema coverage is 100%, and the schema already explains that nom is the name to screen, siren is the 9-digit SIREN for PSAN/SGP lookup, and api_key/x_payment handle payment. The description's 'by name or SIREN' phrase restates the schema rather than adding new parameter meaning, so the baseline of 3 applies.

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-resource pair: 'screen a name against the official AMF blacklists' and 'look up PSAN crypto-provider registrations and licensed asset-management companies (SGP) by name or SIREN.' The French-regulator scope and scam-check framing distinguish it from sibling tools like screen_sanctions_lists and search_eu_financial_authorisations.

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 explicitly says when to reach for it: 'Use before trusting an investment site, a crypto provider or an asset manager operating in France.' It gives a clear trigger context but does not spell out exclusions or alternative sibling tools, so no full when-not-to-use guidance.

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

compare_french_companiesA
Read-only
Inspect

Use when asked to compare, rank or choose between 2 to 5 French companies (suppliers, candidates, competitors). Returns a cross-table (identity, deterministic default-risk score, latest filed accounts with their accounting scope, BODACC legal alerts, sanctions screening of the legal name), per-axis rankings and — importantly — an explicit comparabilite block stating when the companies are NOT comparable (different sectors, different sizes, a holding in the batch). NEVER returns an overall winner: a holding with no debt outranks a large industrial group on default risk, which would be misread as a verdict on quality. Billed per company at $0.12 via x402 — the amount is the unit price times the number of SIREN.

ParametersJSON Schema
NameRequiredDescriptionDefault
sirensYesList of 2 to 5 nine-digit SIRENs
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

The description goes well beyond the readOnlyHint/openWorldHint annotations: it details the exact return composition (cross-table, per-axis rankings, comparabilite block), explicitly warns that it 'NEVER returns an overall winner', explains why that matters, and discloses billing behavior including the per-SIREN pricing formula. This gives the agent crucial expectations for interpreting results.

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 every sentence carries distinct value: use case, return contents, a critical interpretive caveat, and billing. It is front-loaded with the most important routing information and avoids fluff or repetition of schema details.

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?

Given the output schema exists and annotations cover read-only/open-world behavior, the description is complete for selection and invocation. It covers what the tool returns, what it deliberately does not return, when comparisons may be invalid, and the billing model. An agent has enough to decide when to call it and what to expect.

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 100%, so the baseline is 3. The description adds meaningful context beyond the schema by explaining how the sirens parameter drives cost ('$0.12 per company... unit price times the number of SIREN') and by framing the sirens list as a comparison batch. This pushes it above baseline, though the schema already covers the core meaning of each parameter.

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 precise use case: 'compare, rank or choose between 2 to 5 French companies (suppliers, candidates, competitors)'. This states the verb, resource, and scope clearly, and the focus on comparison/ranking distinguishes it from the many single-company retrieval siblings like get_french_company_profile or get_french_company_financials.

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?

It explicitly tells the agent when to use the tool ('Use when asked to compare, rank or choose between 2 to 5 French companies') and states a hard size limit. It does not explicitly name alternative tools for single-company lookups or for comparisons outside the range, so it misses the 'when-not/alternatives' element for a 5.

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

create_surveillance_watchAInspect

Company monitoring for France — use when the relationship OUTLASTS the check (supplier, borrower, portfolio company): create a 30, 90 or 365-day watchlist over French companies and/or directors. Sirenic checks every target DAILY (BODACC filings, status & officer changes, sanctions and AMF-blacklist matches, PSAN/SGP status, Seveso/ICPE changes, new French & EU procurement awards; for directors: new/ended public offices) and delivers events via Ed25519-signed webhook and/or e-mail digest — always pollable with the returned bearer token, plus an expiry reminder 7 days ahead. No account. Paid via x402, per target AND per duration: $0.05 for 30 days, $0.135 for 90 days, $0.50 for 365 days (amount = that unit price × number of targets, so up to $50.00 for 100 targets over a year). No pro-rata refund. A full-size request quotes up to $50.00, above the $1.00 single-payment cap that x402 clients apply BY DEFAULT since @x402/core 2.23 (spendControls): raise spendControls.maxAmountPerPayment, or set spendControls: false, before signing — otherwise your own client rejects the quote without ever calling us.

ParametersJSON Schema
NameRequiredDescriptionDefault
dureeNoWatch duration in days (default 30). Sets the unit price per target: 30 = $0.05, 90 = $0.135 (-10%), 365 = $0.50 (-17.8% vs the monthly rate).
emailNoOptional e-mail address for digests
ciblesYes1-100 comma-separated targets: 9-digit SIRENs and/or dirigeant:Name entries
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
webhookNoOptional public https URL for signed event batches
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

The description reveals substantial behavior beyond annotations: daily Sirenic monitoring, BODACC and other event sources, Ed25519-signed webhook/e-mail delivery, pollable bearer token, expiry reminder, x402 payment flow, quote behavior when x_payment is omitted, no pro-rata refund, and the spendControls rejection pitfall. This far exceeds what the annotations alone communicate.

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 long but every sentence earns its place: purpose, usage condition, monitored data, delivery, expiry, payment model, pricing, refund policy, and a critical client-side configuration caveat. It is front-loaded with the core purpose and use-case before descending into operational details.

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 paid, recurring watch creation tool with external side effects, the description covers selection criteria, what gets monitored, delivery mechanisms, authentication alternatives, payment amounts, refusal conditions, and the required client-side payment configuration. Nothing needed to call this tool safely is missing.

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?

Even though schema description coverage is 100%, the tool description adds real semantic value: it explains pricing per duration, the unit-price-per-target calculation, the distinction between api_key and x_payment, and the critical spendControls caveat that can cause the client to reject the quote before calling the service. This materially helps an agent use the parameters correctly.

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 a specific verb and resource: create a surveillance watch over French companies and/or directors. It further distinguishes itself from one-off check tools by framing the use case as 'when the relationship OUTLASTS the check', which is unambiguous.

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?

It gives an explicit selection condition — use when the relationship outlasts the check, with concrete examples like supplier, borrower, or portfolio company. It does not explicitly name sibling alternatives for one-off checks or for managing existing watches, so it stops short of a full 5.

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

detect_company_identifiersA
Read-only
Inspect

FREE. Paste any text (email, invoice, contract, web page) and detect French/EU company identifiers: SIREN, SIRET (Luhn-checked), EU VAT numbers, LEI (ISO 17442 checksum) — each with the recommended Sirenic call and its price. Use this FIRST whenever a company appears in your workflow (supplier onboarding, payment to send, due diligence) to know exactly what to verify and what it costs. Deterministic pattern matching; the text is never stored or logged.

ParametersJSON Schema
NameRequiredDescriptionDefault
texteYesRaw text to scan (max 10,000 chars)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations readOnlyHint and openWorldHint are supplemented with concrete details: 'Deterministic pattern matching; the text is never stored or logged' and 'FREE' with price outputs. These disclosures add privacy and determinism context beyond the annotations and do not contradict them.

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?

Three sentences: starts with 'FREE', states purpose and capabilities, gives usage guidance, and closes with a privacy guarantee. Every sentence earns its place, with no redundancy or filler.

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?

With a single input parameter and an output schema present, the description adequately covers the tool's role, input examples, outputs (identifiers, recommended call, price), and behavioral guarantees. It doesn't enumerate every checksum nuance, but that level of detail is unnecessary for tool invocation.

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 already documents the 'texte' parameter with maxLength and minLength (100% coverage). The description adds real-world input examples (email, invoice, contract, web page), enriching meaning beyond the schema's plain 'Raw text to scan'.

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 detects French/EU company identifiers (SIREN, SIRET, VAT, LEI) from pasted text, and goes further by specifying it provides the recommended Sirenic call and price. This distinguishes it from sibling tools like validate_eu_vat_number by framing it as a first-pass detection step.

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?

Explicitly instructs to 'Use this FIRST whenever a company appears in your workflow' with concrete scenarios (supplier onboarding, payment, due diligence). It conveys strong when-to-use guidance but does not explicitly name alternative tools for cases where identifiers are already structured, lacking a full when-not-to-use comparison.

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

download_french_company_documentA
Read-only
Inspect

Download an official company document (PDF) from the INPI RNE registry: statutes, general-meeting minutes, filed annual accounts... Use IDs from list_french_company_documents. Returns the PDF as base64 — documents typically weigh 1-10 MB. Paid via x402 ($0.10 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesDocument family from the list tool
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
document_idYesDocument `id` from list_french_company_documents
Behavior5/5

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

With only readOnlyHint and openWorldHint in annotations, the description carries the behavioral burden and delivers: return format (PDF as base64), expected payload size (1-10MB), and cost disclosure (x402, $0.10 in USDC or EURC). Parameter descriptions add payment semantics: prepaid credits via api_key, 'the signed payment wins' precedence, and the credits-error behavior on insufficient balance. Downloading is consistent with readOnlyHint; no contradiction.

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?

Four sentences, each with a discrete payload: action and source, ID provenance, return format and size, payment and cost. The verb is front-loaded and there is zero filler; voluminous details like enum values and payment mechanics are correctly left to the schema.

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 paid tool with 4 params and no output schema, the definition covers the essentials: source registry, return format, size estimate, cost, and two payment methods (x402 and prepaid credits). The only gap is that the two-step x402 flow — call once to receive a quote, then resubmit with a signed payment — must be inferred from the x_payment and api_key parameter descriptions rather than stated once as an explicit workflow.

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 baseline is 3 — all four params already have meaningful help text, including the enum values for type and the provenance of document_id. The description reinforces that document_id comes from the list tool, but adds no syntax, format, or value details beyond the schema, so it neither needs nor earns more.

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 ('Download'), a specific resource ('official company document (PDF) from the INPI RNE registry'), and concrete document types (statutes, general-meeting minutes, filed annual accounts). The registry source and PDF nature distinguish it from related siblings like get_french_company_pdf_report or get_french_company_file, so an agent can tell what it does without opening the schema.

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 establishes the prerequisite workflow explicitly: 'Use IDs from list_french_company_documents,' telling the agent exactly which sibling produces its inputs. It does not name alternatives or exclusions (e.g., when to prefer get_french_company_pdf_report for a synthesized report), so it stops short of full when/when-not guidance.

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

find_expiring_french_public_contractsA
Read-only
Inspect

Tender anticipation for France: public contracts EXPIRING within a window (1-24 months, default 12) — buyers re-tender 4 to 9 months before expiry, so this surfaces opportunities BEFORE any notice is published. Filter by CPV prefix (45 = construction) and department. Returns buyer, incumbent holders, amounts, framework-agreement flag, estimated end dates (initial declared duration; duration amendments are absent from the source). From official DECP open data. Paid via x402 ($0.05 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
cpvNoOptional CPV prefix, 2-8 digits (45 = construction works)
pageNoPage, 50 per page
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
departementNoOptional French department code (69, 2A, 971...)
fenetre_moisNoWindow in months, 1-24 (default 12)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already carry readOnlyHint=true and openWorldHint=true, so the safety profile is covered and the bar is lowered. The description adds valuable behavioral context beyond annotations: the paid nature of the call ('Paid via x402 ($0.05 in USDC or EURC)'), the data-source limitation ('duration amendments are absent from the source'), and the nuance that end dates reflect initial declared duration only. No contradiction with annotations — the read-only, anticipatory framing is fully consistent.

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?

Four sentences, front-loaded with purpose and timing logic, then filters, returns, source, and cost — every sentence earns its place. The typographic emphasis ('EXPIRING', 'BEFORE') highlights the two most decision-relevant facts without padding, making this a model of tight, well-ordered tool documentation.

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 6 parameters, a payment mechanism, and an output schema, the description covers the key operational facts: the 4-9 month re-tendering insight, the data-source caveat, the cost, and a return summary. The api_key/x_payment dual payment paths and detailed output structure are already present in structured fields, so nothing an agent needs to invoke this tool correctly is missing.

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%, with every parameter (cpv, page, api_key, x_payment, departement, fenetre_mois) already documented in the input schema. The description recaps the window default and CPV/department filters but adds no parameter semantics beyond what the schema provides, so the high-coverage baseline of 3 applies.

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 and resource — 'Tender anticipation for France: public contracts EXPIRING within a window' — and sharpens scope with the 1-24 month window, CPV/department filters, and return contents. The phrase 'surfaces opportunities BEFORE any notice is published' clearly differentiates it from notice-based siblings like search_bodacc_announcements and get_french_company_public_procurement. This is a precise, unambiguous purpose statement.

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 supplies strong decision context: buyers re-tender 4 to 9 months before expiry, so the tool is for proactive tender anticipation rather than post-publication search. It does not explicitly name sibling alternatives or state when-not-to-use conditions, but the emphasis on 'BEFORE any notice is published' implicitly demarcates it from published-notice tools. This is clear context without formal exclusions.

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

get_belgian_company_filingA
Read-only
Inspect

One Belgian annual-account deposit as filed (NBB CBSO Authentic Data) — Belgian company financial statements: structured JSON for deposits published since April 2022, official PDF (base64) for older filings. Reference comes from list_belgian_company_filings. Deposits are immutable. Paid via x402 ($0.15 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes10-digit Belgian enterprise number (KBO/BCE)
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
referenceYesDeposit reference, e.g. 2023-00123456
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
Behavior4/5

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

Annotations already mark the operation read-only and open-world, and the description adds meaningful behavioral details: deposits are immutable, the returned format depends on publication date, and the call is paid via x402 at a fixed price. No contradiction with annotations.

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?

Two tight sentences plus a payment clause; the main capability, format split, source requirement, immutability, and cost are all stated with no filler. Front-loaded with the primary purpose.

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?

No output schema exists, so the description's statement of JSON-vs-PDF return format is important and sufficient at a high level. Payment behavior and reference provenance are covered; only finer error/quote-flow details are left to the parameter descriptions, which is acceptable.

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 covers all four parameters, and the description adds the key provenance cue that reference must come from list_belgian_company_filings. It also reinforces the payment context of x402, though the schema already documents api_key and x_payment.

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 action and resource: 'One Belgian annual-account deposit as filed', then clarifies exactly what is returned (structured JSON vs official PDF depending on filing date). This distinguishes it from list_belgian_company_filings and other European filing tools.

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?

It states the required input provenance ('Reference comes from list_belgian_company_filings'), which effectively tells the agent to first list filings before retrieving one. It does not explicitly mention when not to use the tool or compare against alternatives, but the list-vs-get relationship is clear.

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

get_belgian_insider_transactionsA
Read-only
Inspect

Insider transactions at a Belgian listed company — managers transactions under MAR Article 19, as notified to the FSMA: are its managers buying or selling? Issuer-level aggregate over a rolling 12 months — notification counts, gross buy and sell amounts, net flow, breakdown by declarer category, plus the underlying notifications. No individual is ever named, and the breakdown is withheld when it would single someone out. Use it as a governance signal before investing in or contracting with a listed Belgian company. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes10-digit Belgian enterprise number (KBO/BCE)
depuisNoStart date YYYY-MM-DD (default: rolling 12 months)
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

The description goes well beyond the readOnlyHint and openWorldHint annotations by disclosing that no individuals are ever named, the breakdown is withheld when it would single someone out, the data covers a rolling 12-month period, and access is paid via x402. These are meaningful behavioral details an agent could not infer from annotations or schema alone.

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 dense but each sentence contributes: scope, output contents, privacy constraints, intended use, and payment. It is somewhat longer than strictly necessary, but no sentence is pure filler.

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?

Given the rich schema descriptions, output schema, and annotations, the description covers the remaining operational context: privacy redaction, rolling time window, aggregations, intended use, and payment mechanism. Nothing critical for selecting or invoking the tool correctly is missing.

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 documents all parameters including id, depuis, api_key, and x_payment. The description only adds high-level payment context ($0.02 via x402) and does not meaningfully extend parameter-level meaning.

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 specific resource: insider transactions at a Belgian listed company under MAR Article 19, as notified to the FSMA. It lists exact aggregate outputs such as notification counts, gross buy/sell amounts, net flow, and declarer-category breakdown, which distinguishes it from sibling country-specific tools like get_german_insider_transactions.

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 gives a clear use case: 'Use it as a governance signal before investing in or contracting with a listed Belgian company.' It does not, however, explicitly state when not to use it or name alternative sibling tools for non-Belgian companies.

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

get_company_licencesA
Read-only
Inspect

Regulatory authorisations of a French company by SIREN: payment institution, e-money institution, account-information provider, payment agent or exempt entity (EBA PSD2 register, refreshed daily), insurance undertaking (EIOPA), electronic-communications operator (ARCEP) — with authorisation dates, licensed PSD2 services, EEA passporting and withdrawals. Use it before paying, onboarding or contracting with a regulated counterparty. Not authorised is an answer too. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

With readOnlyHint and openWorldHint already set, the description adds valuable behavioral context: data sources (EBA, EIOPA, ARCEP), daily refresh, the fact that absence of authorisation is itself a valid outcome, and the x402 payment requirement with its cost. This goes beyond the annotations and helps the agent set expectations, though it does not detail return-shape nuances.

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?

Two dense sentences carry the full purpose, scope, use case, data sources, and commercial terms without redundancy. The most decision-relevant information is front-loaded, and every clause adds value.

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 read-only lookup with one required parameter, full schema coverage, an output schema, and clear annotations, the description is complete. It covers what data is returned, which registers are consulted, freshness, the 'no licence' case, and how payment works — everything an agent needs to decide whether and how to invoke it.

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%, and each parameter already has a meaningful description. The tool description adds context about the SIREN-based lookup and payment method, but it does not add new semantic meaning to the individual parameters beyond what the input schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool returns — regulatory authorisations of a French company by SIREN — with a concrete enumeration of regulator types and registers. It is highly specific about scope and content, though it does not explicitly distinguish itself from the related sibling search_eu_financial_authorisations and is phrased as a nominal description rather than a verb-led statement.

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 gives concrete use cases: 'Use it before paying, onboarding or contracting with a regulated counterparty.' It also clarifies that a negative result is meaningful ('Not authorised is an answer too'). However, it does not state when not to use it or explicitly name alternative tools, such as the broader EU authorisation search.

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

get_company_procurement_competitorsA
Read-only
Inspect

Competitive intelligence on French public procurement: who wins contracts on the SAME CPV segments as a given company (SIREN) — top rival contractors over the last 3 years with counts, amounts and shared segments. From official DECP open data. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

The description adds meaningful behavioral context beyond the readOnlyHint/openWorldHint annotations: it discloses the paid nature ('$0.02 in USDC or EURC'), the official DECP open-data source, and the 3-year lookback window. The payment-quote flow when x_payment is omitted is left to the parameter schema, but the schema covers it, so there is no contradiction.

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?

Two dense sentences efficiently convey the value proposition, the matching logic, the output contents, the data source, and the payment method. There is no filler, and the essential purpose is front-loaded before the supporting detail.

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 read-only tool with one required parameter and a provided output schema, this description is complete enough for an agent to select and invoke the tool correctly. It covers purpose, scope, time window, output highlights, source, and pricing, while the schema handles parameter-level details.

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% and each parameter already has a clear description, so the baseline is solid. The tool description adds extra semantic value for siren by explaining that it is the company whose CPV segments are used to discover rival contractors, which goes beyond the schema's plain '9-digit SIREN' label.

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 leads with a specific deliverable ('competitive intelligence on French public procurement') and precisely defines the mechanism: matching the same CPV segments as a given SIREN and returning top rival contractors with counts, amounts, and shared segments over 3 years. This clearly differentiates it from related sibling tools like get_french_company_public_procurement or get_eu_procurement_awards.

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 intended use case is clear: use this when you need to see which other companies win contracts on the same CPV segments as a French company identified by SIREN. It does not explicitly name alternative tools or list when-not-to-use scenarios, so it falls just short of fully explicit routing guidance.

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

get_czech_company_insolvencyA
Read-only
Inspect

Insolvency record of a Czech company from the official ISIR register (Insolvenční rejstřík, Ministry of Justice), history since 2008: every proceeding with its case number (spisová značka), court, published status (úpadek, konkurs, reorganizace, oddlužení...), opening and closing dates, claim-filing deadline and its event trail with official document links — Czech labels as published. The event list is capped at the 100 MOST RECENT events per case: nombre_evenements carries the real total and evenements_tronques says whether it is truncated. Publication is compulsory by Czech law, so a company with no proceeding gets an explicit positive answer (aucune_procedure: true), dated by collecte_le (last complete collection; a stale stock returns 503 rather than a stale clean answer). LEGAL-PERSON debtors only: natural persons are excluded at ingestion (GDPR minimisation), so a sole trader's or other natural person's IČO — the majority of Czech IČOs — is refused (404) rather than reported as clean. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
icoYes8-digit Czech IČO (company identification number), e.g. 45274649
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description adds substantial behavioral detail: events capped at 100 recent per case, truncation flags, the explicit no-proceeding positive answer, stale-collection 503 behavior, GDPR-driven natural-person exclusion, and x402 payment. This goes far beyond the structured metadata and gives the agent reliable expectations.

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 dense but each sentence carries meaningful behavioral or scoping information — no filler. It is front-loaded with the core identity of the tool, and while the paragraph is long, the length is justified by the number of edge cases an agent must know.

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?

Despite the tool's complexity, the description covers all important operational behaviors: data source, date range, cap and truncation indicators, no-procedure semantics, staleness handling, legal-person restrictions, and payment options. An output schema exists to detail the return structure, so the description is complete for selecting and invoking the tool correctly.

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 100%, so the baseline is 3. The description adds meaning beyond the schema by clarifying that the ico must belong to a legal person and that natural-person IČOs are rejected, plus the payment flow for api_key and x_payment. This added context justifies a score above baseline.

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 states a specific resource (Czech insolvency record from the official ISIR register) and a clear purpose: retrieving every proceeding for a company. It differentiates itself from sibling insolvency tools by naming its country, jurisdiction, and data scope, so an agent can select it correctly.

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 gives clear usage context: it is for Czech legal-person companies and explicitly excludes natural persons, whose IČOs are refused. It does not name an alternative tool for natural persons or other countries, so it stops short of the explicit when-not/alternative guidance that would earn a 5.

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

get_danish_company_filingA
Read-only
Inspect

One Danish fiscal year — financial statements decoded from the company's XBRL annual report (Erhvervsstyrelsen): revenue (null = not published, never zero), gross result, operating result, pre-tax and net result, equity, total assets, debts, average employees, plus prior-year comparatives as published in the same filing. Amounts in the filing currency (mostly DKK); the official XBRL document URL is included. Closing date comes from list_danish_company_filings. Paid via x402 ($0.05 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes8-digit Danish CVR number
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
date_clotureYesFiscal-year closing date, YYYY-MM-DD, e.g. 2025-12-31

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations already provide readOnlyHint, so the safety profile is covered. The description adds valuable behavioral detail: null revenue means not published rather than zero, amounts are in the filing currency, prior-year comparatives come from the same filing, and the official XBRL document URL is included. This goes well beyond what the annotations or name alone communicate.

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?

Four dense sentences with the core function and returned fields front-loaded. The payment information is relevant and the use of a colon-delimited field list keeps it scannable. No filler or repetition of schema content.

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?

An output schema exists, so detailed return-format documentation is unnecessary. The description covers scope, input sourcing, key null/currency semantics, and payment mechanics, giving an agent everything needed to call the tool correctly. The reference to list_danish_company_filings closes the main contextual gap.

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?

The schema already covers all 4 parameters at 100%, so the baseline is 3. The description adds extra semantic value by instructing that date_cloture comes from list_danish_company_filings and by clarifying the fiscal-year meaning. It also adds currency context that affects interpretation of returned values.

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 uses a specific verb ('get') and resource ('Danish company filing') and enumerates the exact financial fields returned, making its function unmistakable. It explicitly references the sibling list_danish_company_filings for the closing date, which distinguishes the retrieval tool from the listing tool. Country and filing scope also separate it from other country-specific get_*_filing tools.

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 tells the agent that date_cloture must come from list_danish_company_filings, giving a concrete prerequisite and routing signal. It also explains payment behavior between x_payment and api_key. It stops short of enumerating when-not-to-use cases for all sibling tools, so it is clear but not exhaustive.

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

get_danish_company_officersA
Read-only
Inspect

Danish company officers and directors, live from CVR, the official Danish company registry (Erhvervsstyrelsen): executive board (Direktion), board of directors (Bestyrelse) with deputies and how each member was elected, fully liable partners of an I/S or K/S, and auditors — name, body, role and mandate dates. Active mandates by default; inclure_anciens adds ended mandates, which is where founders (stiftere) normally are. Long boards are capped at 300 active / 200 ended mandates, flagged by tronque (the counts stay exact). Beneficial owners (reelle ejere) are NOT exposed by this access and are never guessed. GDPR minimisation: no address, no personal identifier, and the register publishes no date of birth here. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
cvrYes8-digit Danish CVR number, e.g. 24256790
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
inclure_anciensNoAlso return ended mandates, each with its end date

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses many non-obvious behaviors: mandate election details, active-versus-ended defaults, the 300/200 cap with exact counts and the `tronque` flag, GDPR minimization, the absence of beneficial owners, and the payment mechanism. This goes well beyond what annotations alone convey.

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 front-loaded with the core purpose and packed with dense, relevant caveats about limits, exclusions, GDPR, and payment. Every clause earns its place, and the structure moves from what the tool does to how it behaves to how it is paid for.

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?

Given the output schema and annotations, the description fills all meaningful gaps: mandate types, default behavior, truncation semantics, missing beneficial owners, GDPR constraints, and payment details. An agent has enough to select and invoke the tool correctly without needing external context.

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 100%, so the baseline is 3. The description adds useful meaning beyond the schema, especially for inclure_anciens (ended mandates, where founders normally appear) and the payment flow (x402, prepaid credits, and error behavior). It does not restate every parameter but enriches several.

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 names a specific verb ('get'), a precise resource (Danish company officers and directors), and the authoritative source (CVR/Ehvervsstyrelsen). It enumerates the exact mandate types returned, clearly distinguishing it from sibling officer tools for other countries.

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?

It gives clear context for when to use the tool: for Danish officers and directors, with active mandates by default and ended mandates via inclure_anciens. It also notes beneficial owners are not exposed, which signals a limitation, though it does not explicitly name alternative tools or state 'use this only for Denmark'.

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

get_estonian_company_accountsA
Read-only
Inspect

Estonian company annual accounts — annual-report key figures from the official e-Business Register open data (RIK, CC BY 4.0, refreshed MONTHLY): EVERY published financial year since 2019 in one call — balance sheet (assets, equity, current/non-current liabilities, cash), revenue, employee expense, depreciation, operating profit, profit before tax, net profit and average FTE headcount, in EUR as published (null = not published, never zero). Statutory and consolidated figures kept apart. Filings submitted as PDF only carry no structured figures and are not served. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
registrikoodYes8-digit Estonian registry code (registrikood, e-Business Register), e.g. 10003666

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations already declare readOnlyHint=true, but the description adds substantial behavioral context: the data is from the official RIK open data with CC BY 4.0 license, refreshed monthly, and all figures are in EUR as published (null means not published, never zero). It also discloses that payment via x402 is required ($0.02 in USDC or EURC) and explains the handling of PDF-only filings. This goes well beyond the annotation and gives the agent a complete picture of the tool's behavior and side effects.

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 but is front-loaded with the core purpose and specific fields. Each clause adds important information: data source, refresh cadence, scope, exclusions, and payment. While it is long, it is well-organized and every sentence contributes value; nothing is wasted. The structure could be broken into clearer points, but efficiency is high.

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?

The description covers all essential aspects: the exact data returned (list of fields), the source and license, refresh frequency, handling of missing values, statutory vs consolidated, exclusions, and payment mechanism. An output schema exists (though not shown here), so return-format details are presumably structured there. For an agent to select and invoke this tool correctly, nothing critical is missing.

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 covers all three parameters with detailed descriptions: registrikood has a pattern and example, and api_key and x_payment are fully explained. With 100% schema description coverage, the tool description does not need to add parameter-level detail. The description does mention payment, but that is a tool-level property, not a parameter semantic. A baseline score of 3 is appropriate, as the description adds no extra value beyond the schema.

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 function: retrieving Estonian company annual accounts with a specific list of financial fields. It distinguishes itself from siblings by explicitly naming the country (Estonian) and the data source (official e-Business Register), and contrasts with PDF-only filings that are not served. This makes it unambiguous versus other country-specific account tools.

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 provides concrete usage context: it returns all published financial years since 2019, distinguishes statutory from consolidated figures, and notes that PDF-only filings are excluded. However, it does not explicitly reference alternative sibling tools (e.g., get_latvian_company_accounts) or state when to prefer them, leaving cross-country routing implicit. Still, the exclusions and scope give clear guidance for the intended use case.

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

get_estonian_company_registry_rulingsA
Read-only
Inspect

Registry rulings (määrused) of an Estonian company from the official e-Business Register open data (RIK, CC BY 4.0, DAILY national photo): registry entries, orders to remedy defects, warnings of striking-off for an unfiled annual report, warnings of compulsory dissolution for insufficient net assets, and annual-report fines — each with its date, extra deadline, status and force date, Estonian codes and labels as published. An alerte flag marks the CLOSED list of warning/fine types returned with the answer; nombre_alertes excludes only rulings whose etat_code is EXPLICITLY known as resolved (currently L only) — a qualified ruling later resolved that way keeps alerte: true but no longer counts, while every other state (including J, K, or any code not yet seen) still counts, fail-closed on the unknown. types_non_qualifies lists this entity's other rule types, so a zero is never read as “no warning”. A still-registered entity with no ruling returns an explicit positive answer, dated with the photo actually served (photo_le); a struck-off entity leaves the open data entirely and returns 404 instead of a false clean sheet. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
registrikoodYes8-digit Estonian registry code (registrikood, e-Business Register), e.g. 10003666

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Far exceeds what annotations provide (readOnlyHint=true, openWorldHint=true). It discloses genuinely non-obvious behaviors: the fail-closed counting logic for nombre_alertes (unknown etat_codes count, only L is excluded), the deliberately closed warning-type list behind alerte, the types_non_qualifies guard so a zero is never misread as 'no warning', and the 404-instead-of-false-clean-sheet behavior for struck-off entities. No contradiction with the read-only annotation — this is a pure query tool.

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 dense and long, but every clause earns its place — the alert-counting semantics, fail-closed behavior, and 404 distinction are all load-bearing for correct invocation and interpretation. Core purpose and data source are front-loaded before the intricate flag details. Slightly over-packed as a single paragraph, but there is zero filler.

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 an output schema, annotations, and genuinely tricky edge-case semantics, the description is exceptionally complete: it covers data source and licensing, the closed warning-type list, counting exclusions, the positive-answer vs 404 distinction, and pricing. An agent knows what to expect in every outcome state (registered-with-rulings, registered-no-rulings, struck-off, unknown-state) without probing the live API.

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% with detailed per-parameter descriptions (api_key explains the credits fallback and precedence over x_payment; registrikood gives the 8-digit pattern and example). The description adds some complementary context by explaining the x402 payment flow and $0.02 cost, but it doesn't need to compensate for schema gaps since none exist. Baseline 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 states a specific verb and resource — retrieving registry rulings (määrused) of an Estonian company from the official e-Business Register open data — and details exactly what kinds of rulings are included (remedy orders, strike-off warnings, dissolution warnings, annual-report fines). It is clearly differentiated from siblings by resource type (rulings vs accounts, filings, officers) and jurisdiction (Estonia vs French/Belgian/etc. 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 gives clear behavioral context about when meaningful answers are returned (explicit positive answer for a registered entity with no rulings; 404 for struck-off entities), but it never explicitly states when to choose this tool over alternatives or when not to use it. The closest sibling, get_estonian_company_accounts, is never mentioned, so an agent must infer selection from the resource name alone.

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

get_eu_procurement_awardsA
Read-only
Inspect

European public procurement — government contracts and tender award notices won by a French company, from official TED data: buyer, country, subject, notice-level amount, CPV codes and official links. Identifier-matched only (SIREN/SIRET incl. spaced variants) — coverage is eForms notices since 2023-10-25 above EU thresholds, and ~57% of award notices carry a usable identifier, so an empty list is not proof of absence. Complements get_french_company_public_procurement (French DECP, below-threshold). Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint; the description adds crucial behavioral context: identifier-matched only with SIREN/SIRET variants, coverage limitations, the payment mechanism via x402, and the API-key fallback. It also clarifies error behavior for insufficient credits. This goes well beyond the structured annotations.

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 every clause carries value: source, data fields, matching constraints, coverage caveat, sibling differentiation, and payment terms. It front-loads the core purpose before limitations and alternatives.

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?

Given the output schema exists and the tool has only one required parameter, the description is complete. It covers the meaning of results, data source, identifier limitations, empty-result interpretation, the sibling alternative, and payment/commercial behavior. Nothing essential is missing.

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 parameters are already well documented and baseline is 3. The description adds extra meaning for the siren parameter by explaining identifier matching including spaced variants, which clarifies how the 9-digit input is used in practice.

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 states a clear, specific purpose: retrieving EU public procurement award notices won by a French company from official TED data, with enumerated fields (buyer, country, subject, amount, CPV codes, links). It also distinguishes itself from the sibling get_french_company_public_procurement, so an agent can tell them apart without opening the schema.

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?

It explicitly names the complementary sibling and contrasts their scopes: EU TED above-threshold eForms vs French DECP below-threshold. It also supplies practical coverage guidance, including the date threshold, the ~57% identifier coverage, and the warning that an empty list is not proof of absence.

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

get_european_company_profileA
Read-only
Inspect

European company registry lookup — unified European company profile by country and national register ID, same JSON schema for every country (identity, legal form, normalized status, head office, VAT, LEI, official register link): Belgium (KBO/BCE, incl. NACEBEL activities and establishment units), Norway, Estonia, Latvia, Czechia (ARES), Slovakia (RPO), Finland (PRH), Poland (KRS), Switzerland (Zefix); Denmark/UK when enabled; elsewhere via GLEIF (LEI). Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNational register identifier, e.g. 923609016
paysYesISO-3166 alpha-2 country code, e.g. NO
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true. The description adds valuable behavioral context: it is a paid x402 tool at $0.01, it returns the same JSON schema across countries, and it falls back to GLEIF for non-covered countries. No contradiction with the 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?

The description is front-loaded with the core purpose and then enumerates covered countries, output characteristics, and payment in a compact sentence. While dense, every element earns its place because the country list is not expressed anywhere in the schema.

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?

Given the multi-country complexity and the presence of an output schema, the description is complete: it specifies supported countries, the unified schema, the fallback via GLEIF, and the payment requirement. There is no critical decision-making information missing.

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 is100%, so the baseline is 3. The description reinforces that 'id' is a national register identifier and 'pays' is a country code, but adds no new parameter semantics beyond what the schema already documents.

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 uses a specific verb and resource: it is a European company registry lookup returning a unified profile by country and national register ID. It clearly distinguishes itself from siblings like get_french_company_profile and search_european_companies by defining the exact input and scope, and by enumerating the covered registries.

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 gives clear context: use this tool when you have a country code and national register ID and want a standardized company profile. It does not explicitly name alternatives for cases like searching without an ID, so it misses the top score, but the coverage caveat for Denmark/UK and GLEIF fallback provides useful boundary conditions.

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

get_finnish_company_filingA
Read-only
Inspect

One Finnish fiscal year — financial statements decoded from the company's PRH XBRL filing: revenue (null = not published, never zero), operating and net result, equity, total assets, debts, plus the prior-year comparatives as published in the same filing (EUR). Closing date comes from list_finnish_company_filings. Paid via x402 ($0.15 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesFinnish Business ID (Y-tunnus), NNNNNNN-N
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
date_clotureYesFiscal-year closing date, YYYY-MM-DD, e.g. 2024-12-31

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

The description adds meaningful behavior beyond annotations: null revenue means 'not published, never zero', values are EUR, prior-year comparatives are included, and a $0.15 x402 fee applies. This is consistent with readOnlyHint and openWorldHint, and there is no contradiction.

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?

Three dense but purposeful sentences cover what the tool returns, a key input source, and pricing. There is no filler, and the primary purpose is front-loaded in the opening clause.

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?

Given the full parameter schema, output schema, and annotations, nothing essential is missing: required inputs are identified, the source of a required value is given, cost is disclosed, and key null semantics are clarified. The tool can be invoked correctly from this description alone.

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 coverage is 100%, so the schema already documents all parameters. The description adds the useful hint that date_cloture comes from list_finnish_company_filings, but it does not substantially expand parameter semantics beyond what the schema provides.

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 states a specific verb and resource: returns financial statements for one Finnish fiscal year from the company's PRH XBRL filing. It lists the exact fields returned, which clearly distinguishes it from list_finnish_company_filings and from other countries' filing tools.

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?

It gives clear workflow context by stating the closing date comes from list_finnish_company_filings, telling the agent where to obtain a required input. It does not explicitly enumerate alternatives or exclusions beyond that, but the one-fiscal-year scope and companion-list relationship provide sufficient guidance.

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

get_french_company_capitalA
Read-only
Inspect

Ownership / share capital structure of a French company, extracted by AI from the latest PUBLIC articles of association filed at the INPI registry: share capital, legal form, shareholders (name, role, birth year, ownership %), notable clauses, with confidence and the source document. Reconstructed from public filed deeds — NOT a beneficial-ownership register (RBE) or a beneficial-owner identification. Paid via x402 ($0.35 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations already indicate readOnlyHint and openWorldHint, and the description adds meaningful behavioral context: data is AI-extracted, reconstructed from public filed deeds rather than an official beneficial-ownership register, includes confidence and source document, and costs $0.35 via x402. This goes well beyond the annotations and helps the agent set expectations about reliability, provenance, and payment.

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 compact and front-loaded with the core purpose, then adds the critical caveat about not being a beneficial-ownership register, and finally notes the payment requirement. Every sentence adds essential information without fluff or repetition.

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?

Given the annotations, fully documented input schema, and presence of an output schema, the description provides everything an agent needs to select and invoke this tool correctly: source, content, caveats, pricing, and payment context. Nothing critical is missing.

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 has 100% description coverage, with detailed explanations for siren, api_key, and x_payment. The tool description does not need to repeat parameter semantics; the baseline of 3 applies because the schema already carries the full burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns ownership/share capital structure extracted from French public articles of association, including specific data fields. It distinguishes itself from beneficial-ownership registers, though it lacks a strong verb phrase and does not directly contrast with other French company data tools like get_french_company_profile.

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 implies when to use the tool: when share capital, legal form, or shareholder details from INPI-filed articles are needed. It also explicitly says it is NOT a beneficial-ownership register, which is a useful exclusion, but it does not name alternative tools or state clear when-to-use versus when-not-to-use guidance beyond that caveat.

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

get_french_company_changesA
Read-only
Inspect

Company monitoring for France: new official BODACC gazette announcements for a French company SINCE a given date (poll-mode watchlist surveillance for a portfolio) — insolvency, deregistration, sales, filings, changes, reverse-chronological. Detects new BODACC publications, not field-level edits of the profile. A company with no new announcement returns an empty list. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
depuisYesList announcements since this date (YYYY-MM-DD)
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond readOnlyHint/openWorldHint, the description discloses that results are reverse-chronological, that no new announcement yields an empty list, that detection is at publication level rather than field edits, and that calls are paid via x402 at $0.01. This gives agents concrete expectations beyond the annotations.

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 core behavior is front-loaded in the first sentence, followed by a single clarifying sentence covering detection granularity, empty-list behavior, and payment. Every sentence earns its place with no filler.

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 read-only polling tool with annotations and an output schema present, the description covers purpose, return expectations (empty list, reverse-chronological), payment/auth context, and detection scope. Nothing critical is missing for correct invocation.

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 schema already covers all four parameters with descriptions at 100% coverage, so the baseline is 3. The description adds cost context ($0.01 via x402) and clarifies that `depuis` is used for repeated poll-mode surveillance, but it does not substantially extend parameter-level meaning.

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 names a specific resource ("new official BODACC gazette announcements") and action ("Detects new BODACC publications") for a French company since a date. It also distinguishes itself from related tools by noting it is poll-mode watchlist surveillance and explicitly not field-level profile edits.

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 gives clear intended context: monitoring a portfolio of French companies by polling BODACC announcements since a date. It includes a scope exclusion ("not field-level edits of the profile") but does not explicitly name alternative tools or state when-not-to-use, so it stops short of a 5.

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

get_french_company_default_riskA
Read-only
Inspect

Company default-risk score (0-100) for a French company at ~12 months — credit risk and insolvency risk scoring from filed financial ratios (structure, profitability, liquidity, net cash, debt service, trend) + company age + a hard BODACC override (active insolvency / liquidation / closure for insufficiency of assets = proven default). Returns score, qualitative band, every component with its threshold, and a confidence level. Decision-support only — NOT a solvency opinion or credit rating. Paid via x402 ($0.10 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses meaningful behavior: scoring inputs, the hard BODACC override, the returned components, the decision-support caveat, and the x402 payment requirement. No annotation contradiction exists.

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 efficient: it front-loads the core purpose and scoring basis, then covers output, caveats, and payment. Each clause adds information, and the longest sentence is still purposeful rather than padded.

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?

Given the rich input schema, output schema, and annotations, the description is complete: an agent can determine the required SIREN, the payment options, the expected output, the scoring logic, and the decision-support limitation. Nothing essential to invoking the tool correctly is missing.

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% for all three parameters, so the schema already explains siren, api_key, and x_payment. The tool description adds pricing context and the payment flow, but it does not add new semantic meaning to the parameters beyond what the schema provides.

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 states a specific outcome: a 0-100 default-risk score for a French company at ~12 months, built from financial ratios and BODACC data. It goes beyond a generic 'get risk' statement by naming the output composition (score, band, components, confidence) and explicitly carving out that it is not a solvency opinion or credit rating.

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 the intended use clear: scoring French company default and insolvency risk from filed financial ratios and a BODACC insolvency override. It also gives a when-not signal ('NOT a solvency opinion or credit rating'), but it does not name alternative sibling tools or explicitly say when to pick this over a health summary or financials tool.

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

get_french_company_fileA
Read-only
Inspect

Full French company file in ONE call, paying only for the blocks you ask for — for when you need several things about the same company and do not want to chain calls. The identity base is $0.005; add any of etablissements, alertes_bodacc, finances, marches_publics, marches_publics_ue, lobbying, risques_industriels, agrements, pi, documents, facturation_prep, score. Each block costs exactly what its dedicated endpoint costs, and the total is capped at $0.35. Any block that cannot be served is NAMED with a reason from a closed list: aucune_donnee (a negative answer, e.g. no patents), non_diffusible (GDPR/partial disclosure) or panne_amont (upstream register down). If EVERY requested block is down, the call returns 503 and nothing is charged. For a verdict rather than raw blocks, use get_french_company_intelligence ($1.00). Paid via x402 in USDC or EURC.

ParametersJSON Schema
NameRequiredDescriptionDefault
blocsYesComma-separated blocks, e.g. finances,pi,score. Available: etablissements, alertes_bodacc, finances, marches_publics, marches_publics_ue, lobbying, risques_industriels, agrements, pi, documents, facturation_prep, score
sirenYes9-digit SIREN, e.g. 552032534
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations declare readOnlyHint=true and openWorldHint=true. The description goes far beyond them by detailing cost per block, total cap, block-level error naming with a closed list of reasons (aucune_donnee, non_diffusible, panne_amont), and the 503/no-charge behavior when all blocks are down. It also explains payment methods (x402, api_key) and precedence rules. This richly discloses behavior without contradicting annotations.

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 compact yet information-dense: it states purpose, cost model, error behavior, alternative, and payment in rapid succession. It is front-loaded with the main purpose and every sentence carries necessary information. No filler or repetition.

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 many blocks, pricing, and error handling, the description covers all operational concerns an agent needs to decide and interpret results. The output schema exists, so return format is covered. It includes the 503 case, payment methods, and the block failure reason list, making it fully actionable.

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%, and the schema already documents each parameter in detail (e.g., api_key's role, x_payment handling). The description adds value by explaining the cost implication of the 'blocs' parameter (each block costs what its dedicated endpoint costs, capped at $0.35) and the block-level error reasons. This enriches parameter meaning beyond the schema, so a 4 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 'Full French company file in ONE call' – a specific verb, resource, and scope. It clearly distinguishes itself from dedicated endpoints and names the sibling intelligence tool as an alternative. The list of available blocks and the cost structure make the purpose unmistakable.

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?

It states the exact condition for use: 'when you need several things about the same company and do not want to chain calls.' It also gives an explicit alternative: 'For a verdict rather than raw blocks, use get_french_company_intelligence.' This is clear when-to-use and when-not-to-use guidance.

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

get_french_company_financialsA
Read-only
Inspect

Annual accounts and financial statements data of a French company from filed accounts (revenue, EBITDA, net income, ratios — INPI/Banque de France), plus the full structured tax-form line items (liasse fiscale) from the INPI registry, for up to the 10 latest public fiscal years. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already indicate readOnlyHint and openWorldHint. The description adds valuable behavior context: the data source (filed accounts via INPI/Banque de France), the 10-fiscal-year limit, the inclusion of structured tax-form fields, and the $0.01 x402 payment requirement. This goes 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?

Two sentences, front-loaded with the core purpose and followed by pricing. There is minor redundancy ('financial statements data' after 'Annual accounts') and the first sentence is dense, but every sentence earns its place and no filler exists.

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?

With an output schema present and rich annotations, the description covers the essential gaps: data source, included items, time window, and cost. Payment-flow details (e.g., omit x_payment to get a quote) are covered by the schema descriptions, so nothing critical is missing for calling 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%, and the description itself adds no parameter-level detail beyond what the schema already states for siren, api_key, and x_payment. Baseline 3 is appropriate since the schema fully documents each parameter.

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 names a specific verb ('get') and a precise resource ('French company financials'), then lists concrete data elements: revenue, EBITDA, net income, ratios, and the full liasse fiscale. This clearly distinguishes it from sibling tools like get_french_company_profile or get_french_company_health_summary by focusing on annual accounts and tax-form line items.

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 gives clear context: use this tool when you need French company annual accounts, financial statements, or liasse fiscale data from INPI/Banque de France. It does not explicitly name alternatives or exclusion conditions, but among the many French company siblings the scope is evident enough from the name and listed data.

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

get_french_company_health_summaryA
Read-only
Inspect

Business-health and risk read-out of a French company, in French AND English, from official data only: verdict, strengths, warning signs, activity trend, confidence level, plus the reconciled grid in machine-readable codes. A model fills a closed evaluation grid (no free text, no name, no figure of its own); every number, date and sentence is assembled by Sirenic, and deterministic guards overrule the model when the filed accounts contradict it — corrections are listed in divergences_modele. Entities that file no annual accounts (non-profits, sole traders, companies under a year old, ceased companies) return verdict: "non_concluant" with most fields non_evaluable, and the prose says so explicitly — call get_french_company_profile instead if you only need identity. Cached 7 days. Paid via x402 ($0.15 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

The description adds substantial context beyond the readOnlyHint/openWorldHint annotations: bilingual output, official-data-only sourcing, the model/guardrail behavior with divergences_modele, the non_concluant fallback, 7-day caching, and x402 payment. It fully discloses the tool's behavioral contract.

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 every sentence earns its place: purpose, output composition, model-governance behavior, edge-case behavior, alternative routing, caching, and pricing. It is structured logically from core function to caveats to operational details.

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 one required parameter and a rich output schema, the description covers all essential invocation context: what the tool returns, when it returns non-conclusive results, when to prefer a sibling, and cost/payment. Nothing an agent needs to decide or understand before calling is missing.

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?

Parameter schema coverage is 100%, so the schema already documents siren, api_key, and x_payment in detail. The description adds economic context ($0.15 payment, cache) but does not deepen meaning of the parameters themselves. Baseline 3 is appropriate given full 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 and resource: a business-health and risk read-out of a French company. Explicitly lists the output components (verdict, strengths, warning signs, activity trend, confidence level, reconciled grid), and distinguishes itself from get_french_company_profile for identity-only needs.

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?

Gives clear context on when to use the tool (business-health/risk analysis) and explicitly names an alternative for a different need ('call get_french_company_profile instead if you only need identity'). Also describes the non-conclusive edge case for entities that file no accounts, so an agent can predict the outcome.

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

get_french_company_hiring_signalsA
Read-only
Inspect

Hiring signals for a French company, derived on demand from France Travail data (snapshot under 24 h, nothing stored): actively-hiring yes/no/unprovable (null means absence is not provable), active-postings count — SIREN-keyed via France Travail's own employer page when one exists, else strict company-name matching over the company's known locations (lower bound: brand names and temp agencies not counted; the path used is stated in methode.comptage) — top ROME occupation families, contract-type mix, share of postings displaying a pay amount, plus the Egapro gender-equality index (last 3 years) and the INSEE workforce bracket. Aggregated signals only — never posting texts or recruiter contacts. Use for sales intelligence (a hiring company is an active company) and HR/expansion signals. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN of the company, e.g. 095580841
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Goes well beyond the readOnly/openWorld annotations: discloses on-demand derivation, 24-hour snapshot freshness, 'nothing stored,' the unprovable-null semantics, lower-bound counting caveats (brand names and temp agencies not counted), the method-reference field methode.comptage, and the privacy boundary that only aggregated signals are returned. No contradiction with 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?

The description is dense but every clause adds operational value: signal semantics, counting caveats, data freshness, privacy restrictions, use cases, and payment path. The single-paragraph structure slightly reduces scanability, but the content is front-loaded with the core hiring signal and is not padded.

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 signal-heavy tool with an output schema, the description is remarkably complete: it enumerates all returned signal categories, explains null and lower-bound semantics, discloses freshness and storage behavior, gives payment options, and states the intended use cases. An agent has enough to decide whether and how to invoke it.

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 covers 100% of parameters, including descriptions for siren, api_key, and x_payment, so the baseline is 3. The description adds behavioral matching context around SIREN and company-name matching but does not add new per-parameter semantics beyond what the schema already provides.

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 ('get') and resource ('hiring signals for a French company'), then lists the exact signal types (actively-hiring, active-postings count, ROME families, contract mix, pay display share, Egapro index, workforce bracket). It clearly stands apart from sibling French-company tools such as get_french_company_financials or get_french_company_intelligence.

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?

Explicitly says 'Use for sales intelligence (a hiring company is an active company) and HR/expansion signals,' giving clear context for when the tool is appropriate. It does not explicitly name alternatives or conditions when not to use it, so it stops short of a 5.

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

get_french_company_industrial_riskA
Read-only
Inspect

Industrial-risk and environment (ESG) profile of a French company from the official ICPE register (Géorisques/DGPR): classified facilities with Seveso status (upper/lower tier), authorisation regime, activity state, IED flag and a per-SIREN risk synthesis. A company with no classified facility returns level aucun — the clean answer is the signal. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description adds meaningful behavioral details: companies with no classified facility return level `aucun` as a clean signal, and the tool is paid via x402. These are not obvious from annotations or the schema and help set expectations correctly.

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?

Three sentences deliver the tool's purpose, key output fields, empty-result semantics, and pricing without filler. The dense first sentence is front-loaded with the most important information, and each subsequent sentence adds distinct value.

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 one required parameter, a rich output schema, and full schema description coverage, the description provides everything an agent needs: the data source, the relevant fields, the no-facility edge case, and the payment requirement. No critical contextual gaps remain.

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%, with siren, api_key, and x_payment already well documented. The description adds no new parameter details; it only reuses the per-SIREN concept. The baseline of 3 applies because the schema carries the parameter-semantics burden.

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 identifies the tool as providing an industrial-risk and environment (ESG) profile from the official ICPE register, with specific content details such as Seveso status, authorisation regime, activity state, IED flag, and per-SIREN synthesis. This distinguishes it from other French-company tools that cover financials, legal alerts, or health summaries.

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 gives clear context for when to use the tool: when an industrial-risk or environmental profile is needed, sourced from Géorisques/DGPR. It does not explicitly name alternatives or exclusions, but the domain and official source make the intended use unmistakable among the sibling French-company tools.

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

get_french_company_intellectual_propertyA
Read-only
Inspect

Intellectual-property portfolio of a French company from INPI open data: trademarks, patents and designs filed (counts + recent items with number, title, status, date, classification). An R&D/brand-value signal. Patent inventor names (natural persons) are never returned. Paid via x402 ($0.03 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnly/openWorld annotations, the description discloses the data source, the returned content shape, a notable privacy constraint (inventor names never returned), and the payment mechanism with its exact cost. These are practical behavioral details an agent needs before invoking.

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?

Three compact sentences front-load the core resource and contents, then add signal context, privacy caveat, and pricing. There is no filler or duplication of schema information.

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?

The schema, annotations, output schema, and description together give an agent everything needed: input, cost, source, contents, privacy caveat, and read-only safety. No practical gap remains.

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 description correctly avoids restating parameter details; the baseline of 3 applies. The payment mention is adjacent to x_payment/api_key but adds no parameter-level semantics beyond what the schema already provides.

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 states a specific verb and resource: retrieving a French company's intellectual-property portfolio from INPI open data. It enumerates the asset classes and returned fields, which clearly distinguishes it from sibling get_french_company_* tools focused on financials, changes, or risk.

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?

It gives a usage context — 'An R&D/brand-value signal' — but does not explicitly name alternatives or state when not to use it. In a large sibling family, the selection criteria are implied rather than explicitly spelled out.

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

get_french_company_intelligenceA
Read-only
Inspect

Use for a GO/NO-GO decision (credit, investment, partnership) on a French company. Company INTELLIGENCE report — every Sirenic block cross-referenced in one call: identity & officers, financials with 3-year trend, sector positioning vs NAF peers, failure-risk score, BODACC legal alerts, sanctions screening (6 official lists, company + each officer), public procurement (French DECP + EU TED), IP assets, cached capital structure, industrial-risk synthesis (Seveso/ICPE), AMF PSAN/SGP register statuses, HATVP lobbying summary and a live VIES VAT check. Returns closed-list SIGNALS traced to their register source, a deterministic verdict (solide/correct/fragile/critique) and strengths/vigilance points. Every block states the official register it comes from and its as_of date, so the report is auditable offline once the Ed25519 signature is verified. The flagship due-diligence call. Paid via x402 ($1.00 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

With readOnlyHint and openWorldHint annotations already present, the description adds substantial behavioral context: deterministic verdicts, closed-list signals traced to register sources, as_of dates, offline auditability via Ed25519 signature, and payment/credits behavior. This goes well beyond the annotations and helps the agent set expectations for the response.

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 long but appropriately so for a flagship aggregation tool; the use case is front-loaded and every phrase adds useful detail about data blocks, return values, provenance, and auditability. No filler sentences are present.

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?

The description covers the decision context, the scope of data included, the nature of the output, the register traceability, the verdict scale, payment options, and offline verification. Given that an output schema exists, nothing essential for selecting or invoking the tool is missing.

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%, and the schema already documents siren, api_key, and x_payment in detail. The tool description adds general context about the report being paid and comprehensive, but it does not add meaningful new parameter-level meaning beyond what the schema already provides.

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 use case — GO/NO-GO decisions on a French company — and names the resource as a comprehensive company intelligence report. It distinguishes itself from the many granular sibling tools by stating it cross-references every Sirenic block in one call and calling itself 'the flagship due-diligence call.'

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?

It explicitly tells when to use the tool: for a GO/NO-GO credit, investment, or partnership decision. It implies the alternative to calling many single-purpose siblings by saying 'every Sirenic block cross-referenced in one call,' but it does not explicitly name which siblings to use for narrower needs.

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

get_french_company_kyb_batchA
Read-only
Inspect

Batch KYB: full KYB files for 2 to 100 French companies in one call. Billed per company at $0.105 (30% off the $0.15 unit price) via x402 — the amount is the unit price times the number of SIREN. A SIREN with no diffusible company is returned with trouve=false and billed as one lookup. Each file carries its own per-block provenance (official register + as_of date). Ideal for prospecting and compliance agents processing lists. A full-size request quotes up to $10.50, above the $1.00 single-payment cap that x402 clients apply BY DEFAULT since @x402/core 2.23 (spendControls): raise spendControls.maxAmountPerPayment, or set spendControls: false, before signing — otherwise your own client rejects the quote without ever calling us.

ParametersJSON Schema
NameRequiredDescriptionDefault
sirensYesList of 2 to 100 nine-digit SIRENs
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnly/openWorld annotations, the description discloses billing per SIREN, the $0.105 effective unit price, the behavior and billing for non-diffusible SIRENs, per-block provenance, and the x402 spendControls trap that can cause the caller's own client to reject the quote. This is exceptionally transparent about cost, failure modes, and output traits.

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 long but dense, and nearly every sentence carries operational necessity: scope, pricing, edge-case billing, provenance, use case, and a critical spendControls warning. It is front-loaded with purpose and only mildly verbose in the final payment-cap warning, which is justified by severity.

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?

The description covers what the tool does, when to use it, how billing works, what happens for missing companies, provenance guarantees, and the payment-configuration pitfall an agent must handle before calling. With an output schema present, no return-format explanation is needed, so the tool description is effectively complete.

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 100%, so the baseline is 3. The description adds extra semantic value by explaining that cost scales with the number of SIRENs, that a SIREN without a diffusible company yields trouve=false but still bills as one lookup, and how the x402 payment flow relates to the optional api_key and x_payment parameters.

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 'Batch KYB: full KYB files for 2 to 100 French companies in one call', which names a specific verb, a concrete resource, and a precise scope. It naturally differentiates from the sibling get_french_company_kyb_file by emphasizing the batch dimension.

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 points to 'ideal for prospecting and compliance agents processing lists', giving a clear when-to-use context. It does not name an explicit alternative or exclusion, so it stops short of a full 5, but the batch context is unambiguous versus the single-company sibling.

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

get_french_company_kyb_fileA
Read-only
Inspect

Complete KYB (Know Your Business) file for a French company in one call — a comprehensive BUNDLE consolidating identity, officers, BODACC legal alerts, filed financials, sanctions screening of the company and each officer (6 official lists), VAT number and a completeness score. Use this when you want the whole due-diligence picture at once; if you only need one part, call the dedicated tool instead (get_french_company_profile, get_french_company_legal_alerts, get_french_company_financials, or screen_sanctions_lists) — they are cheaper. Every block carries its provenance: official register, licence, version and as_of date, plus precision_as_of telling whether that date is the upstream official publication, Sirenic's ingestion or a live consultation. Paid via x402 ($0.15 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Even with readOnlyHint and openWorldHint annotations present, the description adds substantial behavior: it explains provenance metadata on every block, the meaning of precision_as_of, and the x402 payment cost. This enriches the agent's understanding of what the call returns and what side effects or payment obligations exist.

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 information-dense but every sentence earns its place: what the bundle contains, when to use alternatives, provenance behavior, and pricing. Important context is front-loaded before billing details.

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 complex bundle tool with an output schema, the description covers purpose, alternatives, returned-data provenance, and cost. Nothing critical is missing for an agent to decide whether and how to invoke it 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 input schema fully documents the three parameters. The description does not add parameter-level detail beyond the schema, but that is acceptable given the schema already carries the burden. Baseline 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 states a clear, specific purpose: retrieving a complete bundled KYB file for a French company, and enumerates exactly what the bundle contains (identity, officers, legal alerts, financials, sanctions, VAT, completeness score). It also distinguishes itself from sibling tools by positioning itself as the comprehensive one-call version.

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?

Explicit when-to-use guidance is provided: use when you want the whole due-diligence picture at once. It names specific alternative tools for partial needs and notes they are cheaper, which is actionable routing information an agent can rely on.

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

get_french_company_lobbyingA
Read-only
Inspect

Lobbying and transparency profile of a French company from the official HATVP register of interest representatives: registration status, category, lobbying-expense brackets per year, recent subjects with intervention domains, clients (for consulting firms), affiliations, declaration defaults. Organisation-level only — no personal data. inscrit: false is a meaningful answer. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already indicate readOnlyHint and openWorldHint, but the description adds valuable behavior beyond that: it clarifies that an unregistered company returning `inscrit: false` is a valid outcome, not an error. It also discloses the x402 payment requirement and cost, which is important behavioral context. The 'no personal data' scope further manages expectations about what the tool will and will not return.

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 compact and front-loaded, leading with the core purpose and data source, then listing contents, scope, a meaningful-result caveat, and cost in a logical flow. Every sentence carries useful information with no filler or repetition of schema details.

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?

The tool has a rich output schema, 100% parameter schema coverage, and annotations, so the description does not need to explain return values or basic safety. It covers the remaining contextual essentials: source authority, data scope, meaningful absence of registration, and payment mechanics. An agent has enough to select and invoke this 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%, with all three parameters (siren, api_key, x_payment) already documented in the input schema. The tool description adds no parameter-level semantics beyond what the schema provides, but it doesn't need to because the schema is self-sufficient. Baseline 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 names a specific verb ('get'), a specific resource ('Lobbying and transparency profile of a French company'), and a distinct data source ('official HATVP register of interest representatives'). It enumerates the contained fields (registration status, expense brackets, subjects, clients, affiliations), making the tool's purpose unambiguous. It also differentiates from siblings by explicitly scoping to organisation-level data.

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 clearly signals when to use this tool: when an agent needs French company lobbying/transparency data from the HATVP register. It also provides an exclusion ('Organisation-level only — no personal data') and notes that `inscrit: false` is meaningful, which guides interpretation. It does not explicitly name alternative tools or state when not to use it, but the context and sibling list make the use case clear.

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

get_french_company_pdf_reportA
Read-only
Inspect

On-demand PDF report of a French company — a shareable due-diligence dossier (formatted KYB file: identity, officers, legal alerts, financials, sanctions screening; includes the AI health summary when cached). Returns the PDF as base64. Paid via x402 ($0.50 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
Behavior4/5

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

Annotations already provide readOnlyHint and openWorldHint. The description adds valuable behavioral context beyond that: the tool is paid via x402 at a set price, returns the PDF as base64, and conditionally includes the AI health summary only when cached. No contradiction with the annotations exists.

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?

A single well-structured sentence front-loads the purpose, then packs the dossier contents, output format, and payment model without filler. Every part earns its place and the most important information appears first.

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 tool with no output schema, the description adequately covers return format (base64 PDF), dossier contents, conditional inclusion of health summary, and payment model. Remaining details like the quote flow and insufficient-balance behavior live in the schema. The only notable gap is not disambiguating from get_french_company_kyb_file.

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 baseline is 3 even without parameter details in the description. The description adds only the payment context ($0.50 in USDC or EURC) and does not meaningfully explain the parameters beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns an on-demand PDF report of a French company and lists the dossier contents (identity, officers, legal alerts, financials, sanctions screening). It is specific about verb and resource, but it does not explicitly distinguish itself from the very similar sibling get_french_company_kyb_file, so it misses full sibling differentiation.

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 use case is implied by 'shareable due-diligence dossier' and 'on-demand PDF report', which signals when an agent would want this tool. However, it gives no explicit when-to-use versus alternatives, no exclusions, and does not mention the closest sibling get_french_company_kyb_file.

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

get_french_company_profileA
Read-only
Inspect

Full official company profile of a French company by SIREN, from the French company registry (INSEE Sirene / INPI RNE): legal name, legal form, head office, NAF code, workforce, officers, collective agreements (conventions_collectives, with conventions_collectives_notes reading out technical IDCC codes — 9999 means no collective agreement is assigned, it is not an agreement number to look up), VAT number. The core company data lookup for KYB and due diligence on France. Paid via x402 ($0.005 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description adds meaningful behavioral context: the payment requirement via x402 with a specific cost, the official registry sources (INSEE Sirene / INPI RNE), and a critical interpretation caveat that conventions_collectives_notes contains technical IDCC codes where 9999 means 'no collective agreement assigned.' This goes beyond the annotations and prevents a likely misuse.

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 efficient: it leads with output scope and fields, includes the important 9999 caveat parenthetically, then gives use-case positioning and payment details. Every part earns its place, and nothing is redundant with the already-rich schema and annotations.

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?

Given that an output schema exists, parameter schema coverage is full, and annotations are present, the description is largely complete: it covers source, content, cost, and a decoding caveat. It does not explicitly differentiate from the large French company sibling set, but the 'core data lookup' positioning provides enough contextual grounding for an agent to select it for general KYB.

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% and the schema already documents siren, api_key, and x_payment with helpful details. The main description adds little about parameter semantics beyond mentioning lookup 'by SIREN' and the paid x402 flow, so the schema carries the weight. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: 'Full official company profile of a French company by SIREN' and lists concrete fields (legal name, legal form, head office, NAF code, workforce, officers, VAT number). It also positions itself as 'the core company data lookup for KYB and due diligence on France,' which helps distinguish it from specialized siblings, though it does not explicitly name an alternative.

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 phrase 'The core company data lookup for KYB and due diligence on France' provides clear usage context and implies this is the default profile tool for French company data. However, it does not explain when to prefer a related sibling such as get_french_company_financials or get_french_company_health_summary, so it stops short of explicit when-not guidance.

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

get_french_company_public_procurementA
Read-only
Inspect

Public procurement in France: government contracts and tenders won by a French company (official DECP data) — buyers, amounts, dates. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already declare read-only behavior, and the description adds valuable behavioral context: the tool is paid via x402 at a fixed $0.01 cost and uses official DECP data. It does not contradict the annotations, and the payment detail is important for correct invocation.

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 two short sentences that front-load the core purpose and then add the critical payment fact. There is no filler, and every piece of information contributes to correct tool understanding.

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?

Given the fully described schema, an output schema, and read-only/open-world annotations, the description covers the essential purpose, data contents, and paid nature of the tool. An agent has enough context to select and invoke it 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%, and the schema already documents siren, api_key, and x_payment in detail, including the quote-vs-payment behavior. The description adds no parameter-level information, which is acceptable given the schema's completeness.

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 names a specific resource (French public procurement using official DECP data), a specific scope (contracts and tenders won by a French company), and the key data fields (buyers, amounts, dates). This distinguishes it from broader siblings like get_eu_procurement_awards and get_french_company_profile.

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 context is explicit: use this tool for French public procurement won by a French company. It does not explicitly list exclusions or alternative sibling tools, so it misses the strongest form of usage guidance, but the domain scope is clear enough to guide selection.

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

get_french_public_buyer_profileA
Read-only
Inspect

Procurement profile of a French public buyer (by SIRET): contract volumes by year, top CPV segments, incumbent suppliers with their contracts expiring within 18 months, framework-agreement share, average bids received per tender and median publication delay — the buying habits to know before a sourcing meeting. From official DECP open data. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
siretYes14-digit SIRET of the public buyer, e.g. 26310012500016 (CHU de Toulouse)
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already mark the tool as read-only and open-world, and the description adds meaningful behavioral context beyond them: it names the official data source (DECP open data) and discloses the monetization mechanism and exact price ($0.02 via x402). This helps the agent anticipate side effects and cost without contradicting the read-only hint.

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 sentence that front-loads the resource and key input before listing the output contents and the data source. It is efficient, but the long list of deliverables in one sentence makes it slightly harder to parse than a structured breakdown would be.

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?

Given the output schema exists and the input schema fully documents parameters, the description covers everything an agent needs to decide and invoke correctly: the target resource, required key, expected output contents, use case, data source, and pricing. No critical operational detail is missing.

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 siret, api_key, and x_payment. The description only echoes 'by SIRET' and does not add parameter-level nuance beyond what the schema provides, so the 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 precisely defines the tool as returning a procurement profile for a French public buyer keyed by SIRET, and then enumerates the exact data points included. This clearly distinguishes it from sibling tools like get_french_company_public_procurement, which targets the procurement activity of a company rather than the buying profile of a public buyer.

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 gives a clear use case ('the buying habits to know before a sourcing meeting'), so an agent understands when this profile is relevant. However, it does not explicitly state when to prefer this over related siblings such as get_eu_procurement_awards or find_expiring_french_public_contracts, nor does it provide any exclusion criteria.

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

get_french_sector_benchmarksA
Read-only
Inspect

Sector benchmarks and sector statistics for a French NAF activity code (any level: 68, 68.2, 68.20, 68.20B): number of active companies, median company age (+quartiles), workforce-bracket distribution, and — when at least 5 companies file public accounts — median revenue, EBITDA margin, pre-tax result and debt ratio. Peer comparison: place a company against its peers. Aggregates only, no personal data. Paid via x402 ($0.05 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
code_nafYesNAF activity code, any level
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses that results are aggregates only, contain no personal data, require a minimum of 5 companies filing public accounts for financial metrics, and are paid via x402 at a specific cost. This gives the agent important behavioral expectations that annotations do not cover.

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 compact yet information-dense: it front-loads the core purpose and metrics, then explains the peer-comparison use case, privacy properties, and payment cost. Each sentence contributes new information without redundancy.

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?

Given the rich input schema, output schema, and annotations, the description covers what the tool returns, the required input format, the threshold condition for financial metrics, the aggregate/privacy nature, and the payment mechanism. No critical operational concern is left unaddressed for an agent deciding whether and how to call this tool.

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. The description adds meaningful semantics by clarifying accepted NAF code granularity with concrete examples (68, 68.2, 68.20, 68.20B) and by stating the USD/EURC cost associated with the payment flow, which complements the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource type (sector benchmarks/statistics for a French NAF activity code) and enumerates the metrics returned, so an agent can understand what this tool does. However, it does not explicitly distinguish itself from sibling tools like compare_french_companies or get_french_company_financials, relying instead on the sector-level framing to imply differentiation.

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 provides clear use context: querying sector-level statistics by NAF code and performing peer comparison against aggregate benchmarks. It does not explicitly state when not to use it or name alternative sibling tools, so exclusions are missing, but the intended usage is well implied.

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

get_german_insider_transactionsA
Read-only
Inspect

Insider transactions at a German listed company — directors' dealings under MAR Article 19, as notified to BaFin: are its managers buying or selling? Issuer-level aggregate over a rolling 12 months — notification counts, gross buy and sell amounts, net flow, breakdown by declarer category, plus the underlying notifications. Query by LEI or ISIN (BaFin publishes no company register number). No individual is ever named, and the breakdown is withheld when it would single someone out. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLEI (20 chars, ISO 17442) or ISIN (12 chars) of the German listed issuer
depuisNoStart date YYYY-MM-DD (default: rolling 12 months; BaFin keeps 12 months)
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint, so the bar is lower, and the description adds substantial value beyond them: the privacy behavior ('No individual is ever named, and the breakdown is withheld when it would single someone out'), the payment requirement ('Paid via x402 ($0.02 in USDC or EURC)'), and the data-retention constraint ('BaFin keeps 12 months'). These are real behavioral traits an agent could not infer from the annotations alone.

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 with no wasted sentences — purpose, payload, query key, privacy, and payment each earn their place. It is slightly long, but every clause carries information an agent needs before calling the tool, so the density is justified.

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 an output schema present and one required parameter, the description covers everything needed to invoke correctly: how to identify the issuer, what the rolling window is, what aggregates come back, the privacy redaction rule, and the payment path including the $0.02 price and fallback api_key method. Nothing essential is missing.

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 100%, so the baseline is 3, and the description goes further: it explains why the id must be LEI/ISIN rather than a company register number, clarifies that 'depuis' defaults to the rolling 12 months and is capped by BaFin's retention, and describes the api_key/x_payment distinction (prepaid credits vs signed x402 payment). This adds meaning beyond the schema fields.

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 names a specific verb+resource: insider transactions at German listed companies, with the legal basis (MAR Article 19) and regulator (BaFin). It states the delivered payload (notification counts, gross buy/sell amounts, net flow, declarer-category breakdown, underlying notifications), which fully distinguishes it from siblings like get_belgian_insider_transactions.

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 gives clear selection context: German listed issuers, queried by LEI or ISIN, over a rolling 12-month window. It explains why the query key is limited to LEI/ISIN ('BaFin publishes no company register number') and covers the default time scope. It does not explicitly name alternatives or when-not-to-use it, but the scope is precise enough for an agent to select correctly.

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

get_latvian_company_accountsA
Read-only
Inspect

Latvian company annual accounts from official VID filings (Uzņēmumu reģistrs open data, CC0, refreshed daily) — financial statements for EVERY filed fiscal year in one call: balance sheet, P&L (revenue null = not published, never zero), cash flow when filed, employees. Figures as published: filing currency (EUR, LVL before 2014) and published rounding unit (THOUSANDS = thousands); statutory and consolidated filings kept apart. Paid via x402 ($0.03 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
regnrYes11-digit Latvian registration number (Uzņēmumu reģistrs), e.g. 40003032065
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the annotations (readOnlyHint, openWorldHint), it discloses the daily refresh cadence, CC0 licensing, the critical 'revenue null = not published, never zero' convention, EUR/LVL currency handling, THOUSANDS rounding units, statutory-vs-consolidated separation, and the $0.03 x402 cost. No contradiction with annotations; these are exactly the behaviors that would otherwise cause an agent to misread results.

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?

A single dense sentence front-loads the core purpose before the caveats, and every clause earns its place (source, scope, null semantics, currency, rounding, consolidation, cost). It is long but logically sequenced; splitting into two sentences would improve readability without adding content.

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 an output schema present (return values need no description) and annotations covering the safety profile, the description covers all operational gotchas an agent needs: data freshness, currency/rounding units, null semantics, consolidation separation, and the required payment flow. Nothing essential is missing.

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% — regnr, x402, and x_payment are each already documented there, so the baseline 3 applies. The description's payment note adds cost context to x402 but adds nothing about regnr beyond the schema's own pattern and description.

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 names a specific verb+resource ('annual accounts from official VID filings') and enumerates exact contents (balance sheet, P&L, cash flow, employees) with explicit scope ('EVERY filed fiscal year in one call'). It is clearly distinguishable from sibling country-account tools like get_estonian_company_accounts or get_swedish_company_accounts by the explicit Latvian source and data specifics.

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?

Usage context is implied via the country+resource in the name and the enumerated contents, which signal 'use for Latvian company financial statements'. However, no alternative tools are named and nothing states what it does not cover (e.g., officers, insolvency — handled by siblings) or when to prefer a different tool.

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

get_latvian_company_beneficial_ownersA
Read-only
Inspect

Beneficial owners (patiesie labuma guvēji) of a Latvian company from the official Uzņēmumu reģistrs open data (CC0, refreshed daily): registered UBOs with name, nationality, country of residence and registration date — an open national UBO register, depth France does not expose. An empty list for a registered company reflects the register (non-registration cases exist). GDPR minimisation: never the Latvian personal identity number, birth month+year only when published. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
regnrYes11-digit Latvian registration number (Uzņēmumu reģistrs), e.g. 40003032065
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations provide readOnlyHint and openWorldHint, and the description adds substantial behavioral context: empty lists can still reflect a registered company, data is CC0 and refreshed daily, GDPR minimisation excludes personal identity numbers, and payment is via x402 at $0.02. These details go well beyond the structured annotations and explain important edge cases.

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 every sentence earns its place: core function, data source/freshness, empty-list semantics, privacy constraints, and payment model. It is front-loaded with the primary purpose and does not waste words.

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 a rich input schema, output schema, and annotations already present, the description covers the remaining practical concerns: register semantics, GDPR redactions, and payment requirements. An agent has enough information to select and invoke this 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?

The input schema already has 100% coverage with detailed descriptions for regnr, api_key, and x_payment, including format, example, and payment flow. The description adds pricing and GDPR context, but little parameter-specific meaning beyond what the schema provides, so the 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 names a specific verb and resource: 'Beneficial owners ... of a Latvian company from the official Uzņēmumu reģistrs open data.' It also lists the exact data fields returned (name, nationality, country of residence, registration date), which makes the tool's function unambiguous. The country-specific framing and contrast with France's registry depth help distinguish it from sibling tools.

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 clearly scopes the tool to Latvian companies identified by Latvian registration number, and explains the open-data source and daily refresh. It does not explicitly name alternatives such as get_uk_beneficial_owners or state when not to use it, but the country-specific context makes the intended use clear.

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

get_latvian_company_insolvencyA
Read-only
Inspect

Latvian company insolvency record from the official Uzņēmumu reģistrs open data (CC0, daily national photo since 2008): insolvency and legal-protection proceedings with dates, resolution, court and case number — null end date means ongoing. A registered company with no proceeding returns an explicit positive answer (aucune_procedure: true) — the register is authoritative. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
regnrYes11-digit Latvian registration number (Uzņēmumu reģistrs), e.g. 40003032065
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses the data license and update cadence ('CC0, daily national photo since 2008'), the null end-date semantics, the explicit no-proceeding response ('aucune_procedure: true'), and the payment mechanism and price. This gives an agent substantial behavioral grounding beyond what annotations alone provide.

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?

Three dense sentences each earn their place: source and content, open-world behavior, and payment/quoting requirement. Information is front-loaded and there is no filler or repetition of schema fields.

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?

The description is complete for a read-only lookup tool: it covers source authority, temporal scope, field semantics including null end date, the no-proceeding case, and payment expectations. The presence of an output schema means return-value details do not need to be restated.

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 input schema already documents regnr, api_key, and x_payment. The description adds useful domain context about the official register and payment model but does not need to explain parameter semantics further.

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 names the exact resource ('Latvian company insolvency record'), the authoritative source ('official Uzņēmumu reģistrs open data'), and the specific content ('insolvency and legal-protection proceedings with dates, resolution, court and case number'). This clearly separates it from the many country-specific sibling 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 gives useful context about the data source, open-world handling, and authoritative status, but it does not explicitly say when to use this tool versus the other insolvency or Latvian company tools. Usage must be inferred from the tool name and country/domain focus rather than stated directly.

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

get_latvian_company_officersA
Read-only
Inspect

Latvian company officers and directors from the official Uzņēmumu reģistrs open data (CC0, refreshed daily): board members, chairs, liquidators and other representatives with role, governing body, representation rights and registration date; corporate officers carry their own registration number. GDPR minimisation: never the Latvian personal identity number, birth month+year only when published. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
regnrYes11-digit Latvian registration number (Uzņēmumu reģistrs), e.g. 40003032065
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already mark the tool as read-only and open-world, and the description adds valuable behavioral context: the official CC0 source, daily refresh, GDPR minimisation rules, and the x402 payment requirement. No contradiction with annotations.

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 well structured: the core purpose is front-loaded, followed by the data scope, privacy note, and payment method. Every sentence carries useful information with no fluff or repetition of schema content.

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?

Given the existing output schema and annotations, the description is complete: it names the source, refresh cadence, legal/privacy constraints, payment expectation, and the general output categories. No critical missing usage information remains for an agent to invoke it 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% and the schema already documents regnr, api_key, and x_payment in detail. The description adds context about the registry and payment but does not describe parameters beyond what the schema already provides, so the 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 uses a specific verb and resource: 'Latvian company officers and directors from the official Uzņēmumu reģistrs open data'. It enumerates the concrete content (board members, chairs, liquidators, representation rights) and distinguishes itself from sibling Latvian company tools (accounts, beneficial owners, insolvency) by focusing on officers.

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 gives clear context for when to use the tool: when Latvian company officer/director data is needed. It does not explicitly name alternatives or exclusions, but the data scope is specific enough to route an agent correctly among the country- and subject-specific siblings.

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

get_norwegian_company_accountsA
Read-only
Inspect

Annual accounts of a Norwegian company from the official Regnskapsregisteret (Brønnøysundregistrene, NLOD 2.0): the latest filed fiscal year fetched live, plus every earlier year accumulated since 2026-07 (the register only serves the latest one). Balance sheet (assets, equity, debts), P&L (operating income and result, net result), figures as published in the filing currency — can be USD, never converted. Banks and insurers are not served by the source. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes9-digit Norwegian organisasjonsnummer, no spaces, e.g. 923609016
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnly and openWorld annotations, the description discloses significant behavioral traits: live retrieval of the latest fiscal year, historical accumulation since 2026-07, the register's limitation to only the latest filing, currency behavior (published filing currency, possibly USD, never converted), and source exclusions. This gives the agent strong expectations about data freshness, historical depth, and output semantics.

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 every sentence earns its place: source, scope, temporal behavior, financial statement contents, currency, exclusions, and payment. The core purpose is front-loaded, and no redundant or boilerplate text is present.

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 this complexity, the description covers selection criteria, data scope, data freshness, currency behavior, exclusions, and payment model. Since an output schema exists, the description does not need to explain return values, and nothing critical is missing for an agent to decide correctly and invoke the tool.

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%, and the parameters (id, api_key, x_payment) are already well-documented in the input schema. The description adds billing context (x402, $0.02 in USDC or EURC) but does not meaningfully explain the parameters themselves beyond what the schema provides, so it remains at the baseline for high 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?

The description names the exact resource ('annual accounts of a Norwegian company') and the official source (Regnskapsregisteret/Brønnøysundregistrene), making the tool's function unmistakable. The country scoping and exclusion of banks/insurers distinguish it clearly from sibling country-accounts tools like get_swedish_company_accounts or get_uk_company_accounts.

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 provides clear context: use this for Norwegian official annual accounts, with the latest fiscal year fetched live and earlier years accumulated since 2026-07. It also gives an explicit exclusion ('banks and insurers are not served by the source'), though it does not name a specific alternative tool to use instead.

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

get_polish_company_registry_eventsA
Read-only
Inspect

Registry EVENTS of a Polish company, derived from the official KRS daily bulletin (Krajowy Rejestr Sądowy, Ministry of Justice): liquidation opened or closed, bankruptcy, restructuring, activity suspension and resumption, dissolution, mergers and transformations, tax or social-security arrears and enforcement, annual-accounts filings, changes of name, legal form, registered office or share capital, and strike-off. Each event carries the bulletin day it appeared on and, when the register publishes one, the register's own date. The response always states the observation window (gap-free by construction) — the register publishes no retroactive event history. IMPORTANT: this endpoint does NOT check that the KRS number exists — a non-existent number returns exactly the same aucun_evenement: true answer as a real company that stayed quiet; the existence block says which case applies, and get_european_company_profile (pays=PL) settles existence with a 404. GDPR by design: no officers, shareholders, liquidators or curators, never a PESEL — and no FREE TEXT from the register either: the narrative wording of a decision can name a notary or a receiver, so it is read only to extract a date and then discarded (that date is flagged date_source_inferee). What is served: the event type from a closed list, its register section, its dates, its wpis number, amounts, and the deciding court or authority. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
krsYes10-digit Polish KRS number, leading zeros included, e.g. 0000006865
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

The description goes far beyond annotations. It discloses that the endpoint does NOT validate KRS existence and that a non-existent number returns the same response as a quiet company, requiring an `existence` block check. It explains GDPR design (no officers/PESEL), the no-free-text policy, the observation window gap-free construction, and the payment mechanism (x402). These are non-obvious behaviors an agent must know to interpret results correctly.

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 long but every sentence carries critical operational information: the event types, the observation window, the existence caveat, GDPR constraints, and payment. It is front-loaded with the core purpose and then expands on caveats. Slightly verbose but not wasteful; information density is high.

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 payment, existence-check caveats, and compliance constraints, the description is remarkably complete. It covers input behavior (non-existent KRS), output guarantees (gap-free window, event types, dates, wpis number), and exclusions (no officers, no free text). With an output schema present, the agent has everything needed to call and interpret 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 `krs`, `api_key`, and `x_payment` are already documented with patterns and semantics. The description adds no additional parameter-level detail beyond what the schema provides (it does mention the existence caveat which relates to `krs` semantics, but that's already partially implied). Since the schema does the heavy lifting, a baseline 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 states a specific verb-resource pair ('Registry EVENTS of a Polish company'), names the exact data source (KRS daily bulletin), and enumerates the event types covered (liquidation, bankruptcy, restructuring, etc.). This clearly distinguishes it from sibling tools like get_swedish_company_registry_events or get_european_company_profile.

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 purpose makes clear when to use it (need Polish company registry events). It also gives an explicit pointer to get_european_company_profile for existence verification when the KRS number is uncertain. However, it doesn't explicitly state when NOT to use it (e.g., for other countries) or alternatives for related queries, but the context is sufficient for an agent to choose correctly.

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

get_slovak_company_filingA
Read-only
Inspect

One Slovak fiscal year decoded from the structured statements filed with the RÚZ — balance sheet and profit and loss, 16 key items: net turnover (null = not published, never zero), operating income and costs, value added, staff costs, operating, financial, pre-tax and net result, income tax, total assets, non-current and current assets, equity, share capital, liabilities — plus prior-year comparatives as published in the same filing. Amounts in euros, never converted. Closing date comes from list_slovak_company_filings; scope defaults to the statutory filing. Paid via x402 ($0.03 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
icoYes8-digit Slovak IČO, e.g. 36417475
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
perimetreNoFiling scope: statutory (default) or consolidated — never merged
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
type_depotNoFiling type from the filings list (Riadna, Mimoriadna…), when two filings share the same closing date; defaults to the ordinary one
date_clotureYesFiscal-year closing date, YYYY-MM-DD, e.g. 2025-12-31

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses meaningful behaviors: null means 'not published' and never zero, amounts are in euros and never converted, the scope default, prior-year comparatives come from the same filing, and payment is via x402 at $0.03. This gives the agent a much richer behavioral model than the annotations alone.

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 every sentence carries load: the item list defines the exact output scope, the null/euro notes prevent misinterpretation, and the workflow reference to the list tool is a concise prerequisite. The most important framing is front-loaded.

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?

Given the output schema exists and the annotations cover read-only/open-world behavior, the description supplies everything else needed to invoke the tool correctly: prerequisite source for the date, default scope, payment mechanism, currency rules, and null semantics. No major invocation question is left unanswered.

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 100%, so the schema already documents all parameters. The description adds useful cross-reference semantics by stating that date_cloture comes from list_slovak_company_filings and that perimetre defaults to the statutory filing, which goes slightly beyond the schema text.

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 and resource: 'One Slovak fiscal year decoded from the structured statements filed with the RÚZ', listing the exact financial items returned. It also distinguishes itself from the related listing tool by stating that the closing date comes from list_slovak_company_filings.

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?

It gives clear context: use this for a single Slovak filing's profit/loss and balance-sheet items, source the closing date from list_slovak_company_filings, and note that scope defaults to the statutory filing. It does not explicitly state when not to use it versus other country-specific filing tools, but the name plus Slovak-specific wording make that differentiation mostly self-evident.

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

get_spanish_company_actsA
Read-only
Inspect

Spanish company acts from the official BORME gazette (Registro Mercantil, section A) by hoja registral — the register key, e.g. VI-23141, returned by search_european_companies for Spain: incorporations, officer appointments and dismissals (role + name), capital changes, mergers, dissolutions, insolvency. Daily flow since 2009, newest first (100 max + total count). Spanish personal IDs (DNI/NIE) and natural-person sole-shareholder names are redacted at ingestion, marked « […] ». Basado en datos de la Agencia Estatal Boletín Oficial del Estado. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
hojaYesHoja registral (register-sheet key), e.g. VI-23141 — from search_european_companies with pays=ES. The BORME does not publish the NIF.
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations already mark readOnlyHint and openWorldHint, and the description adds substantial behavior beyond that: newest-first ordering, '100 max + total count', redaction of DNI/NIE and sole-shareholder names with '« […] »' markers, coverage since 2009, and $0.02 x402 payment. This is the kind of operational context an agent needs before invoking.

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?

Purpose is front-loaded in the first clause, and subsequent clauses each carry operationally relevant information: content types, recency/ordering, redaction, attribution, and pricing. It is denser than a two-sentence definition but contains no filler.

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 an output schema present, the description need not recap the return shape. It covers source authority, input prerequisite, coverage start, ordering and limits, redaction policy, and payment method, so nothing essential for selecting and calling this tool is missing.

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 100% and the schema already documents all three parameters well, so the baseline is 3. The description adds value by explaining that hoja is the register key from search_european_companies and clarifying the x402/api_key payment interaction, reinforcing the schema without repeating it.

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?

Opens with a specific verb+resource ('Spanish company acts... by hoja registral') and enumerates the act types returned (incorporations, officer appointments and dismissals, capital changes, mergers, dissolutions, insolvency). The country/source specificity (BORME, Registro Mercantil, Spain) distinguishes it clearly from the many sibling 'get_*' country tools.

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 states the triggering input: a hoja registral key 'returned by search_european_companies for Spain', which tells the agent exactly where the prerequisite identifier comes from. It does not explicitly list when not to use this tool among siblings, but the Spanish source and key requirement make the intended context clear.

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

get_surveillance_watchA
Read-only
Inspect

Status and accumulated events of a watchlist created with create_surveillance_watch. Free — the surveillance_id token IS the capability.

ParametersJSON Schema
NameRequiredDescriptionDefault
surveillance_idYesToken returned at creation

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already mark readOnlyHint and openWorldHint; description adds meaningful context: 'Free — the surveillance_id token IS the capability,' disclosing cost and capability-based auth. No contradictions.

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?

Two short sentences that immediately state purpose, provenance, cost, and capability model. Zero filler or repetition.

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 a simple 1-param read tool, output schema present, and annotations covering safety, the description fully covers purpose, cost, creation linkage, and capability. No missing context needed to invoke correctly.

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 covers the single parameter with 'Token returned at creation' at 100% coverage. Description adds the key nuance that the token 'IS the capability,' reinforcing security/carrying meaning beyond schema.

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?

Description states specific verb+resource: 'Status and accumulated events of a watchlist created with create_surveillance_watch.' This clearly distinguishes from sibling tools like renew_surveillance_watch and stop_surveillance_watch by focusing on read/status.

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?

Implies use after creating a watch with create_surveillance_watch, providing clear context. It does not explicitly contrast with renew/stop alternatives, but the read-only status/events purpose is evident.

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

get_swedish_company_accountsA
Read-only
Inspect

Annual accounts of a Swedish company, decoded from the official iXBRL filings Bolagsverket publishes free of charge (EU high-value datasets, since 3 February 2025): EVERY digitally filed fiscal year in one call — turnover (null = not disclosed under the K2 abridged format, never zero), operating and net result, total assets, equity, long- and short-term debt, average employees, plus the prior-year column as filed. Figures as published, in the filing currency (SEK). IMPORTANT COVERAGE LIMIT: digital filing is OPTIONAL in Sweden (~63% of annual reports in 2025, 53% in 2024) and the corpus starts with filings RECEIVED from 2020 — a company that is absent may simply have filed on paper. Officers (företrädare) are NOT available for Sweden: they are not part of the free datasets. Paid via x402 ($0.03 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
orgnrYes10-digit Swedish organisationsnummer, with or without hyphen, e.g. 5560401977 or 556040-1977
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

The description adds substantial behavioral context beyond the readOnly and openWorld annotations: it explains null turnover semantics (K2 abridged format, never zero), notes the coverage limitation with filing statistics, clarifies that absence may mean paper filing, and states that officers are not part of the dataset. It also mentions the payment mechanism, which is useful operational context. Nothing contradicts the 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?

The description is dense and front-loaded with the core purpose, followed by necessary caveats and operational details. While every sentence carries useful information, some phrases (e.g., the EU high-value dataset date) add marginal value and could be trimmed without losing essential guidance.

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?

The description covers all critical context an agent needs: what data is returned, null conventions, coverage gaps, currency, officer unavailability, and payment. Since an output schema exists, return values are already specified, and the description completes the picture with real-world limitations.

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 has 100% coverage with detailed descriptions for orgnr, api_key, and x_payment, so the description does not need to add parameter-level meaning. The description mentions the data output but does not elaborate on the parameters themselves, which is acceptable given the schema's completeness.

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 retrieves annual accounts of a Swedish company, decoded from official iXBRL filings, and enumerates the exact data fields returned (turnover, results, assets, equity, debt, employees). It distinguishes itself from siblings by explicitly noting that officers are not available for Sweden, so an agent can separate this from officer-related tools.

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 provides clear context for when to use the tool (when Swedish annual accounts are needed) and important caveats about coverage limits, optional digital filing, and the 2020 corpus start. It does not explicitly name alternative sibling tools or state when not to use it, but the purpose and limitations are evident.

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

get_swedish_company_registry_eventsA
Read-only
Inspect

Registry events of a Swedish company from Bolagsverket's official weekly national file (free EU high-value dataset): incorporation date, ONGOING winding-up or restructuring proceedings (bankruptcy/konkurs, liquidation, company reconstruction, composition, merger, division, cross-border conversion, bank resolution) with their start dates, and deregistration with its coded reason. Use it to check whether a Swedish counterparty is bankrupt, in liquidation or already struck off before signing or paying. A registered company with NO proceeding returns an explicit positive answer (procedure_en_cours: false) — the register is authoritative. Note: only ONGOING proceedings are published, and a company already struck off returns procedure_en_cours: false — the proceeding ended with the striking-off, whose coded reason carries the outcome. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
orgnrYes10-digit Swedish organisationsnummer, with or without hyphen, e.g. 5560401977 or 556040-1977
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds meaningful behavioral context beyond that: only ONGOING proceedings are published, struck-off companies return procedure_en_cours:false with a coded reason, and the register is authoritative. It also discloses the payment mechanism via x402.

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 dense but not wasteful; every sentence adds value. It front-loads the core resource and data content, then covers use case, output semantics, and payment. It is slightly long, but the extra caveats about ongoing proceedings and struck-off behavior justify the length.

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?

With an output schema present and full schema coverage for inputs, the description does not need to enumerate return fields. It explains the critical output semantics (procedure_en_cours for no proceeding and for struck-off companies) and the register's authoritative nature, making the tool complete enough for reliable invocation.

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%, and each parameter (orgnr, api_key, x_payment) is already documented in the input schema. The description reinforces the payment context but does not substantially add parameter-level meaning beyond what the schema provides, so baseline 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 specifies a precise resource (registry events of a Swedish company from Bolagsverket's official weekly national file) and lists concrete fields: incorporation date, ongoing proceedings, and deregistration reason. It distinguishes itself from sibling tools like get_swedish_company_accounts and get_polish_company_registry_events by naming the source and scope.

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?

It explicitly tells agents when to use the tool: to check whether a Swedish counterparty is bankrupt, in liquidation, or struck off before signing or paying. It does not explicitly name alternative tools or when-not-to-use conditions, but the use case is clear enough for correct selection among many registry-related siblings.

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

get_uk_beneficial_ownersA
Read-only
Inspect

UK beneficial owners (UBO) — PSC, persons with significant control — of a UK company, live from Companies House, the official UK company registry: individual and corporate-entity PSCs with natures of control (ownership/voting bands), notification dates, plus official PSC statements. Ceased PSCs are excluded by default (inclure_cesses adds them with their ceased date). No open UBO register exists for France — this is UK-only depth. Month+year of birth only, no addresses. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
company_numberYesCompanies House company number, 8 characters incl. leading zeros, e.g. 00102498 or SC123456
inclure_cessesNoInclude ceased PSCs (with their ceased_on date). Default false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description adds meaningful behavioral context: data is live from Companies House, ceased PSCs are excluded by default with an opt-in parameter, only month and year of birth are provided with no addresses, and the tool is paid via x402 at a specified cost. These details help an agent understand data freshness, privacy limitations, and payment expectations.

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 compact but dense, with each clause providing distinct information: data source, content, default behavior, jurisdictional limitation, privacy constraints, and payment. It is front-loaded with the core purpose. Slightly longer than minimally necessary, but no extraneous filler.

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?

Given that an output schema exists and the input schema fully covers parameters, the description addresses the essential context an agent needs: live registry source, what data is included and excluded, geo-scope, privacy limitations, and payment requirements. There are no critical missing behavioral or usage details.

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 100%, so the baseline is 3. The description adds value by explaining the effect of inclure_cesses (adds ceased PSCs with their ceased date) and by noting the payment mechanism, which clarifies the roles of x_payment and api_key. This goes beyond the schema's individual parameter descriptions.

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 states exactly what the tool does: retrieves UK beneficial owners/PSCs of a UK company, live from Companies House. It lists the data content (individual and corporate PSCs, natures of control, notification dates, PSC statements) and explicitly differentiates from siblings by noting it is UK-only and that no French UBO register exists.

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 clearly places the tool geographically and jurisdictionally: it is for UK companies only, and it notes that France has no equivalent open register. It also implicitly guides use of the inclure_cesses parameter to include ceased PSCs when needed. However, it does not explicitly name sibling alternatives for other countries or related UK resources such as officers or accounts.

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

get_uk_company_accountsA
Read-only
Inspect

One UK financial year — UK company financial statements decoded from the iXBRL accounts filed at Companies House: balance sheet (fixed and current assets, stocks, debtors, cash, creditors split by maturity, provisions, net assets, equity), average employees, and the profit and loss account when filed (turnover, operating, pre-tax and net result — most small companies file a balance sheet only), plus prior-year comparatives as published. Null = not published, never zero. Balance-sheet date comes from list_uk_company_accounts. Paid via x402 ($0.05 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
date_clotureYesBalance-sheet date, YYYY-MM-DD, e.g. 2025-12-31
company_numberYesCompanies House company number, 8 characters incl. leading zeros, e.g. 00095407 or SC123456

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the annotations (readOnlyHint, openWorldHint), the description discloses payment requirements ('Paid via x402 ($0.05 in USDC or EURC)'), defines missing-data semantics ('Null = not published, never zero'), and warns that profit and loss are not always filed. These are impactful behaviors an agent needs to interpret results correctly, so the description adds significant context.

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 dense but every phrase adds value: scope, output details, caveats, prerequisite, and cost. It is front-loaded with the core purpose and keeps the critical short cavaats in a separate sentence. It is long but not wasteful, so it does not reach the perfect 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?

With an output schema present, the description needn't spell out return values; it instead provides the missing context: the exact data scope, the null semantics, the list tool prerequisite, and the payment model. For a read-only retrieval tool, this is complete enough for correct invocation and result interpretation.

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 100%, so the baseline is 3. The description goes beyond the schema by telling the agent the balance-sheet date originates from list_uk_company_accounts and by providing cost context for the x402 payment params. This extra guidance earns the above-baseline score.

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 names a specific verb ('get') and resource ('UK company financial statements decoded from the iXBRL accounts filed at Companies House'), then enumerates the exact content: balance sheet items, average employees, P&L, and comparatives. It clearly distinguishes itself from its sibling list_uk_company_accounts by focusing on a single financial year and from other country-specific account tools by naming the UK jurisdiction.

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?

It explicitly says 'Balance-sheet date comes from list_uk_company_accounts', telling the agent to call a specific sibling first to obtain the required parameter. It also sets expectations about when profit and loss data may be absent ('most small companies file a balance sheet only'). It could be more explicit about when not to use this tool versus other country getters, but the clear predecessor guidance is strong.

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

get_uk_company_insolvencyA
Read-only
Inspect

UK company insolvency record, live from Companies House, the official UK company registry: cases (compulsory or voluntary liquidation, administration, receivership...) with dates and insolvency practitioners (name and role only, no addresses). A company with no recorded case returns an explicit positive answer (aucune_procedure: true) — the register is authoritative. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
company_numberYesCompanies House company number, 8 characters incl. leading zeros, e.g. 00102498 or SC123456

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations by adding concrete behaviors: live registry data, authoritative absence response (aucune_procedure: true), practitioner fields limited to name/role, and a specific payment mechanism and fee. No contradiction with annotations.

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?

Three dense sentences front-load the core purpose, then add authoritative data semantics and cost. No filler or repetition of schema details.

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 a full input schema, annotations, and an output schema, the description covers the remaining critical context: source authority, absence semantics, field limitations, and pricing. Nothing an agent needs to select and call the tool correctly is missing.

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 input schema already documents company_number, api_key, and x_payment. The description adds only the payment context ($0.02 via x402) and does not need to compensate for missing parameter documentation.

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 and resource: 'get' + 'UK company insolvency record', with live source and case types. The country and content scope clearly distinguish it from the many sibling insolvency/officer/accounts tools.

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?

Specifies the authoritative source (Companies House) and the exact purpose: retrieving UK insolvency cases. It also sets expectations for absent data (explicit positive answer) but does not explicitly name alternatives or when-not-to-use conditions.

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

get_uk_company_officersA
Read-only
Inspect

UK company officers and directors, live from Companies House, the official UK company registry: directors and secretaries with role, appointment date, nationality, occupation, country of residence and month+year of birth only — never a correspondence address (GDPR minimisation). Includes active/resigned counts. Open Government Licence v3.0. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
company_numberYesCompanies House company number, 8 characters incl. leading zeros, e.g. 00102498 or SC123456

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description does not contradict them. It adds meaningful behavior beyond the annotations: data is GDPR-minimised to avoid correspondence addresses, it includes active/resigned counts, it is live from Companies House, and it is paid via x402. This is useful additional context for an agent.

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 compact and front-loaded with the subject and source, then lists data fields, privacy constraints, counts, licence, and pricing. Each clause adds distinct information and there is no redundant filler.

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 an output schema present and a single required parameter fully documented, the description covers the selection criteria, data scope, privacy behavior, licensing, and payment mechanism. Nothing an agent needs to invoke this tool correctly is missing.

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 100% coverage: company_number has format, pattern, and examples; api_key and x_payment explain their purpose and precedence. The description adds no parameter-level detail beyond what the schema already gives, so the baseline 3 applies.

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 names a specific verb+resource ('get' UK company officers/directors) and gives the authoritative source, Companies House, which separates it from officer tools for Denmark/Latvia. It also enumerates the returned categories (directors/secretaries, role, appointment date, nationality, occupation, country of residence, birth month/year), so an agent knows exactly what the tool offers.

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 UK/Companies House framing gives clear context for when to call this tool, and the enumerated officer fields make the use case obvious. It doesn't name sibling alternatives (e.g., get_uk_beneficial_owners) or state when not to use it, so it stops short of an explicit routing rule.

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

list_belgian_company_filingsA
Read-only
Inspect

Belgian company annual accounts — list every published deposit of a Belgian company at the NBB CBSO (Central Balance Sheet Office, Authentic Data): deposit references with filing metadata as published. Unique on x402: no other service exposes Belgian filed accounts. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes10-digit Belgian enterprise number (KBO/BCE), e.g. 0403170701
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already mark readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuinely useful behavior beyond annotations: it is paid via x402 at a fixed cost, and returns data 'as published' from the authentic NBB source. No contradiction with annotations.

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?

Two dense sentences front-load the core function in the first clause and the payment/uniqueness context in the second. Every clause earns its place; there is no filler despite some nested parentheticals.

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?

With a readable output schema, full parameter coverage, and readOnly/openWorld annotations, the description only needs to cover selection and payment context, which it does. It does not explain pagination or return ordering, but the output schema and openWorld hint cover enough for correct invocation.

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 documents all three parameters with 100% coverage, including the id pattern and example, and clear api_key/x_payment semantics. The description adds only the payment context already mirrored in the schema, so no extra parameter meaning is contributed beyond the schema baseline.

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 (list), a concrete resource (every published deposit of a Belgian company at the NBB CBSO), and what is returned (deposit references with filing metadata). The 'list every published deposit' framing sets it apart from the singular get_belgian_company_filing sibling and other country-specific list_* filings tools.

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 establishes a clear context: use it to retrieve the full set of filings for a Belgian company, and notes uniqueness on x402 ('no other service exposes Belgian filed accounts'). It does not explicitly say when to use get_belgian_company_filing instead, so it stops short of full when/when-not guidance.

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

list_danish_company_filingsA
Read-only
Inspect

Danish company annual accounts — list the fiscal years of a Danish company whose XBRL annual report (Erhvervsstyrelsen, virk.dk publication index) has been decoded: closing dates, period, entity name, currency. Danish-taxonomy (fsa) filings only — IFRS/ESEF-only groups are not decoded, an empty answer does not mean no accounts exist. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes8-digit Danish CVR number, e.g. 41235292
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds value by concretely explaining the open-world behavior ('an empty answer does not mean no accounts exist'), the taxonomy limitation (fsa vs IFRS/ESEF), and the payment mechanism (x402, $0.01). No contradiction with annotations.

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?

Three sentences, each earning its place: the first states purpose and returns, the second states scope limitations, the third states payment. The core purpose is front-loaded and no information is wasted.

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?

With an output schema present and full parameter descriptions in the schema, the description adequately covers the unusual behaviors: taxonomy decoding limits, open-world empty results, and x402 payment. Details like pagination or rate limits are absent, but the essential decision-making context is complete for a listing tool.

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 coverage is 100%, with each parameter (id, api_key, x_payment) already fully described. The description adds no parameter-specific details beyond what the schema provides, so the baseline of 3 applies.

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 states a specific verb ('list') and resource ('fiscal years of a Danish company whose XBRL annual report has been decoded'), then lists the returned elements (closing dates, period, entity name, currency). It clearly distinguishes itself from siblings like get_danish_company_filing and other list_* filings through the Danish-taxonomy constraint.

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?

It provides clear context on scope: Danish-taxonomy (fsa) filings only, with IFRS/ESEF-only groups explicitly excluded, and the open-world warning that an empty answer does not mean no accounts exist. It doesn't explicitly name sibling alternatives like get_danish_company_filing, but the exclusions effectively guide when to trust the result.

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

list_finnish_company_filingsA
Read-only
Inspect

Finnish company annual accounts — list the fiscal years a Finnish company has filed in XBRL with the PRH (Finnish Patent and Registration Office, CC BY 4.0). Only ~5% of Finnish limited companies file digitally — an empty answer does not mean no accounts exist. Empty filings are filtered out: every listed year carries figures. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesFinnish Business ID (Y-tunnus), NNNNNNN-N, e.g. 0103396-3
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Adds substantial behavioral context beyond the readOnlyHint and openWorldHint annotations: the ~5% digital filing rate giving the empty-result caveat real teeth, the filtering guarantee ('every listed year carries figures'), and the exact cost model ($0.01 via x402). These are non-obvious traits an agent could not infer from schema or annotations.

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?

Three dense sentences, front-loaded with the core function first, followed by the coverage caveat, filtering behavior, and cost. Every clause earns its place; there is no boilerplate or repetition of schema content.

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 simple list tool with an output schema, annotations, and full param schema coverage, the description is nearly complete: it covers the surprising coverage gap, the filtering guarantee, and the payment mechanics. Minor omissions are non-critical (no pagination or rate-limit note), and the output schema presumably covers the return shape.

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 fully documents id, api_key, and x_payment. The description adds only price context ($0.01 in USDC or EURC) and an output expectation (years with figures), which is marginal. Baseline 3 is appropriate since the schema carries the parameter documentation burden.

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 states a specific verb and resource: 'list the fiscal years a Finnish company has filed in XBRL with the PRH'. It is immediately distinguishable from siblings by data source (PRH, XBRL), country scope (Finnish), and granularity (fiscal years listed vs. a single filing in get_finnish_company_filing).

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 gives clear scope context ('Finnish company annual accounts', 'XBRL') and a crucial usage caveat (empty answer does not mean no accounts exist). However, it never explicitly names alternatives among the ~70 siblings — e.g., it does not say 'to retrieve a single filing use get_finnish_company_filing' — so routing relies on name inference rather than explicit guidance.

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

list_french_company_documentsA
Read-only
Inspect

List official documents filed by a French company at the INPI RNE registry: legal deeds (statutes, general-meeting minutes, mergers...) and filed annual accounts, with document IDs to download the PDFs. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

The annotations already mark the tool as read-only and open-world, so no contradiction exists. The description adds meaningful behavioral context by disclosing the x402 payment requirement and $0.02 cost, plus the registry source (INPI RNE), which are not present in the annotations or schema.

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?

Two sentences cover the resource, document types, deliverable (document IDs), and pricing with no filler. The most important information is front-loaded, making it efficient for an agent to parse.

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?

Given the output schema exists and annotations cover read-only safety, the description is sufficiently complete. It identifies what is listed, where the documents come from, what the tool returns (IDs for PDF downloads), and the payment cost/method.

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 parameters are already fully documented in the schema. The tool description does not elaborate on siren, api_key, or x_payment, but it does not need to since the schema descriptions are complete.

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 states a specific verb ('List'), a precise resource ('official documents filed by a French company at the INPI RNE registry'), and enumerates document types (legal deeds, annual accounts). It also mentions document IDs for PDF downloads, which clearly distinguishes it from sibling tools like get_french_company_file and download_french_company_document.

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 implies its usage as a listing step for later PDF downloads, but it never explicitly names an alternative tool or states when not to use it. It provides context for what it returns but lacks direct routing guidance such as 'use download_french_company_document to fetch the PDFs'.

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

list_french_company_establishmentsA
Read-only
Inspect

List all establishments (SIRET) of a French company — branches and addresses with open/closed status, from the official French company registry. Paid via x402 ($0.003 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

The read-only annotation is consistent with 'List'. The description adds useful behavioral context beyond annotations: it names the official French company registry as the data source, states that the tool is paid via x402 with a specific price, and specifies the output includes status information. This gives the agent practical expectations about cost and data origin.

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 a single, information-dense sentence that front-loads the core action and object. Every clause adds value: scope, output content, data source, and payment terms. There is no filler or repetition.

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?

Given the low parameter complexity, a full input schema, and an output schema, the description is complete enough for selection and invocation. It covers what the tool does, what data it returns, where the data comes from, and the cost/payment requirement. No critical operational detail is missing.

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 baseline is 3. The description confirms that siren refers to a French company and that the result involves SIRET establishments, but it does not add significant parameter-level detail beyond what the schema already documents for api_key and x_payment.

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 uses a specific verb ('List') and resource ('establishments (SIRET) of a French company'), and clarifies what is included: branches, addresses, and open/closed status. It clearly differentiates this from sibling tools like get_french_company_profile or list_french_company_documents by naming the exact output scope.

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 clearly states when to use the tool: when you need all SIRET establishments of a French company. It does not explicitly name alternatives or exclusions, but the context is unambiguous enough for an agent to select it correctly among many related French-company tools.

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

list_slovak_company_filingsA
Read-only
Inspect

Slovak company annual accounts — list the fiscal years of a Slovak company whose STRUCTURED financial statements have been decoded from the official Register účtovných závierok (RÚZ, registeruz.sk, Ministry of Finance, CC0): closing date, period, filing type (ordinary/extraordinary), form model, statutory vs consolidated scope, and the official document link. Filings served as PDF only — which includes every IFRS group — carry no structured data and are absent: an empty answer does not mean no accounts exist. Sole traders are not served (GDPR minimisation). Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
icoYes8-digit Slovak IČO, e.g. 36417475
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnly and openWorld annotations, it discloses that an empty answer does not mean no accounts exist, explains why (PDF-only filings skipped), notes GDPR-based exclusion of sole traders, and reveals x402 payment cost. These are meaningful behavioral details an agent needs before calling.

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 every clause earns its place: scope, output fields, absence semantics, exclusions, and cost. The important caveats are placed early and the text avoids fluff.

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?

Given the output schema, annotations, and high schema description coverage, this is complete: source, content, exclusions, payment, and empty-result semantics are all present. Nothing critical for selecting or invoking the tool is missing.

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 schema already documents all three parameters with 100% coverage, including the ico pattern and x_payment/api_key behavior. The description adds only payment context, which is helpful but does not need to repeat parameter-level detail.

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 action, 'list', with a precise resource: fiscal years of a Slovak company whose structured financial statements were decoded from RÚZ. It enumerates the attributes returned, making the scope unmistakable and distinguishing it from singular filing tools like get_slovak_company_filing.

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 conditions for use: structured filings only, with explicit exclusions for PDF-only filings, IFRS groups, and sole traders. It does not name an alternative tool, so the routing guidance is strong but not fully explicit.

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

list_uk_company_accountsA
Read-only
Inspect

UK company annual accounts — list the financial years of a UK company whose iXBRL accounts (Companies House Accounts Data Product, Open Government Licence v3.0) have been decoded: balance-sheet dates, period, entity name, currency, accounting framework (micro-entity, FRS 102...) and accounts type. Electronically filed accounts only (~75% of UK filings) and depth accumulated since 2026-07 — an empty answer does not mean no accounts exist. Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
company_numberYesCompanies House company number, 8 characters incl. leading zeros, e.g. 00095407 or SC123456

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description adds valuable behavioral context: only electronically filed accounts are included (~75% of filings), data depth starts in 2026-07, an empty result should not be interpreted as no accounts existing, and calls are paid via x402 at $0.01. These are meaningful operational disclosures that help an agent set expectations properly.

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 three sentences with no filler: the first states purpose and output fields, the second covers coverage limitations, and the third covers cost. Every sentence contributes distinct, decision-relevant information, and the core purpose is front-loaded.

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?

Given the output schema exists and the input schema is fully documented, the description covers the remaining necessary context: source data product, license, jurisdiction, data fields, filing-type limitations, temporal depth, empty-result semantics, and payment mechanism. Nothing critical for correct invocation is missing.

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%, with both api_key and company_number already described in the schema, so the description does not need to explain parameter semantics. The tool description adds no parameter-level detail, but the schema carries the burden adequately, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action and resource: listing the financial years of a UK company's decoded iXBRL accounts, and enumerates the returned fields. It does not explicitly differentiate itself from siblings such as get_uk_company_accounts, though the 'list' framing and focus on decoded account years make the scope fairly unambiguous.

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 gives useful context about when the tool is relevant—when you need account years and metadata for a UK company with electronically filed iXBRL accounts—and even provides exclusions like electronic-only filings and coverage depth. However, it never names alternatives or says explicitly when to prefer a sibling tool over this one, leaving the agent to infer the comparison.

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

prepare_european_invoice_fileA
Read-only
Inspect

Use when the company you are about to invoice or pay is BELGIAN or POLISH and you must verify the supplier before payment (for France, use prepare_french_invoice_file). ONE call returns official registry identity, the VAT number checked against VIES, Peppol reachability for Belgium — whose structured B2B e-invoicing mandate has been in force since 1 January 2026 — and, uniquely in Poland, whether the IBAN is actually DECLARED by that taxpayer in the official White List (wykaz podatnikow VAT). The Polish check has FISCAL scope: paying more than 15,000 PLN into an undeclared account costs the buyer the deduction and creates joint liability for the supplier's VAT (art. 117ba Ordynacja podatkowa), so an undeclared account is a blocking reason. Everywhere else the bank leg is a FORM check (ISO 13616 structure + mod-97 key) plus bank identification — never a payee verification: with an iban supplied, verdict.non_verifie sits next to the verdict and names what is not checked (account existence, holder name), and the White List itself proves the account is DECLARED by that taxpayer, never who holds it. Returns a deterministic pret_a_facturer verdict with closed-list reasons, each tagged blocking or informational. The response is Ed25519-signed and carries provenance[] — one entry per block served, with the official register, its licence and its as_of date, the White List entry carrying the date actually sent to the ministry's API — so the payment decision is provable to an auditor offline. Paid via x402 ($0.03 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBelgian enterprise number (10 digits, KBO/BCE) or Polish NIP (10 digits); dots, spaces and dashes are tolerated
ibanNoIBAN of the account you are about to pay, unpunctuated (spaces tolerated) — optional, but it is what unlocks the Polish White List account check, and everywhere the structure check plus bank identification
paysYesCountry of the counterparty: BE (Belgium) or PL (Poland). For France use prepare_french_invoice_file.
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

The description goes far beyond the readOnlyHint/openWorldHint annotations. It discloses that the bank-leg check is only a form check, not a payee verification, explains the Polish White List's fiscal consequences, clarifies that an undeclared account is a blocking reason, and documents the signed response with provenance. It also exposes the payment model and credit-error behavior. This is exceptional transparency for a tool with this compliance sensitivity.

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 dense and long, but virtually every sentence carries operational or compliance information an agent needs—legal thresholds, blocking vs informational reasons, provenance, and cost. It could be broken into clearer sections, but it is not padded. The key use-case is front-loaded, which aids selection.

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?

Given the tool's regulatory complexity, the description covers the invocation context, country scope, legal consequences, the exact nature of each check, the output's signed/provenance characteristics, and the payment method. An output schema exists and the description correctly focuses on behavior beyond return types. Nothing critical is missing for an agent to invoke it safely.

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?

The input schema already has 100% description coverage, so the baseline is 3; the description adds meaningful semantics on top of that. It explains that the optional iban is what unlocks the Polish White List account check and that elsewhere it triggers only structure and bank identification. It also clarifies payment via x402 vs api_key behavior, though it doesn't deeply enrich every parameter.

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 states a specific verb (prepare/verify) and resource (Belgian/Polish supplier invoice payment verification), and immediately differentiates itself from prepare_french_invoice_file. It also names the key outputs—registry identity, VIES check, Peppol reachability, Polish White List check, and a deterministic verdict—so an agent can tell what this tool does at a glance.

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 opens with 'Use when the company you are about to invoice or pay is BELGIAN or POLISH and you must verify the supplier before payment', an explicit trigger condition. It also gives a direct alternative: 'for France, use prepare_french_invoice_file', and the schema enum restricts pays to BE/PL. This gives the agent clear when-to-use and when-not-to-use guidance.

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

prepare_french_einvoicing_recipientA
Read-only
Inspect

Use when you need to PREPARE a compliant French e-invoice for a company (invoice header, VAT number, addressing) rather than decide whether paying it is safe — for the full verify-the-supplier-before-payment verdict, IBAN included, call prepare_french_invoice_file. The French e-invoicing mandate applies from 1 September 2026: receiving becomes obligatory for every VAT-liable company on that date, issuing is phased (large and mid-sized companies 1 September 2026, SMEs and micro-enterprises 1 September 2027; art. 91 of the 2024 Finance Act). Returns legal name & form, active/ceased status, computed intra-EU VAT number (+ VIES-check pointer), establishments (SIRET) with addresses, NAF code and indicative send/receive obligation dates from the INSEE size category. The response is Ed25519-signed and carries provenance[] — one entry per block served, with the official register, its licence and its as_of date — so the preparation is auditable offline. Preparation only — Sirenic is not an accredited platform (PDP), does not access the central directory and never issues, transmits or routes invoices, nor confirms PPF/PDP registration. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sirenYes9-digit SIREN of the company to be invoiced (digits only, no spaces); use search_french_companies first if you only have a name
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations only say readOnly and openWorld; the description adds substantial non-obvious behavior: Ed25519-signed responses, provenance[] entries, no accredited-PDP status, no invoice issuance/transmission/routing, and x402 payment. These go well beyond what annotations convey.

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 front-loaded with purpose and every sentence provides useful information, but it is a long single dense paragraph combining legal dates, return fields, signing, limitations, and pricing. It could be structured more lightly for faster agent parsing.

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 one required parameter and an output schema, the description covers selection criteria, returned content, authentication/payment paths, legal mandate dates, auditability, and hard limitations. Nothing material is missing for correct invocation.

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 coverage is 100% and already documents siren, api_key, and x_payment including precedence rules and credit-error behavior. Description adds contextual return-value detail but no additional parameter-level semantics, so the schema carries the burden and baseline 3 applies.

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?

Description opens with a specific verb and object: PREPARE a compliant French e-invoice for a company, and scopes the work to invoice header, VAT number, and addressing. It explicitly distinguishes itself from prepare_french_invoice_file, making its purpose and boundary unmistakable.

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?

It says exactly when to use the tool ('when you need to PREPARE...') and when not to: for the full verify-the-supplier-before-payment verdict, call prepare_french_invoice_file. It also adds regulatory timeline context and states preparation-only limitations, so an agent can route correctly.

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

prepare_french_invoice_fileA
Read-only
Inspect

Use when you are about to invoice or pay a FRENCH company and must verify the supplier before payment: onboarding, first invoice, first payment, or bank details that just changed. The French e-invoicing mandate applies from 1 September 2026 (receiving obligatory for every VAT-liable company; issuing phased: large and mid-sized companies 1 September 2026, SMEs and micro-enterprises 1 September 2027), so every French counterparty has to be checked. ONE call returns the whole agent-side file: legal identity & obligation dates, the computed intra-EU VAT number verified LIVE against VIES, an IBAN FORM check (ISO 13616 structure + mod-97 key) with the bank identified from official registries when iban is supplied, and a deterministic verdict pret_a_facturer (true/false) whose reasons come from a CLOSED list, each tagged blocking or informational and traced to its source. A VIES outage yields an honest informational reason, never a false invalid. Not a payee verification, and the verdict says so where the decision is read: with an iban supplied, verdict.non_verifie sits NEXT TO pret_a_facturer and names what is never checked — the account's existence and the holder's name. An IBAN on a published list of known documentation samples is flagged by the informational reason iban_exemple_documentation, whose absence is not proof of the contrary (the verdict stays green: such an IBAN is well-formed; the account's existence is not tested). The response is Ed25519-signed and carries provenance[] — one entry per block served, with the official register, its licence and its as_of date — so the decision stays auditable offline months later. Paid via x402 ($0.03 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
ibanNoIBAN of the account you are about to pay (spaces and dashes tolerated). Supplying it adds the structure check and the bank identification, and lets the verdict block on iban_invalide; omitting it yields the informational reason iban_non_fourni
sirenYes9-digit SIREN of the French counterparty being checked — the customer you will invoice or the supplier you will pay (digits only, no spaces)
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Even with readOnlyHint and openWorldHint annotations, the description adds substantial behavioral context: VIES outage yields an informational reason, never a false invalid; the verdict comes from a closed list with tagged blocking/informational reasons; the response is Ed25519-signed with provenance; and the account existence/holder name are explicitly not checked. This goes far beyond the annotations and gives an agent a realistic expectation of edge cases.

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 long but densely informative, with the primary use case and trigger conditions front-loaded. Every sentence carries operational content, though the e-invoicing mandate dates and provenance details could be trimmed without losing the tool-selection value.

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 complex financial-compliance tool with an output schema and annotations, the description is remarkably complete: it covers use cases, exclusions, payment method, parameter-dependent behavior, edge cases, and auditability. Since an output schema exists, the description does not need to explain return fields, and it does not.

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 100%, so the baseline is 3, but the description adds meaningful dynamics: supplying iban triggers the structure check and bank identication and can block on iban_invalide; omitting iban yields a specific informational reason. It also explains the api_key vs x_payment interplay and the credits error scenario, which the schema alone does not convey.

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 verb and resource: prepare a French invoice file that verifies a French counterparty before invoicing or payment. It lists the specific outputs—legal identity, VAT verification, IBAN check, and a verdict—and distinguishes itself from narrower verifications by calling itself the 'whole agent-side file' and explicitly saying it is 'not a payee verification'.

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 opening line gives explicit trigger conditions: about to invoice or pay a French company and must verify the supplier, with concrete scenarios (onboarding, first invoice, first payment, changed bank details). It also states an exclusion ('not a payee verification') and frames the e-invoicing mandate as a reason to use it. However, it never names a specific sibling tool as the alternative for payee verification, so the guidance stops short of full routing.

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

prospect_french_companiesA
Read-only
Inspect

French B2B prospecting and lead generation — build company lists over the full French registry (29.8M companies): filter by NAF activity code, departement/postal code, legal form, workforce, age, RGE certification, gender-equality index. Returns up to 100 active companies per page; each page is one x402 payment ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
nafNoNAF/APE code or prefix, e.g. 62 or 62.01Z
rgeNotrue = active RGE environmental certification
pageNoPage number (one payment per page)
age_maxNoMaximum company age in years
age_minNoMinimum company age in years
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
egapro_minNoMinimum gender-equality index (0-100)
code_postalNoPostal-code prefix (2-5 digits), exclusive with departement
departementNoFrench departement: 75, 2A, 971…
effectif_maxNoMaximum workforce (number of employees)
effectif_minNoMinimum workforce (number of employees)
forme_juridiqueNoINSEE legal-category prefix, e.g. 54

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

The description discloses important behavior beyond the readOnlyHint/openWorldHint annotations: per-page payment, result limits, and the 'active companies' filter. The statement 'each page is one x402 payment ($0.02 in USDC or EURC)' alerts the agent to a financial side effect that annotations alone would not convey. No contradiction with annotations.

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?

Two sentences deliver a high density of useful information: the first covers purpose and filter dimensions, the second covers result size and payment. No filler or redundancy.

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 paid prospecting tool with 13 optional parameters and an output schema, the description covers the essential operational facts: registry scope, filter options, return limit, and pricing per page. It could be slightly stronger by explicitly addressing the no-payment quote flow or differentiating from search_french_companies, but most remaining details live in the schema and 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 schema already provides descriptions for all 13 parameters, so the parameter documentation burden is handled. The description only groups parameters into broad categories like NAF, departement/postal code, legal form, workforce, age, and RGE certification, without adding new syntax, defaults, or interaction details. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'build company lists over the full French registry (29.8M companies)' with identifiable filter categories. The B2B prospecting/lead generation framing gives it a distinct purpose, though it does not explicitly differentiate it from the similar sibling search_french_companies.

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?

It provides a clear use case: French B2B prospecting and lead generation via registry-wide company list building. It does not mention alternatives or explicitly state when not to use this tool, so it stops short of full guidance, but the intended context is clear.

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

renew_surveillance_watchAInspect

Renew a watchlist for 30, 90 or 365 more days (possible until 7 days after expiry). The duration is a FREE choice: it need not match the original one, so a 30-day watch can be extended by a full year. The cibles parameter must repeat the exact watched targets — the quote is computed from it. The extension starts from the current expiry date and cannot push it beyond 400 days from now. Paid via x402, per target: $0.05 for 30 days, $0.135 for 90 days, $0.50 for 365 days. A full-size request quotes up to $50.00, above the $1.00 single-payment cap that x402 clients apply BY DEFAULT since @x402/core 2.23 (spendControls): raise spendControls.maxAmountPerPayment, or set spendControls: false, before signing — otherwise your own client rejects the quote without ever calling us.

ParametersJSON Schema
NameRequiredDescriptionDefault
dureeNoExtension in days (default 30), independent of the original duration. Unit price per target: 30 = $0.05, 90 = $0.135, 365 = $0.50.
ciblesYesThe exact watched targets
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
surveillance_idYesWatchlist capability token returned at creation (sw_…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

The description goes far beyond the annotations by disclosing critical behavioral details: cibles must exactly repeat the watched targets because the quote depends on them, the new expiry cannot exceed 400 days from now, and x402 clients since @x402/core 2.23 may reject quotes above $1.00 unless spendControls.maxAmountPerPayment is raised. It also explains the api_key fallback and its failure mode. No annotation is contradicted.

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 long and dense, but nearly every sentence carries essential operational information: eligibility window, free duration choice, cap behavior, pricing, and the x402 client pitfall. The most important usage constraints are front-loaded. It loses a point only because the wall of text would benefit from clearer visual separation of the payment warning.

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 an output schema present and 100% schema description coverage, the description still adds critical missing context: payment quoting behavior, spendControls requirements, the 400-day cap, the post-expiry grace window, and the prepaid api_key alternative. An agent has everything needed to invoke this tool correctly under both payment paths.

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 documents every parameter. The description adds useful emphasis on cibles exactness and the duree price table, but these facts are largely already encoded in the schema's parameter descriptions, so the incremental semantic value is limited.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Renew a watchlist for 30, 90 or 365 more days'. It clearly frames the action as extending an existing surveillance watch, which distinguishes it from sibling tools like create_surveillance_watch, get_surveillance_watch, and stop_surveillance_watch even though it never names them.

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 gives clear context on when the tool applies: renewal is possible until 7 days after expiry, the extension duration is independent of the original watch, and the extension starts from the current expiry date. It does not explicitly say 'do not use this to create a new watch', but the operational constraints imply it clearly enough.

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

screen_sanctions_listsA
Read-only
Inspect

Use BEFORE any payment, contract or onboarding involving the name. AML sanctions screening of a person or company name against 6 official sanctions lists (UN consolidated, EU FSF, US OFAC SDN, UK Sanctions List, French asset-freeze register, Swiss SECO list). Returns fuzzy matches with a 0-100 confidence score — never a bare yes/no. Each list is reported with its entry count, its publication date and what that date means (official upstream publication vs. Sirenic ingestion — OFAC publishes none). Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPerson or company name to screen
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
birth_yearNoOptional birth year (YYYY) to refine person matches

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses important behavior: results are fuzzy matches with a 0-100 confidence score, never a bare yes/no; each list reports entry count and publication date semantics including the OFAC caveat; and payment is by x402 at a fixed cost. This is substantial added context.

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?

Five sentences, each carrying necessary information: when to use, what it screens, how results are expressed, what list metadata is returned, and how payment works. The content is front-loaded with the usage instruction and contains no filler.

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?

Between the description and the fully documented schema, an agent knows when to use it, what it queries, what the response semantics are, how payment works, and that it is a read-only operation. The presence of an output schema also makes it unnecessary to enumerate return fields.

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 documents all four parameters. The description adds no parameter-specific meaning beyond framing the tool around a name and optional birth year, so the baseline 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 states a specific action ('screening') on a specific resource ('6 official sanctions lists') and enumerates the exact lists covered. This clearly distinguishes it from sibling tools focused on company filings, financials, or legal alerts.

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 explicitly says to use it BEFORE any payment, contract, or onboarding, which gives a clear trigger condition. It does not explicitly name sibling alternatives or exclusion cases, but the strong when-to-use instruction makes the usage context unambiguous.

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

search_bodacc_announcementsA
Read-only
Inspect

Search French BODACC legal announcements by CRITERIA instead of by company — the monitoring question no other Sirenic tool answers: WHICH companies entered insolvency proceedings in department 59 this week? Pick a family (collective/insolvency proceedings, deregistrations, sales and transfers, incorporations, accounts filings, conciliation, professional recovery, modifications, registrations, miscellaneous), a date window (depuis, optional jusqu_a) and optionally a French department code. Returns up to 100 announcements, newest first, each with SIREN, court, town, department and a STRUCTURED judgment (nature, date, family), plus tronque when there were more. The judgment's operative FREE TEXT is deliberately removed everywhere — it names court-appointed administrators with their address — so facts living only in that text (the date of cessation of payments, for one) are NOT here: follow url_bodacc, or get_french_company_alerts for a single company. Announcements about SOLE TRADERS are deliberately EXCLUDED (their name is personal data) and their count is returned in exclues_personnes_physiques, and records whose person type was unreadable are counted apart in exclues_type_indetermine (fail-closed guard). An announcement is not a verdict: the insolvency family also contains closures and cancellations — read the CURRENT state with get_french_company_alerts or get_french_company_failure_score. Paid via x402 ($0.03 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
depuisYesStart of the publication window, YYYY-MM-DD, e.g. 2026-08-04
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
familleYesFamily code (upstream BODACC codes): dpc (accounts filings, the largest family), modification, creation, radiation, collective (insolvency proceedings), vente, immatriculation, divers, conciliation, retablissement_professionnel
jusqu_aNoOptional end of the window, YYYY-MM-DD
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
departementNoOptional French department code: 01-95 except 20, 2A, 2B, 971-978 (e.g. 59 for Nord)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations only provide readOnlyHint and openWorldHint, so the description carries the behavioral burden. It discloses the 100-result cap, newest-first ordering, structured judgment fields, tronque overflow flag, deliberate removal of free text, exclusion of sole traders, fail-closed counting of unreadable person types, and the x402 payment requirement. These traits go far beyond what annotations imply and contain no contradiction.

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 long but every sentence carries operational weight: purpose, use-case, parameter behavior, return shape, exclusions, follow-up guidance, and cost. It is front-loaded with the main action and the distinguishing monitoring question, and it avoids filler or tautology.

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?

Given the tool's complexity — six parameters, payment mechanics, output schema, and multiple caveats — the description is remarkably complete. It covers what the tool returns, what is deliberately missing, how exclusions are surfaced, what follow-up tools to use, and how payment works. An agent should be able to decide when to call it and interpret its results confidently.

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 100%, so the schema already documents all six parameters and the baseline is 3. The description adds value by translating family codes into business-language meanings and by explaining how parameters combine to answer the monitoring question, plus the payment/credits context. This is meaningful enrichment but not full compensation because the schema already does substantial work.

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 names the specific verb and resource: search French BODACC legal announcements by criteria, and explicitly contrasts this with by-company search. The concrete monitoring example — which companies entered insolvency proceedings in department 59 this week — makes the purpose immediately understandable and distinguishes the tool from the many company-focused siblings.

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 provides explicit when-to-use guidance with the criteria-based monitoring question, and routes to alternatives: follow url_bodacc or use get_french_company_alerts for a single company, and use get_french_company_alerts or get_french_company_failure_score for current state. It also explains important exclusions and why the results are not a verdict.

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

search_eu_financial_authorisationsA
Read-only
Inspect

Search EU financial authorisations in ESMA Registers: ~14,000 MiFID-regulated entities across all EU/EEA countries (investment firms, UCITS/AIFM managers) by name or LEI — authorisation status, home and host member states, competent authority, dates. Use to verify that a financial firm is actually regulated somewhere in the EU. Data freely available at the source (ESMA). Paid via x402 ($0.01 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesEntity name or 20-character LEI
paysNoOptional ISO-3166 alpha-2 home-member-state filter (FR, DE...)
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already provide readOnlyHint=true and openWorldHint=true. The description adds useful behavioral context: data source (ESMA), approximate dataset size, scope, and the payment model via x402 with a stated cost. This goes beyond the annotations without contradicting them.

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 front-loaded with the core action and resource, and every clause adds value: dataset scope, searchable fields, use case, data openness, and payment model. No filler or redundant restatement of the tool name.

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?

With an output schema present, the description need not enumerate return fields, yet it still lists key result attributes. It covers the unusual payment path and the verification use case, making the tool effectively invocable. Slight gap: it doesn't explicitly state that omitting x_payment returns a quote, but the schema already covers that.

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 documents all four parameters. The description adds no additional parameter-level detail beyond echoing 'by name or LEI', which the schema already states. Baseline 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 states a specific verb and resource: 'Search EU financial authorisations in ESMA Registers', and further specifies the domain (~14,000 MiFID-regulated entities) and scope (all EU/EEA countries). This clearly differentiates it from generic company search siblings like search_european_companies.

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 explicitly states its intended use: 'Use to verify that a financial firm is actually regulated somewhere in the EU.' It does not name sibling alternatives or exclusion conditions, but the use case is clear and specific enough for an agent to select it against the other search tools.

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

search_european_companiesA
Read-only
Inspect

European company search — company lookup by name across official European company registers in one unified schema (Norway, Estonia, Latvia, Spain — BORME base, hoja key — local; Czechia, Slovakia, Finland, Poland, Switzerland live; Denmark/UK when enabled; worldwide GLEIF/LEI coverage). Each match carries a score_confiance (0-1 match confidence). Spanish matches return the hoja registral to use with get_spanish_company_acts. Paid via x402 ($0.003 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesCompany name
paysNoOptional ISO-3166 alpha-2 country filter, e.g. NO, EE, LV
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, the description discloses a significant behavioral trait: the tool is paid via x402 at $0.003, with an api_key alternative. It also reveals per-match score_confiance semantics, live vs. base/local register status by country, and conditional availability for Denmark/UK. These are exactly the kind of non-obvious behaviors an agent needs before invoking the tool.

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 dense but front-loads the core purpose in the first clause. Country coverage and payment details are compressed into a long, somewhat parenthetical-heavy sentence, but every sentence earns its place. Slightly better structural separation of coverage vs. payment would improve it.

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?

The tool is moderately complex due to coverage nuances and payment requirements, but the description covers scope, country status variance, match scoring, downstream integration, and pricing. Since an output schema exists, return-value details do not need to be in the description. The agent has enough context to decide whether and how to invoke this tool.

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 documents q, pays, api_key, and x_payment thoroughly. The tool description mostly restates 'by name' and 'country filter' without adding meaning beyond the schema. Thus the 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 names a specific verb and resource: 'company lookup by name across official European company registers in one unified schema.' It further distinguishes scope by listing countries and world GLEIF/LEI coverage, and it explicitly ties Spanish matches to get_spanish_company_acts. This clearly differentiates it from sibling search tools like search_french_companies.

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 clearly implies when to use this tool: cross-border European company name lookup, especially when unified coverage or GLEIF/LEI data is needed. It even provides a downstream pointer for Spanish results ('hoja registral to use with get_spanish_company_acts'). However, it does not explicitly state when to prefer a sibling search tool or when not to use this one.

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

search_french_companiesA
Read-only
Inspect

Use FIRST whenever a French company is mentioned by NAME without an identifier. French company search and company lookup by name or SIREN in the official French company registry (INSEE Sirene / INPI RNE data). Returns the top 10 matches, each with a score_confiance (0-1 match confidence, helps pick among homonyms). etages_abandonnes is always present: an empty array means the top 10 is complete; a non-empty one (with resultats_partiels: true) means the local index was degraded and the real-time fallback failed, so the list is partial — retry in a few seconds. If aucune_correspondance_fiable is true, no result resembles the name you asked for (best confidence < 0.5): do NOT treat the top hit as the company — check the spelling or retry. Paid via x402 ($0.002 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesCompany name or 9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnly/openWorld annotations, the description exposes important behavior: 'Returns the top 10 matches,' confidence score semantics, the etages_abandonnes degraded-index failure mode, the meaning of aucune_correspondance_fiable, and the x402 payment requirement. This is substantial behavioral context that an agent needs to interpret results correctly.

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 every sentence earns its place: trigger condition, scope, result-count behavior, confidence scoring, degraded-index semantics, no-match handling, and payment. The most important routing information is front-loaded in the first sentence, with no filler or redundancy.

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?

Given that an output schema exists, the description provides everything an agent needs: when to call it, how to handle partial results, how to interpret no-match flags, and cost/payment expectations. It is fully adequate for correct selection and invocation, even within the large sibling-tool list.

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 baseline is 3. The description mostly restates what the schema already says for q ('Company name or 9-digit SIREN') and does not clarify parameter formats or edge cases beyond that. The payment model is mentioned, but param-level semantics are already fully documented in the schema.

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 precise trigger: 'Use FIRST whenever a French company is mentioned by NAME without an identifier' and then states the core function: 'French company search and company lookup by name or SIREN.' This clearly distinguishes it from profile/file/sibling search tools like get_french_company_profile or search_bodacc_announcements.

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 explicitly says when to use the tool ('Use FIRST whenever a French company is mentioned by NAME without an identifier') and even supplies handling instructions for poor matches ('check the spelling or retry'). It does not explicitly name alternatives or give when-not-to-use conditions, but the 'Use FIRST' directive is strong contextual guidance.

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

search_french_company_directorsA
Read-only
Inspect

Reverse search for company directors and officers in France — a people search by surname: list the French companies where a person of a given surname holds (or held) an office, with the company SIREN, name and the person's role — for due diligence and network mapping. Person data limited to surname, first names, role and birth year. Homonyms are not disambiguated; common names are capped. Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
nomYesDirector surname to search
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint, but the description adds substantial behavioral context beyond them: results are capped for common names, homonyms are not disambiguated, person data is limited to surname/first names/role/birth year, and payment is via x402 at a specific cost. No contradiction with annotations.

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?

Every sentence earns its place: purpose and output first, then limitations, then payment. It is information-dense without being verbose, and the most important scoping information is front-loaded.

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?

The description is complete for a read-only search tool: purpose, input semantics, known limitations, payment mechanism, and output fields are all covered. An output schema exists for return structure, and annotations cover the safety profile, so nothing critical is missing.

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 documents nom, api_key, and x_payment. The description clarifies the overall reverse-search semantics and result fields, but it does not add parameter-level meaning beyond what the schema already provides. Baseline 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 states a specific verb and resource: a reverse people search by surname that lists French companies where a person holds or held an office. It names the exact returned fields (company SIREN, name, role) and clearly distinguishes itself from forward company searches via the phrase 'Reverse search'.

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?

It gives explicit use context: 'for due diligence and network mapping'. It also warns about limitations ('Homonyms are not disambiguated; common names are capped'), which implicitly tells agents when results may be unreliable. However, it does not name an alternative tool or state explicit when-not-to-use conditions.

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

stop_surveillance_watchA
DestructiveIdempotent
Inspect

Stop a watchlist and purge its data immediately (free).

ParametersJSON Schema
NameRequiredDescriptionDefault
surveillance_idYesWatchlist capability token returned at creation (sw_…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

Annotations already indicate destructive and idempotent behavior. The description adds that data is purged, which is more specific than just 'stop', and notes immediacy and cost. It does not contradict any annotations.

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 a single, concise sentence that front-loads the action verb and avoids redundancy. Every word adds value—'stop', 'purge', 'immediately', and 'free' all contribute to the meaning.

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 simple tool with one parameter, a rich set of annotations, and an output schema, the description is sufficiently complete. It covers the core action and important behavioral traits without needing to explain return values or redundant details.

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 provides a complete description of the single parameter (surveillance_id), including its origin and format. The tool description does not add parameter-specific information, but with 100% schema coverage, this is acceptable.

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 action: stopping a watchlist and purging its data. It uses specific verbs ('stop', 'purge') and identifies the resource. It distinguishes itself from sibling tools like create, get, and renew by describing the terminal action.

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 provides clear context for when to use this tool—when you need to stop or terminate a watchlist. It does not explicitly mention alternatives or exclusions, but the action is unambiguous. The phrase 'immediately (free)' also conveys important usage conditions.

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

suggest_company_namesA
Read-only
Inspect

FREE. French company name autocomplete: type the beginning of a company name and get up to 5 matches with SIREN, city, postcode, NAF code and active/ceased status. Use it FIRST to turn a name into the SIREN that every other Sirenic tool takes as input — no account, no API key, no payment. Source: the official INSEE Sirene register (open data), companies and sole traders whose record is publicly diffusible. Matches the START of the name, then whole words; no typo tolerance and no match-confidence score — for those, plus the full profile, use search_french_companies ($0.002) and get_french_company_profile ($0.005).

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesStart of the company name (min 3 chars), or a 9-digit SIREN

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior4/5

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

The description discloses key behavioral traits beyond the readOnlyHint/openWorldHint annotations: it's free, sourced from the official INSEE Sirene register, matches the START of the name only, has no typo tolerance, and no match-confidence score. This adds meaningful context beyond what annotations declare.

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 front-loaded with the most critical info (FREE, purpose) and is concise. Each sentence adds value: free, autocomplete behavior, use case, source, matching rules, alternatives. Slightly dense but appropriately structured.

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?

Given the tool's simplicity (one parameter), presence of an output schema, and read-only annotations, the description covers all essential aspects: behavior, limitations, source, pricing, and alternatives. It's complete for an autocomplete tool with minimal complexity.

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

Parameters2/5

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

The schema already provides a 100% coverage description of the q parameter, including min/max length and the option to use a 9-digit SIREN. The description adds the free requirement and the matching behavior, which complements but doesn't significantly extend the schema semantics.

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: French company name autocomplete that returns up to 5 matches with SIREN and other key fields. It explicitly distinguishes itself from siblings like search_french_companies and get_french_company_profile by describing its specific use case and limitations.

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 says 'Use it FIRST' to convert a name into a SIREN, and names alternative tools for typo tolerance and full profiles. This provides clear guidance on when to use this tool versus alternatives.

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

validate_eu_vat_numberA
Read-only
Inspect

VAT number check against VIES — use when you only need the tax half of verifying a supplier before payment: confirm that a counterparty's intra-community VAT number really exists before invoicing it, applying the reverse charge or paying it. It is a required check under the French e-invoicing mandate of 1 September 2026 and under the Belgian B2B mandate in force since 1 January 2026. Validates any EU intra-community VAT number against the official VIES service (all member states) and returns valid / invalid / unavailable, the registered name and address when the member state publishes them, and the VIES consultation identifier as proof. A member-state outage is reported as unavailable, never as a false invalid. The response is Ed25519-signed and carries provenance[]: the VIES entry with the date the number was really consulted, never a fabricated one. Paid via x402 ($0.003 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.
vat_numberYesFull VAT number with its 2-letter country prefix and no spaces, e.g. FR27552032534

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses meaningful runtime behavior: outages return 'unavailable' rather than a false invalid, responses are Ed25519-signed with provenance showing a real consultation date, and payment is via x402 at a fixed cost. This gives agents accurate expectations not derivable from annotations alone.

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 front-loaded with the primary purpose and use case, then efficiently covers outage behavior, provenance, response signing, and cost. Each sentence contributes distinct information; there is no redundancy or filler.

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 output schema, full parameter documentation, and safety annotations, the description covers purpose, selection context, operational caveats, provenance guarantees, and payment implications. Nothing needed to call or interpret the tool correctly appears missing.

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 100% parameter coverage with detailed descriptions for vat_number, api_key, and x_payment. The tool description adds context about VIES and the use case, but not meaningfully new parameter-level semantics, so the baseline of 3 applies.

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 states a specific operation ('check', 'validates') against a specific resource (any EU intra-community VAT number via VIES) and clarifies the distinguishing scope: 'the tax half of verifying a supplier before payment.' This clearly separates it from sibling tools like verify_french_invoice or verify_iban_bank.

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?

It explicitly says when to use the tool: when confirming a counterparty's VAT number before invoicing, reverse charging, or paying. It also gives regulatory use cases. However, it does not name alternatives or explicitly say when not to use it, leaving some routing to inference.

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

verify_french_invoiceA
Read-only
Inspect

Invoice verification for France — use when you HOLD an invoice (or its extracted fields) and must check that the identifiers it displays belong together before paying it. Cross-checks in ONE call: the SIREN against the official registry (existence and active status, live), the VAT number printed on the invoice against the one computed from the SIREN (the French key is deterministic) AND live against VIES, and the IBAN's ISO 13616 form + key digits with the bank identified. Returns a deterministic verdict coherent/incoherent/inverifiable with closed-list reasons traced to their source — flags a VAT number that belongs to ANOTHER company, a ceased supplier, or a key-invalid IBAN. A VIES outage yields inverifiable, never a false invalid. NOT a payee verification: the bank leg checks form only — a valid-but-swapped IBAN is not detectable, and non_verifie says so next to the verdict. At least one of tva/iban is required (a SIREN alone is a profile, not a cross-check). Paid via x402 ($0.02 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
tvaNoVAT number printed on the invoice, e.g. FR27552032534 — cross-checked against the SIREN and live against VIES. At least one of tva/iban is required
ibanNoIBAN printed on the invoice (spaces tolerated) — form + key + bank identification, never a holder-name check. At least one of tva/iban is required
sirenYes9-digit SIREN printed on the invoice (digits only)
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Annotations only declare readOnly and openWorld, so the description carries the burden and delivers: live registry lookup, deterministic verdict with closed-list reasons, VIES outage mapped to inverifiable rather than false invalid, and the IBAN leg being form-only with a non_verifie marker. It also discloses the $0.02 x402 cost and credit-fallback behavior.

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?

Long but dense; the opening phrase states the tool's purpose, the middle enumerates checks and failure semantics, and the tail covers requirements and payment. No filler—every clause carries a constraint or limitation.

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 complex multi-registry verification tool, the description is complete: it covers required input combinations, deterministic output, failure modes, a known limitation, payment method, and cost. With an output schema present, it need not further detail the return shape.

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 100%, so the baseline is 3, but the description adds real value: it flags the tva/iban at-least-one precondition that the top-level required array hides, and it clarifies SIREN alone is a profile rather than a cross-check. It also adds payment cost and insufficient-balance behavior beyond the schema.

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 names a specific verb+resource ('verify French invoice') and immediately states the trigger scenario ('when you HOLD an invoice'). It distinguishes the tool from siblings by describing the one-call SIREN/VAT/IBAN cross-check and explicitly ruling out payee verification.

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?

States exactly when to use it: when holding an invoice and needing identifier consistency before payment. It also gives exclusions: not a payee verification, SIREN alone is not enough, and at least one of tva/iban is required. Sibling alternatives are not named, but the conditional scenario is clear enough to route an agent correctly.

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

verify_iban_bankA
Read-only
Inspect

IBAN verification and bank validation for SEPA — use when you are about to pay a NEW or CHANGED IBAN, or when onboarding a supplier's bank details, and want the cheapest check of the supplier before payment. Runs a FORM check on the IBAN (ISO 13616 structure + mod-97 key), identifies the bank from FREE official registers (France: name+LEI+SIREN via ACPR/REGAFI; Belgium, Austria, Netherlands: name+BIC; Germany when the Bundesbank file is loaded, incl. LEI where available; French banks get their BIC via the GLEIF/SWIFT BIC-to-LEI mapping). Explicitly NOT a payee verification — the account holder's name is never checked and the account's existence is not tested (verification_titulaire: non_disponible): a well-formed IBAN at an identified bank is no proof that the account belongs to your supplier. The answer says this in machine-readable form next to valide: nature_du_controle (forme | forme_et_registres), non_verifie [account existence, holder name] and exemple_de_documentation — true for IBANs on a published list of known documentation samples, which pass every check; the account's existence is not tested; false is not proof of the contrary. The response is Ed25519-signed and carries provenance[] — one entry per block served, naming the official register actually consulted, its licence and its as_of date. For the full invoicing verdict on a French counterparty, call prepare_french_invoice_file instead. Paid via x402 ($0.005 in USDC or EURC).

ParametersJSON Schema
NameRequiredDescriptionDefault
ibanYesIBAN of the account to check, any ISO 13616 country (spaces and dashes tolerated); bank identification is limited to the registers listed in the tool description
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free).
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.
Behavior5/5

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

Beyond the annotations (readOnlyHint, openWorldHint), the description richly discloses behavioral specifics: it runs a form check plus register lookups, which registers are consulted per country, that holder name and account existence are never verified, that responses are Ed25519-signed with provenance entries, and how payment works. No contradiction with annotations exists.

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 long but front-loaded with the core purpose and use case. Every major clause adds necessary behavioral or routing information—limitations, register coverage, provenance, payment, and alternates—so the length is justified, though it could be tightened without losing substance.

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?

Given the tool's complexity, the annotations, and the presence of an output schema, the description is comprehensively complete. It covers when to use, what is checked, what is explicitly not checked, country-specific register behavior, machine-readable result nuances, provenance, payment, and the appropriate sibling alternative. Little is left for an agent to infer.

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?

The schema already covers all three parameters at 100% coverage, so the baseline is 3. The description adds value by clarifying that bank identification is limited to the listed registers, and the schema itself adds behavioral nuance for api_key and x_payment, including the credits error case and signed-payment precedence. Together, the parameter semantics are well supported.

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 and resource: 'IBAN verification and bank validation for SEPA.' It clearly differentiates itself from sibling tools by stating it is explicitly NOT a payee verification and by naming prepare_french_invoice_file as the alternative for a full invoicing verdict.

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 gives explicit triggers: pay a NEW or CHANGED IBAN, or onboard a supplier's bank details. It also states what the tool is not for—account holder verification or account existence testing—and names the alternative for fuller checks, so an agent knows exactly when to choose it over siblings.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to search and retrieve detailed profiles of 25 million French companies from the official government registry, including directors, activity codes, and establishment data, without requiring an API key.
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides official French and European company data (INSEE Sirene, INPI RNE) for AI agents via pay-per-call USDC on Base, including search, profiles, KYB, sanctions screening, financials, and more.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources