MCP server: One MCP server.

Precleared Contact Check

@preclearedRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Cold email compliance check for outreach agents: GDPR, PECR, CAN-SPAM, CASL verdict, signed receipt.

Regulatory compliancev1.0.2MITJavaScript
Freeno charge per call

One address for any MCP client. No sign-in needed on this server.

What it does

2 read

Grouped by tool name. At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

2 · grouped by tool name · checked 13 Oct 2026

Read · 2Look things up

  • contact_check
  • verify_receipt
Try it in the Inspector
README4 min read

Precleared: cold-email legality checks for AI agents

smithery badge

Is your agent allowed to send that? Precleared answers before the email goes out: a per-address verdict on cold marketing email, the rule quoted, what the footer must include, and a signed receipt anyone can verify. Covers the UK (PECR and UK GDPR), the US (CAN-SPAM), Canada (CASL), Germany (UWG) and France.

It sits between the step that finds an address (Hunter, Apollo, Clay) and the step that sends (Gmail, Outlook, Instantly, lemlist). One call per new contact, before the first email. It is not needed for invoices, receipts or other transactional email.

Add it to your client

Cursor: Add to Cursor

VS Code: Add to VS Code

Claude Code:

bash
claude mcp add --transport http precleared https://precleared.dev/mcp

Claude.ai and the Claude desktop app: Settings, Connectors, Add custom connector, paste https://precleared.dev/mcp.

Claude directory: https://claude.ai/directory/precleared (one click, no setup).

Smithery: connect through https://smithery.ai/servers/gabrielaoimevbore/precleared. The key is an optional connection setting there.

Official MCP registry: dev.precleared/contact-check

Local server over stdio (this repository): for clients that only run local servers.

json
{
  "mcpServers": {
    "precleared": {
      "command": "npx",
      "args": ["-y", "github:gabrielaoimevbore-beep/precleared-mcp"],
      "env": { "PRECLEARED_API_KEY": "pc_live_..." }
    }
  }
}

Or with Docker: docker build -t precleared-mcp . && docker run -i --rm -e PRECLEARED_API_KEY=pc_live_... precleared-mcp. The key is optional either way. Any client can also bridge the hosted endpoint with npx mcp-remote https://precleared.dev/mcp --transport http-only.

Any MCP client (JSON):

json
{
  "mcpServers": {
    "precleared": {
      "url": "https://precleared.dev/mcp",
      "headers": { "Authorization": "Bearer pc_live_..." }
    }
  }
}

The Authorization header is optional, and X-API-Key: pc_live_... works too. Without a key you get 100 free checks a day over the hosted MCP endpoint (10 over REST). A free key from https://precleared.dev/get-key gives 25 a day; a £39 pack adds 2,000 checks that never expire.

What is in this repository

index.js is a small MCP server (Node 18 or later, one dependency) that exposes the same two tools as the hosted endpoint and fulfils them through the public REST API. Nothing is stored locally and nothing is sent to the recipient. The hosted endpoint at https://precleared.dev/mcp is the canonical server: without a key it allows 100 checks a day, while the REST API behind this local server allows 10 a day per network, so add a free key if you run it locally at any volume.

bash
npm install
npm test        # runs the server against a fake API on localhost, no network needed
PRECLEARED_API_KEY=pc_live_... node index.js

Environment: PRECLEARED_API_KEY (optional), PRECLEARED_API_BASE (default https://precleared.dev/api/v1), PRECLEARED_TIMEOUT_MS (default 30000).

Tools

ToolWhat it does
contact_checkTakes a recipient email or domain, your sender country (GB or US), the pitch and where the address came from. Returns verdict (ok_to_email, consent_needed, blocked or unknown), confidence, the rule quoted with its source, footer_text (what the email's footer must include, not wording to paste), next_step, the facts used, and a signed receipt. Not needed for transactional email such as invoices.
verify_receiptTakes a receipt id and returns the receipt with its hashes, Ed25519 signature and public key.

Example

bash
curl https://precleared.dev/api/v1/check \
  -H "Content-Type: application/json" \
  -d '{"recipient_email":"jane@acme.co.uk","sender_country":"GB","address_source":"published"}'
json
{
  "verdict": "ok_to_email",
  "confidence": "high",
  "reasons": [{ "rule_key": "gb_corporate_ok", "text": "Under PECR the consent rule for marketing email applies to individual subscribers only...", "source_title": "PECR 2003 regulation 22(1) and ICO Guide to PECR" }],
  "footer_text": "Say who you are and who the email is from, include a valid postal address, and give a simple free way to stop further emails (PECR regulation 23).",
  "next_step": "Send. Log the receipt against the lead.",
  "receipt": { "id": "cc_rcpt_...", "signature": "...", "key_version": "k1", "verify_url": "https://precleared.dev/api/v1/receipt?id=cc_rcpt_..." }
}

What the receipt proves

That Precleared was asked this question, with these facts, at this time, and gave this answer. Every receipt has a public page at https://precleared.dev/r/<id> and can be verified offline with the public key at https://precleared.dev/api/v1/public-key. It is decision support with sources, not legal advice.

Privacy and terms

https://precleared.dev/privacy · https://precleared.dev/terms

Similar modules

Browse Regulatory compliance