Skip to main content
Glama

List sanctions listing changes

sanctions_list_changes
Read-onlyIdempotent

Returns additions, amendments and removals between official sanctions list snapshots: US Treasury OFAC SDN and Consolidated, UK HM Treasury/FCDO, EU Financial Sanctions Files and Canada (Canada coverage is entity-only; Australia pending, not loaded yet). Use it to monitor what changed since a date; use sanctions_search_entries when you have a name, and sanctions_get_entry when you already know a list and id. Inputs (all optional, they narrow together): since (YYYY-MM-DD, default 7 days ago), list, change (added/amended/removed), limit (1 to 50, default 20) and cursor (next_cursor from the previous page, same filters). Output: changes[] with entry, changed fields, observed_at and proof (official file URL, SHA-256, source date), plus lists[] check times and next_cursor for paging or polling; lists are checked about twice a day. This is a monitoring feed, not a clearance decision: no change means none observed, the UN list is not covered, and the official publications are authoritative. Changes are found by comparing each official file with a stored earlier copy, history from 2026-10-22; rebuilding it means about 55 MB of XML in 4 schemas, and changes before a first copy cannot be recovered. Terms: read-only; MCP calls are never charged. Without a key, metered routes give 10 successful answers a day free, as short samples (up to 3 records, without file proof, history or paging cursor) where a paid HTTP address exists (unmetered routes are unlimited); errors do not count. On the paid HTTP routes, errors are free, and so are empty answers except a sanctions name search with no match when every loaded list it checks is fresh (lists not loaded yet are named in the answer). An optional API key keeps its prepaid-credit policy. When the free answers run out, the error names the HTTP alternative.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "sanctions_list_changes"
  }
}

Input Schema

NameRequiredDescriptionDefault
listNoOne list only Allowed: ofac-sdn, ofac-consolidated, uk, eu, ca, au; e.g. ofac-sdn.
limitNoChanges per page, 1 to 50 (default 20); e.g. 20.
sinceNoChanges observed on or after this date, YYYY-MM-DD (default: 7 days ago); e.g. 2026-10-01. Must be a parseable YYYY-MM-DD date.
changeNoOne kind of change only Allowed: added, amended, removed; e.g. added.
cursorNoOpaque next_cursor from this tool's prior answer; s followed by 1 to 12 digits, e.g. s0. Keep filters unchanged; omit on first call.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and the description never contradicts them. It adds genuinely useful behavior beyond that: coverage gaps (Canada entity-only, Australia not loaded, UN not covered), history starting 2026-10-22 with unrecoverable pre-first-copy changes, and a roughly twice-daily refresh cadence. The remaining bulk is extensive free-tier/metering terms that are more billing policy than tool behavior, so the added value is real but diluted.

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

Conciseness3/5

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

Purpose, alternatives, inputs, and outputs are front-loaded and structured, which is good, but the long parenthetical clusters (e.g. the license/coverage caveats) hurt readability. Roughly half the text is rate-limit, free-sample, and paid-HTTP-route policy that an agent cannot act on, so not every sentence earns its place.

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, and the description fully compensates by describing changes[] fields (entry, changed fields, observed_at, proof with file URL, SHA-256, source date), lists[] check times, and next_cursor for paging/polling. Coverage caveats and the authority disclaimer are also present, leaving nothing an agent needs to call it correctly.

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 every parameter including enums, defaults, range, and cursor pattern. The description adds only the combination semantics ('all optional, they narrow together') and the instruction to keep filters unchanged while paging, which is marginal over the schema baseline of 3.

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 first sentence names a specific verb (returns) and resource (additions/amendments/removals between official sanctions list snapshots) and enumerates the covered sources (OFAC SDN/Consolidated, UK, EU, Canada). It explicitly contrasts itself with the two nearest siblings, so an 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?

States the trigger directly: 'Use it to monitor what changed since a date', then names sanctions_search_entries for name lookups and sanctions_get_entry for known list+id. It also warns about the monitoring limitation ('no change means none observed'), which tells the agent when the answer is meaningful.

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.

Resources