Counterparty Check
Server Details
Check a payee before your agent pays: sanctions, lookalike domains, payment details, invoice fraud.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
clear distinction between check_counterparty (full check) and screen_sanctions (sanctions only), but check_balance and verify_receipt are distinct purposes. slight overlap since screen_sanctions is a subset of check_counterparty, but descriptions clarify.
All tool names follow a consistent verb_noun pattern: check_balance, check_counterparty, screen_sanctions, verify_receipt. No deviations.
Four tools are well-scoped for a counterparty risk checking service: balance, full check, quick sanctions screen, and receipt verification. Each earns its place.
Covers balance inquiry, comprehensive risk check, sanctions screening, and receipt verification. Minor gap: no tool to list past checks or receipts, but core workflows are covered.
Available Tools
4 toolscheck_balanceAPI key balanceARead-onlyInspect
Show the remaining prepaid balance on the API key used for this connection. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds value beyond that by disclosing the cost model ("Free") and that the balance is scoped to the key on the current connection, both of which are not encoded anywhere in 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?
Two short sentences, front-loaded with the action and resource, with the cost note last. Every clause earns its place and there is 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?
With no output schema, the description carries the return-value burden and does explain what is returned (remaining prepaid balance). It stops short of stating units/currency or what happens with an invalid or unmetered key, but the core is complete for such a simple read 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 tool takes zero parameters and the schema is empty, so there is nothing to document; per the baseline, this scores high. The description correctly describes the implicit input — the connection's own API key — without overreaching.
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?
States a specific verb and resource ("Show the remaining prepaid balance") and scopes it to "the API key used for this connection", which cleanly distinguishes it from the unrelated siblings (check_counterparty, screen_sanctions, verify_receipt). An agent knows exactly what this 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?
Usage is implied: an agent would call this to check prepaid credit status. However, there is no explicit when-to-use framing (e.g., before issuing billable requests), no mention of what happens when the balance is exhausted, and no alternatives to weigh against since it is a zero-parameter informational tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_counterpartyCheck a payee before payingARead-onlyInspect
Run a full pre-payment risk check on a payee: OFAC sanctions (names and wallets), domain age and email authentication, lookalike domains (vendor impersonation, brand typo-squats, executive impersonation), routing/IBAN/SWIFT/wallet validation, and business-email-compromise signals. Returns verdict proceed/review/block, a 0-100 risk score, explained findings, and a signed receipt. Costs $0.25 from the API key balance. Fill in "context" with everything you know about how the payment request arrived; it materially improves fraud detection.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | What the paying agent knows about how this payment came about. Each field sharpens fraud detection. | |
| payment | No | ||
| counterparty | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, and the description is consistent with them. It adds genuinely non-obvious behavior: a $0.25 charge against the API key balance and the verdict/score/receipt return shape. No auth or rate-limit details, but the cost disclosure is the key trait an agent needs.
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?
A single dense paragraph, front-loaded with the checks, then outputs, then cost, then the one piece of caller guidance. Every clause carries information, though the parenthetical check list is long enough to verge on enumeration bloat.
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 no output schema, the description steps in and describes the return values (verdict, 0-100 score, explained findings, signed receipt), which is exactly what's needed. It covers a 3-param nested schema and cost, leaving only minor gaps like failure modes when required fields are absent.
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 only 33% (many nested payment/context fields lack descriptions), so the description must compensate — and it does by explaining that 'context' should be filled with everything known about how the payment arrived and that it materially improves detection. It does not explain individual nested fields like 'requested_urgency' or 'bank_details_changed', so it is helpful but not fully compensatory.
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?
Names a specific verb+resource ('pre-payment risk check on a payee') and enumerates the exact checks performed (OFAC, domain age, lookalikes, routing/IBAN/SWIFT/wallet validation, BEC signals). This distinguishes it from sibling screen_sanctions (a subset) and verify_receipt (which consumes its output).
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 title and first clause make the when-to-use case explicit ('before paying'), and it tells the agent to populate 'context' with everything known about how the request arrived. It stops short of naming siblings or stating when not to use it (e.g. vs screen_sanctions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_sanctionsSanctions screen onlyARead-onlyInspect
Screen a payee name (and optional crypto wallet) against OFAC sanctions lists and embargoed jurisdictions. Faster and cheaper than check_counterparty but does not detect fraud patterns. Costs $0.05.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | What the paying agent knows about how this payment came about. Each field sharpens fraud detection. | |
| payment | No | ||
| counterparty | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this readOnly and open-world, so the description focuses on added context: the screening scope, the explicit limitation (no fraud pattern detection), and a pricing signal. This is meaningful behavioral disclosure beyond the structured hints, though it says nothing about what a match/non-match result looks like.
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 tight sentences, front-loaded with the core action and scope, followed by the sibling comparison and cost. No filler; every clause carries 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?
There is no output schema, and the description does not indicate what screening returns (match/no-match, risk score, list citation) or pagination/limits. For a screening tool the input scope is adequately conveyed, but the result contract is unaddressed.
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 only 33% and the schema is deeply nested, yet the description only clarifies that the name is core and the crypto wallet is optional. The large context and payment objects (urgency, bank-details-changed, prior payment, amount, method) are left to the schema and get no explanation in the 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?
States a specific verb (screen), resource (payee name plus optional crypto wallet), and scope (OFAC sanctions lists and embargoed jurisdictions). It also explicitly distinguishes itself from the sibling check_counterparty by noting it is faster/cheaper but does not detect fraud patterns.
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?
Names the alternative (check_counterparty) and states the trade-off that selects between them, plus the $0.05 cost. It stops short of an explicit 'use this when / don't use this when' rule, so the agent must infer that this is for sanctions-only needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_receiptVerify a check receiptARead-onlyInspect
Confirm that a receipt returned by a previous check is authentic and unaltered. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | The full "receipt" object from a check response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read profile is covered structurally. The description adds two useful facts beyond that: the operation is free, and what 'verify' means (authentic and unaltered). It does not, however, say what a failed verification returns or how errors surface.
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 with zero filler; the core purpose is front-loaded and the cost note is a compact trailing clause. Nothing 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 one-parameter, read-only verification tool with full schema coverage and annotations, the description covers purpose, precondition, and cost. The only gap is the outcome semantics of a failed verification, which is minor since no output schema exists to lean on.
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 single parameter has 100% schema description coverage, and the schema already states it is the full receipt object. The description only adds the provenance hint ('from a previous check'), 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?
States a specific verb (confirm/verify) and resource (receipt) and adds the provenance constraint that the receipt must come from a previous check. It is clearly distinct in intent from the sibling tools (check_balance, check_counterparty, screen_sanctions), though it does not name them explicitly.
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 clause 'a receipt returned by a previous check' implies the precondition for calling this tool, but there is no explicit when-to-use/when-not-to-use guidance and no mention of alternative tools. Usage is inferable rather than stated.
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.
4 tool updates
- First observed
check_balance - First observed
check_counterparty - First observed
screen_sanctions - First observed
verify_receipt
Related MCP Connectors
Screen a payee address before an AI agent pays: sanctions, mixers, scam lists, on-chain risk.
Check if a counterparty is safe to pay: trust/risk score for AI agents. Scam/phishing screen.
Verify companies, domains and counterparties before transacting. Sanctions, UBO, fraud scoring.
Company and domain due diligence for agents: registers, sanctions, VAT, domain. Pay per call.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceScreens payee and bank-account change requests with seven checks, issues safe callback scripts, and requires a named owner to approve or block before any change proceeds.MIT
- AlicenseAqualityBmaintenanceEnables AI agents to screen business partners against EU/US/HADDEX sanctions and PEP lists, and maintain the easycompliance daily monitoring list.66 npmMIT

attest-mcpofficial
AlicenseAqualityDmaintenanceEnables AI agents to scan payment endpoints for safety, returning a letter grade (A–F) and verdict before authorizing payments.227 npmMIT- AlicenseNot gradedqualityBmaintenancePay-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
Glama MCP Gateway
Add one secure layer between your agents and this server.