Part 1 — the in-cabinet AI Assistant and its slash commands. Part 2 — connecting Compliance MCP to ChatGPT or Claude and phrasing prompts. Full reference across both surfaces.
The client cabinet includes AI Assistant: a chat interface that understands natural-language questions about sanctions, TARIC and compliance, and can call the platform checks for you. Slash commands open guided forms with exactly the fields each workflow needs.
/ for a guided form.The assistant understands natural language and can call platform checks for you. For fast starts, slash commands open a form with exactly the fields a workflow needs.
/ in the input field and select a prepared workflow. Each command opens a form with exactly the fields needed — no guessing which parameters apply./entity for KYC and name sanctions, /goods for goods / CN / TARIC, and /payment for ISO 20022 XML.Screening — /entity, /audit, /lv-frozen, /vop
Goods — /goods, /report, /overview, /embargo, /duty, /measures
Reference — /code, /describe
Sources — /sources
Payments — /payment
The main operator entry points are /entity for KYC/name sanctions, /goods for goods/CN/TARIC, and /payment for ISO 20022 XML.
| Command | What it does | Category |
|---|---|---|
| /audit | Point-in-time person/company screening for a historical date | Screening |
| /lv-frozen | Latvian counterparty KYC against the Latvia FID frozen-assets registry | Screening |
| /entity | Screen a person, company, vessel, aircraft or identifier against sanctions sources | Screening |
| /vop | Verification of Payee (EPC288-23) for payment screening | Screening |
| /goods | Guided CN/TARIC form: report, overview, embargo, duty, measures, description, search | Goods |
| /report | Client-ready HTML report for CN + country | Goods |
| /overview | Compact CN card: description, duty signal, sanctions | Goods |
| /embargo | RU/BY goods embargo check by CN code | Goods |
| /duty | Duty rates only: third-country, customs union, preferential | Goods |
| /measures | Full TARIC measures: prohibitions, licences, VAT, duties | Goods |
| /code | Find a CN code by product description | Reference |
| /describe | CN hierarchy without measures | Reference |
| /sources | Sanctions and export-control source catalog | Sources |
| /payment | ISO 20022 payment screening form: one-shot report or persisted PaymentCase | Payments |
Search across the configured sanctions sources: EU FSF, OFAC SDN/Non-SDN, US CSL, UN SC, UK UKSL, CH SECO, CA SEMA, AU DFAT, JP MOF, LV FID, EurLex RU 269, EurLex RU 833, EurLex BY 765 and LV FID Frozen.
Petr Olegovich Aven · country RU · DOB 1955-03-16.Northbridge Trading Ltd · country RU.SABRRUMM.40003698011 · registration 40003698011.9610903.Matches with score 0–100, source, regulation, grounds, DOB, registration number and a score explanation.
For OFAC vessels the result also carries vessel particulars (type, flag, tonnage) and the owner / controller related parties parsed from the OFAC advanced relationship graph — useful for shadow-fleet and beneficial-owner review.
Use it for audit questions such as: "What did we know about client X on transaction date Y?"
/audit, that flag is on by default.BELKOMMUNMASH · as-of date 2026-04-15 · include delisted: yes.Alexey Nechayev · as-of date 2025-12-01 · include delisted: yes.Was the subject active on the selected date? When was it listed and delisted?
How does historical status differ from current status? Show the audit trail.
Can this be used as evidence for retrospective review?
Checks whether a Latvian SIA, fund or person appears in the registry. This coverage links EU/UN sanctioned principals to Latvian entities with frozen assets.
Faberlic Baltija SIA.50003698011.Petr Aven.Is this a frozen-assets record or a regular sanctions entry? Who is the sanctioned principal?
What ownership / control link is stated? Which Latvian legal basis applies?
What must be checked manually before onboarding?
Verification of Payee under Regulation (EU) 2024/886. Each match returns an explicit decision code.
Reg. (EU) 2024/886 audit badge.IVAN PETROVICH IVANOV · country RU · DOB 1970-05-12.OAO TRANSNEFT · registration SWIFTRUMM.Which EPC code was returned: MTCH, CMTC, NMTC or NOAP? What does it mean for the payment?
Why close match rather than exact match? Which payer/payee fields should be corrected?
Did name + identifier align?
Choose a workflow in the form: report, overview, sanctions, duties, measures, description or search. Best option when the operator does not remember the exact command.
Example — CN/TARIC 7208510000 · country RU · date 2026-05-13 · language EN. With workflow report, it opens a client-ready HTML report.
Both are fixed-workflow alternatives to /goods — use them when you already know which depth of output you need.
Alternative to /goods with the fixed workflow report. Use it when you already know a full report is needed.
Example — CN/TARIC 8517130000 · country CN · language EN.
Compact CN summary — description, main duty rate, sanctions signal and key measure types. Use when you need a quick look without the full report.
Example — CN/TARIC 8471300000 · country CN · language EN.
/report — show legal basis and source links; which prohibitions or licences apply; which footnotes matter; draft an executive summary for the client. · /overview — what is the concise decision; is there a duty rate or RU/BY signal; when should the operator request a full report instead.
Two narrow-scope goods commands for fast, specific answers.
Checks whether a CN/TARIC code falls under goods sanctions against Russia or Belarus (Reg. 833/2014, Reg. 765/2006). Returns direct matches and group-level matches.
Steel — CN 7208510000 · RU. Belarus — CN 2710120000 · BY.
Use when you need only duty rates — third-country, customs union or preferential. Omits measures, footnotes and sanctions. Returns amount, expression and regulation per duty measure.
Example — CN 6203420010 · CN · date 2026-05-13.
/embargo — direct or group match; at which CN/heading level it triggered; which regulation; should we run the full report. · /duty — third-country duty; preferential/customs-union rate; what changes with a different origin country; which date the rate is valid for; which non-duty measures the tool intentionally omits.
Duties, prohibitions, licences, VAT and legal references — without the HTML report wrapper.
277 for an export prohibition.8517130000 · country empty for global overview · measure type optional.Which measure types apply? Are there prohibitions, licences, anti-dumping, VAT or additional codes?
Which conditions / footnotes need review? Should we generate an HTML report?
The assistant validates the message, parses the payment chain, resolves BICs through the deterministic waterfall (local cache → GLEIF → configured providers), screens every participant and prepares an HTML report.
screening_run_id. In production the run is durable-temporary in Supabase until TTL, but it does not enter the case register. Tool: screen_iso20022_payment.create_iso20022_payment_case./payment → paste the pain.001 / pacs.008 XML → enable Persist payment case → submit. The response includes case_id; follow-up evidence is loaded with get_payment_case_evidence.run_id. Follow-up questions read the saved result with get_payment_screening_run (by run_id, or without arguments for the latest active run). Do not resubmit XML unless a rerun is explicitly asked.pacs.008.001.12 · persist off · threshold 75. Persisted — pain.001.001.13 · persist on · threshold 75 · as-of date empty or a specific historical date.Top decision — clear / review required / hit / integrity error.
Message metadata — type, version, message id, XSD validation status.
Payment chain — role, name, country, identifiers, verdict.
Validation warnings.
Sanctions matches and source/regulation evidence.
run_id + expiry for one-shot, or case_id + state for a persisted case.
The next step for the operator.
Two reference commands for classification work — neither returns measures or sanctions.
Find a CN code by product description or numeric prefix. Returns matching CN codes with descriptions.
By description — product or prefix electric motors · language EN. By prefix — 8517.
Returns the classification hierarchy and description — chapter → heading → subheading → CN — without measures or sanctions.
Example — CN/TARIC 8471300000 · language EN.
/code — which code is most likely and why; closest alternatives; what to ask the client (material, use, power, composition, packaging); run overview/report for the selected code. · /describe — where the code sits in the hierarchy; parent headings; similar sibling codes; run measures/duties after classification.
Authority, jurisdiction, coverage, update frequency and last daily-sync status — for explainability and audit reports.
sanctions to see only sanctions sources.Which sources are enabled? When was the last successful refresh? Which sources have daily sync?
Are there disabled / candidate sources? Which jurisdictions are covered?
Which sources are used separately for payment, entity and goods?
Useful for demos, QA and operator training — each checks that the assistant keeps context and can read the tool result it already has.
| Command | Useful follow-up questions |
|---|---|
| /entity | Why did this match receive this score? Which aliases matched? Which sanctions lists returned results? Show regulation / program / grounds. Are there ownership or control signals? What should the operator do next? |
| /audit | Was the subject active on the selected date? When was it listed and delisted? How does historical status differ from current status? Show the audit trail. Can this be used as evidence for retrospective review? |
| /lv-frozen | Is this a frozen-assets record or a regular sanctions entry? Who is the sanctioned principal? What ownership/control link is stated? Which Latvian legal basis applies? What must be checked manually before onboarding? |
| /vop | Which EPC code was returned: MTCH, CMTC, NMTC or NOAP? What does it mean for the payment? Why close match rather than exact match? Which payer/payee fields should be corrected? Did name + identifier align? |
| /goods | Which workflow was selected and why? Which CN code was used? Are there sanctions / prohibitions / licences? Should we open the full HTML report? Which parameters need clarification: origin country, date, additional code? |
| /report | Show legal basis and source links. Which prohibitions or licences apply? Which footnotes matter? Draft an executive summary for the client. Are there country/date/additional-code limitations? |
| /overview | What is the concise compliance decision? Is there a duty rate? Is there a RU/BY sanctions signal? Which measure types are present? When should the operator request a full report instead of overview? |
The remaining workflows — narrow-scope goods commands, reference commands, sources, and both payment modes.
| Command | Useful follow-up questions |
|---|---|
| /embargo | Is this a direct match or a group-level match? At which CN/heading level did it trigger? Which regulation applies? What if the product only hits a group-level restriction? Should we run the full report? |
| /duty | What is the third-country duty? Is there a preferential/customs-union rate? What changes with a different origin country? Which date is the rate valid for? Which non-duty measures does this tool intentionally omit? |
| /measures | Which measure types apply? Are there prohibitions, licences, anti-dumping, VAT or additional codes? Which conditions / footnotes need review? Should we generate an HTML report? |
| /code | Which code is most likely and why? What are the closest alternatives? What should we ask the client: material, use, power, composition, packaging? Can we immediately run overview/report for the selected code? |
| /describe | Where does the code sit in the hierarchy? What are the parent headings? Are there similar sibling codes? What does the CN description mean? Should we run measures/duties after classification? |
| /sources | Which sources are enabled? When was the last successful refresh? Which sources have daily sync? Are there disabled/candidate sources? Which jurisdictions are covered? Which sources are used for payment/entity/goods? |
| /payment one-shot | Show payment chain: role, name, country, verdict. Who requires review and why? Are there validation warnings? What is the run status and when does it expire? Unresolved BICs or enrichment tasks? Riskiest participant? How do I save this into cases? |
| /payment case | What is the case_id and state? Show stored evidence. Which case items were created? Is raw XML evidence available? Which participants/validations need analyst review? How do I open the signed case report? |
Every command and natural-language request maps to a concrete MCP tool. Knowing the mapping helps with debugging and operator training.
| MCP tool | Invoked through · what to ask next |
|---|---|
| open_entity_screening_form | /entity, /screen — which fields are required? Should I provide DOB, country or registration number? Which threshold? |
| screen_entities | /entity, /audit, /lv-frozen, natural KYC request — why this score? Which aliases/identifiers matched? Which lists and regulations? Historical/delisted status? |
| screen_entity_vop | /vop, payment verification request — which EPC code? What do MTCH/CMTC/NMTC/NOAP mean? Manual review needed? Which payee data to correct? |
| open_goods_screening_form | /goods — which workflow: report, overview, embargo, duty, measures, description, search? Which parameters are missing? |
| get_compliance_report | /report, /goods workflow report — legal basis, prohibitions/licences, footnotes, source links, executive summary, Open/Download. |
| check_trade_compliance | API/MCP direct detailed check — which measures triggered? Are there sanctions? Which raw facts/footnotes matter? Client-ready report needed? |
| get_overview | /overview, /goods workflow overview — short decision? Duty/sanctions signal? When is a full report needed? |
| check_sanctions | /embargo, /goods workflow sanctions — direct or group match? Which regulation? Which CN/heading level? Full report needed? |
| get_duties | /duty, /goods workflow duties — third-country or preferential? Which date? What changes with another origin? Which non-duty measures omitted? |
| get_measures | /measures, /goods workflow measures — which measure types? Prohibition/licence/anti-dumping/VAT? Conditions and additional codes? |
Reference lookups, the ISO 20022 payment tool chain, BIC enrichment and the source catalog.
| MCP tool | Invoked through · what to ask next |
|---|---|
| search_cn_codes | /code, /goods workflow search — which code is most likely? Alternatives? What to clarify with the client? Run overview/report for the selected code? |
| get_cn_description | /describe, /goods workflow description — where is the code in the hierarchy? Parent/sibling codes? Need measures/duties after classification? |
| open_payment_screening_form | /payment — one-shot or Persist PaymentCase? How to enable the checkbox? Which XML versions are supported? |
| validate_iso20022_payment | Natural request to validate XML structure — XSD valid/invalid? Validation warnings? Parsed payment chain? Missing BICs? |
| screen_iso20022_payment | /payment one-shot — payment chain, participants needing review, warnings, summary counts, source lists/regulations, run status/expiry. |
| get_payment_screening_run | Follow-up after /payment one-shot — show evidence without rerun: chain, warnings, riskiest participant, summary, run metadata. |
| create_iso20022_payment_case | /payment with Persist payment case checked — what is the case_id and state? Which case items/evidence were saved? Next steps? |
| get_payment_case_evidence | Follow-up for a persisted PaymentCase — show raw XML evidence, participants, messages, matches, warnings, case report link. |
| resolve_payment_bics_agentic | Explicit BIC enrichment/debug request — which BICs are unresolved? Which web-search tasks? Mark all results ⚠ UNVERIFIED (web search); never clear the payment on this alone. |
| list_sanctions_sources | /sources, freshness/data-coverage questions — which sources are enabled? Last refresh? Daily sync? Disabled/candidate sources? Which sources for entity/goods/payment? |
Practical guidance for operators working in the cabinet AI Assistant.
Sanctions source filters accept these exact IDs — useful for precise, reproducible screening scopes.
EU_FSF, OFAC_SDN, OFAC_NON_SDN, UN_SC, LV_FID, LV_FID_FROZEN, UK_UKSL, CH_SECO, US_CSL, CA_SEMA, AU_DFAT, UA_NSDC, JP_MOF, EurLex_RU_269, EurLex_RU_833, EurLex_BY_765.EurLex_RU_269 is the EU asset-freeze designation list (Reg. 269/2014); EurLex_RU_833 is the sectoral / trade list.EU_ML (EU Common Military List) and EU_DUAL_USE (EU Dual-Use Annex I).EU_ML and EU_DUAL_USE are source evidence for goods / export-control classification — not entity-screening filters.Using exact source IDs lets an operator pin a screening run to a precise, named set of lists — and reproduce it later for audit.
It also keeps export-control reference data (Military List, Dual-Use Annex I) cleanly separated from entity sanctions screening.
For customers who connect Compliance MCP to ChatGPT or Claude. After connection there are no slash commands — the assistant chooses the tool from the natural-language request. This part shows how to phrase prompts, which MCP tool should be called, and what the operator should expect.
After connection there are no slash commands — the LLM chooses the tool from the keywords in your request.
The clearer the keywords, the more reliably the model picks the right tool. The next slide maps common signals to the tool they trigger.
The LLM reads each tool's description and matches it to signals in your prompt.
| Keywords in the request | Tool likely to be called |
|---|---|
| CN code + country + "check", "report", "compliance" | get_compliance_report |
| CN code + "short", "overview", "summary" | get_overview |
| CN code + "duty", "tariff" | get_duties |
| CN code + "measures", "prohibitions" | get_measures |
| CN code + RU/BY + "sanctions", "embargo" | check_sanctions |
| CN code + "describe", "hierarchy", "classification" | get_cn_description |
| Product description without a code | search_cn_codes |
| CAS RN / CUS / EC number / InChIKey / chemical name | search_chemical_substances |
| "export control", "dual-use", "EU Military List", "ML", CAS control hint | search_export_control_candidates |
| Name/company + "screen", "KYC", "SDN", "sanctions list" | screen_entities |
| Vessel name / IMO + "owner", "operator", "beneficial owner", "shadow fleet" | screen_entities · entity_type=vessel |
| Vessel/aircraft + "related parties", "owner graph", "manager", "charterer" | lookup_ofac_asset_related_parties → screen_entities |
| Bank name / BIC / SWIFT + "sanctions", "screen" | screen_entities · entity_type=legal_person |
| Name/company + "as of date", "point-in-time", "audit" | screen_entities · as_of_date |
| Payee name + "payment", "VoP", "verification of payee" | screen_entity_vop |
| ISO 20022 XML, pain.001 or pacs.008 | validate_iso20022_payment |
| ISO 20022 XML + "screen all participants" | screen_iso20022_payment |
| /payment, "open payment form", "create PaymentCase" | open_payment_screening_form → screen / create case |
| "where is the data from", "sources", "freshness" | list_sanctions_sources |
Give the assistant the entity type and an identifier where you can.
screen_entities · query="Petr Olegovich Aven" · date_of_birth="1955-03-16" · country="RU" · entity_type="natural_person".screen_entities · query="Northbridge Trading Ltd PJSC" · entity_type="legal_person" · limit=10.An exact identifier match is high-confidence evidence; an as-of date switches the run to historical screening.
screen_entities with registration_number.screen_entities with as_of_date and include_historical_closed=true.Vessel screening surfaces the owner / controller; the related-party lookup returns relationship metadata only.
screen_entities · entity_type="vessel" · IMO as registration_number.lookup_ofac_asset_related_parties · item_type="vessel" (also "aircraft") · IMO as registration_number.screen_entities on the named parties before any compliance decision. A related-party hit is not a sanctions determination on its own.Words like "payment", "VoP", "EPC288-23", "PSP" and "payee" steer the model to the VoP tool.
screen_entity_vop.MTCH, CMTC, NMTC or NOAP, a scenario label, and what the payment operator should correct or review.MTCH — match, allow.
CMTC — close match, manual review.
NMTC — no match, block or investigate.
NOAP — not applicable.
Say "client HTML report" when you need a deliverable; "short overview" for a quick card.
get_compliance_report.get_overview.Embargo separates direct from group matches; duty-only intentionally omits non-duty measures.
check_sanctions.get_duties.Search returns candidates and clarification questions; hierarchy shows where a code sits.
search_cn_codes.get_cn_description.Both return candidate classifications — the legal text remains the controlling source.
search_chemical_substances.search_export_control_candidates.The /payment form accepts pain.001 or pacs.008, lets you set threshold / as-of date, and choose one-shot or a saved audit case.
validate_iso20022_payment. Expected — message type/version, validation status, payment chain nodes, warnings (missing BICs, invalid code-list values) and XSD status.open_payment_screening_form. The form runs one-shot screening or a persisted PaymentCase.One-shot — validates XML, parses the chain, screens participants, returns HTML report + screening_run_id. Durable-temporary in Supabase until TTL; not a PaymentCase. Tool: screen_iso20022_payment.
Persist PaymentCase — same screening, saved as an audit-ready case. Tool: create_iso20022_payment_case.
To tick the checkbox: type /payment → paste XML → enable Persist payment case → submit. The assistant should call create_iso20022_payment_case and return a case_id. Follow-up rule: read a one-shot back with get_payment_screening_run — do not resubmit XML.
These questions work after the report — the agent reads the saved result rather than resubmitting XML.
| User question | Expected agent behavior |
|---|---|
| Show the payment chain — roles, names, countries, verdict. | Read participants[] from get_payment_screening_run; render role, name, country and screening.status. |
| Which participants require review and why? | Filter hit / review / error participants, plus validation warnings, BIC mismatch and unresolved BIC. |
| Are there validation warnings? | Read validation.warnings[] — show code, message, details and audit impact. |
| What is the run status and when does it expire? | Read screening_run.status, persistence, storage_backend, expires_at, ttl_seconds. |
| Show source lists and regulations for matches. | Inspect participants[].screening.matches[] — list/source, regulation/program, authority, listing date, source URL. |
| Unresolved BICs or agentic enrichment tasks? | Inspect agenticBicEnrichment and resolution statuses; mark web-search output as UNVERIFIED. |
| Formulate the operator next step. | Use top decision + warnings — proceed only if clear; review warnings/mismatches; block or escalate sanctions hits. |
| Show summary counts. | Read summary.hit_count, review_count, clear_count, warning_count. |
| Open details for the riskiest participant. | Pick the highest score or hit status; show identifiers, top match, list, regulation, grounds, evidence dates. |
| How do I save this payment into cases? Can I clear it? | Explain the Persist payment case checkbox; a completed one-shot needs resubmission to persist. Do not clear automatically — require review for warnings, hits or unresolved BICs. |
Persisting preserves audit evidence; agentic BIC enrichment is a research aid, never a verdict change.
create_iso20022_payment_case, or /payment with Persist payment case enabled.case_id, state, signed HTML report, payment chain, validation warnings, per-participant verdicts and, where applicable, an agentic BIC enrichment section. Follow-up evidence uses get_payment_case_evidence.resolve_payment_bics_agentic.screen_entities required before clearing.After any prompt family, these questions check that the agent kept context — for demos, QA and training.
| Prompt family | Useful follow-up questions |
|---|---|
| entity / KYC | Why this score? Which aliases matched? Which lists returned results? Show regulation / program / grounds. Ownership or control signals? What next? |
| audit / point-in-time | Was the subject active on the selected date? When listed and delisted? How does historical status differ from current? Show the source audit trail. |
| VoP | Which EPC code returned — MTCH, CMTC, NMTC, NOAP? Why close match? Which payer fields should be corrected? |
| lv-frozen | Is this a frozen-assets record or a regular sanctions entry? Who is the sanctioned principal? What ownership/control link is stated? |
| goods guided | Which workflow was selected and why? Which CN code? Are there sanctions, prohibitions or licences? Should we open the full HTML report? |
| overview | What is the short compliance decision? Is there a duty rate or RU/BY sanctions signal? When is a full report needed? |
| report | Show legal basis and source links. Which prohibitions or licences apply? Which footnotes matter? Draft an executive summary. |
| embargo | Direct or group-level match? Which CN/heading level triggered? Which regulation applies? Should we run the full report? |
| duty | What is the third-country duty? Is there a preferential rate? What changes with a different origin country? |
| measures | Which measure types apply? Prohibitions, licences, anti-dumping, VAT or additional codes? |
| code / describe | Which code is most likely and why? Closest alternatives? What to ask the client? Where is the code in the classification hierarchy? |
| sources | Which sources are enabled? Last refresh? Daily sync? Disabled/candidate sources? Which sources for entity/goods/payment? |
| payment | Show the chain. Who requires review and why? Validation warnings? Expiry? Unresolved BICs? Summary counts? Riskiest participant? case_id and state? Stored evidence? |
Two explainability prompts — where the data comes from, and why a score landed where it did.
list_sanctions_sources.A single request can trigger two or more tools; the assistant aggregates them into one operator decision.
get_compliance_report and screen_entities.check_sanctions, screen_entities, screen_entity_vop.Guidance for customers running Compliance MCP inside their own ChatGPT or Claude.
7208510000, not 7208 51 0000.The assistant is built to refuse evasion and to insist on grounded, tool-backed answers.
Across both surfaces — cabinet assistant and external MCP — the rule is the same: ground the answer in a tool call, keep the evidence, and let an analyst review anything that warns or hits.