Precleared Contact Check

dev.preclearedPublished by precleared.devOfficial publisherv1.3.0Updated Nov 3, 2026

Cold email compliance check, 12 countries: per-address verdict, rule cited, signed receipt.

VerifiedStreamable HTTPWeb executableSecurity & MonitoringBusiness & Commerce

Overview

Precleared Contact Check's hosted MCP server (precleared.dev), published by precleared.dev; optional API key; Streamable HTTP; 4 tools.

No AI overview yet: these facts come from the registry entry and the server itself.

Publisher
precleared.dev
Endpoint
precleared.dev
Last checked

Installation

In SourceWeft

  1. Open Precleared Contact Check in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/dev.precleared%2Fcontact-check/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "precleared-contact-check": {
      "type": "http",
      "url": "https://precleared.dev/mcp"
    }
  }
}

README

[Image]

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), France (CPCE), Australia (Spam Act), Ireland (S.I. 336/2011), the Netherlands (Telecommunicatiewet), Spain (LSSI), Italy (Privacy Code), Latvia (Information Society Services Law) and the United Arab Emirates (PDPL).

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.

Plugin and agent skill

This repository is also a Claude plugin and an Agent Skills skill. The plugin connects your agent to the hosted MCP server and adds cold-email-check, a skill that tells the agent when to run a check (before the first cold email to a new address, not for invoices or replies), how to fill in the facts without guessing, what to do with each verdict and where to keep the receipt.

Claude Code:

bash
claude plugin marketplace add gabrielaoimevbore-beep/precleared-mcpclaude plugin install precleared@precleared

If you added the Precleared MCP server separately before, remove it so the tools don't appear twice.

Claude.ai, the desktop app and Cowork: Customize, Plugins, Add, Add marketplace, enter gabrielaoimevbore-beep/precleared-mcp, then add Precleared and connect its connector from the plugin's Connectors tab.

Cursor, Codex, OpenCode and other agents that read skills:

bash
npx skills add gabrielaoimevbore-beep/precleared-mcp

The skill uses the Precleared MCP tools when they are connected. Otherwise it runs skills/cold-email-check/scripts/check.mjs (Node 18 or later, no dependencies), which calls the REST API for one address or a whole list:

bash
node skills/cold-email-check/scripts/check.mjs --email [email protected] --sender GB --source SOURCE --pitch "bookkeeping software"node skills/cold-email-check/scripts/check.mjs --file leads.csv --sender GB --source SOURCE --out leads-checked.csv

SOURCE is where the addresses came from: published, bought, scraped, given or unknown. It changes the verdict, so give the real answer. The script sends each address and the facts given for it to precleared.dev, with PRECLEARED_API_KEY if you set it. Nothing else leaves your machine, and nothing is sent to the recipient.

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), shared by everyone on the same IP address. A free key from https://precleared.dev/get-key gives you your own 100 a day over MCP (25 over REST); 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 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 installnpm test        # runs the server and the skill script against a fake API on localhost, no network neededPRECLEARED_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).

The plugin lives beside it: .claude-plugin/ holds the plugin and marketplace manifests, .mcp.json points at the hosted server, and skills/cold-email-check/ holds the skill and its script. node test/skill.mjs tests the script against a fake API.

Tools

ToolWhat it does
contact_checkTakes a recipient email or domain, your sender country (GB, US, AE or CA), the pitch, where the address came from and, if you have them, the company name, the person's name and the draft email. 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, email_check when a draft was passed (does the footer have an opt-out, the sender's identity and, where needed, a postal address; the draft is not stored) 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.
suppress_contactAdds an address or a whole domain to the key's opt-out list, or removes it. Every later contact_check on a listed address answers blocked, free of charge. Needs PRECLEARED_API_KEY.

Example

bash
curl https://precleared.dev/api/v1/check \  -H "Content-Type: application/json" \  -d '{"recipient_email":"[email protected]","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

Source: README.md at commit c5dca53

Tools

4

contact_check

Cold email compliance check

Is it legal to send a cold or marketing email to this person? Check before the first email to any new lead, prospect or contact who is not already a customer, one call per address: a compliance check for B2B sales outreach, prospecting and lead lists. Whether it is allowed, or needs consent first, turns on facts you cannot see in the address, such as whether a UK recipient is a limited company or a sole trader, so it looks them up live (UK Companies House) and applies UK PECR and GDPR, US CAN-SPAM, Canadian CASL, German UWG, French CPCE, Australia's Spam Act, Ireland's ePrivacy Regulations, the Dutch Telecommunicatiewet, Spain's LSSI, Italy's Privacy Code, Latvia's Information Society Services Law and the UAE's PDPL. Returns a verdict (ok_to_email, consent_needed, blocked or unknown), the rule quoted with its source, the footer requirements (who you are, a postal address, an unsubscribe or opt-out), the next step and a signed receipt id to show a client or auditor. Each charged call uses one check from your allowance (free daily allowance, no sign-in); unknown-country answers and one qualifying re-check within a day are free, up to a combined limit of 50 a day. Nothing is sent to the recipient. Not for transactional emails such as invoices, receipts or password resets. To check the email itself, send the draft as email ({ subject, body, from_name, from_email }); the answer then gains email_check, saying whether the footer has an opt-out, the sender's identity and, where the rule needs one, a postal address. The draft is not stored. Addresses on the key's opt-out list (see suppress_contact) come back blocked and free.

Parametersemailpitchsuppressedcompany_nameaddress_sourcecompany_numberpitch_relevantrecipient_namesender_countryrecipient_emailrecipient_domainexisting_customer+2 more

verify_receipt

Verify receipt

Fetch a Precleared receipt by its id (cc_rcpt_...) to show what was checked, when, and the verdict, with the hashes, Ed25519 signature and public key needed to verify it. Use it when a person or an audit asks for proof of a check.

Parametersidrequired

suppress_contact

Add to or remove from the opt-out list

Records that a person asked not to be emailed, on this Precleared key's opt-out list, so every agent and tool using the key gets blocked for that address from contact_check. Use it as soon as someone replies stop, unsubscribes, bounces or complains. Give email or domain; set remove to true only when the person asks to be emailed again. Needs a Precleared key (a free one is fine). Never charged. The address is kept only as a hash and a masked copy.

Parametersemaildomainreasonremove

Version history

6
  1. v1.3.0LatestNov 3, 2026
  2. v1.0.4Oct 17, 2026
  3. v1.0.3Oct 14, 2026
  4. v1.0.2Oct 14, 2026
  5. v1.0.1Oct 13, 2026
  6. v1.0.0Oct 12, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts