Skip to main content
Glama
aiexp1

Tanod MCP server

chainpeek: screen up to 1,000 crypto addresses against the OFAC SDN list

check_sanctions_batch
Read-onlyIdempotent

Screen 1-1,000 crypto addresses against the US OFAC SDN digital-currency list in one batch call, returning a sanctions match result per address.

Instructions

chainpeek: Screen up to 1,000 crypto addresses against OFAC sanctions in one batch. For one address use check_sanctions. Returns the OFAC sanctions screen of 1-1,000 crypto addresses in one call. EVM and bech32 addresses match case-insensitively, other formats exactly as listed. US OFAC SDN digital-currency-address list only, as of list_date; a non-match does not clear an address; not legal advice or a full compliance check; verify any match at sanctionssearch.ofac.treas.gov. One invalid item fails the batch with a 422 naming its index (not charged). Typically under 0.5 s for 1,000 addresses. Price: USD 0.0005 per address, at least USD 0.002 per call (1-1,000 addresses per call: USD 0.002-0.5). No free tier. The submitted text is never logged or stored. Docs: https://tanod.dev/learn/batch-ofac-sanctions-screening-api.html

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
addressesYes1-1,000 crypto addresses: EVM 0x (case-insensitive), bech32 (case-insensitive) or BTC/TRX/other exactly as listed. Priced per address.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
listNo
countNo
errorNoOnly on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object.
sourceNo
resultsNo
list_dateNo
disclaimerNo
matched_countNo
list_addressesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already establish readOnly/idempotent/non-destructive, yet the description adds substantial behavior beyond them: per-address and per-call pricing with a minimum, error semantics (422 naming the offending index, not charged), latency (~0.5 s for 1,000), data-handling (submitted text never logged or stored), and honest limitations (non-match does not clear an address; not legal advice; verify at OFAC). That is exactly the kind of context structured fields cannot carry.

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 and dense with useful facts, but there is real repetition: sentence three ('Returns the OFAC sanctions screen of 1-1,000 crypto addresses in one call') restates sentence one, and the batch-size/pricing figures appear multiple times. Trimming the redundant return line and price restatement would sharpen it without losing information.

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

Completeness5/5

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

An output schema exists, so return values need not be explained. Given that, the description covers everything else an agent needs before calling: matching rules, batch limits, cost bounds, failure mode, latency, data retention, and legal caveats. Nothing material is missing for a one-parameter screening tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline would be 3, but the description goes further: it explains that EVM and bech32 entries match case-insensitively while other formats are matched exactly as listed, that pricing is per address, and that a single invalid item aborts the batch with a 422 identifying its index. That is meaning the schema's regex and min/max alone do not convey.

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

Purpose5/5

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

States a specific verb (screen), resource (crypto addresses), and scope (up to 1,000, against the OFAC SDN list) in the first sentence, then explicitly names the sibling it is not for: 'For one address use check_sanctions.' An agent can pick between the batch and single-address tools without opening either 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?

Names the alternative tool and the exact condition that selects it (single address → check_sanctions), and bounds the batch regime with concrete limits (1-1,000 per call, one invalid item fails the whole batch). This is explicit when-to-use/when-to-use-something-else guidance rather than implied context.

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

Deploy Server

Other Tools