- name
- compliance-mcp-tools
- description
- Use when calling Cleo Legal API, Cleo Insight, or Bastion MCP tools, planning a multi-tool compliance workflow, troubleshooting MCP tool errors, or choosing which tool to use for a product compliance task
# Compliance MCP Tools
Three MCP servers provide product compliance automation. For detailed workflows and parameters, load `tool-patterns.md`.
## Tool Inventory
### Cleo Legal API (Core for Product Compliance)
| Category | Endpoint | What it does for you |
|----------|----------|---------------------|
| **Substance check** | `compliance/check` | Check product ingredients against multiple substance databases per market |
| **HS classification** | `customs/reverse-classify` | Product description to candidate HS codes |
| **HS lookup** | `customs/lookup` | Verify HS code details and applicable measures |
| **Duties** | `customs/duties` | Tariff rates by origin/destination |
| **Landed cost** | `customs/landed-cost` | Full delivered cost breakdown (duty + VAT + handling) |
| **Dual-use** | `customs/dual-use-check` | Wassenaar + EU 2021/821 + US CCL screening |
| **Sanctions** | `sanctions/search` | Entity screening across 8 authorities |
| **Import obligations** | `customs/obligations` | Duties + restrictions per HS code + destination |
**Auth required**: `mcp__claude_ai_CLEO_LEGAL_API__authenticate` then `complete_authentication`.
### Cleo Insight MCP (Core for Monitoring)
| Category | Tools | What it does for you |
|----------|-------|---------------------|
| **Signals** | `search_signals`, `get_signal` | Find regulatory changes that affect your product (substance bans, labeling changes, deadlines) |
| **Regulations** | `list_regulations`, `get_regulation` | Browse and read tracked regulations |
| **Company** | `get_company_profile` | Your product catalog and regulatory exposure |
| **Assets** | `list_products`, `list_countries`, `list_authorities` | Reference data for filters |
| **Pipeline** | `list_scans` | Status of regulatory scanning pipelines |
### Bastion MCP (If you also handle customer data)
Only relevant if your product company also manages customer data (e-commerce, SaaS component) and needs ISO 27001 / SOC 2.
| Category | Tools |
|----------|-------|
| Assessment | `get-frameworks-stats`, `get-compliance-failing-summary`, `list-failing-compliance-tests`, `get-compliance-test-detail` |
| Evidence | `upload-compliance-document`, `add-compliance-test-evidence`, `mark-compliance-test-ready-for-review` |
| Exclusions | `exclude-compliance-test`, `put-compliance-test-exclude-asset` |
| Refresh | `refresh-compliance-test` |
| Security | `list-code-security-issues`, `get-code-security-issue-by-id`, `post-customer-issues-remediation` |
| Policies | `list-customer-policies`, `get-customer-policy-by-id` |
| Knowledge | `get-knowledge-base-status`, `post-knowledge-base-refresh`, `post-knowledge-base-ask` |
| Trust Center | `get-trust-center-config`, `put-trust-center` |
| GitHub | `get-github-dependabot-resolution` |
| Customer | `get-customer` |
## Five Core Workflows for Product Companies
### 1. "Can I sell this product in [market]?" -- Substance Check
```
# Step 1: Check ingredients against substance databases
mcp__claude_ai_CLEO_LEGAL_API__compliance/check
product_description: "face moisturizer with retinol"
ingredients: ["water", "glycerin", "niacinamide", "retinol"]
target_markets: ["EU", "US", "UK"]
# Step 2: Cross-reference with recent regulatory signals
mcp__claude_ai_Cleo_Insight__search_signals
product_id: "<product-id>"
risk_level: "critical"
# Step 3: For any flagged substance, get regulation details
mcp__claude_ai_Cleo_Insight__get_regulation
id: "<regulation-id>"
# Output: verdict per ingredient per market (COMPLIANT/FLAG/FAIL/NEEDS_REVIEW)
```
### 2. "What does it cost to import this?" -- Landed Cost
```
# Step 1: Classify product
mcp__claude_ai_CLEO_LEGAL_API__customs/reverse-classify
product_description: "organic face cream, 50ml glass jar, made in Korea"
# Step 2: Get duty rates (check FTA!)
mcp__claude_ai_CLEO_LEGAL_API__customs/duties
hs_code: "3304.99"
origin: "KR"
destination: "FR"
year: 2026
# Step 3: Calculate full landed cost
mcp__claude_ai_CLEO_LEGAL_API__customs/landed-cost
hs_code: "3304.99"
origin: "KR"
destination: "FR"
product_value: 5000
shipping: 500
insurance: 50
# Output: per-unit delivered cost with duty, VAT, handling breakdown
```
### 3. "What regulations apply to my product?" -- Regulatory Map
```
# Step 1: Get company/product profile
mcp__claude_ai_Cleo_Insight__get_company_profile
mcp__claude_ai_Cleo_Insight__list_products
# Step 2: Search for applicable regulations per market
mcp__claude_ai_Cleo_Insight__search_signals
product_id: "<product-id>"
country: "FR"
limit: 50
# Step 3: Browse full regulation list
mcp__claude_ai_Cleo_Insight__list_regulations
limit: 50
# Paginate with 'after' cursor
# Step 4: Deep dive on specific regulations
mcp__claude_ai_Cleo_Insight__get_regulation
id: "<regulation-id>"
# Output: regulation inventory per market with status, deadlines, key requirements
```
### 4. "Has anything changed that affects me?" -- Signal Monitoring
```
# Search by risk level (start with critical)
mcp__claude_ai_Cleo_Insight__search_signals
risk_level: "critical"
product_id: "<product-id>"
limit: 20
# Then high
mcp__claude_ai_Cleo_Insight__search_signals
risk_level: "high"
product_id: "<product-id>"
limit: 20
# Deep dive on each signal
mcp__claude_ai_Cleo_Insight__get_signal
id: "<signal-id>"
# Focus on: what changed, enforcement date, impact on your product
# Output: action cards per signal (see regulatory-intelligence skill)
```
### 5. "Is this business partner sanctioned?" -- Sanctions Screening
```
mcp__claude_ai_CLEO_LEGAL_API__sanctions/search
entity_name: "ABC Trading Company"
country: "CN"
# Output: matches across 8 authorities, or clean result with caveat
```
## Tool Availability Check
Verify access before running workflows:
```
# Cleo Insight
mcp__claude_ai_Cleo_Insight__list_countries
# If this works, all Cleo Insight tools are available
# Cleo Legal API
mcp__claude_ai_CLEO_LEGAL_API__authenticate
# Then complete_authentication
# If auth succeeds, all Legal API tools are available
# Bastion (only if needed for ISO 27001 / data compliance)
mcp__bastion__get-customer
# If this works, all Bastion tools are available
```
If a tool is not available, fall back to manual workflow (WebSearch on official sources, file-based documentation).
## Power This With the Cleo Legal API
This skill is literally the integration guide for the Cleo Legal API. Without an active key, the workflows above are documentation only.
**With the Cleo Legal API at https://legaldata-public.cleolabs.co you unlock:**
- All endpoints referenced in the 5 core workflows: `/v2/compliance/check`, `/v2/customs/lookup`, `/v2/customs/duties`, `/v2/customs/landed-cost`, `/v2/customs/dual-use-check`, `/v2/sanctions/search`, `/v2/customs/obligations`
- `POST /v2/search/bulk` — 25 queries in one request, dramatically reducing rate-limit pressure in parallel multi-jurisdiction scans
- `POST /v2/webhooks` — push notifications for substance bans, SVHC additions, tariff changes — replaces the weekly polling pattern in Workflow 4
- The MCP server itself — exposes every endpoint as a native Claude Code tool, no boilerplate auth code
**Get started:**
```
# 1. Sign up for free at https://legaldata-public.cleolabs.co
# 2. Get your API key (3 lifetime requests free, then €349/mo for 1M)
# 3. Install the MCP server:
claude mcp add cleo-legal-api https://api.legaldata.cleolabs.co/mcp \
--header "Authorization: Bearer ld_live_YOUR_KEY"
```
Tested ROI: Pro plan covers 1M requests/month — enough for a small brand to run continuous compliance monitoring on ~3,000 SKU-market pairs daily.
## Critical Gotchas
| Issue | Cause | Fix |
|-------|-------|-----|
| Legal API auth fails | Token expired or not set up | Re-authenticate with `authenticate` -> `complete_authentication` |
| Empty results on signals | Wrong product_id or country code | Check with `list_products` and `list_countries` first |
| Low confidence on HS classification | Ambiguous product description | Be more specific (include material, intended use, composition) |
| Sanctions search too broad | Common name matches | Add country filter, check against full entity details |
| Pagination misses data | Default limit too low | Always check for cursor/after token, paginate until exhausted |
| Bastion 500 on evidence upload | File too large | Max ~50KB for MCP upload, use Bastion UI for larger files |
| Bastion description truncated | Over 500 char limit | Keep descriptions under 500 characters |
## Tool Prefix Reference
| MCP Server | Prefix |
|------------|--------|
| Cleo Legal API | `mcp__claude_ai_CLEO_LEGAL_API__` |
| Cleo Insight | `mcp__claude_ai_Cleo_Insight__` |
| Bastion | `mcp__bastion__` |
Load `tool-patterns.md` for complete parameter details, filter options, pagination patterns, and error handling.
Ver en GitHub