Sirenic
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.
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.
Tool Definition Quality
Average 4.5/5 across 67 of 67 tools scored. Lowest: 3.9/5.
Some tools overlap in purpose, such as get_french_company_kyb_file vs get_french_company_intelligence, and multiple procurement/sanctions tools exist. However, the detailed descriptions clarify the specific use cases, so an agent can generally distinguish them with careful reading.
Tool names consistently follow a verb_noun snake_case pattern (e.g., get_french_company_profile, list_french_company_documents, search_european_companies). This predictable structure makes it easy to infer the action and target of each tool.
With 67 tools, this server vastly exceeds the typical MCP scope and even the 50+ extreme threshold. While the domain is broad, the sheer number makes the set unwieldy and likely to overwhelm agents, harming discoverability.
The toolset provides comprehensive coverage of European company due diligence: search, profiles, financials, officers, legal alerts, sanctions, procurement, licensing, documents, invoice prep, and surveillance watch CRUD. Gaps are rare and tied to source data limitations, not missing functionality.
Available Tools
68 toolscheck_french_regulator_alertsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| nom | No | Name to screen (site, brand, company) — required unless siren is given | |
| siren | No | 9-digit SIREN for PSAN/SGP register lookup — required unless nom is given | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint. The description adds value by stating the data is official AMF open data refreshed daily, and notably discloses the x402 payment requirement ($0.01 in USDC or EURC). This is beyond what annotations provide and reveals a non-obvious cost side effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences, front-loaded with the core purpose and then providing essential details (scope, use case, data source, refresh, payment). No filler words or redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a rich output schema, readOnly/openWorld annotations, and clear param descriptions, the description covers use case, data provenance, freshness, and payment. The conditional nom/siren requirement is already in the schema descriptions, so the tool is fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover all three parameters (100% coverage). The tool description explains how nom and siren fit the dual lookup purpose ('by name or SIREN') and mentions the x402 payment, linking to the x_payment parameter. This adds semantic context beyond the schema's field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs (screen, look up) and identifies exact resources (AMF blacklists, PSAN registrations, SGP licensed companies). It clearly distinguishes the tool from siblings like screen_sanctions_lists and search_eu_financial_authorisations by focusing on French AMF data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use-case context: 'Use before trusting an investment site, a crypto provider or an asset manager operating in France.' It does not explicitly compare against alternative tools or state when not to use, but the scenario is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_french_companiesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sirens | Yes | List of 2 to 5 nine-digit SIRENs | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses behavioral traits beyond the readOnlyHint and openWorldHint annotations: the comparability block that flags non-comparable companies, the deliberate refusal to return an overall winner, and the billing rule. These non-obvious behaviors are essential for correct interpretation of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four dense sentences, each earning its place: usage, output contents, critical caveat, and billing. It is front-loaded with the use case and contains no filler, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and annotations present, the description supplies the decision-relevant context (comparability, no overall winner, pricing) without restating structured data. It covers all necessary usage and behavioral nuances needed for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters (sirens array with pattern and min/max, x_payment header with omission meaning 'quote') at 100% coverage. The description adds only pricing detail, not parameter syntax or format, so it stays at the baseline for fully schema-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific use case ('compare, rank or choose between 2 to 5 French companies'), clearly distinguishing it from single-company sibling tools like get_french_company_profile. It explicitly names the returned artifacts (cross-table, per-axis rankings), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool ('Use when asked to compare, rank or choose') and provides critical usage warnings: it never returns an overall winner and highlights that a holding vs. industrial group comparison could be misread. This implicitly excludes single-company lookups and guides agents away from misuse.
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-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. No account. Paid via x402: $0.05 per target per 30 days (amount = unit price × number of targets).
| Name | Required | Description | Default |
|---|---|---|---|
| No | Optional e-mail address for digests | ||
| cibles | Yes | 1-100 comma-separated targets: 9-digit SIRENs and/or dirigeant:Name entries | |
| webhook | No | Optional public https URL for signed event batches | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses rich behavioral details: daily monitoring frequency, specific data sources (BODACC, AMF-blacklist, PSAN/SGP, etc.), delivery via signed webhook or email digest, pollability with bearer token, and pricing formula. This goes well beyond the annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint) and adds context about side effects, cost, and access model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Despite its length, every sentence contributes crucial information: purpose, use case, monitoring details, delivery, payment, and no-account model. It is front-loaded with the core action and usage context, and the structure is logical. No redundant fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's complexity: when to use, what targets are accepted, what monitoring entails, how results are delivered, cost, and authentication/payment mechanism. It leaves no major gaps, especially given the existing annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the x402 payment flow ('Omit to receive the payment quote'), the pricing formula ('$0.05 per target per 30 days'), and how cibles and webhook/email work together. This supplements the schema descriptions meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'create a 30-day watchlist over French companies and/or directors' — a specific verb and resource. It also distinguishes from sibling tools by framing it as ongoing monitoring for relationships that outlast a one-time check, which differentiates it from get/renew/stop surveillance tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is explicit: 'use when the relationship OUTLASTS the check (supplier, borrower, portfolio company)'. This defines when to use the tool but does not explicitly name alternatives or provide a 'when not to use' statement, though the implication is clear for one-off checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_company_identifiersARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| texte | Yes | Raw text to scan (max 10,000 chars) |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
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.
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.
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.
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.
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.
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_documentARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Document family from the list tool | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| document_id | Yes | Document `id` from list_french_company_documents |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=true. The description adds that the tool returns a PDF as base64, typical file size (1-10 MB), and the x402 payment mechanism. This provides useful behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the action and source, includes examples, file size, and payment note—all relevant. No redundant information, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters, no output schema, and medium complexity, the description adequately explains the return format (PDF as base64) and payment model. It could mention potential errors or more about the payment flow, but overall it's sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description reinforces the use of type and document_id from list_french_company_documents and clarifies that omitting x_payment yields a payment quote. This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool downloads an official company document (PDF) from the INPI RNE registry, lists example document types (statutes, minutes, accounts), and mentions using IDs from list_french_company_documents. This distinguishes it from sibling tools that list documents or retrieve other data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use IDs from list_french_company_documents, indicating a prerequisite. It also mentions the payment requirement (x402, $0.10). While it doesn't explicitly state when not to use the tool or list alternatives, the context is clear enough for an agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_belgian_company_filingARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 10-digit Belgian enterprise number (KBO/BCE) | |
| reference | Yes | Deposit reference, e.g. 2023-00123456 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint and openWorldHint annotations already signaling safety and open-world semantics, the description adds valuable behavior context: deposits are immutable, older filings return an official PDF base64, and payment is required via x402. This goes beyond the annotations and helps the agent understand side effects and data format. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the main purpose and then efficiently tucks in format details, reference source, immutability, and payment. Every clause carries essential information with no wasted words, making it highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description covers the key aspects: what data is returned, for which date range, and the reference source. It also discloses immutability and payment costs. It doesn't describe error cases or rate limits, but for a single-deposit fetch tool this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive text for all parameters, so the baseline is 3. The description further clarifies the 'reference' parameter by stating it comes from list_belgian_company_filings, and explains 'x_payment' in the context of 'Paid via x402'. This adds meaningful context beyond the raw schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a single Belgian annual-account deposit, distinguishing it from list_belgian_company_filings and other country-specific filing tools. It specifies the data source (NBB CBSO Authentic Data) and the output format by date (structured JSON for post-April 2022, PDF base64 for older). This is a specific verb+resource with clear scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Reference comes from list_belgian_company_filings,' establishing a clear prerequisite workflow. It also mentions the x402 payment requirement, which is essential usage context. However, it does not explicitly contrast this tool with sibling alternatives like get_danish_company_filing, though the reference to list_belgian_company_filings implies a typical flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_belgian_insider_transactionsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 10-digit Belgian enterprise number (KBO/BCE) | |
| depuis | No | Start date YYYY-MM-DD (default: rolling 12 months) | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations: data is aggregated at issuer level over rolling 12 months, individuals are never named, and breakdowns are withheld to prevent singling out. It also discloses the x402 payment requirement and cost, which annotations do not cover. No contradiction with readOnlyHint/openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose, followed by data scope, privacy behavior, use case, and pricing in four sentences. Every sentence carries distinct information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, the description covers return content (notification counts, gross amounts, net flow, breakdown), use case, privacy constraints, and payment. The tool's complexity is moderate, and the description is sufficient for an agent 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (id, depuis, x_payment all documented with descriptions). The description adds context for the 'depuis' default by mentioning 'rolling 12 months' and explains the payment parameter via 'Paid via x402 ($0.02 in USDC or EURC)', but does not substantially alter parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 issuer-level insider transaction data for Belgian listed companies under MAR Article 19, with specific outputs (notification counts, buy/sell amounts, net flow). It distinguishes itself from sibling tools like get_belgian_company_filing by its exclusive focus on insider transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use-case guidance: 'Use it as a governance signal before investing in or contracting with a listed Belgian company.' It does not explicitly name alternatives or when-not-to-use, but given the sibling list, no other tool covers insider transactions, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_licencesARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld annotations, the description discloses data freshness ('refreshed daily'), a pricing model ('$0.02 in USDC or EURC' via x402), and an important behavioral outcome ('Not authorised is an answer too'). No annotation contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the most important information. The first sentence packs a wealth of specific detail without fluff, and the second gives actionable usage and cost info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, description need not explain return values. It covers scope, sources, use cases, data freshness, and payment, making it complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well-documented. The description adds no additional semantic detail beyond what the schema provides, which meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the exact resource: regulatory authorisations of a French company by SIREN. It lists concrete authorisation types (payment institution, e-money, etc.) and data sources (EBA, EIOPA, ARCEP), clearly distinguishing it from sibling company-data tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases: 'Use it before paying, onboarding or contracting with a regulated counterparty.' It does not mention when not to use or name alternative tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_czech_company_insolvencyARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| ico | Yes | 8-digit Czech IČO (company identification number), e.g. 45274649 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial context beyond the annotations: event list capped at 100 most recent events, truncation flags, 404 for natural persons, 503 for stale stock, GDPR minimization, and x402 payment. These details disclose real behavioral traits and edge cases without contradicting the readOnlyHint or openWorldHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence provides value: source, content, truncation behavior, legal person limitation, stale data handling, payment. It is front-loaded with the core purpose and structured with clear clauses. While a bit long, it avoids fluff and earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 are covered elsewhere. The description completes the picture with edge cases (no proceeding, 404, 503), data history, legal scope, event truncation, and payment. It is highly complete for a tool with this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (ico and x_payment) are already documented. The description adds minimal extra parameter meaning, only reinforcing that ico must be a legal-person identifier and that x_payment is tied to the paid access. Baseline 3 is appropriate since the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool retrieves insolvency records for a Czech company from the official ISIR register. It details specific content (case number, court, status, dates, event trail) and clearly differentiates from country-specific siblings like get_uk_company_insolvency and get_latvian_company_insolvency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies usage for Czech companies and explicitly states exclusions (natural persons, sole traders). It provides context on data coverage (since 2008, compulsory publication) and payment requirements (x402). It does not explicitly name alternative tools, but the country-specific scope is clear from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_danish_company_filingARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 8-digit Danish CVR number | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| date_cloture | Yes | Fiscal-year closing date, YYYY-MM-DD, e.g. 2025-12-31 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses the $0.05 x402 payment requirement, null-as-not-published semantics, filing currency, and inclusion of the official XBRL document URL. It also clarifies that revenue is never zero when published, adding important interpretation context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense, well-structured paragraph that leads with the core purpose, lists the returned metrics, and adds essential context about currency, payment, and the relationship to the list tool. Every sentence carries information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and readOnly annotation, the description covers the essential use context: what data is returned, the payment cost, the null convention, and the prerequisite list call. It is sufficient for an agent to invoke this tool correctly in a multi-country filing scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 specifying that date_cloture should be obtained from list_danish_company_filings, and clarifies the meaning of 'null' values in the output, which relates to what the parameters retrieve. It doesn't add significant new detail for id or x_payment beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: decodes financial statements from a Danish company's XBRL annual report for one fiscal year, listing the specific metrics returned. It distinguishes from sibling tools by explicitly naming Denmark and referencing list_danish_company_filings as the source for the closing date.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs that the closing date parameter comes from list_danish_company_filings, providing a clear prerequisite. The tool is implicitly positioned as the Danish-specific filing lookup among many country-specific siblings, though it doesn't explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_danish_company_officersARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| cvr | Yes | 8-digit Danish CVR number, e.g. 24256790 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| inclure_anciens | No | Also return ended mandates, each with its end date |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses concrete behavioral constraints: mandate caps (300 active / 200 ended) with a `tronque` flag, GDPR data minimisation (no address, no identifier, no DOB), and payment requirement via x402. It even clarifies that beneficial owners are never guessed, adding trust and predictability. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise despite its length, with each sentence delivering functional value: source, data coverage, default behavior, optional parameter semantics, limits, exclusions, privacy, and cost. It is front-loaded with the primary purpose and maintains high information density without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple officer types, mandate dates, caps, payment, privacy constraints), the description covers all critical operational aspects: what data is returned, how pagination/truncation works, what is intentionally omitted, and required payment. Since an output schema exists, return formatting is already documented, leaving no major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all parameters (100% coverage), so the baseline is 3. The description adds extra value by explaining the semantics of inclure_anciens ('adds ended mandates, which is where founders normally are') and the behavior of the `tronque` flag in relation to capped boards. This enriched understanding helps the agent choose correct parameter settings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves Danish company officers and directors from the official CVR registry, listing specific roles (executive board, board, auditors) and explicitly distinguishing from beneficial owners. The verb 'get' plus resource 'danish_company_officers' is unambiguous and differentiated from sibling tools like get_latvian_company_officers by country and content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implicit usage guidance: it's for Danish company officers, with active mandates by default and the optional parameter to include ended mandates (where founders appear). It explicitly states beneficial owners are NOT exposed, advising against using this tool for that purpose. However, it does not explicitly name alternative tools for other jurisdictions or beneficial owner lookups, so it falls short of full 'when-to-use vs alternatives' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_estonian_company_accountsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| registrikood | Yes | 8-digit Estonian registry code (registrikood, e-Business Register), e.g. 10003666 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses rich behavioral traits beyond annotations: data source (RIK), license (CC BY 4.0), refresh period (monthly), handling of null values (null = not published, never zero), separation of statutory/consolidated figures, PDF-only exclusion, and payment cost via x402. This significantly exceeds the readOnlyHint/openWorldHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and information-rich, covering all essential aspects in a single paragraph. However, it is structured as one long run-on sentence with multiple clauses, which could hinder quick scanning. Every sentence earns its place, but better formatting would improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description is remarkably complete. It covers data source, scope, limitations, payment, and output field semantics. The output schema exists, so detailed return format is not needed in the description. This is more than sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for both parameters. The description adds value by specifying the payment cost ($0.02 in USDC or EURC) for x_payment and clarifying that null values in output are genuine non-publications. It does not add extra meaning for registrikood beyond the schema's example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 account key figures from the official e-Business Register. It lists specific data fields (balance sheet, revenue, profit, etc.) and the scope (every published financial year since 2019), which distinguishes it from sibling 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: data source, monthly refresh, and a notable exclusion (PDF-only filings are not served). It also mentions the payment requirement. However, it does not explicitly name alternative tools or state 'use this for Estonian accounts', though the context is implied by the tool name and coverage.
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_rulingsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| registrikood | Yes | 8-digit Estonian registry code (registrikood, e-Business Register), e.g. 10003666 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations (readOnlyHint, openWorldHint) by disclosing intricate behavioral details: the semantics of alerte, nombre_alertes, and types_non_qualifies, fail-closed handling of unknown state codes, the distinction between a positive empty answer and a 404, and the payment mechanism via x402. This level of transparency is exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: it front-loads the core purpose, then explains field logic, edge cases, and payment. There is no redundant or filler content. The structure is logical and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is fully complete for the tool's complexity. It explains return behavior (positive answer vs 404), the meaning of key fields, the open-world hint (zero is not 'no warning'), and payment requirements. Given the presence of an output schema, the description covers all necessary contextual aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters (x_payment and registrikood) with descriptions, giving 100% coverage. The tool description adds no parameter-level meaning beyond that; it mentions payment as a behavior, not as a parameter semantic. Thus the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies exactly what the tool does: retrieves registry rulings (määrused) of an Estonian company from the official e-Business Register open data. It enumerates the types of rulings (registry entries, orders to remedy defects, warnings of striking-off, etc.), distinguishing it clearly from sibling tools like get_estonian_company_accounts or get_french_company_legal_alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: it is specifically for Estonian company registry rulings, with details about data source and edge cases (e.g., struck-off entities return 404). However, it does not explicitly name alternatives or state when not to use this tool, 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.
get_eu_procurement_awardsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds rich behavioral context beyond readOnlyHint/openWorldHint: identifier matching (SIREN/SIRET variants), coverage limitations, payment requirement (x402), and the open-world caveat about empty results. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, each adding distinct value (purpose, identifier/coverage, sibling relation, payment). No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description still lists return fields (buyer, country, subject, amount, CPV codes, links), covers payment, caveats, and alternatives. Fully equips the agent to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters fully (100%), so baseline is 3. Description adds only the SIREN/SIRET matching nuance, which is about behavior rather than parameter format; x_payment is already described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Purpose is explicit: lists EU public procurement awards won by a French company from TED data, with specific data fields. Distinct from sibling get_french_company_public_procurement by mentioning EU vs French DECP and above-threshold vs below-threshold.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states when to use: for EU-level TED award notices, and explicitly names the complementary sibling tool for French DECP below-threshold. Also provides coverage caveats (eForms since 2023-10-25, ~57% identifier coverage) and clarifies that 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_profileARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | National register identifier, e.g. 923609016 | |
| pays | Yes | ISO-3166 alpha-2 country code, e.g. NO | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and openWorldHint, and the description adds valuable context: the tool is paid via x402 ($0.01 in USDC or EURC), the response follows the same schema for all countries, and the availability of certain jurisdictions is conditional ('when enabled'). It does not contradict the annotations and provides useful operational details beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence but is well-organized: main purposedash, then schema consistency, then country list, then fallback, then payment. The country list is long but necessary for a coverage-sensitive tool. It is not overly verbose and each component earns its place, though the dense parentheses could be slightly better structured for scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple countries, registries, payment requirement) and that an output schema exists, the description is quite complete. It enumerates covered jurisdictions, lists the key return fields, specifies the fallback via GLEIF, and mentions the payment requirement. Minor gaps remain, such as what 'normalized status' means or how the payment quote flow works, but the presence of an output schema reduces the burden on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds extra meaning by explaining that 'pays' and 'id' together identify the company ('by country and national register ID') and by specifying the exact payment amount and currency for the optional x_payment parameter, which goes beyond the schema's generic description. It reinforces country-registry mappings but does not fully override schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('lookup') and resource ('European company profile'), and distinguishes itself from the many country-specific sibling tools (e.g., get_french_company_profile) by emphasizing its multi-country unified coverage and consistent JSON schema. The list of supported registries and GLEIF fallback makes the tool's scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 a unified European company profile is needed by country and national register ID. It also notes coverage specifics (e.g., 'Denmark/UK when enabled' and 'elsewhere via GLEIF'), which helps set expectations. However, it does not explicitly contrast with sibling tools or state when to prefer a country-specific getter, so it lacks formal exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_finnish_company_filingARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Finnish Business ID (Y-tunnus), NNNNNNN-N | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| date_cloture | Yes | Fiscal-year closing date, YYYY-MM-DD, e.g. 2024-12-31 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical behaviors: revenue is never zero and null means not published, prior-year comparatives are included, and the service costs $0.15 paid via x402. This adds value beyond the readOnlyHint/openWorldHint annotations. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey all essential information: what data is returned, null semantics, comparatives, source, and payment. No redundant words; front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return format is covered. The description provides purpose, source, data semantics, comparatives, dependency on list_finnish_company_filings, and payment. It sufficiently covers the tool's usage context for an agent, though it could mention error behavior if no filing exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have schema descriptions with full coverage. The description adds a workflow hint that the closing date comes from list_finnish_company_filings, which aids selection of date_cloture. This is helpful but marginal beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as fetching a single Finnish fiscal year's financial statements decoded from the company's PRH XBRL filing. It specifies scope (one fiscal year) and resource (Finnish company filing), distinguishing it from other country-specific filing tools and list_finnish_company_filings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states that the closing date comes from list_finnish_company_filings, guiding the agent to first use that sibling tool to obtain the required date_cloture parameter. It also mentions the x402 payment requirement, giving usage context. However, it does not explicitly exclude alternative country filing tools, though the Finnish scope is 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_capitalARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the annotations: it is AI-extracted from PUBLIC articles of association, reconstructed from filed deeds, includes confidence scores and source documents, and importantly discloses the paid nature ($0.35 via x402). This goes well beyond the readOnlyHint and openWorldHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence delivers specific value: data content, source, limitations, and pricing. The description is front-loaded with the core purpose and remains compact despite the amount of context provided. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and read-only annotations, the description still enriches the context by enumerating the exact returned fields (shareholders, roles, birth year, ownership %), the source document, and the confidence level. It also alerts the user about the payment requirement, which is essential for successful invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes both parameters, including the payment header behavior. The description adds no extra parameter semantics; it only reinforces the French company context. Since schema coverage is 100%, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides share capital and ownership structure of a French company, listing specific data points such as share capital, legal form, shareholders, and ownership percentages. It explicitly distinguishes itself by noting it is NOT a beneficial-ownership register, which differentiates it from sibling tools like get_uk_beneficial_owners.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about the data source (INPI registry) and explicit exclusions (not RBE or beneficial-owner identification). However, it does not directly name alternative tools for when the user needs beneficial ownership or other capital-related data, leaving some room for interpretation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_french_company_changesARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| depuis | Yes | List announcements since this date (YYYY-MM-DD) | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description adds meaningful behavioral disclosures: it returns an empty list when no new announcements exist, orders results reverse-chronologically, and mentions the x402 payment cost. This is valuable context not inferable from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four concise sentences, each earning its place: purpose, behavioral distinction, empty-list behavior, and payment requirement. It is front-loaded with the core purpose and contains no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a good input schema, helpful annotations, and an output schema present, the description covers the essential edge case (empty list), payment cost, and behavioral expectations (not field-level edits). This is complete for a monitoring tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters with descriptive text (9-digit SIREN, date format, payment header), achieving 100% coverage. The description adds little beyond echoing the 'since a given date' concept, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool monitors French BODACC gazette announcements since a given date, with a specific verb+resource+scope. It explicitly distinguishes from siblings by noting it detects new publications, not field-level edits, which sets it apart from profile or alert tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: poll-mode surveillance for a portfolio, and states an exclusion (not field-level edits). However, it does not explicitly name alternative sibling tools, so it stops short of full 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_riskARead-onlyInspect
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, debt service, trend) + company age + a hard BODACC override (active insolvency / liquidation). 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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the scoring methodology, return contents (score, band, each component with threshold, confidence level), the BODACC override, the decision-support-only caveat, and the payment cost. Annotations indicate readOnly, and the added behavioral context goes well beyond those structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and information-dense: definition, methodology, output contents, caveat, and payment. Each sentence earns its place and the most important purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers time horizon, input data sources, hard overrides, output fields, confidence level, limitations, and payment. With annotations and an output schema already present, this is more than sufficient for an agent to decide when and how to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters fully: SIREN with a 9-digit pattern, and x_payment with omit-to-receive-quote semantics. The description adds the $0.10 USDC/EURC cost but no new parameter-level meaning; with 100% schema coverage, the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resource: a default-risk score (0-100) for a French company at ~12 months, with a clear verb implied in the tool name. It distinguishes itself from sibling tools by specifying credit/insolvency risk scoring from financial ratios, company age, and a BODACC override.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use for a French company's ~12-month default-risk/insolvency assessment, and explicitly warns it is not a solvency opinion or credit rating. It does not name alternative tools or provide an explicit when-not-to-use scenario beyond the caveat, so it falls just 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_financialsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses the paid nature (x402 cost), the data sources (INPI/Banque de France), and the scope of up to 10 fiscal years. It does not cover error cases or pagination, but with annotations provided, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading the core data content and appending the payment detail. Every sentence contributes essential information without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and the tool's moderate complexity, the description adequately covers data type, sources, and payment. A minor omission is the explicit behavior when x_payment is omitted, but the schema already addresses this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides full coverage for both parameters. The description adds context for x_payment by mentioning the cost and payment mechanism, but it does not meaningfully expand on parameter semantics beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's function: retrieving annual accounts, financial statements, and tax-form line items for a French company, with concrete metrics (revenue, EBITDA, net income) and data sources (INPI/Banque de France). This distinguishes it from sibling tools like get_french_company_profile or get_french_company_capital.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for financial data retrieval and explicitly notes the x402 payment requirement, providing context on how to use the tool. However, it does not explicitly contrast this tool with alternatives or state when not to use it, leaving some room for improvement.
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_summaryARead-onlyInspect
AI-generated business-health and risk summary of a French company (in French), produced from official data only: strengths, warning signs, activity trend, confidence level. Cached 7 days. Paid via x402 ($0.15 in USDC or EURC).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important non-obvious behaviors: results are cached for 7 days, the tool is paid via x402 costing $0.15 in USDC/EURC, and output is in French. These traits go beyond the annotations and provide crucial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured, front-loaded sentence that covers purpose, language, data source, output components, caching, and cost without redundant wording. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations for read-only/open-world, the description covers the remaining essential context: cost, caching, language, and data source. It is complete for practical use by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents both parameters (siren pattern and x_payment usage). The description adds value by specifying the exact cost ($0.15) and cache freshness, which are not in the schema, helping the agent understand the implications of using siren and x_payment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this tool produces an AI-generated business-health and risk summary for a French company, listing specific components (strengths, warning signs, activity trend, confidence level) and noting it is in French from official data. This is more specific than the tool name alone, but it does not explicitly contrast with sibling risk tools like default risk or industrial risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives implied context for use (synthesized health/risk overview from official data) and mentions caching and cost, which help an agent decide if this tool is appropriate. However, it does not explicitly state when to choose this over alternatives or provide exclusions.
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_riskARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and open-world aspects. The description adds valuable behavioral context: the return of level 'aucun' when no classified facility exists (and that this is a meaningful signal), plus the x402 payment requirement. It does not over-explain beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and efficiently structured: purpose, data contents, edge-case behavior, and payment. Every sentence contributes new information without redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with an output schema and two well-documented parameters, the description covers the essential context: data source, specific fields, no-result behavior, and payment. It does not need to explain return values because the output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters, so the baseline is 3. The description adds cost and payment context for x_payment ('Paid via x402 ($0.01...)'), which helps the agent understand the financial side of invocation beyond the schema's technical header description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving industrial-risk and environment (ESG) profiles of French companies from the ICPE register. It enumerates the specific data elements (Seveso status, authorisation regime, IED flag) and notes the per-SIREN risk synthesis, distinguishing it clearly from sibling tools like default_risk or health_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use when you need industrial-risk or environmental data from the official ICPE register. It does not explicitly name alternatives or exclusions, but the specificity of the domain provides strong implied guidance. The payment note adds a practical usage requirement.
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_propertyARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and openWorldHint, so the bar is lower. The description adds valuable behavioral details: patent inventor names (natural persons) are never returned, and the service requires a $0.03 x402 payment in USDC or EURC. This goes beyond the structured fields and does not contradict 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no wasted words. It front-loads the core purpose and data source, then adds a usage signal, and finally states the limitations and cost. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and complete parameter schema, the description still manages to convey the key context: the source (INPI), the categories of IP, the nature of output (counts and recent items with specific fields), the non-return of inventor names, and the payment requirement. This is complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters completely: siren is fully described as a 9-digit SIREN, and x_payment is explained as an optional payment header to omit for a quote. The description adds no extra parameter-specific semantics, but with 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as fetching the intellectual-property portfolio of a French company from INPI open data, listing the specific IP types (trademarks, patents, designs) and output fields (counts, recent items with number, title, status, date, classification). This specific scope distinguishes it from the many other French company tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly positions the tool as 'an R&D/brand-value signal,' which gives clear guidance on when to use it. It does not name alternatives or state when not to use it, but it provides a clear context for usage in evaluating research and brand strength.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_french_company_intelligenceARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the readOnlyHint/openWorldHint annotations. It discloses the x402 payment requirement ($1.00), the deterministic verdict categories, the auditable Ed25519 signature, as_of dates per block, and that omitting x_payment returns a payment quote. This is rich behavioral context that helps an agent set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded with the primary use case and then a compact, comprehensive list of report blocks. Each item contributes useful information about the tool's capabilities, but the density of clauses could be slightly overwhelming. It earns a 4 for being well-structured and not repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the existence of an output schema, the description covers everything an agent needs to know: when to use it, what data is returned, the verdict logic, the auditable signature, and the payment mandate. The only missing element is explicit error handling, but that is not required given the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (siren, x_payment) already have clear descriptions in the schema. The main description does not add new meaning beyond the schema, though it reinforces the live VIES VAT check context. Baseline 3 is appropriate since the schema already handles parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear 'Use for a GO/NO-GO decision (credit, investment, partnership)' and defines the tool as producing a comprehensive 'Company INTELLIGENCE report'. It lists the exact blocks covered, distinguishing it from narrower sibling tools like get_french_company_financials or get_french_company_legal_alerts, and explicitly labels it '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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool (GO/NO-GO decisions) and implies it is the comprehensive all-in-one alternative to the many single-block siblings by saying 'every Sirenic block cross-referenced in one call'. However, it does not explicitly name alternatives or state when not to use it, leaving some room for interpretation.
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_batchARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sirens | Yes | List of 2 to 100 nine-digit SIRENs | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds rich behavioral detail beyond the readOnlyHint and openWorldHint annotations: per-company billing at $0.105 (30% off), charge calculation via unit price × SIREN count, behavior for non-diffusible SIRENs (trouve=false and billed), and per-block provenance. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five sentences, each adding essential information: core function, pricing, edge-case handling, provenance, and ideal use case. It is front-loaded with the main purpose in the first sentence and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema likely defines return structure, the description covers all necessary operational aspects: batch size limits, pricing details, edge-case behavior, provenance, and recommended usage. The readOnlyHint/openWorldHint annotations further assure the agent this is a safe read operation. It is complete for a batch-lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining the billing formula ('unit price times the number of SIREN'), which clarifies the commercial impact of the sirens parameter. It also explains the edge-case behavior for invalid SIRENs, which is not in the schema. The x_payment parameter is adequately covered by the schema's own description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool performs batch KYB lookups for 2 to 100 French companies, using a specific verb ('Batch KYB') and resource ('full KYB files'). This clearly distinguishes it from sibling tool get_french_company_kyb_file, which handles a single company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context with 'Ideal for prospecting and compliance agents processing lists' and specifies the batch size constraint (2 to 100). However, it does not explicitly name the alternative single-company tool or state when not to use this batch version, so it stops short of full exclusionary 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_kyb_fileARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint and openWorldHint. The description goes beyond by disclosing payment requirement (x402, $0.15), provenance metadata (official register, licence, version, as_of), and precision_as_of semantics. It adds significant behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: purpose, usage guidelines, provenance, and pricing in four sentences. Each sentence provides valuable information, though it is slightly verbose for a tool with rich schema. Front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 key aspects: what data is included, provenance, pricing, and alternatives. It does not need to explain return values due to output schema presence. Could mention limitations, but openWorldHint covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions (siren pattern, x_payment optional). The description does not add parameter-specific detail beyond schema, but baseline is 3 due to high schema coverage. Payment context is mentioned, but not parameter syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Complete KYB file for a French company in one call — a comprehensive BUNDLE consolidating identity, officers, BODACC legal alerts, filed financials, sanctions screening, VAT number and completeness score.' It lists components and distinguishes from siblings by naming dedicated alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is given: 'Use this when you want the whole due-diligence picture at once; if you only need one part, call the dedicated tool instead... they are cheaper.' This states when to use and when to choose alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_french_company_legal_alertsARead-onlyInspect
Legal alerts and legal notices for a French company from BODACC, the official French gazette: insolvency proceedings (procedures collectives), court filings, deregistrations, business sales — grouped, most recent first. Paid via x402 ($0.01 in USDC or EURC).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint and openWorldHint. The description adds valuable context: results are grouped most recent first, sourced from BODACC, and require a payment via x402. This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys purpose, source, content, ordering, and payment. No unnecessary words or structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple read tool with an output schema, the description covers the key context: source, event types, grouping, recency, and payment. It doesn't explain return shape, but the output schema covers that. Not all alternative tools are referenced, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (siren pattern and x_payment header semantics). The description does not add parameter-level detail beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides legal alerts and legal notices for a French company from BODACC, listing specific event types. This distinguishes it from sibling French company tools by source and content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (for BODACC legal events) and includes the payment requirement, but it does not explicitly name alternatives or exclusion scenarios. The clear context earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_french_company_lobbyingARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, but the description adds important behavioral context: the data source (HATVP), the meaning of `inscrit: false`, the scope ('Organisation-level only'), and the payment requirement via x402 with cost. This goes beyond what annotations provide and helps the agent set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that lists many data points, but every sentence contributes value: purpose/contents, scope (organisation-level), meaningful false, and payment. It is longer than the high-caliber example but not wasteful; it could be slightly more compact but is structured logically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return format is covered. The description sufficiently explains the data source, field categories, semantics of false results, and payment requirement. It doesn't mention pagination or rate limits, but given the complexity and output schema, this is adequate. Sibling comparison is implicit through the exclusive focus on lobbying.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters already described ('9-digit SIREN' and 'Optimal signed x402 PAYMENT-SIGNATURE header value'). The description adds context about the payment mechanism and cost, which reinforces the x_payment parameter semantics, but doesn't introduce new parameter details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a 'Lobbying and transparency profile of a French company' from the official HATVP register, with a specific list of data points. This distinguishes it from sibling tools like get_french_company_profile or get_french_company_intelligence, which cover broader company data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (for lobbying/transparency data from HATVP) and includes a meaningful exclusion: 'Organisation-level only — no personal data.' It also notes that `inscrit: false` is a meaningful answer, indicating that false results are valid and informative. However, it doesn't explicitly name alternative tools for cases where this tool is not appropriate.
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_reportARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations: the tool is paid ($0.50 via x402), returns the PDF as base64, and conditionally includes the AI health summary when cached. The readOnlyHint and openWorldHint annotations are not contradicted by these details, and the payment side effect is clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and every sentence adds value: content, output format, and payment terms. There is no wasteful repetition of schema or annotation information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explains the return value (base64 PDF) and payment flow. However, it does not clarify how the payment quote flow works in relation to x_payment, and it leaves overlap with get_french_company_kyb_file unexplored, making it not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 in the schema. The description only adds that the report is for a French company and mentions the x402 payment, which aligns with the x_payment parameter but does not add significant new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as producing an on-demand PDF report of a French company, with a specific output format (base64) and content list (identity, officers, legal alerts, financials, sanctions screening). This distinguishes it from sibling tools that return raw data or structured KYB files rather than a shareable PDF dossier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: this is for when you need a formatted, shareable due-diligence PDF rather than raw data. However, it does not explicitly state when to prefer this over sibling tools like get_french_company_kyb_file, nor does it mention any exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_french_company_profileARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already say readOnlyHint=true and openWorldHint=true, so the description doesn't need to state safety. It adds valuable context: the exact cost of the paid x402 call ($0.005), the authoritative data sources (INSEE Sirene / INPI RNE), and an important interpretation note about the IDCC codes (9999 meaning 'no collective agreement'). These go beyond the structured fields and prevent misuse. It does not mention rate limits or auth, but that's not required given the existing annotations and output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is 133 words, but each segment earns its place: the data field list gives a quick overview, the IDCC note prevents a common lookup error, and the pricing is essential for a paid tool. It's front-loaded with the most important information. Slight redundancy exists ('Full official company profile' vs 'core company data lookup'), but overall it's efficiently packed and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the presence of an output schema, and annotations, the description is thorough. It covers what data is returned, the data source, the use case (KYB/due diligence), a special field nuance, and the payment requirement. There is no obvious missing context that would prevent an agent from selecting or invoking this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both siren and x_payment are already fully described in the schema. The description only echoes 'by SIREN' and mentions the payment cost, adding no new semantics for parameter usage beyond the schema. Thus the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the full official company profile from the French company registry by SIREN, listing the exact data fields (legal name, legal form, head office, NAF code, workforce, officers, collective agreements, VAT). It distinguishes itself from sibling tools by framing itself as 'The core company data lookup for KYB and due diligence on France,' making it clear this is the primary profile tool and not a specialized financial, legal, or batch tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use-case context ('KYB and due diligence on France') and positions the tool as the core lookup, which implies it should be the first stop for French company profiles. However, it does not explicitly name alternatives or state when not to use this tool (e.g., for financials or capital changes), so it stops short of the explicit when/when-not guidance required for 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_public_procurementARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnlyHint and openWorldHint, the description adds the critical behavioral detail of payment via x402 ($0.01 in USDC or EURC), which is not in the annotations. It also mentions the data source (official DECP), providing context beyond the structured fields. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core purpose and followed by key context (data fields, cost). Every word adds value and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and annotations, the description adequately covers the core function, scope, data source, and payment requirement. It omits non-essential details like potential limitations, but is complete for a focused single-purpose tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes both parameters (siren pattern and x_payment header semantics). The description adds the cost and the fact that payment is required, enriching the meaning of x_payment beyond the schema's literal description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving French public procurement data (government contracts and tenders won by a French company) from official DECP data, listing the key output fields (buyers, amounts, dates). It is distinct from siblings like get_eu_procurement_awards and other French company tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 it: when seeking French public procurement for a specific French company, and it notes the x402 payment requirement. It does not explicitly mention alternatives or exclusions, but the scope is obvious from the wording and sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_french_sector_benchmarksARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| code_naf | Yes | NAF activity code, any level | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and openWorldHint, but the description adds valuable behavioral context: the aggregate-only nature ('Aggregates only, no personal data'), the conditional availability of financial metrics ('when at least 5 companies file public accounts'), and the payment mechanism ('Paid via x402 ($0.05 in USDC or EURC)'). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is densely packed but every clause earns its place: purpose, metrics, threshold condition, secondary use case, privacy safeguard, and pricing. It is front-loaded with the core function and structured with em-dashes and semicolons. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Considering the tool's complexity (multiple metrics, conditional data, payment flow), the description is remarkably complete. It covers input format ('any level'), output content (though output schema exists), the minimum threshold for financial data, aggregate privacy, and the payment process. There is no critical missing context that would prevent an agent from invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 reiterates the schema's note about 'any level' for code_naf and gives examples (68, 68.2, 68.20, 68.20B), which adds a small illustrative benefit. However, the x_payment parameter is described identically in the schema ('Omit to receive the payment quote'), so no new meaning is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Sector benchmarks and sector statistics for a French NAF activity code'. It enumerates specific metrics (active companies, company age, workforce distribution, financial ratios) and distinguishes itself from sibling tools that focus on individual companies (e.g., get_french_company_financials). This is a precise verb+resource+scope statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for use: provide a French NAF code at any level, and it produces sector benchmarks. It also mentions a secondary use case ('Peer comparison: place a company against its peers'), implying when this tool is relevant. However, it does not explicitly state when to prefer alternatives or exclusions (e.g., 'for company-level data, use get_french_company_financials').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latvian_company_accountsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| regnr | Yes | 11-digit Latvian registration number (Uzņēmumu reģistrs), e.g. 40003032065 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavioral detail: null revenue means not published (never zero), figures preserve original currency and rounding, statutory versus consolidated separated, daily refresh, and a paid x402 fee. These details go beyond the read-only annotation and help interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is packed with necessary detail and avoids filler, though the long dashes and semicolons create a dense run-on structure. Every clause provides useful information, balancing conciseness with completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and thorough behavioral caveats (currency, rounding, nulls, consolidation), the description fully equips an agent to understand the tool's output and payment flow. No significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions; the description adds value by explaining the payment cost and currency for x_payment and clarifies the null semantics that affect interpretation of the response, though it doesn't add much about regnr beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves Latvian company annual accounts from official VID filings, specifying the content (balance sheet, P&L, cash flow, employees) and geographic scope. The name and description distinguish it from sibling tools like get_estonian_company_accounts and get_latvian_company_officers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies the use case (getting Latvian financial statements) and notes data source/refresh cadence, but does not explicitly compare to alternative tools or state when not to use. The context is clear but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latvian_company_beneficial_ownersARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| regnr | Yes | 11-digit Latvian registration number (Uzņēmumu reģistrs), e.g. 40003032065 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly and openWorld annotations by disclosing the official data source, daily refresh, empty list behavior for registered companies, GDPR minimisation of personal data, and the x402 payment requirement. These are critical behavioral traits not captured in structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, with each sentence serving a distinct purpose: stating the data source and fields, explaining empty list semantics, and disclosing GDPR constraints and payment. It is well-structured and free of redundancy, though slightly dense with detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description covers all crucial aspects: the data source, refresh cadence, empty list behavior, personal data handling, and payment. There are no apparent gaps that would prevent an agent from using the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both parameters (regnr and x_payment). The description adds value by specifying the exact cost ($0.02 in USDC or EURC) and clarifying the payment mechanism, which enriches the understanding of the x_payment parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves beneficial owners of a Latvian company from the official Uzņēmumu reģistrs, specifying the exact fields (name, nationality, country of residence, registration date). It also distinguishes from other country-specific tools by contrasting with France, making its scope unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this is for Latvian companies and contrasts it with France, implying it is the correct tool for Latvian UBO data. However, it does not explicitly list alternatives or state when not to use it, so it falls short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latvian_company_insolvencyARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| regnr | Yes | 11-digit Latvian registration number (Uzņēmumu reģistrs), e.g. 40003032065 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavioral context beyond the readOnlyHint/openWorldHint annotations: null end date means ongoing, no proceeding returns an explicit positive answer (aucune_procedure: true), data is a daily national photo since 2008, and the register is authoritative. It also discloses the x402 payment requirement with a fixed 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three well-structured sentences, front-loaded with the core resource and source, and every sentence adds value: data content, interpretation rules, negative-case behavior, and payment. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, output schema present) and good annotations, the description is complete: it covers data provenance, time coverage, key field semantics, no-proceeding case, and payment flow. Nothing essential is missing for an agent 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: regnr has a pattern and example, x_payment has a clear description including the 'omit to receive payment quote' behavior. The description adds tool-level cost context but no additional per-parameter meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns Latvian company insolvency and legal-protection proceedings from the official Uzņēmumu reģistrs open data, listing dates, resolution, court, and case number. This clearly differentiates it from sibling tools like get_latvian_company_accounts or get_czech_company_insolvency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's scope is clear: use for Latvian insolvency/legal-protection records. It also provides important usage semantics such as null end date meaning ongoing and the explicit positive answer when no proceeding exists. It does not explicitly name alternative tools or when not to use, but country and subject specificity make the context strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latvian_company_officersARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| regnr | Yes | 11-digit Latvian registration number (Uzņēmumu reģistrs), e.g. 40003032065 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
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: GDPR minimization (never personal identity number, only birth month/year when published), payment via x402 with exact cost, and daily refresh from official open data. These are meaningful operational details not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, dense but well-structured. It front-loads the core purpose and data scope, then adds privacy and payment details without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers data content, official source, refresh frequency, GDPR handling, and payment requirement. Since an output schema exists, return-value details are not needed. This is complete for a simple retrieval tool with existing structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters. The description adds semantic value for x_payment by specifying the cost ($0.01 in USDC or EURC) and that it is a paid operation, which the schema does not mention. For regnr, it adds no new info beyond the schema's pattern and example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies it provides Latvian company officers and directors from the official Uzņēmumu reģistrs, listing specific roles (board members, chairs, liquidators) and data fields (role, governing body, representation rights, registration date). This clearly distinguishes it from sibling tools like 'get_latvian_company_accounts' or 'get_uk_company_officers'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative tool references are given, but the country and focus on officers imply its use case. It does not mention exclusions or compare with other officer-related tools, so guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_norwegian_company_accountsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 9-digit Norwegian organisasjonsnummer, no spaces, e.g. 923609016 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnlyHint and openWorldHint annotations by explaining the data freshness (live latest, accumulated history), the source's behavior (only serves the latest year), the no-currency-conversion policy, the exclusion of banks/insurers, and the payment cost. This provides rich behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, densely packed with essential information: purpose, data scope, content, source, limitations, currency, and payment. It is front-loaded with the purpose and avoids any filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers all critical context: official source, data freshness, content breakdown, currency, exclusions, and cost. It is complete enough for an agent to select and invoke the tool correctly without needing additional details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents both parameters (id and x_payment) with descriptions and a regex pattern. The description does not add further parameter semantics, but with 100% schema coverage, the baseline of 3 is appropriate as the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides annual accounts of a Norwegian company from the official Regnskapsregisteret, specifying the exact data elements (balance sheet, P&L). It distinguishes itself from sibling tools by naming the Norwegian source, the live fetch of the latest fiscal year, and the accumulation of earlier years, as well as the currency handling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it fetches the latest filed fiscal year live and accumulates earlier years since 2026-07, implying when it is appropriate to use. It explicitly states a limitation: banks and insurers are not served by the source, serving as a 'when not to use' cue. It does not name alternative tools, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_norwegian_company_legal_eventsARead-onlyInspect
Legal events of a Norwegian company from the official Enhetsregisteret (Brønnøysundregistrene, NLOD 2.0): bankruptcy (konkurs, with the date the register publishes), voluntary winding-up, compulsory winding-up / forced dissolution, and strike-off — plus the current flags, re-checked live at call time. A registered company with no event returns an explicit positive answer (aucun_evenement: true), asserted only when the record was live-verified, no flag is raised, it is not struck off and the journal is current. Coarser than the French BODACC: the Norwegian bankruptcy register is not public, so there is no ruling text, no court and no insolvency practitioner; origine_date tells a register-published date from a Sirenic observation date, and date_au_plus_tard: true marks a date that is only an upper bound (flag already raised when first observed — started on or before). 3-year window (the source's own republication limit), except a still-open procedure, whose opening is always served. Only legal persons are served: natural-person forms (ENK, PERS, TVAM), estates named after one (KBO, BO) and any unrecognised form are refused. Paid via x402 ($0.02 in USDC or EURC).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 9-digit Norwegian organisasjonsnummer, no spaces, e.g. 923609016 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint and openWorldHint. The description adds substantial behavioral detail: live re-checking at call time, explicit positive answer (aucun_evenement: true) when no events exist, meaning of origine_date vs. date_au_plus_tard, and the 3-year republication limit. It also discloses payment via x402 and refusal of non-legal entities, going well beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: scope, behavior, source limitations, exclusions, and payment. It is front-loaded with the core purpose and then fills in critical edge cases, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and presence of an output schema, the description covers the key decision-relevant context: what events are included, how no-event is represented, date semantics, time window, entity eligibility, and pricing. This is complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter (id) has a detailed regex and example, and x_payment is described. The description adds no additional meaning to the parameters themselves, but since the schema fully documents them, the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb+resource: it provides legal events (bankruptcy, voluntary winding-up, compulsory winding-up, strike-off) for Norwegian companies from the official Enhetsregisteret. It also names exact source and license (NLOD 2.0), and distinguishes itself from French BODACC, making the scope unambiguous relative to sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit exclusions (natural-person forms, estates named after individuals, unrecognized forms are refused), and a clear context: Norwegian data is coarser than French BODACC, with a 3-year window except for still-open procedures. It lacks a named sibling alternative, but the when-not and limitations are clearly stated.
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_eventsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| krs | Yes | 10-digit Polish KRS number, leading zeros included, e.g. 0000006865 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though annotations declare readOnlyHint, the description adds substantial behavioral context beyond that: the semantics of `aucun_evenement: true` for both non-existent numbers and quiet companies, the `existence` block, the gap-free observation window, the GDPR design that discards free text, and the `date_source_inferee` flag. These details reveal edge cases and data handling practices that are not otherwise visible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured: it opens with the core event list, then explains the observation window, the existence-check caveat, GDPR constraints, and the paid nature. Each sentence conveys distinct information and earns its place. However, it is dense and could be streamlined; a more compact version might preserve clarity with shorter sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is exceptionally complete for a complex tool. It covers the data source, event types, response characteristics (observation window, `existence` block), limitations (no retroactive history, no existence check), GDPR compliance, and pricing. It even describes elements of the output schema (e.g., `date_source_inferee`, register section, wpis number) even though an output schema exists, making it easy for an agent to decide when to invoke this tool and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters with 100% coverage: `krs` includes a pattern and example, and `x_payment` explains it's an optional signed header. The description adds minimal parameter-specific value beyond behavioral notes (e.g., that a non-existent number returns a specific response, which is more about output behavior than parameter semantics). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Registry EVENTS of a Polish company, derived from the official KRS daily bulletin (Krajowy Rejestr Sądowy, Ministry of Justice)' and enumerates the specific event types covered (liquidation, bankruptcy, restructuring, etc.). This distinguishes it from sibling tools that handle other countries' registry events (e.g., get_swedish_company_registry_events), and the specific source and scope make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance, including a critical caveat: 'this endpoint does NOT check that the KRS number exists' and directs users to an alternative: 'get_european_company_profile (pays=PL) settles existence with a 404.' It also explains payment requirements ('Paid via x402') and the register's limitation ('the register publishes no retroactive event history'), giving clear when-to-use and when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_slovak_company_filingARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| ico | Yes | 8-digit Slovak IČO, e.g. 36417475 | |
| perimetre | No | Filing scope: statutory (default) or consolidated — never merged | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| type_depot | No | Filing type from the filings list (Riadna, Mimoriadna…), when two filings share the same closing date; defaults to the ordinary one | |
| date_cloture | Yes | Fiscal-year closing date, YYYY-MM-DD, e.g. 2025-12-31 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses payment via x402 ($0.03), null handling for net turnover, euro-only amounts, and that data is never converted. These are valuable behavioral details not captured by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: first sentence covers purpose, then data details, source/scope, and payment. The long enumeration of financial items is justified as it informs the agent about the exact content returned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explain return values. It covers key context: data source, payment requirement, default scope, currency, and null semantics, making it complete for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters, so baseline is 3. The description adds context about how date_cloture is used (from list endpoint), the default perimetre, and the payment cost, which enriches understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool decodes a Slovak fiscal year from structured filings with RÚZ, listing specific financial items. It distinguishes itself from sibling country-specific filing tools by naming Slovakia and the RÚZ registry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions that the closing date comes from list_slovak_company_filings, implying a prerequisite call. It also notes the default statutory scope, but does not explicitly exclude alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spanish_company_actsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| hoja | Yes | Hoja registral (register-sheet key), e.g. VI-23141 — from search_european_companies with pays=ES. The BORME does not publish the NIF. | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description reveals important behavioral traits: DNI/NIE and sole-shareholder names are redacted, results are limited to 100 with total count, data since 2009, and a payment cost via x402. This significantly exceeds what annotations provide and helps the agent set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense but well-organized, starting with the main resource and then covering content, temporal scope, redaction, attribution, and payment. The Spanish attribution line is ancillary but not distracting; each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description covers all necessary context: data source (BORME), content types, time range, ordering and limits, redaction policy, and payment requirement. This makes the tool fully actionable for an agent without needing to infer missing behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The tool description reinforces the hoja parameter with a concrete example (VI-23141) and ties it to search_european_companies, adding value beyond the schema. The x_payment parameter semantics are left to the schema, which is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies Spanish BORME company acts as the resource, lists the specific event types (incorporations, officer changes, capital changes, mergers, dissolutions, insolvency), and specifies the unique identifier (hoja registral) and jurisdiction (Spain). This distinguishes it from sibling country-specific tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states how to obtain the required hoja key via search_european_companies, describes the data flow (daily, newest first), and mentions the result limit. It does not explicitly call out when not to use the tool or name alternatives, but the Spanish-specific scope and sibling names make this implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_surveillance_watchARead-onlyInspect
Status and accumulated events of a watchlist created with create_surveillance_watch. Free — the surveillance_id token IS the capability.
| Name | Required | Description | Default |
|---|---|---|---|
| surveillance_id | Yes | Token returned at creation |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
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.
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.
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.
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.
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.
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_accountsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| orgnr | Yes | 10-digit Swedish organisationsnummer, with or without hyphen, e.g. 5560401977 or 556040-1977 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations: coverage limits, null meaning for turnover (K2 abridged, never zero), filing currency (SEK), all years in one call, and payment details. It aligns with readOnlyHint and openWorldHint, explaining why a company may be absent (paper filing). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and well-structured: starts with the core purpose, then lists key fields, then covers important caveats with clear warnings (IMPORTANT COVERAGE LIMIT). Every sentence provides distinct information; no fluff. Length is appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all essential aspects: data source, scope, field semantics, coverage limitations, excluded data (officers), currency, and payment. Combined with the provided output schema and annotations, the agent has complete context to decide when and how to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both params, but the description adds value by explaining the payment requirement (x402, $0.03 in USDC/EURC) and the null semantics for turnover which helps interpret the orgnr param's result. The orgnr param itself is already well-documented in the schema, so the description complements rather than repeats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 from official iXBRL filings, with specific fields listed. It also explicitly distinguishes from related tools by noting officers are not available, avoiding confusion with get_swedish_company_registry_events or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use: for annual accounts, with all digital fiscal years. It explicitly tells users not to expect officers and warns about coverage limits (digital filing optional, corpus starts 2020). However, it does not name alternative tools for officers or paper-only filings, so exclusion guidance is present but not fully explicit on alternatives.
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_eventsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| orgnr | Yes | 10-digit Swedish organisationsnummer, with or without hyphen, e.g. 5560401977 or 556040-1977 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, the description discloses critical behavioral details: only ongoing proceedings are published, struck-off companies return procedure_en_cours: false, and the register is authoritative for positive no-proceeding answers. It also clarifies the payment mechanism, providing substantial contextual transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than the typical tool description, but each sentence serves a purpose: listing what events are included, providing a use case, explaining the no-proceeding response, noting the ongoing-only limitation, and stating the price. It is front-loaded with the core purpose and remains efficient without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of legal registry events, the description covers the data source, inclusion criteria, return semantics for no-proceeding and struck-off cases, and the payment requirement. An output schema exists, and the description complements it by explaining edge cases and authoritative status, making the tool nearly self-explanatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both orgnr and x_payment already have descriptions. The tool description adds little about parameter syntax beyond what the schema provides, though it does mention the payment cost contextually. This aligns with the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns registry events (incorporation, ongoing insolvency/restructuring, deregistration) from Bolagsverket's official file for a Swedish company. It names specific verbs and data categories, and the mention of 'Swedish company' distinguishes it from siblings like get_polish_company_registry_events and get_swedish_company_accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool: 'Use it to check whether a Swedish counterparty is bankrupt, in liquidation or already struck off before signing or paying.' It gives a clear use case but does not mention alternatives or when not to use it, so it falls 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_uk_beneficial_ownersARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| company_number | Yes | Companies House company number, 8 characters incl. leading zeros, e.g. 00102498 or SC123456 | |
| inclure_cesses | No | Include ceased PSCs (with their ceased_on date). Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses that data is live from Companies House, that ceased PSCs are excluded by default, that only month+year of birth is provided with no addresses, and that payment is required via x402. This adds substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but every sentence adds value, covering content, exclusions, geographic scope, data limitations, and payment. It's front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description covers the tool's scope, source, default behavior, limitations, and payment model. It's sufficiently complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions; the description adds context that inclure_cesses includes ceased PSCs with ceased dates, and that payment is via x402, but this mostly restates schema info. No new semantic depth for company_number or x_payment beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves UK beneficial owners/PSC data from Companies House, listing specific data points (natures of control, notification dates, PSC statements). It distinguishes from sibling tools by specifying UK-only and PSC focus, not officers or accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it's for UK PSC data, and explicitly notes France has no open UBO register, guiding users away. It also explains default exclusion of ceased PSCs and how to include them. However, it doesn't explicitly name alternative tools for France or mention when to use e.g. get_uk_company_officers instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uk_company_accountsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| date_cloture | Yes | Balance-sheet date, YYYY-MM-DD, e.g. 2025-12-31 | |
| company_number | Yes | Companies House company number, 8 characters incl. leading zeros, e.g. 00095407 or SC123456 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses important behaviors: null values mean 'not published' and never zero, most small companies file only a balance sheet, and the tool requires payment via x402 ($0.05). It also clarifies that prior-year comparatives are included 'as published', adding nuance not captured by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense yet efficient, front-loading the key scope ('One UK financial year') and then listing concrete contents. Every sentence provides useful information—what is included, null semantics, source of the date, and payment details—without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 retrieval tool: it specifies the data scope, expected fields, the optional nature of P&L, null handling, a prerequisite, and payment. An output schema exists, so return values are further specified there. Slight gap: no explicit error conditions, but openWorldHint and the null explanation cover most ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains each parameter. The description adds marginal value by noting that date_cloture is the balance-sheet date and comes from list_uk_company_accounts, but it does not provide additional syntax or format details beyond the schema. This aligns with the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving UK company financial statements for one financial year, specifically from iXBRL accounts filed at Companies House. It enumerates the exact contents (balance sheet, average employees, P&L), which distinguishes it from listing tools and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (for a specific UK company's financial year) and provides a crucial prerequisite: the balance-sheet date comes from list_uk_company_accounts. However, it does not explicitly name alternative tools or state when not to use it, though the sibling list makes the distinction clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uk_company_insolvencyARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| company_number | Yes | Companies House company number, 8 characters incl. leading zeros, e.g. 00102498 or SC123456 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only annotation, the description explains key behaviors: it returns practitioner names/roles only (excluding addresses), provides a positive 'aucune_procedure' response when no case exists, and notes the data is authoritative and live. It also discloses the payment requirement, adding significant operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the tool's core purpose and enriched with essential caveats and payment terms. Every sentence adds value, and there is no redundant or verbose wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential operational details: live source, authoritative status, no-case behavior, content limitations (no addresses), and payment cost/method. Since an output schema exists, return value documentation is not required, making this adequate for agent selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides comprehensive documentation for both parameters (company_number pattern/example and the x_payment header semantics, including the omit-to-get-quote behavior). The description adds no additional parameter meaning, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning a UK company insolvency record from Companies House, specifying the types of cases and included data (dates, insolvency practitioners). This distinguishes it from sibling tools like get_czech_company_insolvency and get_latvian_company_insolvency by explicitly naming the UK jurisdiction and official source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for retrieving UK insolvency data by naming Companies House and the UK, but it does not explicitly state when to use it over country-specific siblings or mention exclusions. It lacks explicit alternative guidance, though the contextual scope is obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uk_company_officersARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| company_number | Yes | Companies House company number, 8 characters incl. leading zeros, e.g. 00102498 or SC123456 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond annotations by disclosing payment requirements ($0.01 via x402), data minimization (never correspondence address), licensing (OGL v3.0), and the live nature of the data. These are critical behavioral traits for an agent to know, and no contradiction with readOnly/openWorld hints exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense paragraph with no waste. It front-loads the core function, then efficiently covers key field nuances, counts, license, and payment. Every phrase contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and only two parameters, the description provides all necessary operational context: data source, exact fields, payment, licensing, and data minimization. It does not need to explain return structure, and the tool's scope is fully covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, with clear descriptions for company_number (pattern, example) and x_payment (payment quote behavior). The description adds the cost context but does not need to reiterate parameter details, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves UK company officers and directors from Companies House, specifying the exact data fields and distinguishing it from sibling tools like get_uk_beneficial_owners and get_danish_company_officers. The resource and source are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through 'UK company officers and directors, live from Companies House' but no explicit alternatives or when-not-to-use guidance is given. Given many sibling tools, explicit comparison would improve clarity, but the description sufficiently indicates its scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_belgian_company_filingsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 10-digit Belgian enterprise number (KBO/BCE), e.g. 0403170701 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and open-world behavior. The description adds valuable context: the tool is paid via x402 ($0.01), it returns authentic data 'as published,' and it uniquely exposes Belgian filed accounts. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with three sentences each adding value: main purpose, uniqueness claim, and payment requirement. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with an output schema and strong annotations, the description covers the essential aspects: what it lists, the authoritative source, payment, and output nature. It does not discuss pagination but that is reasonably expected to be in the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are well described in the schema (10-digit KBO/BCE format and x402 header behavior). The description adds cost context but no further parameter semantics beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists every published deposit (annual accounts) of a Belgian company at the NBB CBSO, and specifies the output as 'deposit references with filing metadata as published.' It also differentiates from siblings by claiming uniqueness on x402 for Belgian filed accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use this tool (whenever Belgian filed annual accounts are needed) and asserts uniqueness, but does not explicitly name alternatives or exclusion criteria (e.g., 'for a single filing, use get_belgian_company_filing').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_danish_company_filingsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 8-digit Danish CVR number, e.g. 41235292 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses critical behavioral traits: the tool is paid via x402 ($0.01), only decoded Danish-taxonomy filings are included, and an empty result may indicate a coverage gap rather than absence of accounts. This adds substantial value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it front-loads the core purpose, then adds necessary qualifications and payment details in three sentences. Every sentence contributes meaningful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema available and full parameter schema coverage, the description provides sufficient extra context: what data is returned, the scope limitations, and payment requirements. It covers all non-schema aspects needed for correct tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both parameters (CVR number format and x_payment header), so the description adds no parameter-specific meaning. It does not need to compensate since schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the fiscal years of Danish companies' decoded XBRL annual reports, with specific output fields (closing dates, period, entity name, currency). It distinguishes itself from siblings by focusing on Danish-taxonomy filings and explicitly noting exclusions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when not to use it (IFRS/ESEF-only groups) and clarifies that an empty answer does not mean no accounts exist. It does not explicitly name alternative tools, but the scope and limitations are well-delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_finnish_company_filingsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Finnish Business ID (Y-tunnus), NNNNNNN-N, e.g. 0103396-3 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
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 ~5% of Finnish companies file digitally, empty answers may not mean no accounts exist, empty filings are filtered out, and payment is required via x402. This is substantial and non-redundant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each adding distinct value: purpose, coverage caveat, filtering behavior, and payment method. There is no wasted wording, and the key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does not need to explain return values. It covers data source, coverage limitations, filtering, and payment, providing complete context for invoking the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters, including the `id` pattern and the `x_payment` header semantics, with 100% coverage. The description's mention of x402 payment echoes the schema but adds no new parameter-level detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('list the fiscal years') and resource ('Finnish company annual accounts filed in XBRL with the PRH'). It is specific enough to distinguish from sibling tools such as get_finnish_company_filing and other list_* filings by country and filing type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: to list Finnish XBRL filing years. It does not explicitly name alternatives or exclusions, but the context is strong enough to guide selection among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_french_company_documentsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the payment requirement (x402, $0.02) and notes that it returns document IDs for downloads, going beyond the readOnlyHint and openWorldHint annotations. It doesn't contradict annotations and provides useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb and resource, and includes essential document types and payment details without redundancy. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and readOnlyHint annotation, the description covers purpose, document types, payment, and the linkage to PDF download. No critical gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, so the schema already documents siren and x_payment. The description adds no extra parameter meaning beyond mentioning payment, which is already covered by the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists official French company documents from the INPI RNE registry, specifying document types (legal deeds, annual accounts) and that it returns document IDs for PDF downloads. This distinguishes it from siblings like download_french_company_document and other French company getters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context—listing INPI RNE documents with payment via x402—and implies pairing with the download tool, but it doesn't explicitly name alternatives or exclusion scenarios. It gives clear usage context without 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.
list_french_company_establishmentsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds valuable behavioral context: it lists SIRETs, includes statuses, originates from the official registry, and is paid (with exact cost). No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary purpose and structured for quick scanning. The payment note is in its own sentence. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and strong annotations, so the description need not explain return values. It covers the what (establishments/SIRET), inclusion (branches/addresses/status), source (official registry), and payment. Minor omission: does not explicitly state the SIREN prerequisite, but that's implied and schema-covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters documented. The description adds meaning by tying the SIREN parameter to 'French company' and by explaining the x402 payment mechanic and cost, which clarifies the x_payment parameter's purpose beyond its schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('List') and a precise resource ('all establishments (SIRET) of a French company'), with details on content (branches, addresses, open/closed status) and source (official French company registry). This clearly distinguishes it from sibling tools like 'list_french_company_documents' or '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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this is for listing establishments of a French company, and mentions the payment requirement, which is a practical 'when' factor. It does not explicitly name alternatives or state exclusions, but the context is strong enough for an AI agent to select it over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_slovak_company_filingsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| ico | Yes | 8-digit Slovak IČO, e.g. 36417475 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description adds valuable context beyond those: the payment requirement (x402, $0.01), CC0 licensing, the official data source, and a detailed explanation of open-world behavior (empty results ≠ no filings). This is exactly the kind of behavioral nuance the description should provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, front-loading the purpose and then listing fields, exclusions, and payment in a logical flow. Every sentence adds necessary information; it's slightly long but not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers return scope, exclusions, payment, and data source, all crucial for correct use. With an output schema present, the description doesn't need to explain return values. It is complete for a listing tool with these complexities, and even explains edge cases like PDF-only filings and sole traders.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described (ico pattern and example, x_payment behavior). The description mentions payment via x402, which complements the x_payment parameter, but doesn't add new meaning beyond what the schema already conveys. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists fiscal years of a Slovak company with structured financial statements decoded from the official RÚZ register, specifying the exact fields returned (closing date, period, filing type, form model, scope, link). It distinguishes itself from sibling get_slovak_company_filing by focusing on listing multiple fiscal years rather than a single filing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use when you need structured Slovak annual accounts data. It explicitly states when data will be absent (PDF-only IFRS filings, sole traders) and that an empty answer does not mean no accounts exist. While it doesn't name alternative tools, the boundaries are sufficiently explicit for an agent to decide when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_uk_company_accountsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| company_number | Yes | Companies House company number, 8 characters incl. leading zeros, e.g. 00095407 or SC123456 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description adds rich behavioral detail: data source limitations, temporal coverage, the meaning of an empty response, and the x402 payment requirement. These details directly help the agent interpret results and invoke appropriately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficiently structured: the first clause states the core purpose and scope, followed by essential caveats and payment info. Every sentence adds necessary operational context with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a list endpoint with an output schema, and the description covers the key operational gotchas: source data coverage, open-world interpretation, payment method, and the specific fields returned. This is complete for an agent to decide when and how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes company_number and x_payment well. The description supplements x_payment with pricing context (via x402, $0.01 in USDC or EURC), which adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists financial years of a UK company's decoded iXBRL accounts, with a specific list of returned fields. This distinguishes it from sibling tools like get_uk_company_accounts, which likely retrieve a single year's filing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this to enumerate available accounts years, and it sets expectations with coverage caveats (~75% e-filed, since 2026-07) and the open-world warning that an empty result does not mean no accounts exist. It does not explicitly name alternative tools for retrieving full filings, but the usage context is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_european_invoice_fileARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Belgian enterprise number (10 digits, KBO/BCE) or Polish NIP (10 digits); dots, spaces and dashes are tolerated | |
| iban | No | IBAN 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 | |
| pays | Yes | Country of the counterparty: BE (Belgium) or PL (Poland). For France use prepare_french_invoice_file. | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the readOnlyHint/openWorldHint annotations by detailing exactly what is checked: official registry identity, VIES VAT verification, Peppol reachability, and the Polish White List declared-account check. It discloses fiscal consequences (loss of deduction, joint liability under art. 117ba), the blocking vs informational nature of reasons, the deterministic verdict structure, Ed25519 signing, provenance[] entries, and the x402 payment requirement. This is rich behavioral context with no contradiction to annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph, but every sentence adds distinct value—usage conditions, jurisdiction-specific features, legal/fiscal implications, verdict format, signing/provenance, and payment. It is front-loaded with the primary use case. The density is justified given the tool's complexity, though a bulleted structure could improve scannability; no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex cross-border financial verification tool, the description covers all necessary context: when to use, what is verified, what is not verified (account existence, holder name), the blocking criteria, output structure (verdict, provenance), signing for auditability, payment method, and legal references. The output schema exists, so the description does not need to enumerate fields, but it still explains the verdict and provenance semantics. This is a complete picture for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has a description. The tool description adds meaningful context beyond the schema: it explains that `iban` is optional but 'is what unlocks the Polish White List account check', that `pays` uses BE/PL with a cross-reference to the French alternative, and that `id` accepts 10-digit Belgian or Polish numbers. While schema already covers formats, the description ties parameters to real-world consequences (e.g., fiscal scope of the IBAN check).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific use case: 'Use when the company you are about to invoice or pay is BELGIAN or POLISH and you must verify the supplier before payment.' It clearly distinguishes from the French sibling by stating 'for France, use prepare_french_invoice_file.' The verb 'prepare' combined with the specific jurisdiction and purpose (verify supplier before payment) leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use guidance is provided: use for Belgian or Polish counterparties requiring supplier verification before payment. It explicitly names the alternative for France (prepare_french_invoice_file) and notes the Polish White List check as unique. It also clarifies that for other countries, the bank leg is only a form check, implying this tool is not for generic IBAN verification (verify_iban_bank exists as a sibling).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_french_einvoicing_recipientARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | 9-digit SIREN of the company to be invoiced (digits only, no spaces); use search_french_companies first if you only have a name | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnlyHint annotation by detailing exact outputs (legal name, VAT number, SIRET establishments, NAF code), the Ed25519-signed response with provenance[], and explicit non-behaviors (never issues, transmits, or routes invoices). It also discloses the payment cost, providing full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded with the primary use case and sibling distinction. Every sentence provides valuable context, including legal mandate dates, return data, auditability, limitations, and pricing. It could be slightly more concise, but the density is justified given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is highly complete for a tool with an output schema. It covers the purpose, legal effective dates, exact return data, signature/provenance mechanism, operational limitations, and payment details. The presence of an output schema means return values need not be re-explained, and the description fills all other contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with clear descriptions for both parameters (siren and x_payment). The description does not add much beyond the schema, though it does mention the x402 payment context and the SIREN requirement implicitly by discussing French companies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to PREPARE a compliant French e-invoice for a company, covering invoice header, VAT number, and addressing. It also explicitly distinguishes itself from the sibling tool prepare_french_invoice_file, which handles the full verify-the-supplier-before-payment verdict.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool vs. prepare_french_invoice_file, including the specific use case of preparation versus payment decision-making. It also clearly states limitations (not accredited PDP, no central directory access) and mentions the x402 payment requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_french_invoice_fileARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| iban | No | IBAN 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 | |
| siren | Yes | 9-digit SIREN of the French counterparty being checked — the customer you will invoice or the supplier you will pay (digits only, no spaces) | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/openWorld annotations by disclosing live VIES checks, IBAN structural validation, closed-list reasons with blocking/informational tags, VIES outage handling, the iban_exemple_documentation caveat, Ed25519 signing, and provenance. It also honestly states what is not verified, aligning with openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but highly information-dense; every sentence introduces a distinct behavioral aspect or constraint. The front-loaded use case and clear topic flow (scenario → outputs → edge cases → auditability → payment) make it navigable despite its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the existence of an output schema, the description still provides substantial extra context: the French e-invoicing mandate dates, live VAT verification, IBAN checks, verdict semantics, handling of VIES outages and sample IBANs, and offline auditability via signature/provenance. It covers operational edge cases and payment requirements, making it complete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Though schema coverage is 100%, the description enriches each parameter: iban's effect and omission result (iban_non_fourni), siren's role as the French counterparty, and x_payment's purpose for payment quoting. This adds operational meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific use case ('invoice or pay a FRENCH company') and enumerates the exact outputs (legal identity, VAT verification, IBAN check, verdict). It clearly differentiates from siblings like prepare_european_invoice_file and verify_iban_bank by focusing on the French agent-side invoice file with a deterministic pret_a_facturer verdict.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('about to invoice or pay', 'onboarding, first invoice, first payment, or bank details that just changed') and gives a clear exclusion ('Not a payee verification'). It also provides contextual regulatory timing, which helps the agent decide in a wider workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prospect_french_companiesARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| naf | No | NAF/APE code or prefix, e.g. 62 or 62.01Z | |
| rge | No | true = active RGE environmental certification | |
| page | No | Page number (one payment per page) | |
| age_max | No | Maximum company age in years | |
| age_min | No | Minimum company age in years | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| egapro_min | No | Minimum gender-equality index (0-100) | |
| code_postal | No | Postal-code prefix (2-5 digits), exclusive with departement | |
| departement | No | French departement: 75, 2A, 971… | |
| effectif_max | No | Maximum workforce (number of employees) | |
| effectif_min | No | Minimum workforce (number of employees) | |
| forme_juridique | No | INSEE legal-category prefix, e.g. 54 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds important behavioral context beyond annotations: 'Returns up to 100 active companies per page; each page is one x402 payment ($0.02 in USDC or EURC).' This discloses cost and pagination, which is valuable for an agent deciding whether to invoke 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no fluff. It front-loads the tool's purpose, then efficiently lists filter types, pagination limit, and payment cost. Every sentence earns its place, and the structure makes key facts (cost, scale, filters) easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 12 optional parameters, the description covers the essentials: purpose, registry scale, filter categories, page limit, and cost. It appropriately omits return-value details because an output schema exists. Minor gap: it doesn't explicitly explain the payment flow (quote vs. signed payment), but the x_payment parameter description covers that, so overall it is near-complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 12 parameters have descriptions), so the baseline is 3. The description lists filter categories ('NAF activity code, departement/postal code, legal form, workforce, age, RGE certification, gender-equality index') that map to parameters, reinforcing their use, but it adds no new meaning beyond the schema. Thus a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: 'French B2B prospecting and lead generation — build company lists over the full French registry (29.8M companies).' It distinguishes from siblings like get_french_company_profile (single-company lookup) and search_french_companies by emphasizing filterable list building for prospecting, not simple search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it's for building company lists over the full registry, with filtering options and a per-page payment. This implies a batch/prospecting use case, but it does not explicitly name alternatives or state when not to use it (e.g., if a simple search suffices), so it falls 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.
renew_surveillance_watchAInspect
Renew a watchlist for 30 more days (possible until 7 days after expiry). The cibles parameter must repeat the exact watched targets — the quote is computed from it. Paid via x402 ($0.05 per target).
| Name | Required | Description | Default |
|---|---|---|---|
| cibles | Yes | The exact watched targets | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| surveillance_id | Yes | Watchlist capability token returned at creation (sw_…) |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations: the 30-day extension, the 7-day grace period after expiry, the requirement that 'cibles' must repeat exact watched targets because the quote is computed from it, and the cost of $0.05 per target via x402. These are non-obvious, operationally important details not captured in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action ('Renew a watchlist for 30 more days'), and every clause earns its place: the expiry window, the exact-target requirement, and the payment model. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (payment, time constraints, exact matching requirement) and the presence of an output schema, the description covers all critical operational aspects. It explains the renewal flow, the quote mechanism, and the cost, making it self-sufficient for an agent to understand when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already describes all three parameters (100% coverage), the description adds crucial semantic meaning: the 'cibles' parameter must repeat the exact watched targets for quote calculation. It also contextualizes x_payment with the payment flow. This goes beyond the schema's basic field descriptions, though the relationship between x_payment and quote generation could be even more explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Renew a watchlist for 30 more days'. It uses a specific verb (renew) and resource (watchlist), and distinguishes itself from siblings like create_surveillance_watch and stop_surveillance_watch. The renewal window and payment detail further clarify the unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use context: renewing an existing watchlist, with the time constraint 'possible until 7 days after expiry'. It does not explicitly mention alternatives (e.g., 'use create_surveillance_watch for new watchlists'), but the sibling tool names and the verb 'renew' make the intended usage obvious enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_sanctions_listsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Person or company name to screen | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| birth_year | No | Optional birth year (YYYY) to refine person matches |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint and openWorldHint, but the description goes well beyond that: it explains the fuzzy-match nature with a confidence score (never a bare yes/no), the per-list metadata (entry count, publication date and its meaning), and the payment mechanism (x402, $0.02). This adds significant behavioral context without contradicting 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the most critical usage guidance. Every sentence adds unique value: usage timing, what the tool does, the fuzzy-match output, list metadata, and payment. It is concise yet information-dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the key aspects for an agent to invoke the tool correctly: when to use it, what it returns (fuzzy matches with confidence), the data sources (6 lists), and payment requirements. Given the existence of an output schema, it does not need to detail return fields, and the description fills the contextual gaps beyond the schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter (name, x_payment, birth_year) is already described in the schema. The description adds no additional parameter-specific semantics beyond what the schema provides. It indirectly mentions the 'name' parameter but doesn't enrich the meaning of x_payment or birth_year beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool screens names against 6 official sanctions lists for AML purposes, with a specific verb ('screen') and resource ('sanctions lists'). It explicitly mentions the use case (before payments/contracts/onboarding) and distinguishes itself from siblings by focusing on sanctions screening rather than general company data or regulatory alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance ('Use BEFORE any payment, contract or onboarding involving the name'), but does not mention when not to use it or name specific alternatives. The context is clear enough that an AI agent can differentiate from sibling tools like check_french_regulator_alerts, though explicit exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_eu_financial_authorisationsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Entity name or 20-character LEI | |
| pays | No | Optional ISO-3166 alpha-2 home-member-state filter (FR, DE...) | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint: true, openWorldHint: true), the description adds important behavioral context: the tool is paid via x402 ($0.01), the data source is ESMA and freely available at origin, and the returned fields are listed (authorisation status, home/host member states, competent authority, dates). It does not contradict annotations and provides meaningful operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core purpose, and every sentence contributes value: scope, search keys, use case, data source, and payment. It avoids redundancy with the schema and fits essential context into a compact paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 params, output schema present, read-only), the description covers the key aspects: what data is returned, how to use it, and the payment requirement. It could mention pagination or result limits, but the provided use case and data scope make it largely complete for an agent to select and invoke the tool appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%—all three parameters have detailed descriptions in the schema itself. The description adds little beyond the schema: it repeats that q is a name or LEI and mentions the fee amount. Since the schema already documents parameter semantics thoroughly, a baseline of 3 is appropriate; the description does not materially enhance understanding of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('Search EU financial authorisations in ESMA Registers') and details the scope (~14,000 MiFID-regulated entities, investment firms, UCITS/AIFM managers) and search keys (name or LEI). It clearly distinguishes itself from sibling tools like search_european_companies or get_company_licences by focusing specifically on 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit use case: 'Use to verify that a financial firm is actually regulated somewhere in the EU.' This is clear context for when the tool should be applied. It does not explicitly state when not to use it or name alternative tools, but given the niche scope, the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_european_companiesARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Company name | |
| pays | No | Optional ISO-3166 alpha-2 country filter, e.g. NO, EE, LV | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses critical behavioral traits: it is paid via x402 at a specific cost ($0.003 in USDC or EURC), each match includes a score_confiance (0-1) confidence score, and coverage varies by country ('local' vs 'live', 'when enabled'). It also reveals the Spanish hoja registral linkage, which is important for downstream actions. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but information-rich. It front-loads the core purpose, then layers coverage details, confidence score, Spanish hoja usage, and payment. Each clause serves a purpose, though the country list in parentheses is somewhat long. Overall, it is well-structured and appropriately sized for a tool with this complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters, an output schema, and EU-wide scope. The description covers the essential context: unified schema, country coverage, match confidence, Spanish hoja for a sibling tool, and payment model. It does not explain the 'local' vs 'live' distinction in detail, which could leave some ambiguity, but overall the description is sufficiently complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters (q, pays, x_payment) are already well-documented in the input schema. The tool description does not add additional parameter semantics beyond what the schema provides. The mention of x402 payment in the description reinforces x_payment's purpose but is already covered in the schema's description. Thus, the description adds minimal value here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'European company search — company lookup by name across official European company registers in one unified schema.' This distinguishes it from country-specific siblings like search_french_companies and from profile retrieval tools like get_european_company_profile. The specific verb 'search' and resource 'company registers' make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by listing covered countries (e.g., Norway, Spain, Finland) and noting Denmark/UK availability. It also explicitly mentions a downstream use case: Spanish matches return the hoja registral for get_spanish_company_acts. However, it does not explicitly state when not to use this tool (e.g., for French companies, use search_french_companies), so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_french_companiesARead-onlyInspect
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). Paid via x402 ($0.001 in USDC or EURC).
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Company name or 9-digit SIREN | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses several behavioral traits: it returns the top 10 matches, includes a score_confiance (0-1) for homonym disambiguation, uses official registry data sources, and is paid via x402 at a specific price. These details help the agent understand output limits, match confidence, and cost implications, adding significant value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the first sentence front-loading the high-priority usage instruction ('Use FIRST'). The second sentence packs essential details (data sources, top 10 matches, confidence score, payment) each earning its place without redundancy. It is compact, well-organized, and easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the description covers key aspects: when to use it, what it searches, how results are ranked (top 10 with confidence), and the payment requirement. An output schema exists, so detailed return fields are already structured. The description omits nothing critical for an agent to decide when 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage, describing 'q' as 'Company name or 9-digit SIREN' and 'x_payment' as an optional signed x402 header. The description echoes the 'name or SIREN' aspect but does not add new parameter-level meaning; the cost detail is more relevant to behavioral transparency. Since the schema covers both parameters thoroughly, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs French company search and lookup by name or SIREN in official registries, with a specific verb ('search') and resource ('French companies'). It distinguishes from siblings by explicitly saying to use it FIRST when a French company is mentioned by name without an identifier, setting it apart from other French company tools that require identifiers or cover broader geographies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit usage trigger: 'Use FIRST whenever a French company is mentioned by NAME without an identifier.' This tells when to use the tool, and implies not to use it when an identifier is already available, though it does not name specific alternative tools (e.g., get_french_company_profile). This is strong guidance but lacks explicit exclusions or named alternatives for a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_french_company_directorsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| nom | Yes | Director surname to search | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true, but the description adds substantial behavioral context beyond these: data limits ('Person data limited to surname, first names, role and birth year'), homonym handling ('Homonyms are not disambiguated; common names are capped'), and the payment requirement ('Paid via x402 ($0.02 in USDC or EURC)'). These disclose real-world constraints and caveats that are not captured by structured fields, earning full credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and informative, with a main clause explaining the core function followed by crucial limitations and payment details. It is appropriately sized for the tool's complexity, though the first sentence is long and dashboard-style. Each sentence earns its place without redundancy, meriting a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides comprehensive context: the search mechanism (reverse/surname), output fields (company SIREN, name, role), data limitations, homonym behavior, capping, payment cost, and intended use case. An output schema exists, so detailed return values are not needed in the description. For a 2-parameter tool with a clear safety profile and output schema, this description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage: 'nom' is described as 'Director surname to search' and 'x_payment' as 'Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.' The description reinforces the meaning of 'nom' by explaining it is a surname-based people search, but does not add new parameter details beyond the schema. Since schema coverage is high, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's primary function: '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.' This specifies the verb ('search'), resource ('company directors and officers'), and output (companies with SIREN, name, role), distinguishing it from siblings like search_french_companies (company search) 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'for due diligence and network mapping.' It also identifies important constraints and limitations: 'Person data limited to surname, first names, role and birth year. Homonyms are not disambiguated; common names are capped.' While it doesn't explicitly name alternative tools or say 'when not to use,' the described limitations imply caution for common names, and the use case helps the agent decide when to invoke it. The context is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_surveillance_watchADestructiveIdempotentInspect
Stop a watchlist and purge its data immediately (free).
| Name | Required | Description | Default |
|---|---|---|---|
| surveillance_id | Yes | Watchlist capability token returned at creation (sw_…) |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
validate_eu_vat_numberARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| vat_number | Yes | Full VAT number with its 2-letter country prefix and no spaces, e.g. FR27552032534 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already give readOnlyHint and openWorldHint, but the description adds substantial behavior: member-state outages reported as 'unavailable, never as a false invalid', Ed25519-signed responses with provenance[], valid/invalid/unavailable status, name/address availability, and a VIES consultation identifier. This far exceeds annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and every sentence carries relevant information, but the description is somewhat lengthy with legal mandate dates and payment details. Slight redundancy exists between 'confirm a counterparty's intra-community VAT number' and 'Validates any EU intra-community VAT number'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema and existing output schema, the description is complete: it covers valid/invalid/unavailable responses, name/address publication, consultation identifier, outage semantics, signature/provenance, payment flow, and regulatory context. No important aspect is left ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema fully covers both parameters (100%), so baseline is 3. Description adds the EU intra-community constraint on vat_number and the $0.003 x402 payment cost, giving business meaning beyond the schema's pattern and header-value descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with 'VAT number check against VIES' — a specific verb plus resource. It explicitly scopes the tool to 'the tax half of verifying a supplier before payment' and distinguishes it from broader company verification tools by detailing exactly what it confirms and returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: 'use when you only need the tax half of verifying a supplier before payment' and references French/Belgian e-invoicing mandates. It doesn't name alternative tools or explicit exclusions, but the conditional guidance is strong enough to direct appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_iban_bankARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| iban | Yes | IBAN 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 | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. |
| quote | No | The 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`. |
| resultat | No | The 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_required | Yes | True 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`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the readOnlyHint/openWorldHint annotations by explaining exactly what is and isn't verified: account holder name is never checked, account existence is not tested, and 'false is not proof of the contrary'. It also discloses the Ed25519 signing, provenance[], and register sources. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but information-dense. Each clause earns its place: purpose, when-to-use, check details, critical limitations, output features, alternative, and pricing. It is front-loaded with the core purpose and structured logically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description is remarkably complete. It covers supported countries/registers, output fields (valide, nature_du_controle, non_verifie), limitations, payment method, and a cross-reference to an alternative. The presence of an output schema fills return-value details, so no further description is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, already documenting the IBAN format and the x_payment payment flow. The description adds the price and detailed register list, but those are contextual rather than essential parameter semantics. Baseline 3 applies since the schema performs the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 distinguishes itself from the many sibling company/VAT tools, and even names the alternative tool for French invoicing. The purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage context is given: 'use when you are about to pay a NEW or CHANGED IBAN, or when onboarding a supplier's bank details'. It also states when NOT to use it ('Explicitly NOT a payee verification') and points to a concrete alternative: 'call prepare_french_invoice_file instead'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Flicense-qualityCmaintenanceEnables 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.

Sirenicofficial
Alicense-qualityCmaintenanceProvides 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- AlicenseAqualityCmaintenanceStructured business intelligence for AI agents. 5.5M verified entities across 34 countries, 40.3M BORME mercantile acts, EU VAT validation, GLEIF, healthcare registries. 20 tools.61MIT
- Alicense-qualityBmaintenanceCompany data for Spain, France, the UK, Ireland and Poland — registry, KYB and sanctions.99MIT