MCP Server

SanctionsKit developer MCP

io.github.SanctionsKit/sanctionskit
Developer Tools Legal & Compliance Public & reachable MCP 2025-11-25

What this MCP does

Documents and validates a sanctions-screening API and supports synthetic sandbox screening, result retrieval, source inspection, and usage checks.

get_api_schema
Inspect the REST API contract
Without path, list consumer REST operations. With a path such as /screenings and lowercase method, retrieve its OpenAPI request, response, examples and referenced schemas. Describes REST capabilities; MCP account tools are sandbox only.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'path': {'type': 'string', 'maxLength': 150, 'minLength': 1}, 'method': {'enum': ['get', 'post', 'put', 'patch', 'delete'], 'type': 'string', 'default': 'get'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['data'], 'properties': {'data': {}}, 'additionalProperties': False}
get_doc
Read an integration document
Read a document returned by search_docs, including code examples and error handling. Uses a fixed local document catalog; does not fetch arbitrary URLs.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'pattern': '^[a-z0-9/-]+$', 'maxLength': 150, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['data'], 'properties': {'data': {}}, 'additionalProperties': False}
get_profile
Identify the connected profile
Identify the sandbox profile represented by the authenticated connection. Takes no user or workspace selector.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'name': {'type': 'string'}, 'email': {'type': 'string'}, 'nickname': {'type': 'string'}}, 'additionalProperties': False}
get_screening_result
Read a sandbox screening result
Retrieve retained evidence by screening ID from the connected sandbox workspace. An expired result is an error. Preserve coverage, versions, warnings and potential-match review requirements.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['data'], 'properties': {'data': {}}, 'additionalProperties': False}
get_usage
Check sandbox allowance
Read the connected sandbox workspace allowance, completed subjects and pending reservations.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['data'], 'properties': {'data': {}}, 'additionalProperties': False}
list_sources
Discover source coverage
Read current source metadata and qualification from the connected sandbox workspace, with bounded pagination. Catalog/production source availability does not enable live MCP screenings; sandbox screening uses sandbox@1.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 100}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['data'], 'properties': {'data': {}}, 'additionalProperties': False}
run_sandbox_screening
Test a sandbox screening
Submit invented data to sandbox@1. Requires synthetic=true and an idempotencyKey of 8–128 URL-safe characters, reused unchanged with the same request for retries. Retains screening evidence according to policy and may create a review case; consumes sandbox allowance, never paid production allowance. Cannot screen production or link counterparties.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['request', 'idempotencyKey', 'synthetic'], 'properties': {'request': {'type': 'object', 'required': ['subject'], 'properties': {'policy': {'type': 'object', 'required': ['id', 'version'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'version': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'package': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'sources': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'maxItems': 512, 'minItems': 1}, 'subject': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 300, 'minLength': 2}, 'country': {'type': 'string', 'maxLength': 100, 'minLength': 2}, 'birthDate': {'anyOf': [{'type': 'string', 'pattern': '^(?!0000)\\d{4}$'}, {'type': 'string', 'pattern': '^(?!0000)\\d{4}-(0[1-9]|1[0-2])$'}, {'type': 'string', 'allOf': [{'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'pattern': '^(?!0000)'}]}]}, 'entityType': {'enum': ['person', 'organization', 'vessel', 'aircraft', 'other'], 'type': 'string', 'default': 'person'}, 'identifiers': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'value'], 'properties': {'type': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'issuer': {'type': 'string', 'maxLength': 100, 'minLength': 1}}, 'additionalProperties': False}, 'default': [], 'maxItems': 20}}, 'additionalProperties': False}, 'reference': {'type': 'string', 'maxLength': 160}, 'retention': {'enum': ['standard', 'minimal'], 'type': 'string', 'default': 'standard'}, 'counterpartyId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'synthetic': {'type': 'boolean', 'const': True}, 'idempotencyKey': {'type': 'string', 'pattern': '^[\\w:.-]{8,128}$'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['data'], 'properties': {'data': {}}, 'additionalProperties': False}
search_docs
Search SanctionsKit documentation
Find current integration documentation and guides by keyword. Returns document slugs for get_doc. Public; no account needed.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 2}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['data'], 'properties': {'data': {}}, 'additionalProperties': False}
validate_screening_request
Validate a screening request
Validate request structure against the runtime REST screening schema without submitting or retaining it. Does not check live source eligibility or grant clearance. Use synthetic development inputs.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['request'], 'properties': {'request': {}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['data'], 'properties': {'data': {}}, 'additionalProperties': False}
Added
get_profile
Oct. 5, 2026, 2:40 a.m.
Added
get_usage
Oct. 5, 2026, 2:40 a.m.
Added
get_screening_result
Oct. 5, 2026, 2:40 a.m.
Added
run_sandbox_screening
Oct. 5, 2026, 2:40 a.m.
Added
list_sources
Oct. 5, 2026, 2:40 a.m.
Added
validate_screening_request
Oct. 5, 2026, 2:40 a.m.
Added
get_api_schema
Oct. 5, 2026, 2:40 a.m.
Added
get_doc
Oct. 5, 2026, 2:40 a.m.
Added
search_docs
Oct. 5, 2026, 2:40 a.m.