Skip to main content
Glama

sanctions-screening-mcp-server

sanctions-screening-mcp-server: get designation

sanctions_get_designation
Read-onlyIdempotent

Fetch the full record for one sanctions designation by source list + entry ID or the list's published reference number — the drill-in after sanctions_screen_name or sanctions_screen_identifier surfaces a candidate, or the lookup for a reference a notice cites (UN QDe.004, EU EU.27.28, UK OFSI Group ID). Returns all published aliases, identifiers (passport, national ID, tax and registration numbers, SWIFT/BIC codes, digital-currency addresses, vessel call signs, aircraft tail and serial numbers, phone numbers, email addresses, websites), addresses, dates and places of birth at the precision the source published, nationalities, descriptive features (a vessel's flag, type, and tonnage; an aircraft's model and operator; a title or gender; sanctions notes), sanctioning program, legal basis, and designation date. The record reflects exactly what the source published; missing fields mean the source omitted them. This is a screening aid — the designation record supports a compliance review, it is not itself a determination.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYesWhich source list the entry belongs to.
entryIdYesThe source list's own entry ID (the sourceEntryId from sanctions_screen_name), or the reference number the list publishes for the entry (UN QDe.004, EU EU.27.28, UK OFSI Group ID 14196). Matched trimmed and case-insensitive, entry ID first.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
caveatNoDecision-support caveat — this is a screening aid, not a compliance determination.
sourceNoSource list the entry belongs to.
aliasesNoAll published aliases / name variants.
programNoSanctioning program / regime, when published.
remarksNoFree-form remarks published by the source, when present.
featuresNoValues the source publishes to describe the party rather than identify it, in published order: OFAC's vessel flag, type, and tonnage, aircraft model and operator, title, gender, and sanctions notes; the UK list's ship details. Empty when the source publishes none. Screening never matches on them.
addressesNoPublished addresses.
entityTypeNoEntity classification as published.
legalBasisNoStatutory / regulatory basis as the list publishes it — OFAC's legal-basis references, the EU regulation title, the UK regime's regulations — several joined with '; '. Absent when unpublished; the UN list publishes none.
identifiersNoPublished identifiers: identity documents (passport, national ID, tax, registration) and, where the source publishes them, SWIFT/BIC codes, digital-currency addresses, vessel call signs, aircraft tail and serial numbers, phone numbers, email addresses, and websites.
primaryNameNoPrimary published name.
sourceLabelNoHuman-readable name of the source list.
datesOfBirthNoPublished dates and places of birth (persons).
nationalitiesNoPublished nationalities / citizenships.
sourceEntryIdNoThe source list's own entry ID.
designationDateNoThe source's own designation date as YYYY-MM-DD; absent when unpublished. An OFAC party is dated from its entries on the lists that file publishes, so its ofac_sdn and ofac_consolidated records can differ.
referenceNumberNoThe list's published reference number (UN, EU, UK OFSI Group ID); absent when the list publishes none for the entry. OFAC publishes none — its entry ID is its published number.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "not": {
      -      "required": [
      -        "error"
      -      ]
      -    },
      -    "required": [
      -      "source",
      -      "sourceLabel",
      -      "sourceEntryId",
      -      "entityType",
      -      "primaryName",
      -      "aliases",
      -      "identifiers",
      -      "addresses",
      -      "datesOfBirth",
      -      "nationalities",
      -      "caveat"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "error"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "source",
      +      "sourceLabel",
      +      "sourceEntryId",
      +      "entityType",
      +      "primaryName",
      +      "aliases",
      +      "identifiers",
      +      "addresses",
      +      "datesOfBirth",
      +      "nationalities",
      +      "features",
      +      "caveat"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • changedOutput schema / properties / designationDate / description
      Previous value: -"The source's own designation date as YYYY-MM-DD; absent when unpublished."New value: +"The source's own designation date as YYYY-MM-DD; absent when unpublished. An OFAC party is dated from its entries on the lists that file publishes, so its ofac_sdn and ofac_consolidated records can differ."
    • addedOutput schema / properties / features
      Added value: +{
      +  "description": "Values the source publishes to describe the party rather than identify it, in published order: OFAC's vessel flag, type, and tonnage, aircraft model and operator, title, gender, and sanctions notes; the UK list's ship details. Empty when the source publishes none. Screening never matches on them.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "One published descriptive value.",
      +    "properties": {
      +      "circa": {
      +        "const": true,
      +        "description": "Present when the source flags a date value as approximate.",
      +        "type": "boolean"
      +      },
      +      "type": {
      +        "description": "The source's own label for the value, verbatim (e.g. Vessel Flag, VESSEL TYPE, Secondary sanctions risk:, CurrentBelievedFlagOfShip).",
      +        "type": "string"
      +      },
      +      "value": {
      +        "description": "The value as published; a date is ISO 8601 at the precision the source published.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "value"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / legalBasis / description
      Previous value: -"Statutory / regulatory basis, when published."New value: +"Statutory / regulatory basis as the list publishes it — OFAC's legal-basis references, the EU regulation title, the UK regime's regulations — several joined with '; '. Absent when unpublished; the UN list publishes none."
  2. Changed10 schema fields changed
    • changedInput schema / properties / entryId / description
      Previous value: -"The source list's own entry ID (the sourceEntryId from sanctions_screen_name)."New value: +"The source list's own entry ID (the sourceEntryId from sanctions_screen_name), or the reference number the list publishes for the entry (UN QDe.004, EU EU.27.28, UK OFSI Group ID 14196). Matched trimmed and case-insensitive, entry ID first."
    • addedOutput schema / properties / datesOfBirth / items / properties / circa
      Added value: +{
      +  "const": true,
      +  "description": "Present when the source flags the date as approximate; never without date.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / datesOfBirth / items / properties / date / description
      Previous value: -"Date of birth as published."New value: +"Date of birth in ISO 8601 at the precision the source published: YYYY-MM-DD, YYYY-MM, or YYYY. A range is an interval whose ends keep their own precision (1955/1957); an open end is .. (../1980). A value with no ISO form is kept as published."
    • changedOutput schema / properties / designationDate / description
      Previous value: -"Designation date, when published."New value: +"The source's own designation date as YYYY-MM-DD; absent when unpublished."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `designation_not_found`: No designation exists for the given source + entry ID in the mirror. `mirror_not_ready`: The sanctions mirror has never completed an initial sync. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `designation_not_found`: No designation in the given source has that entry ID or reference number in the mirror. `reference_ambiguous`: The entry ID is a reference number more than one designation in the source publishes. `mirror_not_ready`: The sanctions mirror has never completed an initial sync. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "designation_not_found",
      -  "mirror_not_ready"
      -]New value: +[
      +  "designation_not_found",
      +  "reference_ambiguous",
      +  "mirror_not_ready"
      +]
    • changedOutput schema / properties / identifiers / description
      Previous value: -"Published identifiers (passport, national ID, tax, registration, …)."New value: +"Published identifiers: identity documents (passport, national ID, tax, registration) and, where the source publishes them, SWIFT/BIC codes, digital-currency addresses, vessel call signs, aircraft tail and serial numbers, phone numbers, email addresses, and websites."
    • changedOutput schema / properties / identifiers / items / properties / type / description
      Previous value: -"Identifier category (e.g. Passport, National ID, Tax ID)."New value: +"Identifier category as the source labels it (e.g. Passport, National ID, SWIFT/BIC, Digital Currency Address - XBT, Phone Number, Website)."
    • changedOutput schema / properties / identifiers / items / properties / value / description
      Previous value: -"Identifier value as published."New value: +"Identifier value exactly as published, letter case included."
    • addedOutput schema / properties / referenceNumber
      Added value: +{
      +  "description": "The list's published reference number (UN, EU, UK OFSI Group ID); absent when the list publishes none for the entry. OFAC publishes none — its entry ID is its published number.",
      +  "type": "string"
      +}
  3. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "source",
      +      "sourceLabel",
      +      "sourceEntryId",
      +      "entityType",
      +      "primaryName",
      +      "aliases",
      +      "identifiers",
      +      "addresses",
      +      "datesOfBirth",
      +      "nationalities",
      +      "caveat"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode. Declared by this tool: `designation_not_found`: No designation exists for the given source + entry ID in the mirror. `mirror_not_ready`: The sanctions mirror has never completed an initial sync. Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "designation_not_found",
      +            "mirror_not_ready"
      +          ],
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "source",
      -  "sourceLabel",
      -  "sourceEntryId",
      -  "entityType",
      -  "primaryName",
      -  "aliases",
      -  "identifiers",
      -  "addresses",
      -  "datesOfBirth",
      -  "nationalities",
      -  "caveat"
      -]
  4. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and closed-world, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the record mirrors exactly what the source published, missing fields mean the source omitted them, and it is a screening aid rather than a determination.

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?

The opening clause is well front-loaded and the closing disclaimer earns its place, but the middle sentence is an exhaustive enumeration of alias, identifier, address, and feature types that largely duplicates the output schema. That internal list inflates the description without adding selection or invocation value.

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 2-parameter read tool with full schema coverage, an output schema, and annotations, the description is close to complete: it covers workflow placement, keying, data-fidelity semantics, and scope limits. The one meaningful hole is differentiating this tool from sanctions_get_entity.

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 both parameters are already fully documented, including the 'entry ID first, trimmed and case-insensitive' matching rule. The description only restates that a source list plus entry ID or published reference number is accepted, adding no syntax or format detail beyond the schema.

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

Purpose4/5

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

States a specific verb (Fetch) and a precise resource (the full record for one sanctions designation), and names the exact keying inputs. It distinguishes itself from sanctions_screen_name/sanctions_screen_identifier as the follow-up drill-in, but never addresses how it differs from the sibling sanctions_get_entity, which is the most plausible confusion for an agent.

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

Usage Guidelines4/5

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

Explicitly positions the tool in the workflow: it is 'the drill-in after sanctions_screen_name or sanctions_screen_identifier surfaces a candidate,' or the lookup for a reference a notice cites. That is clear when-to-use guidance with named predecessors, though it offers no exclusion criteria against the get_entity sibling.

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.