Verified UK sanctions screening for AI agents — official FCDO UK Sanctions List, not guesses.
Two well-named, read-only tools with strong descriptions that clearly state purpose, limitations, and disclaimers. Both tools have complete input schemas with typed parameters and descriptions. Output schemas are not explicitly documented in the source, but tool implementations return structured JSON. Naming follows verb_noun pattern (screen_name, get_sanctions_entry). Descriptions are detailed (200+ chars) and include critical caveats about indicative matching and human verification requirements. Parameters are well-described with clear intent. No error handling guidance visible in the code; no recovery patterns documented. Security is appropriate for read-only operations. Composition is clean: two distinct responsibilities, no overlapping functionality.
USE THIS to fetch the full official UK Sanctions List entry for a Unique ID (e.g. one returned by screen_name) — all names/aliases, regime, designation date, sanctions imposed, nationality/DOB, and the UK statement of reasons.
USE THIS to screen a person, company or vessel name against the UK Sanctions List before onboarding, paying, or transacting with them — never decide from memory whether someone is sanctioned. Returns ranked POSSIBLE matches with the official designation details (regime, type, sanctions imposed, statement-of-reasons snippet). CRITICAL: this is an INDICATIVE name-match only — a match MUST be verified by a human against the official entry and is NOT confirmation; a 'no match' is NOT a clearance (it covers the UK FCDO list only, screens the name string only, and reflects the dataset's report date). Not legal, compliance or KYC/AML advice.
Output schemas not documented. While tools return structured JSON (visible in server.ts json() and structuredContent), the response field structure is not formally declared. LLMs cannot plan downstream operations without knowing what fields to expect.
No error handling guidance. Catch block in server.ts returns generic error message. LLMs receive no recovery hints (e.g., 'Invalid ID format. Use IDs returned by screen_name, e.g., RUS0001'). Errors should guide next steps.
screen_name 'limit' parameter lacks constraints. Description says 'default 10' but no min/max bounds specified. Unbounded numeric parameters let LLMs pass absurd values (e.g., limit=999999) that could stress the API.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
STDIO transport only. Server is not remotely accessible and cannot be used by hosted MCP clients. This is a hard architectural limitation, not a code quality issue, but it severely restricts deployment scenarios.