Skip to main content
Glama

Agent Decision & Evidence Tools (MCP + x402)

Counterparty due diligence (KYB)

check_counterparty_eu
Read-only

VAT ID validation (VIES) plus sanctions screening plus IBAN check in one call, condensed into a traffic-light verdict with reasons and a recommendation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
b2bNo
vatNo
ibanNo
nameNo
typeNoservice
countryNo
own_countryNo
relationshipNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
vatNo
riskNo
toolNo
errorNo
inputNo
chargedNoWhen present on an error, false means the failed result is uncharged.
messageNo
missingNo
receiptNo
settledNoWhen present on an error, false means no settlement occurred.
unknownNo
acceptedNo
coverageNo
retryableNo
sanctionsNo
checked_atNo
disclaimerNo
error_codeNo
extensionsNo
iban_resultNo
status_codeNo
did_you_meanNo
legal_entityNo
checks_missingNo
missing_checksNo
checks_performedNo
partial_evidenceNo
compliance_workflowNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / b2b
      Added value: +{
      +  "default": true,
      +  "type": "boolean"
      +}
    • removedInput schema / properties / country / title
      Removed value: -"Country"
    • removedInput schema / properties / iban / title
      Removed value: -"Iban"
    • removedInput schema / properties / name / title
      Removed value: -"Name"
    • addedInput schema / properties / own_country
      Added value: +{
      +  "default": "",
      +  "type": "string"
      +}
    • addedInput schema / properties / relationship
      Added value: +{
      +  "default": "",
      +  "type": "string"
      +}
    • addedInput schema / properties / type
      Added value: +{
      +  "default": "service",
      +  "type": "string"
      +}
    • removedInput schema / properties / vat / title
      Removed value: -"Vat"
    • removedInput schema / title
      Removed value: -"check_counterparty_toolArguments"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "anyOf": [
      +    {
      +      "required": [
      +        "input",
      +        "checked_at",
      +        "coverage",
      +        "risk",
      +        "checks_performed",
      +        "checks_missing",
      +        "disclaimer",
      +        "compliance_workflow",
      +        "receipt",
      +        "extensions"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "error"
      +      ]
      +    }
      +  ],
      +  "description": "Structured result contract for check_counterparty_eu. A success satisfies the documented success branch. A domain or tool error includes error and is not a successful settlement; unpaid x402 requirements are carried by the transport wrapper.",
      +  "properties": {
      +    "accepted": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "charged": {
      +      "description": "When present on an error, false means the failed result is uncharged.",
      +      "type": "boolean"
      +    },
      +    "checked_at": {
      +      "type": "string"
      +    },
      +    "checks_missing": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "checks_performed": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "compliance_workflow": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "coverage": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "did_you_mean": {
      +      "additionalProperties": true,
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "disclaimer": {
      +      "type": "string"
      +    },
      +    "error": {
      +      "oneOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "additionalProperties": true,
      +          "properties": {
      +            "code": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "message": {
      +              "type": "string"
      +            },
      +            "param": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "type": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "message"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "error_code": {
      +      "type": "string"
      +    },
      +    "extensions": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "delivery-receipt": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "how_to_verify": {
      +              "type": "string"
      +            },
      +            "issued_at": {
      +              "format": "date-time",
      +              "type": "string"
      +            },
      +            "issuer": {
      +              "type": "string"
      +            },
      +            "issuer_key": {
      +              "type": "string"
      +            },
      +            "key_id": {
      +              "type": "string"
      +            },
      +            "result_hash": {
      +              "type": "string"
      +            },
      +            "service": {
      +              "type": "string"
      +            },
      +            "signature": {
      +              "type": "string"
      +            },
      +            "signed_message": {
      +              "type": "string"
      +            },
      +            "standard": {
      +              "const": "eucompliance-receipt/2",
      +              "type": "string"
      +            },
      +            "subject": {
      +              "type": "string"
      +            },
      +            "valid_until": {
      +              "format": "date-time",
      +              "type": "string"
      +            },
      +            "verify_url": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "standard",
      +            "service",
      +            "subject",
      +            "result_hash",
      +            "issued_at",
      +            "valid_until",
      +            "issuer",
      +            "issuer_key",
      +            "key_id",
      +            "verify_url",
      +            "how_to_verify",
      +            "signature",
      +            "signed_message"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "delivery-receipt"
      +      ],
      +      "type": "object"
      +    },
      +    "iban_result": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "input": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "legal_entity": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "missing": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "missing_checks": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "partial_evidence": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "receipt": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "how_to_verify": {
      +          "type": "string"
      +        },
      +        "issued_at": {
      +          "format": "date-time",
      +          "type": "string"
      +        },
      +        "issuer": {
      +          "type": "string"
      +        },
      +        "issuer_key": {
      +          "type": "string"
      +        },
      +        "key_id": {
      +          "type": "string"
      +        },
      +        "result_hash": {
      +          "type": "string"
      +        },
      +        "service": {
      +          "type": "string"
      +        },
      +        "signature": {
      +          "type": "string"
      +        },
      +        "signed_message": {
      +          "type": "string"
      +        },
      +        "standard": {
      +          "const": "eucompliance-receipt/2",
      +          "type": "string"
      +        },
      +        "subject": {
      +          "type": "string"
      +        },
      +        "valid_until": {
      +          "format": "date-time",
      +          "type": "string"
      +        },
      +        "verify_url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "standard",
      +        "service",
      +        "subject",
      +        "result_hash",
      +        "issued_at",
      +        "valid_until",
      +        "issuer",
      +        "issuer_key",
      +        "key_id",
      +        "verify_url",
      +        "how_to_verify",
      +        "signature",
      +        "signed_message"
      +      ],
      +      "type": "object"
      +    },
      +    "retryable": {
      +      "type": "boolean"
      +    },
      +    "risk": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "sanctions": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "settled": {
      +      "description": "When present on an error, false means no settlement occurred.",
      +      "type": "boolean"
      +    },
      +    "status_code": {
      +      "type": "integer"
      +    },
      +    "tool": {
      +      "type": "string"
      +    },
      +    "unknown": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "vat": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Beyond the readOnlyHint and destructiveHint annotations, the description adds valuable behavioral context: it explicitly names the external VIES source, aggregates three distinct checks, and discloses that the output is condensed into a traffic-light verdict with reasons and a recommendation. This gives the agent a clear expectation of the tool's behavior and output style. No contradiction with annotations is present.

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

Conciseness5/5

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

The description is a single, dense sentence that front-loads the core components and the nature of the result. Every phrase contributes meaning, and there is no padding or repetition of structured data.

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

Completeness2/5

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

The presence of an output schema covers return-value expectations, but the tool has 8 parameters with zero schema descriptions and the description does not fill that gap. It gives a good high-level summary but is insufficient for confident, correct invocation, especially for business-context parameters like b2b, own_country, and relationship.

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

Parameters1/5

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

Schema description coverage is 0% across 8 parameters, and the description only indirectly mentions VAT and IBAN. It provides no explanation of b2b, name, type, country, own_country, or relationship, nor their formats, requirements, or interplay. An agent cannot reliably determine how to populate most fields from this definition.

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

Purpose5/5

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

The description clearly states what the tool does: it combines VAT ID validation (VIES), sanctions screening, and IBAN check into a single call, producing a traffic-light verdict with reasons and a recommendation. This composition distinguishes it from sibling tools like validate_vat, screen_sanctions_eu, and validate_iban, making its purpose unambiguous.

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

Usage Guidelines3/5

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

The phrase 'in one call' implies this tool should be used when a combined KYB/due-diligence check is needed, and the traffic-light verdict suggests it suits holistic assessments. However, the description does not explicitly say when to use this over the individual sibling validators, nor does it state any exclusions or conditions under which separate tools would be preferred.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.