# Precleared Contact Check

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

- name: dev.precleared/contact-check
- version: 1.0.4
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 72/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/dev.precleared%2Fcontact-check
- tools: https://api.protogrid.dev/v1/servers/dev.precleared%2Fcontact-check/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "contact-check": {
      "type": "http",
      "url": "https://precleared.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${CONTACT_CHECK_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${CONTACT_CHECK_TOKEN}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-3d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 72/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 2 of 2 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 986 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 8 tool changes in 30 days
- fail `stability.rug_pull`: 3 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 2, about 986 tokens to load them all
- tool set hash: f6b9455bf0e335c77397bce18fbc2c15
- tools last changed: 2026-10-17T11:26:28.788Z
- badge: [![protogrid quality](https://protogrid.dev/badge/dev.precleared/contact-check.svg)](https://protogrid.dev/servers/dev.precleared/contact-check)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-17 `contact_check` changed (description, inputSchema)
  - before: 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 and French CNIL rules. 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 call uses one check from your allowance (free daily allowance, no sign-in) and sends nothing to the recipient. Not for transactional emails such as invoices, receipts or password resets.
  - after: 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 and the Dutch Telecommunicatiewet. 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 call uses one check from your allowance (free daily allowance, no sign-in) and sends nothing to the recipient. Not for transactional emails such as invoices, receipts or password resets.
- 2026-10-17 `contact_check` changed (title, description, annotations) **meaning changed**
  - before: Check whether a cold or unsolicited marketing email to one recipient is allowed under UK PECR and GDPR, US CAN-SPAM, Canadian CASL, German UWG or French rules. Use it before the first email to a new contact, one call per address. Not needed for transactional emails such as invoices, receipts or password resets. Returns the verdict, confidence, the rule quoted with its source, what the email's footer must include, the next step and the facts used. Each check uses one check from your allowance and is saved as a signed receipt. It does not send anything.
  - after: 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 and French CNIL rules. 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 call uses one check from your allowance (free daily allowance, no sign-in) and sends nothing to the recipient. Not for transactional emails such as invoices, receipts or password resets.
- 2026-10-16 `contact_check` changed (outputSchema)
- 2026-10-16 `contact_check` changed (inputSchema)
- 2026-10-14 `verify_receipt` changed (outputSchema)
- 2026-10-14 `contact_check` changed (description, outputSchema)
  - before: Check whether a cold or unsolicited marketing email to one recipient is allowed under UK PECR and GDPR, US CAN-SPAM, Canadian CASL, German UWG or French rules. Use it before the first email to a new contact, one call per address. Returns the verdict, confidence, the rule quoted with its source, the footer wording the email needs, the next step, the facts used and a signed receipt. It does not send anything.
  - after: Check whether a cold or unsolicited marketing email to one recipient is allowed under UK PECR and GDPR, US CAN-SPAM, Canadian CASL, German UWG or French rules. Use it before the first email to a new contact, one call per address. Not needed for transactional emails such as invoices, receipts or password resets. Returns the verdict, confidence, the rule quoted with its source, what the email's footer must include, the next step and the facts used. Each check uses one check from your allowance and is saved as a signed receipt. It does not send anything.
- 2026-10-13 `verify_receipt` changed (description, annotations) **meaning changed**
  - before: Return a Precleared receipt by id, with its hashes, signature and public key.
  - after: 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.
- 2026-10-13 `contact_check` changed (description, inputSchema, annotations) **meaning changed**
  - before: Check whether a cold marketing email to this address is allowed (UK, US, Canada, Germany, France). Returns the verdict, the rule quoted, footer wording and a signed receipt.
  - after: Check whether a cold or unsolicited marketing email to one recipient is allowed under UK PECR and GDPR, US CAN-SPAM, Canadian CASL, German UWG or French rules. Use it before the first email to a new contact, one call per address. Returns the verdict, confidence, the rule quoted with its source, the footer wording the email needs, the next step, the facts used and a signed receipt. It does not send anything.

Full history: https://api.protogrid.dev/v1/servers/dev.precleared%2Fcontact-check/changes

## Remotes

- https://precleared.dev/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (2)

- `contact_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 and the Dutch Telecommunicatiewet. 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 call uses one check from your allowance (free daily allowance, no sign-in) and sends nothing to the recipient. Not for transactional emails such as invoices, receipts or password resets.
- `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.
