Skip to main content
Glama

Supplier Payment Decision Agent (Ireland)

Server Details

Free daily IBAN, VIES VAT and CRO checks; paid invoice decisions. x402. Never moves invoice money.

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
91.1% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.4/5.0

Scored across 8 tools

Disambiguation3/5

The four check_* tools (company, IBAN, VAT, three-way match) target clearly distinct resources, but verify_supplier_payment and decide_supplier_payment genuinely overlap: decide runs every gate verify runs plus more, so an agent must read long descriptions to choose correctly. get_verification vs verify_supplier_payment is also a create/read pair that could be confused by an agent that skims. The descriptions do heavy cross-referencing to compensate, but the boundary is conceptual rather than structural.

Naming Consistency4/5

All names are snake_case and verb-first (check_*, verify_*, decide_*, get_*, register_*), which is predictable. Minor friction: check_/verify_ are near-synonymous verbs used for different layers of the same validation domain, so the verb prefix alone does not signal 'atomic check' vs 'composite reconciliation'.

Tool Count5/5

Eight tools is well-scoped for a payment-decision server: four atomic checks, one composite identity reconciliation, one flagship decision, plus key registration and result retrieval. Each tool maps to a distinct step in the workflow rather than being a redundant variant.

Completeness4/5

The surface covers the full lifecycle for the stated purpose: atomic validations, composite verification, signed decision, key registration, and result retrieval. Gaps remain: decisions produced by decide_supplier_payment cannot be retrieved (explicitly out of scope for get_verification), there is no listing/audit query for past verifications, and key revocation is handled only implicitly via new key_id registration.

Available Tools

8 tools
check_companyAInspect

Looks up an Irish company by CRO number in the Companies Registration Office open data. PASSED only if the company status is NORMAL; dissolved, liquidated or unknown companies FAIL. Returns the registered name. Use a CRO company number, not a company name or VAT number. Source uncertainty returns UNAVAILABLE, not a pass. Use check_vat for VIES registration, verify_supplier_payment for claimed-name/identity reconciliation, or decide_supplier_payment for a complete signed invoice decision. No invoice is approved here. Free: 1 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.01 USDC with explicit approval.

NameRequiredDescriptionDefault
requestYesCheck an Irish company status (CRO): supply this structured object using the nested schema, not a JSON-encoded string.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it defines PASSED only for NORMAL status, states dissolved/liquidated/unknown FAIL, and that source uncertainty returns UNAVAILABLE rather than a pass. It also discloses quota and cost behavior — 1 free attempt per UTC day per IP shared across REST/MCP with failures counted, then 0.01 USDC with explicit approval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and the PASS/FAIL rule, then alternatives, then pricing. Every sentence carries information, though the pricing/quota sentence and the alternative list make it denser than ideal for a single-parameter lookup.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple lookup: it covers the input requirement, the three possible outcome states, the returned value (registered name), failure semantics, and cost/quota. No output schema exists, but the description already explains what comes back, so nothing material is missing.

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

Parameters4/5

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

Schema coverage is 100% and the single parameter is already well documented in the schema, so the baseline is met. The description adds selection-level meaning by warning that this is a CRO number, not a company name or VAT number, reinforcing the schema's negative guidance without adding new format rules.

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

Purpose5/5

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

Names a specific verb and resource: looks up an Irish company by CRO number in the Companies Registration Office open data, and states the outcome (registered name). It also implicitly distinguishes itself from name/VAT lookups, so an agent can tell it apart from check_vat and the supplier-payment siblings.

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

Usage Guidelines5/5

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

Explicitly says to supply a CRO number rather than a company name or VAT number, and routes the agent to named alternatives with their conditions: check_vat for VIES, verify_supplier_payment for identity reconciliation, decide_supplier_payment for a full invoice decision. It also states the boundary 'No invoice is approved here.'

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

check_ibanAInspect

Cheapest call. Validates an IBAN (ISO 13616 mod-97 checksum, length and country) before you pay it. Returns PASSED or FAILED with a reason code. Irish (IE) IBANs pass by default. Use only for bank-account identifier syntax/country checks, not account ownership, bank Confirmation of Payee or supplier identity. Use check_vat for VAT registration, check_company for CRO status, and decide_supplier_payment for the complete signed invoice decision. No bank transfer occurs. Free: 1 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.005 USDC with explicit approval.

NameRequiredDescriptionDefault
requestYesValidate an IBAN: supply this structured object using the nested schema, not a JSON-encoded string.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses the return format, the Irish-IBAN default-pass quirk, that no bank transfer occurs, and the exact cost/rate-limit model (1 free attempt per UTC day per IP, shared REST/MCP, failures count, then 0.005 USDC with explicit approval). These are precisely the side-effect and billing facts an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the key differentiator ("Cheapest call") and the core action, then packs return format, exclusions, alternatives, side effects, and pricing into compact sentences. Every sentence supplies information the agent would otherwise lack, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description supplies everything needed: what is validated, what is returned, what is explicitly out of scope, which sibling to use instead, and the cost/rate-limit behavior. No material gap remains for a single-parameter validation tool.

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

Parameters3/5

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

Only one parameter and schema coverage is 100%, so the schema already documents normalization of spaces/lowercase and the checksum-only scope. The description reinforces the same scope but adds no new syntax or format detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ("Validates an IBAN") plus the exact checks performed (ISO 13616 mod-97 checksum, length, country) and the return shape (PASSED/FAILED with reason code). It also names what it is not (ownership, Confirmation of Payee, supplier identity), so an agent can separate it from every sibling without opening a schema.

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

Usage Guidelines5/5

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

Explicitly gives the when-to-use ("before you pay it"), the when-not-to-use ("not account ownership, bank Confirmation of Payee or supplier identity"), and routes each adjacent need to the right alternative: check_vat, check_company, decide_supplier_payment. Nothing is left to inference.

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

check_three_way_matchAInspect

Checks that a purchase order, goods receipt and invoice agree on supplier, currency, amount, line items, unit prices and quantities received. Stateless; you attach the documents. Checks caller-supplied documents, not independently verified ERP records. Returns PASSED or FAILED and a reason code; no CRO/VIES lookup, signature validation or bank transfer is performed by this tool. Use decide_supplier_payment when document matching must be combined with supplier identity, VAT, payee and signature checks. Requires an explicitly approved service fee.

NameRequiredDescriptionDefault
requestYes3-way match PO, goods receipt and invoice: supply this structured object using the nested schema, not a JSON-encoded string.

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers: statelessness, that it operates on caller-supplied documents rather than ERP records, the return contract (PASSED/FAILED plus reason code), and explicit exclusions (no CRO/VIES lookup, no signature validation, no bank transfer). This is exactly the behavioral context an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core comparison, then layered with scope exclusions and routing guidance; every sentence adds distinct value and none is redundant. It is dense but not padded, stopping just short of the tightest possible phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description states the return shape (PASSED/FAILED plus reason code) and clearly bounds scope (no CRO/VIES, no signature validation, no transfer) and preconditions (approved fee). Enough for an agent to invoke correctly without further clarification.

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

Parameters3/5

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

Schema description coverage is 100% and the single nested request parameter is fully documented in the schema, including per-field descriptions for supplier_cro_number, invoice, PO and goods receipt. The description adds only the general framing that the caller attaches the documents and that the CRO number is not looked up, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (checks) and resource (PO, goods receipt, invoice) and enumerates exactly what is compared: supplier, currency, amount, line items, unit prices, quantities received. It also names the sibling decide_supplier_payment, so the agent can distinguish it without opening any schema.

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

Usage Guidelines5/5

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

Explicitly routes to decide_supplier_payment 'when document matching must be combined with supplier identity, VAT, payee and signature checks,' giving a concrete selection condition. It also states the operational precondition that an explicitly approved service fee is required.

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

check_vatAInspect

Validates the Irish VAT number format and check letter, then confirms registration live with EU VIES. Returns PASSED, FAILED or UNAVAILABLE (VIES outage) with a reason code and available consultation/audit evidence. Use for one VAT number, not company-name matching or invoice approval. check_company checks CRO status; verify_supplier_payment reconciles claimed supplier identity and VAT; decide_supplier_payment runs the full signed invoice workflow. An outage is uncertainty, not invalid registration; do not auto-pay to retry. Free: 1 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.01 USDC with explicit approval.

NameRequiredDescriptionDefault
requestYesCheck an Irish VAT number: supply this structured object using the nested schema, not a JSON-encoded string.

TDQS

A4.7/5.0
Behavior5/5

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

No annotations are supplied, so the description carries the full load and does so: it discloses the three possible outcomes (PASSED/FAILED/UNAVAILABLE), the accompanying reason code and evidence, the paid/free cost model with a per-IP daily quota shared across REST and MCP, that failed attempts consume quota, and that payment requires explicit approval. It also states the correct interpretation of an outage, which prevents a costly false negative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and return values before routing, outage interpretation, and cost. Despite its length, each sentence carries distinct operational information (outcomes, alternatives, retry prohibition, quota, pricing) with no restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description enumerates the return statuses, the reason code, and the evidence fields, so an agent knows what comes back. Combined with quota, pricing, and failure-interpretation notes, nothing needed to call or interpret this tool is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the single vat_number parameter is already documented with the IE-prefix, whitespace and lowercase normalization rules. The description adds nothing about the parameter beyond the schema, so this sits at the baseline for fully documented schemas.

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

Purpose5/5

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

States a specific verb chain (validates format and check letter, then confirms registration live with EU VIES) and the exact resource, which is more than the bare name conveys. It also distinguishes itself from check_company, verify_supplier_payment and decide_supplier_payment by naming what each of those does instead.

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

Usage Guidelines5/5

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

Explicit scope boundary for use ('for one VAT number, not company-name matching or invoice approval') plus an explicit routing table to the three sibling alternatives. It also gives situational guidance for the outage case ('an outage is uncertainty, not invalid registration; do not auto-pay to retry'), which is exactly the kind of when-not guidance that prevents agent mistakes.

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

decide_supplier_paymentAInspect

Flagship. Independent third-party decision for an Irish supplier invoice. Runs five gates (CRO status NORMAL, EU VIES VAT, payee-name and IBAN check, PO/GRN/invoice 3-way match, RSA signature) and returns exactly one of EXECUTE_PAYMENT, REJECT_PAYMENT or FLAG_FOR_HUMAN_REVIEW with per-check results, reason codes and a confidence score. The legacy CONFIRMATION_OF_PAYEE result means a payee-name comparison with the CRO legal name and IBAN validation, not bank Confirmation of Payee. ERP_THREE_WAY_MATCH compares caller-supplied documents, not independently verified ERP records. Decides only; never moves money. Register a signing key first via /v1/agent-keys. Use this for the complete signed invoice/PO/GRN workflow, not verify_supplier_payment's separate identity/VAT contract or get_verification retrieval. Provider uncertainty requires review, not execution; retain independent payment approval. Supply a stable transaction_id for retries and never automatically repay.

NameRequiredDescriptionDefault
payment_requestYesDecide: pay this supplier invoice or not: supply this structured object using the nested schema, not a JSON-encoded string.

TDQS

A4.8/5.0
Behavior5/5

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

No annotations exist, so the description carries the full burden and does so: it states it decides only and never moves money, that retries require a stable transaction_id and must not trigger repayment, that it returns per-check results with reason codes and a confidence score, and that independent payment approval must be retained. It also proactively disambiguates two misleading result labels (CONFIRMATION_OF_PAYEE and ERP_THREE_WAY_MATCH) that an agent would otherwise misinterpret.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and outcome set are front-loaded, and nearly every sentence contributes a distinct constraint (gates, outcome enum, label caveats, key prerequisite, sibling routing, retry discipline). It is dense rather than padded, though the run-on sequence of caveats makes it a wall of text that could be split into clearer blocks.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly compensates by describing the return shape (one of three verdicts, per-check results, reason codes, confidence score). Combined with the prerequisite, retry, and escalation guidance, an agent has everything needed to invoke and interpret this tool correctly.

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

Parameters4/5

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

Schema description coverage is 100% with a single top-level parameter, so the baseline is 3. The description still adds real semantics the schema does not: transaction_id must be stable across retries and changed content under the same ID conflicts, and the signature requires a key registered beforehand. It stops short of detailing the nested supplier/invoice fields, which the schema already covers.

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

Purpose5/5

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

The description states a specific verb+resource (an independent third-party payment decision on an Irish supplier invoice) and enumerates the five gates it runs and the exact three outcomes it can return. It explicitly distinguishes itself from verify_supplier_payment and get_verification, so an agent can route between them without opening a schema.

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

Usage Guidelines5/5

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

It names the conditions for use (complete signed invoice/PO/GRN workflow), the prerequisite (register a signing key first via /v1/agent-keys), the alternatives to avoid (verify_supplier_payment's identity/VAT contract, get_verification retrieval), and the escalation rule (provider uncertainty requires review, not execution). Both when-to-use and when-not-to-use are explicit.

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

get_verificationAInspect

Read an existing identity/VAT verification created by verify_supplier_payment (POST /v1/verifications). Supply its returned verification_id UUID, not a request_id, transaction_id, invoice number or A2A task ID. Returns the stored RELEASE/REVIEW/BLOCK/INSUFFICIENT_EVIDENCE result without rerunning registry checks. The same authenticated tenant must own the result: use the original paying wallet for x402, or an authorized bearer token with verification.read scope. Missing or other-tenant IDs return not found. This does not retrieve decide_supplier_payment decisions and does not create a verification. Retrieval has its own service fee; inspect terms and obtain spending approval before paying. Do not retry payment automatically or infer invoice-payment authorization from a stored advisory result.

NameRequiredDescriptionDefault
verification_idYesUUID returned as verification_id by verify_supplier_payment or POST /v1/verifications. Use a result owned by the same tenant/original paying wallet; do not supply request_id, transaction_id, an invoice number or an A2A task ID.

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: it explains that results are stored and registry checks are not rerun, states the auth model (original paying wallet for x402, or bearer token with verification.read scope), discloses not-found behavior for missing/other-tenant IDs, flags a retrieval service fee requiring spending approval, and warns against automatic payment retries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and the required identifier type, then layers constraints and cautions. Every sentence is informative, though the cautionary tail (fee, retry, authorization inference) makes the paragraph dense enough that trimming some redundancy with the schema would help.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations, so the description must cover behavior and returns; it does both by enumerating the stored result states (RELEASE/REVIEW/BLOCK/INSUFFICIENT_EVIDENCE) and the ownership/auth requirements. Nothing needed to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents the verification_id UUID and the IDs not to supply. The description largely restates this (tenant/wallet ownership, wrong-ID types), adding reinforcement rather than new syntax or format detail, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource (read an existing identity/VAT verification) and anchors it to its producer (verify_supplier_payment / POST /v1/verifications). It explicitly carves itself out from siblings, noting it neither reruns registry checks, retrieves decide_supplier_payment decisions, nor creates a verification.

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

Usage Guidelines5/5

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

Gives explicit when-to-use conditions and exclusions: supply the returned verification_id UUID, not request_id, transaction_id, invoice number, or A2A task ID, and the ID must belong to the same tenant. It names the alternative actions (decide_supplier_payment, verify_supplier_payment) it is not a substitute for.

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

register_signing_keyAInspect

Registers an RSA public key (2048-bit or larger, PEM) used to sign payment-decision requests. Keys are immutable per tenant; rotate by registering a new key_id. Returns key_id and registered=true. Use before decide_supplier_payment and use the same tenant/paying wallet for registration and decision. This is not a supplier check, API-key creation or payment authorization. Keep the RSA private key local; a conflicting existing key_id returns a conflict. Inspect and approve the registration fee before calling.

NameRequiredDescriptionDefault
key_idYesCaller-chosen RSA public-key identifier, unique within your tenant. Reuse it in signature.key_id; rotate with a new ID.
public_key_pemYesPEM-encoded RSA public key, at least 2048 bits. Never send a private key, wallet key or certificate.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and mostly delivers: immutability per tenant, rotation via new key_id, conflict on duplicate key_id, private key must stay local, and the fee-approval prerequisite. It omits auth/permission scope and any rate or latency expectations, so it falls just short of exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then constraints, then prerequisites; every sentence conveys actionable info. Dense but not padded, though the trailing fee-approval sentence reads as an afterthought.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description compensates by naming the return values (key_id, registered=true) and covering mutability, rotation, conflicts, and call prerequisites. Adequate for a 2-param registration tool, though it lacks authorization/permission context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents key_id uniqueness/rotation and PEM/key-size rules; the description largely echoes those rather than adding new parameter-level detail. Baseline 3 applies 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.

Purpose5/5

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

States a specific verb and resource ('Registers an RSA public key ... used to sign payment-decision requests') with concrete constraints (2048-bit+, PEM). It explicitly distinguishes itself from siblings like check_* tools and payment authorization, so an agent can route correctly.

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

Usage Guidelines5/5

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

Gives explicit sequencing ('Use before decide_supplier_payment'), a consistency requirement ('same tenant/paying wallet for registration and decision'), negative boundaries ('not a supplier check, API-key creation or payment authorization'), and a prerequisite (approve the registration fee first).

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

verify_supplier_paymentAInspect

Use for supplier identity and VAT reconciliation, not the full signed five-gate invoice decision. Reconciles the claimed legal name, company registration number and VAT number against the Irish Companies Registration Office (IE) and the EU VIES VAT service, and returns an advisory RELEASE, REVIEW, BLOCK or INSUFFICIENT_EVIDENCE decision with per-check results and reason codes plus verification_id. Use decide_supplier_payment for the signed invoice/PO/GRN workflow, individual check tools for one check, and get_verification only to retrieve this stored result. This creates a verification and may call external sources; it never executes or authorises a bank payment. Requires explicit x402 service-fee approval or an authorized bearer token; do not automatically retry paid calls.

NameRequiredDescriptionDefault
callbackNo
evidenceNo
metadataNo
supplierYesClaimed supplier identity and Irish identifiers to reconcile with CRO/VIES; not the signed invoice-decision supplier object.
policy_idYesVerification policy identifier; always eu-b2b-payment-v1.
request_idYesCaller-generated unique request UUID used for idempotency. This is not the returned verification_id used for retrieval.
transactionNo
requested_atNo
schema_versionYesRequest schema version; always the literal string 1.0.
customer_assertionsNo
payment_destinationNo

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: it discloses that it creates a verification, may call external sources, never executes or authorises a bank payment, requires x402 service-fee approval or an authorized bearer token, and must not be auto-retried because it is paid. It also describes the advisory decision values and per-check return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, front-loaded with the primary use case and routing guidance, and each clause earns its place by covering side effects, auth, and retry policy. It is appropriately sized for a complex paid tool, though the run-on construction is slightly heavy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, paid, no-annotation tool with no output schema, the description covers the return decision set, side effects, auth, and sibling routing well. The remaining gap is the purpose of the optional transaction/evidence/payment-destination parameters, which the low schema coverage does not fill.

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

Parameters3/5

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

Schema description coverage is only 36%, so the description should compensate, and it partly does by naming the three supplier identity fields being reconciled. However, the majority of the 11 parameters (transaction, evidence, customer_assertions, payment_destination, callback, metadata) are not explained in the description, leaving a meaningful gap.

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

Purpose5/5

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

States a specific verb (reconciles), the exact resources (claimed legal name, company registration number, VAT number), and the authoritative sources (Irish CRO and EU VIES). It immediately distinguishes itself from the signed invoice decision, so an agent can tell it apart from decide_supplier_payment without opening a schema.

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

Usage Guidelines5/5

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

Explicitly says when to use it ('supplier identity and VAT reconciliation') and when not ('not the full signed five-gate invoice decision'), then names the alternatives: decide_supplier_payment for the signed workflow, the individual check tools for a single check, and get_verification only for retrieval. Nothing is left to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updates
    • Changedcheck_company2 fields changed
      • changedInput schema / $defs / CompanyCheckRequest / properties / cro_number / description
        Previous value: -"Irish CRO company number."New value: +"Irish Companies Registration Office company number as a string. Preserve leading zeros; do not supply a name, VAT number or foreign registry ID."
      • addedInput schema / properties / request / description
        Added value: +"Check an Irish company status (CRO): supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedcheck_iban3 fields changed
      • changedInput schema / $defs / IbanCheckRequest / properties / iban / description
        Previous value: -"IBAN to validate (spaces allowed)."New value: +"IBAN to validate; spaces and lowercase are normalized. Checks checksum/length/country only, not account ownership."
      • addedInput schema / $defs / IbanCheckRequest / properties / iban / examples
        Added value: +[
        +  "IE29AIBK93115212345678"
        +]
      • addedInput schema / properties / request / description
        Added value: +"Validate an IBAN: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedcheck_three_way_match8 fields changed
      • addedInput schema / $defs / LineItem / properties / quantity / description
        Added value: +"Positive ordered or invoiced quantity; send an exact decimal string."
      • addedInput schema / $defs / LineItem / properties / sku / description
        Added value: +"Item identifier used consistently across invoice, PO and receipt."
      • addedInput schema / $defs / LineItem / properties / unit_price / description
        Added value: +"Nonnegative unit price in the document currency; send an exact decimal string."
      • addedInput schema / $defs / ThreeWayMatchRequest / properties / goods_receipt / description
        Added value: +"Goods receipt linked to the same PO; supply received SKU quantities and supplier CRO number."
      • addedInput schema / $defs / ThreeWayMatchRequest / properties / invoice / description
        Added value: +"Invoice document fields, including reference numbers, currency, amount, payee name and line items."
      • addedInput schema / $defs / ThreeWayMatchRequest / properties / purchase_order / description
        Added value: +"Purchase order to compare with the invoice; supply the expected supplier, currency, amount and ordered items."
      • addedInput schema / $defs / ThreeWayMatchRequest / properties / supplier_cro_number / description
        Added value: +"Expected supplier CRO number to match against the supplied PO and goods receipt; not looked up in CRO by this tool."
      • addedInput schema / properties / request / description
        Added value: +"3-way match PO, goods receipt and invoice: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedcheck_vat2 fields changed
      • changedInput schema / $defs / VatCheckRequest / properties / vat_number / description
        Previous value: -"Irish VAT number, with or without the IE prefix."New value: +"Irish VAT number, with or without IE prefix; spaces and lowercase are normalized. Not a CRO number or company name."
      • addedInput schema / properties / request / description
        Added value: +"Check an Irish VAT number: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changeddecide_supplier_payment13 fields changed
      • addedInput schema / $defs / LineItem / properties / quantity / description
        Added value: +"Positive ordered or invoiced quantity; send an exact decimal string."
      • addedInput schema / $defs / LineItem / properties / sku / description
        Added value: +"Item identifier used consistently across invoice, PO and receipt."
      • addedInput schema / $defs / LineItem / properties / unit_price / description
        Added value: +"Nonnegative unit price in the document currency; send an exact decimal string."
      • addedInput schema / $defs / PaymentRequest / properties / goods_receipt / description
        Added value: +"Caller-supplied goods receipt with quantities received against the same PO."
      • addedInput schema / $defs / PaymentRequest / properties / invoice / description
        Added value: +"Invoice being reviewed, including payee name, amount, currency, PO/GRN references and line items."
      • addedInput schema / $defs / PaymentRequest / properties / purchase_order / description
        Added value: +"Caller-supplied purchase order to compare with the invoice; no ERP lookup is performed."
      • addedInput schema / $defs / PaymentRequest / properties / signature / description
        Added value: +"RSA-PSS SHA-256 signature of the normalized canonical request without signature, using a previously registered public-key ID in the same tenant."
      • addedInput schema / $defs / PaymentRequest / properties / supplier / description
        Added value: +"Supplier CRO number, Irish VAT number and claimed payment IBAN for all five gates."
      • addedInput schema / $defs / PaymentRequest / properties / transaction_id / description
        Added value: +"Stable caller transaction identifier for the same business request. Reuse on retries; changed content with the same ID conflicts."
      • addedInput schema / $defs / Supplier / properties / cro_number / description
        Added value: +"Irish CRO company number for the invoice supplier; preserve it as a string."
      • addedInput schema / $defs / Supplier / properties / iban / description
        Added value: +"Supplier's claimed payment IBAN. Validation does not independently establish account ownership."
      • addedInput schema / $defs / Supplier / properties / vat_number / description
        Added value: +"Supplier Irish VAT number to validate and check against EU VIES, not a CRO number."
      • addedInput schema / properties / payment_request / description
        Added value: +"Decide: pay this supplier invoice or not: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedget_verification1 field changed
      • addedInput schema / properties / verification_id / description
        Added value: +"UUID returned as verification_id by verify_supplier_payment or POST /v1/verifications. Use a result owned by the same tenant/original paying wallet; do not supply request_id, transaction_id, an invoice number or an A2A task ID."
    • Removedprecheck_vat
    • Changedregister_signing_key2 fields changed
      • addedInput schema / properties / key_id / description
        Added value: +"Caller-chosen RSA public-key identifier, unique within your tenant. Reuse it in signature.key_id; rotate with a new ID."
      • addedInput schema / properties / public_key_pem / description
        Added value: +"PEM-encoded RSA public key, at least 2048 bits. Never send a private key, wallet key or certificate."
    • Changedverify_supplier_payment8 fields changed
      • addedInput schema / $defs / SupplierInput / properties / claimed_legal_name / description
        Added value: +"Legal supplier name claimed on the invoice, to reconcile with registry evidence."
      • addedInput schema / $defs / SupplierInput / properties / company_registration_number / description
        Added value: +"Irish CRO company number, supplied as a string; not a VAT number."
      • addedInput schema / $defs / SupplierInput / properties / country_code / description
        Added value: +"Uppercase ISO country code. Company-registry verification currently supports IE only."
      • addedInput schema / $defs / SupplierInput / properties / vat_number / description
        Added value: +"Claimed supplier VAT identifier for VIES reconciliation. Irish VAT validation is supported."
      • addedInput schema / properties / policy_id / description
        Added value: +"Verification policy identifier; always eu-b2b-payment-v1."
      • addedInput schema / properties / request_id / description
        Added value: +"Caller-generated unique request UUID used for idempotency. This is not the returned verification_id used for retrieval."
      • addedInput schema / properties / schema_version / description
        Added value: +"Request schema version; always the literal string 1.0."
      • addedInput schema / properties / supplier / description
        Added value: +"Claimed supplier identity and Irish identifiers to reconcile with CRO/VIES; not the signed invoice-decision supplier object."
  2. 1 tool update
    • Addedprecheck_vat
  3. 1 tool update
    • Removedprecheck_vat
  4. 2 tool updates
    • Addedprecheck_vat
    • Removedverify_payout
  5. 9 tool updates
    • Changedcheck_company2 fields changed
      • changedInput schema / $defs / CompanyCheckRequest / properties / cro_number / description
        Previous value: -"Irish Companies Registration Office company number as a string. Preserve leading zeros; do not supply a name, VAT number or foreign registry ID."New value: +"Irish CRO company number."
      • removedInput schema / properties / request / description
        Removed value: -"Check an Irish company status (CRO): supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedcheck_iban3 fields changed
      • changedInput schema / $defs / IbanCheckRequest / properties / iban / description
        Previous value: -"IBAN to validate; spaces and lowercase are normalized. Checks checksum/length/country only, not account ownership."New value: +"IBAN to validate (spaces allowed)."
      • removedInput schema / $defs / IbanCheckRequest / properties / iban / examples
        Removed value: -[
        -  "IE29AIBK93115212345678"
        -]
      • removedInput schema / properties / request / description
        Removed value: -"Validate an IBAN: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedcheck_three_way_match8 fields changed
      • removedInput schema / $defs / LineItem / properties / quantity / description
        Removed value: -"Positive ordered or invoiced quantity; send an exact decimal string."
      • removedInput schema / $defs / LineItem / properties / sku / description
        Removed value: -"Item identifier used consistently across invoice, PO and receipt."
      • removedInput schema / $defs / LineItem / properties / unit_price / description
        Removed value: -"Nonnegative unit price in the document currency; send an exact decimal string."
      • removedInput schema / $defs / ThreeWayMatchRequest / properties / goods_receipt / description
        Removed value: -"Goods receipt linked to the same PO; supply received SKU quantities and supplier CRO number."
      • removedInput schema / $defs / ThreeWayMatchRequest / properties / invoice / description
        Removed value: -"Invoice document fields, including reference numbers, currency, amount, payee name and line items."
      • removedInput schema / $defs / ThreeWayMatchRequest / properties / purchase_order / description
        Removed value: -"Purchase order to compare with the invoice; supply the expected supplier, currency, amount and ordered items."
      • removedInput schema / $defs / ThreeWayMatchRequest / properties / supplier_cro_number / description
        Removed value: -"Expected supplier CRO number to match against the supplied PO and goods receipt; not looked up in CRO by this tool."
      • removedInput schema / properties / request / description
        Removed value: -"3-way match PO, goods receipt and invoice: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedcheck_vat2 fields changed
      • changedInput schema / $defs / VatCheckRequest / properties / vat_number / description
        Previous value: -"Irish VAT number, with or without IE prefix; spaces and lowercase are normalized. Not a CRO number or company name."New value: +"Irish VAT number, with or without the IE prefix."
      • removedInput schema / properties / request / description
        Removed value: -"Check an Irish VAT number: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changeddecide_supplier_payment13 fields changed
      • removedInput schema / $defs / LineItem / properties / quantity / description
        Removed value: -"Positive ordered or invoiced quantity; send an exact decimal string."
      • removedInput schema / $defs / LineItem / properties / sku / description
        Removed value: -"Item identifier used consistently across invoice, PO and receipt."
      • removedInput schema / $defs / LineItem / properties / unit_price / description
        Removed value: -"Nonnegative unit price in the document currency; send an exact decimal string."
      • removedInput schema / $defs / PaymentRequest / properties / goods_receipt / description
        Removed value: -"Caller-supplied goods receipt with quantities received against the same PO."
      • removedInput schema / $defs / PaymentRequest / properties / invoice / description
        Removed value: -"Invoice being reviewed, including payee name, amount, currency, PO/GRN references and line items."
      • removedInput schema / $defs / PaymentRequest / properties / purchase_order / description
        Removed value: -"Caller-supplied purchase order to compare with the invoice; no ERP lookup is performed."
      • removedInput schema / $defs / PaymentRequest / properties / signature / description
        Removed value: -"RSA-PSS SHA-256 signature of the normalized canonical request without signature, using a previously registered public-key ID in the same tenant."
      • removedInput schema / $defs / PaymentRequest / properties / supplier / description
        Removed value: -"Supplier CRO number, Irish VAT number and claimed payment IBAN for all five gates."
      • removedInput schema / $defs / PaymentRequest / properties / transaction_id / description
        Removed value: -"Stable caller transaction identifier for the same business request. Reuse on retries; changed content with the same ID conflicts."
      • removedInput schema / $defs / Supplier / properties / cro_number / description
        Removed value: -"Irish CRO company number for the invoice supplier; preserve it as a string."
      • removedInput schema / $defs / Supplier / properties / iban / description
        Removed value: -"Supplier's claimed payment IBAN. Validation does not independently establish account ownership."
      • removedInput schema / $defs / Supplier / properties / vat_number / description
        Removed value: -"Supplier Irish VAT number to validate and check against EU VIES, not a CRO number."
      • removedInput schema / properties / payment_request / description
        Removed value: -"Decide: pay this supplier invoice or not: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedget_verification1 field changed
      • removedInput schema / properties / verification_id / description
        Removed value: -"UUID returned as verification_id by verify_supplier_payment or POST /v1/verifications. Use a result owned by the same tenant/original paying wallet; do not supply request_id, transaction_id, an invoice number or an A2A task ID."
    • Changedregister_signing_key2 fields changed
      • removedInput schema / properties / key_id / description
        Removed value: -"Caller-chosen RSA public-key identifier, unique within your tenant. Reuse it in signature.key_id; rotate with a new ID."
      • removedInput schema / properties / public_key_pem / description
        Removed value: -"PEM-encoded RSA public key, at least 2048 bits. Never send a private key, wallet key or certificate."
    • Addedverify_payout
    • Changedverify_supplier_payment8 fields changed
      • removedInput schema / $defs / SupplierInput / properties / claimed_legal_name / description
        Removed value: -"Legal supplier name claimed on the invoice, to reconcile with registry evidence."
      • removedInput schema / $defs / SupplierInput / properties / company_registration_number / description
        Removed value: -"Irish CRO company number, supplied as a string; not a VAT number."
      • removedInput schema / $defs / SupplierInput / properties / country_code / description
        Removed value: -"Uppercase ISO country code. Company-registry verification currently supports IE only."
      • removedInput schema / $defs / SupplierInput / properties / vat_number / description
        Removed value: -"Claimed supplier VAT identifier for VIES reconciliation. Irish VAT validation is supported."
      • removedInput schema / properties / policy_id / description
        Removed value: -"Verification policy identifier; always eu-b2b-payment-v1."
      • removedInput schema / properties / request_id / description
        Removed value: -"Caller-generated unique request UUID used for idempotency. This is not the returned verification_id used for retrieval."
      • removedInput schema / properties / schema_version / description
        Removed value: -"Request schema version; always the literal string 1.0."
      • removedInput schema / properties / supplier / description
        Removed value: -"Claimed supplier identity and Irish identifiers to reconcile with CRO/VIES; not the signed invoice-decision supplier object."
  6. 8 tool updates
    • Addedcheck_company
    • Addedcheck_iban
    • Addedcheck_three_way_match
    • Addedcheck_vat
    • Addeddecide_supplier_payment
    • Changedget_verification1 field changed
      • addedInput schema / properties / verification_id / description
        Added value: +"UUID returned as verification_id by verify_supplier_payment or POST /v1/verifications. Use a result owned by the same tenant/original paying wallet; do not supply request_id, transaction_id, an invoice number or an A2A task ID."
    • Addedregister_signing_key
    • Changedverify_supplier_payment8 fields changed
      • addedInput schema / $defs / SupplierInput / properties / claimed_legal_name / description
        Added value: +"Legal supplier name claimed on the invoice, to reconcile with registry evidence."
      • addedInput schema / $defs / SupplierInput / properties / company_registration_number / description
        Added value: +"Irish CRO company number, supplied as a string; not a VAT number."
      • addedInput schema / $defs / SupplierInput / properties / country_code / description
        Added value: +"Uppercase ISO country code. Company-registry verification currently supports IE only."
      • addedInput schema / $defs / SupplierInput / properties / vat_number / description
        Added value: +"Claimed supplier VAT identifier for VIES reconciliation. Irish VAT validation is supported."
      • addedInput schema / properties / policy_id / description
        Added value: +"Verification policy identifier; always eu-b2b-payment-v1."
      • addedInput schema / properties / request_id / description
        Added value: +"Caller-generated unique request UUID used for idempotency. This is not the returned verification_id used for retrieval."
      • addedInput schema / properties / schema_version / description
        Added value: +"Request schema version; always the literal string 1.0."
      • addedInput schema / properties / supplier / description
        Added value: +"Claimed supplier identity and Irish identifiers to reconcile with CRO/VIES; not the signed invoice-decision supplier object."
  7. 8 tool updates
    • Removedcheck_company
    • Removedcheck_iban
    • Removedcheck_three_way_match
    • Removedcheck_vat
    • Removeddecide_supplier_payment
    • Changedget_verification1 field changed
      • removedInput schema / properties / verification_id / description
        Removed value: -"UUID returned as verification_id by verify_supplier_payment or POST /v1/verifications. Use a result owned by the same tenant/original paying wallet; do not supply request_id, transaction_id, an invoice number or an A2A task ID."
    • Removedregister_signing_key
    • Changedverify_supplier_payment8 fields changed
      • removedInput schema / $defs / SupplierInput / properties / claimed_legal_name / description
        Removed value: -"Legal supplier name claimed on the invoice, to reconcile with registry evidence."
      • removedInput schema / $defs / SupplierInput / properties / company_registration_number / description
        Removed value: -"Irish CRO company number, supplied as a string; not a VAT number."
      • removedInput schema / $defs / SupplierInput / properties / country_code / description
        Removed value: -"Uppercase ISO country code. Company-registry verification currently supports IE only."
      • removedInput schema / $defs / SupplierInput / properties / vat_number / description
        Removed value: -"Claimed supplier VAT identifier for VIES reconciliation. Irish VAT validation is supported."
      • removedInput schema / properties / policy_id / description
        Removed value: -"Verification policy identifier; always eu-b2b-payment-v1."
      • removedInput schema / properties / request_id / description
        Removed value: -"Caller-generated unique request UUID used for idempotency. This is not the returned verification_id used for retrieval."
      • removedInput schema / properties / schema_version / description
        Removed value: -"Request schema version; always the literal string 1.0."
      • removedInput schema / properties / supplier / description
        Removed value: -"Claimed supplier identity and Irish identifiers to reconcile with CRO/VIES; not the signed invoice-decision supplier object."
  8. 8 tool updates
    • Changedcheck_company2 fields changed
      • changedInput schema / $defs / CompanyCheckRequest / properties / cro_number / description
        Previous value: -"Irish CRO company number."New value: +"Irish Companies Registration Office company number as a string. Preserve leading zeros; do not supply a name, VAT number or foreign registry ID."
      • addedInput schema / properties / request / description
        Added value: +"Check an Irish company status (CRO): supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedcheck_iban3 fields changed
      • changedInput schema / $defs / IbanCheckRequest / properties / iban / description
        Previous value: -"IBAN to validate (spaces allowed)."New value: +"IBAN to validate; spaces and lowercase are normalized. Checks checksum/length/country only, not account ownership."
      • addedInput schema / $defs / IbanCheckRequest / properties / iban / examples
        Added value: +[
        +  "IE29AIBK93115212345678"
        +]
      • addedInput schema / properties / request / description
        Added value: +"Validate an IBAN: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedcheck_three_way_match8 fields changed
      • addedInput schema / $defs / LineItem / properties / quantity / description
        Added value: +"Positive ordered or invoiced quantity; send an exact decimal string."
      • addedInput schema / $defs / LineItem / properties / sku / description
        Added value: +"Item identifier used consistently across invoice, PO and receipt."
      • addedInput schema / $defs / LineItem / properties / unit_price / description
        Added value: +"Nonnegative unit price in the document currency; send an exact decimal string."
      • addedInput schema / $defs / ThreeWayMatchRequest / properties / goods_receipt / description
        Added value: +"Goods receipt linked to the same PO; supply received SKU quantities and supplier CRO number."
      • addedInput schema / $defs / ThreeWayMatchRequest / properties / invoice / description
        Added value: +"Invoice document fields, including reference numbers, currency, amount, payee name and line items."
      • addedInput schema / $defs / ThreeWayMatchRequest / properties / purchase_order / description
        Added value: +"Purchase order to compare with the invoice; supply the expected supplier, currency, amount and ordered items."
      • addedInput schema / $defs / ThreeWayMatchRequest / properties / supplier_cro_number / description
        Added value: +"Expected supplier CRO number to match against the supplied PO and goods receipt; not looked up in CRO by this tool."
      • addedInput schema / properties / request / description
        Added value: +"3-way match PO, goods receipt and invoice: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedcheck_vat2 fields changed
      • changedInput schema / $defs / VatCheckRequest / properties / vat_number / description
        Previous value: -"Irish VAT number, with or without the IE prefix."New value: +"Irish VAT number, with or without IE prefix; spaces and lowercase are normalized. Not a CRO number or company name."
      • addedInput schema / properties / request / description
        Added value: +"Check an Irish VAT number: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changeddecide_supplier_payment13 fields changed
      • addedInput schema / $defs / LineItem / properties / quantity / description
        Added value: +"Positive ordered or invoiced quantity; send an exact decimal string."
      • addedInput schema / $defs / LineItem / properties / sku / description
        Added value: +"Item identifier used consistently across invoice, PO and receipt."
      • addedInput schema / $defs / LineItem / properties / unit_price / description
        Added value: +"Nonnegative unit price in the document currency; send an exact decimal string."
      • addedInput schema / $defs / PaymentRequest / properties / goods_receipt / description
        Added value: +"Caller-supplied goods receipt with quantities received against the same PO."
      • addedInput schema / $defs / PaymentRequest / properties / invoice / description
        Added value: +"Invoice being reviewed, including payee name, amount, currency, PO/GRN references and line items."
      • addedInput schema / $defs / PaymentRequest / properties / purchase_order / description
        Added value: +"Caller-supplied purchase order to compare with the invoice; no ERP lookup is performed."
      • addedInput schema / $defs / PaymentRequest / properties / signature / description
        Added value: +"RSA-PSS SHA-256 signature of the normalized canonical request without signature, using a previously registered public-key ID in the same tenant."
      • addedInput schema / $defs / PaymentRequest / properties / supplier / description
        Added value: +"Supplier CRO number, Irish VAT number and claimed payment IBAN for all five gates."
      • addedInput schema / $defs / PaymentRequest / properties / transaction_id / description
        Added value: +"Stable caller transaction identifier for the same business request. Reuse on retries; changed content with the same ID conflicts."
      • addedInput schema / $defs / Supplier / properties / cro_number / description
        Added value: +"Irish CRO company number for the invoice supplier; preserve it as a string."
      • addedInput schema / $defs / Supplier / properties / iban / description
        Added value: +"Supplier's claimed payment IBAN. Validation does not independently establish account ownership."
      • addedInput schema / $defs / Supplier / properties / vat_number / description
        Added value: +"Supplier Irish VAT number to validate and check against EU VIES, not a CRO number."
      • addedInput schema / properties / payment_request / description
        Added value: +"Decide: pay this supplier invoice or not: supply this structured object using the nested schema, not a JSON-encoded string."
    • Changedget_verification1 field changed
      • addedInput schema / properties / verification_id / description
        Added value: +"UUID returned as verification_id by verify_supplier_payment or POST /v1/verifications. Use a result owned by the same tenant/original paying wallet; do not supply request_id, transaction_id, an invoice number or an A2A task ID."
    • Changedregister_signing_key2 fields changed
      • addedInput schema / properties / key_id / description
        Added value: +"Caller-chosen RSA public-key identifier, unique within your tenant. Reuse it in signature.key_id; rotate with a new ID."
      • addedInput schema / properties / public_key_pem / description
        Added value: +"PEM-encoded RSA public key, at least 2048 bits. Never send a private key, wallet key or certificate."
    • Changedverify_supplier_payment8 fields changed
      • addedInput schema / $defs / SupplierInput / properties / claimed_legal_name / description
        Added value: +"Legal supplier name claimed on the invoice, to reconcile with registry evidence."
      • addedInput schema / $defs / SupplierInput / properties / company_registration_number / description
        Added value: +"Irish CRO company number, supplied as a string; not a VAT number."
      • addedInput schema / $defs / SupplierInput / properties / country_code / description
        Added value: +"Uppercase ISO country code. Company-registry verification currently supports IE only."
      • addedInput schema / $defs / SupplierInput / properties / vat_number / description
        Added value: +"Claimed supplier VAT identifier for VIES reconciliation. Irish VAT validation is supported."
      • addedInput schema / properties / policy_id / description
        Added value: +"Verification policy identifier; always eu-b2b-payment-v1."
      • addedInput schema / properties / request_id / description
        Added value: +"Caller-generated unique request UUID used for idempotency. This is not the returned verification_id used for retrieval."
      • addedInput schema / properties / schema_version / description
        Added value: +"Request schema version; always the literal string 1.0."
      • addedInput schema / properties / supplier / description
        Added value: +"Claimed supplier identity and Irish identifiers to reconcile with CRO/VIES; not the signed invoice-decision supplier object."
  9. 1 tool update
    • Changedregister_signing_key5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / key_id / maxLength
        Added value: +128
      • addedInput schema / properties / key_id / minLength
        Added value: +1
      • addedInput schema / properties / public_key_pem / maxLength
        Added value: +16384
      • addedInput schema / properties / public_key_pem / minLength
        Added value: +1
  10. 6 tool updates
    • Addedcheck_company
    • Addedcheck_iban
    • Addedcheck_three_way_match
    • Addedcheck_vat
    • Addeddecide_supplier_payment
    • Addedregister_signing_key
  11. 2 tool updates
    • First observedget_verification
    • First observedverify_supplier_payment

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides free read-only business checks for IBANs, EU VAT number format, Peppol e-invoice rules, supplier bank-detail changes, and CSV/XLSX data cleaning.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Pay-per-call checks an AI agent runs before it moves money: token safety verdicts and wallet risk profiles on Base, on-chain payment verification, IBAN/VAT/BIC/LEI/ISIN validation, and live TLS and email-spoofing posture for a domain. Paid in USDC over x402 with no API key or account; the free payment_info tool explains the pricing.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Validates EU, UK, and AU VAT numbers against live sources and uses AI pattern analysis to detect invoice fraud.
    67 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources