Reference
MCP Connector Reference
The MCP tool catalog, routing guidance, OAuth flow and JSON-RPC examples for AI clients connecting directly — the layer the REST API docs can't describe.
Verified against the live MCP server and its tool catalog while writing this page — endpoint names, tool names and OAuth routes are real, not illustrative.
1. What This Is, And How It Relates To The API Docs
There are two ways to integrate: plain REST under /v1, documented at api.compliance-mcp.com/docs — and the MCP connector, a single JSON-RPC endpoint that exposes the same underlying checks as a tool catalog for AI clients like ChatGPT and Claude.
The REST docs are auto-generated from the OpenAPI schema, and that schema does show that POST /mcp and GET /mcp exist — but OpenAPI has no way to describe what happens inside a JSON-RPC method dispatch. It can't enumerate the tool catalog, say which tool to call for which request, or describe the MCP-specific OAuth flow. This page is that missing layer.
Use /docs if you're integrating over plain REST. Use this page if you're building or configuring an MCP host or client — ChatGPT Connectors, Claude Connectors, or any other MCP-compatible assistant.
2. Connecting
| Setting | Value |
|---|---|
| Production MCP URL | https://api.compliance-mcp.com/mcp |
| Protocol | MCP over JSON-RPC 2.0 |
| Main transport | POST /mcp |
| Streaming transport | GET /mcp with Accept: text/event-stream for SSE/resource notifications |
| Session cleanup | DELETE /mcp, when the host supports MCP session termination |
| Auth | Authorization: Bearer tk_<organization-api-key> |
| Required key capability | mcp_access |
The connector is self-describing: call initialize, then tools/list, and use resources/list / prompts/list when the host supports them.
search and fetch are compatibility tools for ChatGPT-style connector discovery and deep-research mode — useful for finding connector capabilities and CN/TARIC reference text, but not the operational screening path. Business checks should call the domain tools below directly.
3. Tool Catalog — Discovery And Metadata
| Tool | Use when | Key inputs |
|---|---|---|
search | ChatGPT-style discovery over TARIC/CN reference data and connector capabilities | query |
fetch | Retrieve the full text payload for a result id returned by search | id |
list_sanctions_sources | Inspect the official source catalog and latest refresh metadata | category, include_disabled |
get_connector_metadata | Inspect connector versions, resources, prompts, source catalog, changelog and notification/fallback behavior | include_tools, include_sources, include_prompts, include_changelog |
The catalog is versioned (toolset_version, metadata_version) rather than dated in this document — call get_connector_metadata for the version and change history currently live, the same way Prompt Scenarios: Banking & Payments treats /sources as the live word on source coverage.
4. Tool Catalog — Goods, Customs And Chemicals
| Tool | Use when | Key inputs |
|---|---|---|
get_compliance_report | Full goods compliance check plus a client-ready HTML evidence report | taric_code, country, date, language, product_texts |
check_trade_compliance | Same full check as raw JSON — TARIC hierarchy, measures, duties, RU/BY goods sanctions, goods-risk export-control layers | taric_code, country, measure_type, additional_code, date, language, product_texts |
check_sanctions | Lightweight RU/BY goods-sanctions-only check | taric_code, country, date, language |
get_overview | Compact card — description, hierarchy, duty rate, sanctions status, key measures | taric_code, country, date, language |
get_duties | Duty rates only, stripped of non-duty measures | taric_code, country, date, language |
get_measures | Full TARIC measures without sanctions | taric_code, country, measure_type, additional_code, date, language |
get_cn_description | CN/TARIC hierarchy and description only | taric_code, language |
search_cn_codes | Find CN codes by product description or numeric prefix | query, language, limit |
search_chemical_substances | Search the ECICS chemical reference cache by CAS, EC, CUS, InChIKey or name | query, language, limit |
search_export_control_candidates | Search export-control candidate wording by CAS RN, CN/TARIC, control code or product text — see HS / CN / TARIC Classification §6 for why a bare code alone is weak | query, cas_rn, cn_code, limit |
get_goods_screening_run | Re-read a recent /goods widget run's full evidence without rerunning get_compliance_report | optional run_id |
5. Tool Catalog — Entity, Vessel And PEP Screening
| Tool | Use when | Key inputs |
|---|---|---|
screen_entities | Screen a person, company, vessel, bank, aircraft, alias, identifier or address for KYC/AML sanctions exposure | query, address, country, date_of_birth, registration_number, threshold, entity_type, limit, as_of_date, include_historical_closed, list_name |
screen_entity_vop | EPC288-23 / Reg. (EU) 2024/886 VoP close-match classification — MTCH, CMTC, NMTC, NOAP. See Why VoP and sanctions screening can disagree before treating a VoP result as a sanctions clearance | query, country, date_of_birth, registration_number, threshold, entity_type, limit, as_of_date, list_name |
screen_pep | Screen a person against the PEP layer — EU-27 and European Parliament office holders, Georgia's ACB data, the Latvian Saeima, the Estonian Riigikogu, the Lithuanian Seimas, and a Central Asia parliamentary layer (Kazakhstan, Kyrgyzstan, Uzbekistan). A hit is an EDD risk signal, not a sanctions block | query, country, date_of_birth, as_of_date, threshold, limit |
lookup_ofac_asset_related_parties | Read OFAC SDN enhanced owner/operator/related-party metadata for vessels and aircraft — relationship evidence only; returned parties still need screen_entities | item_type, query, registration_number, limit |
get_entity_screening_run | Re-read a recent /entity widget run's full evidence without rerunning screen_entities | optional run_id |
6. Tool Catalog — KYB, Business Registry
Not in the original internal reference this page replaces — genuinely new capability, and worth calling out on its own, matching the depth given to it in Prompt Scenarios: Banking & Payments §8–9.
| Tool | Use when | Key inputs |
|---|---|---|
search_business_registry | Find a company in the Latvian, Estonian, Kazakhstan or Polish company register | query, country |
get_business_registry_profile | Full company card plus available related-party records for an already-resolved registry company | source_ref, registry_code |
screen_business_entity_with_related_parties | Resolve a registry company, pull its officers and beneficial owners, and screen the company plus every named person in one call — see Clean company, unchecked director for why this matters | query or registry_code, country, include_officers, include_beneficial_owners, include_shareholders |
Registry data is reference evidence, not a sanctions clearance on its own — screen_business_entity_with_related_parties is what turns it into one.
7. Tool Catalog — ISO 20022 Payments
| Tool | Use when | Key inputs |
|---|---|---|
validate_iso20022_payment | Parse pain.001/pacs.008 XML and return structural validation status plus the payment chain — no screening | xml |
screen_iso20022_payment | One-shot screening of every participant. Omitting xml retrieves the latest active run for the current MCP session | xml, threshold, limit, list_name, as_of_date, include_historical_closed |
create_iso20022_payment_case | Same screening, persisted as an audit-ready PaymentCase | xml, threshold, limit, list_name, as_of_date, include_historical_closed |
get_payment_case_evidence | Load a stored PaymentCase | case_id |
get_payment_screening_run | Load transient one-shot evidence without creating a case. Safe with no arguments — returns the latest active run | optional run_id |
resolve_payment_bics_agentic | Prepare web-search tasks for unresolved BICs — unverified, and never changes a payment verdict on its own | xml, max_bics |
8. Tool Catalog — Interactive Widgets
| Tool | Use when | Key inputs |
|---|---|---|
open_goods_screening_form (short alias goods) | Open the TARIC/CN goods screening widget | optional taric_code, product, country, date, language, product_texts |
open_entity_screening_form (short alias entity) | Open the entity/person/vessel/bank/aircraft screening widget | optional item_type, query, country, date_of_birth, entity_type, list_name, threshold |
open_payment_screening_form (short alias payment) | Open the ISO 20022 payment widget | optional xml, threshold, as_of_date, include_historical_closed, persist_case |
Widget submissions run the underlying tool directly and persist a transient run — read it back with get_goods_screening_run, get_entity_screening_run or get_payment_screening_run rather than resubmitting the same input.
9. Routing Guidance
- CN/TARIC code plus country →
get_compliance_report - Quick duty rate →
get_overvieworget_duties - RU/BY goods sanctions only →
check_sanctions - Person, company, vessel, aircraft, bank, address or identifier screening →
screen_entities - Vessel/aircraft owner or operator relationship →
lookup_ofac_asset_related_parties, thenscreen_entitieson the returned names - Payment / PSP / EPC VoP close-match decision →
screen_entity_vop - PEP / EDD risk on a person →
screen_pep, alongsidescreen_entitieswhen sanctions exposure also matters - Company registry lookup, UBO, related parties →
search_business_registry→screen_business_entity_with_related_parties - ISO 20022 XML parse only →
validate_iso20022_payment - ISO 20022 one-shot preview →
screen_iso20022_payment - ISO 20022 persisted audit case →
create_iso20022_payment_case - Follow-up on a run already made → the matching
get_*_screening_run/get_payment_case_evidencetool, not a resubmission - Source/freshness/audit coverage →
list_sanctions_sources - Connector version/capabilities question →
get_connector_metadata
10. JSON-RPC Examples
Initialize:
curl -X POST "https://api.compliance-mcp.com/mcp" \
-H "Authorization: Bearer tk_..." \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"clientInfo": {"name": "example-client", "version": "1.0.0"}
}
}'
List tools:
curl -X POST "https://api.compliance-mcp.com/mcp" \
-H "Authorization: Bearer tk_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
Call a tool — screen an entity:
curl -X POST "https://api.compliance-mcp.com/mcp" \
-H "Authorization: Bearer tk_..." \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "screen_entities",
"arguments": {
"query": "Petr Aven",
"threshold": 60,
"limit": 20,
"list_name": "LV_FID_FROZEN"
}
}
}'
Follow up on the latest one-shot payment run, without resubmitting XML:
curl -X POST "https://api.compliance-mcp.com/mcp" \
-H "Authorization: Bearer tk_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"get_payment_screening_run","arguments":{}}}'
11. Resources And Prompts
| Resource URI | MIME type | Purpose |
|---|---|---|
compliance://server/manifest.json | application/json | Connector manifest and version policy |
compliance://sources/catalog.json | application/json | Machine-readable source catalog and freshness metadata |
compliance://sources/catalog.md | text/markdown | Human-readable source catalog for audit conversations |
compliance://server/changelog.md | text/markdown | Connector changelog and customer-facing change summary |
| Widget resource URI | MIME type | Purpose |
|---|---|---|
ui://widget/compliance-report.html | text/html;profile=mcp-app | Interactive HTML evidence report viewer |
ui://widget/entity-screening-form.html | text/html;profile=mcp-app | Entity/person/vessel/bank/aircraft screening form |
ui://widget/goods-screening-form.html | text/html;profile=mcp-app | TARIC/CN goods screening form |
ui://widget/payment-screening-form.html | text/html;profile=mcp-app | ISO 20022 payment screening form |
Prompt templates are exposed through prompts/list and prompts/get for clients that support them — useful for hosts that render prompts as guided forms. Clients that don't should use the open_*_screening_form tools directly instead.
12. OAuth 2.1 For MCP Clients
For OpenAI Web custom connectors and other OAuth-capable MCP hosts, the endpoint advertises protected resource metadata and an Authorization Code + PKCE flow.
| OAuth endpoint | URL |
|---|---|
| Protected resource metadata | https://api.compliance-mcp.com/.well-known/oauth-protected-resource |
| Authorization server metadata | https://api.compliance-mcp.com/.well-known/oauth-authorization-server |
| Dynamic client registration | https://api.compliance-mcp.com/oauth/register |
| Authorization endpoint | https://api.compliance-mcp.com/oauth/authorize |
| Token endpoint | https://api.compliance-mcp.com/oauth/token |
Flow: the host reads the protected-resource and authorization-server metadata, registers a public OAuth client through /oauth/register, opens /oauth/authorize with PKCE S256, the user pastes an organization API key (tk_...) into the hosted consent page, and the host exchanges the code at /oauth/token. The issued access token is the organization key, so existing tenant access controls apply unchanged.
Direct bearer mode. Hosts that support direct bearer auth can skip OAuth entirely and send Authorization: Bearer tk_<organization-api-key> directly. Never place the key in public connector metadata, instructions or screenshots — only in the OAuth consent form or the host's private bearer-token setting.
The organization key needs mcp_access for MCP calls; api_access is a separate capability for REST — one does not imply the other.
13. Access And Error Model
| Failure situation | Expected behavior |
|---|---|
| Missing or invalid bearer token | 401 |
Key does not have mcp_access | 403 |
| Tenant quota or rate limit exceeded | 429 |
| Tool arguments fail schema validation | MCP tool result with isError=true and a validation message |
| Source or database lookup fails | Tool-specific error result, or 5xx depending on the transport layer |
Tool results are compliance evidence and review signals. They do not replace legal, customs, trade or regulatory advice.
14. Related Material
- AI Assistant User Guide — the same tools, driven from in-cabinet slash commands instead of a raw MCP client
- Entity Screening Algorithms — how the score behind every
screen_entitiesresult is actually assigned - Prompt Scenarios: Banking & Payments — live-tested natural-language prompts for the KYC/KYB/payment tools above