Skip to main content
Glama

Precleared Contact Check

Server Details

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

Ownership verified
Status
Healthy
Uptime
100.0% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
gabrielaoimevbore-beep/precleared-mcp
GitHub Stars
0
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation4/5

Each tool has a clearly distinct role: compliance check, opt-out recording, receipt retrieval, and account linking. The only minor wrinkle is that contact_check carries two modes (address verdict and draft email content check) in one tool, but that is described explicitly and does not create cross-tool confusion.

Naming Consistency4/5

All names are snake_case and readable, with link_account, suppress_contact and verify_receipt following a clean verb_noun pattern. contact_check deviates as noun_verb, a small inconsistency but not confusing.

Tool Count4/5

Four tools is lean but each maps to a real workflow step: check, suppress, verify, authenticate. It is on the sparse side for a compliance service, but nothing is redundant or trivial.

Completeness4/5

The core lifecycle is covered: pre-send check, opt-out handling, proof verification, and account linking. Minor gaps exist, such as no way to list the opt-out list or view remaining allowance/history, but these are workaroundable and not central to the main flow.

Available Tools

4 tools
contact_checkCold email compliance checkA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
emailNoThe draft email, if you want the answer to say whether its footer meets the rule for the recipient's country. The body is not stored.
pitchNoWhat the email offers, in a few words, for example 'bookkeeping software for dental practices'. Used to judge relevance to the recipient's role.
suppressedNoTrue if the recipient is on your own do-not-contact list.
company_nameNoThe recipient's company or organisation name if you know it, for example from your CRM. For UK recipients it is used to search Companies House when the domain alone does not find the company. A company is only used when other evidence links it to the recipient, such as one of its officers matching the recipient or the website naming it.
address_sourceNoWhere the address came from: published (on their website, profile or a directory), bought (a purchased list), scraped (collected by a tool), given (the person gave it to you) or unknown. It affects the verdict, so do not assume published. Default unknown.
company_numberNoUK company number if known (8 characters), so the register can confirm the company.
pitch_relevantNoTrue if the pitch relates to the recipient's job or business, false if it does not.
recipient_nameNoThe recipient's full name if you know it, for example Jane Smith. For UK recipients it is matched against a company's current officers at Companies House. Precleared does not store it.
sender_countryNoCountry the sending business is based in: GB, US, AE (United Arab Emirates) or CA (Canada). Canadian senders must also meet CASL. Not the recipient's country. Default GB.
recipient_emailNoThe recipient's email address. Give this or recipient_domain.
recipient_domainNoThe recipient's domain when you have no email address, for example acme.co.uk.
existing_customerNoTrue if the recipient has bought from you before. Default false.
recipient_countryNoTwo-letter country code of the recipient if known, for example GB or DE. Otherwise it is worked out from the domain, company records and the company's website.
default_recipient_countryNoTwo-letter country code to use only when the recipient's country can't be worked out from recipient_country, the domain, company records or the company's website, for example US if all your prospects are in the US. recipient_country always wins.

Output Schema

NameRequiredDescription
factsNoFacts gathered about the recipient.
usageNoAllowance left for the caller.
chargedNo
reasonsNoThe rule that matched, with its text and source, then any notes.
receiptNoSigned receipt for this check.
verdictYesThe answer for this recipient.
next_stepNoWhat to do next.
confidenceNohigh, medium or low.
disclaimerNoFixed disclaimer line.
email_checkNoPresent when you sent email: whether the draft's footer has what the rule needs.
footer_textNoWhat the email's footer must include, if the rule sets requirements.
held_becauseNo
rules_appliedNoRule keys used.
rules_versionNoVersion of the rule set used.
free_recheck_ofNo
possible_companyNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses live UK Companies House lookups, supported jurisdictions, possible verdicts, footer requirements, signed receipts, and that nothing is sent to the recipient. It also explains charging: one allowance check per charged call, free daily allowance, and free unknown-country or qualifying re-check answers up to a combined limit, which lets an agent predict cost and side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose question is front-loaded, and the paragraph is dense with useful constraints rather than filler. However, it is long, includes a sprawling jurisdiction list, and has some run-on sentences that could be structured more crisply.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, multi-jurisdiction compliance tool with live lookups and billing, the description covers when to use it, exclusions, cost model, data handling, and returned value. With annotations and an output schema already present, it is complete enough for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all 14 parameters and their formats. The description adds only modest extra meaning—mainly that sending the email draft yields an email_check result and that the draft is not stored—so the baseline of 3 is appropriate for a high-coverage schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific question ('Is it legal to send a cold or marketing email to this person?') and defines the resource as a per-recipient compliance check for B2B outreach. It clearly separates the tool from transactional email use and names the sibling suppress_contact, so an agent can place it among siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to check before the first email to any new lead, prospect, or non-customer contact, and it rules out transactional emails such as invoices or password resets. It also gives the one-call-per-address constraint and points to suppress_contact for opt-out lists, leaving little ambiguity about when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suppress_contactAdd to or remove from the opt-out listA
Idempotent
Inspect

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.

NameRequiredDescriptionDefault
emailNoThe address.
domainNoA whole domain, such as acme.co.uk.
reasonNoDefault opted_out.
removeNoTrue to take the entry off the list.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say this is a non-read-only, idempotent, non-destructive, closed-world write. The description adds real behavioral context beyond that: the entry is key-scoped so every agent and tool using the key is affected, a Precleared key is required (and a free one suffices), there is no charge, and the stored address is retained only as a hash plus a masked copy. That is exactly the kind of side-effect and privacy detail annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and effect are front-loaded in the first sentence, and every subsequent sentence carries operational information. The billing note is split across two short sentences ('Needs a Precleared key (a free one is fine). Never charged.') and could be merged, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter write tool with no output schema, the description covers prerequisites, scope of effect, storage/privacy behavior, and when to invoke. It does not say what a successful call returns (e.g., the masked address or confirmation), which is the only meaningful remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description adds meaning the schema does not: email and domain are alternatives ('Give email or domain'), and remove carries a policy condition rather than just 'true to take the entry off the list'. The reason enum's intended triggers are only loosely implied via the opt-out/bounce/complaint phrasing, keeping it off a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Records that a person asked not to be emailed... on this Precleared key's opt-out list') and covers both directions (add, and remove via the remove flag). It also names the downstream consumer, contact_check, so an agent can place it relative to the sibling tools without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete triggering events ('as soon as someone replies stop, unsubscribes, bounces or complains') and an explicit guard on the inverse operation ('set remove to true only when the person asks to be emailed again'). The email-or-domain choice is also stated as a calling instruction rather than left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_receiptVerify receiptA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
idYesReceipt id, such as cc_rcpt_0123456789ABCDEF.

Output Schema

NameRequiredDescription
idYesReceipt id.
verdictNoVerdict given.
algorithmNoSignature algorithm.
signatureNoEd25519 signature, base64.
confidenceNoConfidence given.
created_atNoWhen the check was made.
public_keyNoPublic key, base64 SPKI DER.
key_versionNoSigning key version.
request_hashNoSHA-256 of the request.
response_hashNoSHA-256 of the response.
rules_appliedNoRule keys used.
rules_versionNoRule set version.
sender_countryNoSender country.
recipient_domainNoRecipient domain.
recipient_email_maskedNoMasked recipient address.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds value beyond that by disclosing the verification payload (hashes, Ed25519 signature, public key) that tells the agent this is a proof-producing read, not just a record lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both load-bearing: the first states the operation and its return contents, the second states the triggering condition. Purpose is front-loaded with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations carry the safety profile and an output schema exists, so return values need not be explained, yet the description still tells the agent enough about the receipt's contents to call the tool correctly. Nothing material is missing for a single-parameter read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter with 100% schema description coverage, so the schema already documents it fully. The description restates the id format (cc_rcpt_...) without adding syntax or constraints beyond what the schema provides, which lands at the baseline for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Fetch') plus resource ('Precleared receipt by its id') and an explicit inventory of what the receipt contains: what was checked, when, the verdict, hashes, signature and public key. It does not explicitly distinguish itself from the sibling contact_check, but the two operate on unrelated resources so no real ambiguity exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it when a person or an audit asks for proof of a check' gives a concrete triggering condition, which is more than most definitions offer. It stops short of naming when-not-to-use or an alternative tool, so it is clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedcontact_check2 fields changed
      • addedInput schema / properties / email
        Added value: +{
        +  "description": "The draft email, if you want the answer to say whether its footer meets the rule for the recipient's country. The body is not stored.",
        +  "properties": {
        +    "body": {
        +      "description": "Body, plain text or HTML, including the footer and any merge tags such as {{unsubscribe}}.",
        +      "maxLength": 20000,
        +      "type": "string"
        +    },
        +    "from_email": {
        +      "description": "Sending address.",
        +      "maxLength": 254,
        +      "type": "string"
        +    },
        +    "from_name": {
        +      "description": "Sender name shown to the recipient.",
        +      "maxLength": 120,
        +      "type": "string"
        +    },
        +    "subject": {
        +      "description": "Subject line.",
        +      "maxLength": 300,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "body"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / email_check
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Present when you sent email: whether the draft's footer has what the rule needs.",
        +  "properties": {
        +    "country": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "footer_text": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "missing": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "requirements": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "key": {
        +            "type": "string"
        +          },
        +          "met": {
        +            "type": [
        +              "boolean",
        +              "null"
        +            ]
        +          },
        +          "required": {
        +            "type": "boolean"
        +          }
        +        },
        +        "required": [
        +          "key",
        +          "required",
        +          "met",
        +          "detail"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "status": {
        +      "enum": [
        +        "pass",
        +        "fail"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status",
        +    "country",
        +    "requirements",
        +    "missing",
        +    "note"
        +  ],
        +  "type": "object"
        +}
    • Addedsuppress_contact
  2. 1 tool update
    • Changedcontact_check6 fields changed
      • changedInput schema / properties / sender_country / description
        Previous value: -"Country the sending business is based in: GB, US or AE (United Arab Emirates). Not the recipient's country. Default GB."New value: +"Country the sending business is based in: GB, US, AE (United Arab Emirates) or CA (Canada). Canadian senders must also meet CASL. Not the recipient's country. Default GB."
      • changedInput schema / properties / sender_country / enum
        Previous value: -[
        -  "GB",
        -  "US",
        -  "AE"
        -]New value: +[
        +  "GB",
        +  "US",
        +  "AE",
        +  "CA"
        +]
      • addedOutput schema / properties / charged
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / free_recheck_of
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / held_because
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "case": {
        +      "type": "string"
        +    },
        +    "evidence": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "case",
        +    "evidence"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / possible_company
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    },
        +    "number": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "number"
        +  ],
        +  "type": "object"
        +}
  3. 1 tool update
    • Addedlink_account
  4. 1 tool update
    • Changedcontact_check2 fields changed
      • addedInput schema / properties / company_name
        Added value: +{
        +  "description": "The recipient's company or organisation name if you know it, for example from your CRM. For UK recipients it is used to search Companies House when the domain alone does not find the company. A company is only used when other evidence links it to the recipient, such as one of its officers matching the recipient or the website naming it.",
        +  "maxLength": 160,
        +  "type": "string"
        +}
      • addedInput schema / properties / recipient_name
        Added value: +{
        +  "description": "The recipient's full name if you know it, for example Jane Smith. For UK recipients it is matched against a company's current officers at Companies House. Precleared does not store it.",
        +  "maxLength": 120,
        +  "type": "string"
        +}
  5. 1 tool update
    • Changedcontact_check2 fields changed
      • changedInput schema / properties / sender_country / description
        Previous value: -"Country the sending business is based in, GB or US. Not the recipient's country. Default GB."New value: +"Country the sending business is based in: GB, US or AE (United Arab Emirates). Not the recipient's country. Default GB."
      • changedInput schema / properties / sender_country / enum
        Previous value: -[
        -  "GB",
        -  "US"
        -]New value: +[
        +  "GB",
        +  "US",
        +  "AE"
        +]
  6. 1 tool update
    • Changedcontact_check1 field changed
      • changedInput schema / properties / address_source / description
        Previous value: -"Where the address came from: published (on their website, profile or a directory), bought (a purchased list), scraped (collected by a tool), given (the person gave it to you) or unknown. It affects the verdict, so do not assume published."New value: +"Where the address came from: published (on their website, profile or a directory), bought (a purchased list), scraped (collected by a tool), given (the person gave it to you) or unknown. It affects the verdict, so do not assume published. Default unknown."
  7. 1 tool update
    • Changedcontact_check3 fields changed
      • addedOutput schema / properties / usage / properties / low_balance
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / usage / properties / notice
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / usage / properties / top_up_url
        Added value: +{
        +  "type": "string"
        +}
  8. 1 tool update
    • Changedcontact_check2 fields changed
      • addedInput schema / properties / default_recipient_country
        Added value: +{
        +  "description": "Two-letter country code to use only when the recipient's country can't be worked out from recipient_country, the domain, company records or the company's website, for example US if all your prospects are in the US. recipient_country always wins.",
        +  "pattern": "^[A-Za-z]{2}$",
        +  "type": "string"
        +}
      • changedInput schema / properties / recipient_country / description
        Previous value: -"Two-letter country code of the recipient if known, for example GB or DE. Otherwise it is worked out from the domain and company records."New value: +"Two-letter country code of the recipient if known, for example GB or DE. Otherwise it is worked out from the domain, company records and the company's website."
  9. 2 tool updates
    • Changedcontact_check1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "confidence": {
        +      "description": "high, medium or low.",
        +      "type": "string"
        +    },
        +    "disclaimer": {
        +      "description": "Fixed disclaimer line.",
        +      "type": "string"
        +    },
        +    "facts": {
        +      "additionalProperties": {},
        +      "description": "Facts gathered about the recipient.",
        +      "properties": {},
        +      "type": "object"
        +    },
        +    "footer_text": {
        +      "description": "What the email's footer must include, if the rule sets requirements.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "next_step": {
        +      "description": "What to do next.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "reasons": {
        +      "description": "The rule that matched, with its text and source, then any notes.",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {},
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "receipt": {
        +      "additionalProperties": {},
        +      "description": "Signed receipt for this check.",
        +      "properties": {
        +        "id": {
        +          "type": "string"
        +        },
        +        "verify_url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rules_applied": {
        +      "description": "Rule keys used.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rules_version": {
        +      "description": "Version of the rule set used.",
        +      "type": "string"
        +    },
        +    "usage": {
        +      "additionalProperties": {},
        +      "description": "Allowance left for the caller.",
        +      "properties": {
        +        "credits_remaining": {
        +          "type": "number"
        +        },
        +        "free_remaining_today": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "verdict": {
        +      "description": "The answer for this recipient.",
        +      "enum": [
        +        "ok_to_email",
        +        "consent_needed",
        +        "blocked",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "verdict"
        +  ],
        +  "type": "object"
        +}
    • Changedverify_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "algorithm": {
        +      "description": "Signature algorithm.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "confidence": {
        +      "description": "Confidence given.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "created_at": {
        +      "description": "When the check was made.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "id": {
        +      "description": "Receipt id.",
        +      "type": "string"
        +    },
        +    "key_version": {
        +      "description": "Signing key version.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "public_key": {
        +      "description": "Public key, base64 SPKI DER.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "recipient_domain": {
        +      "description": "Recipient domain.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "recipient_email_masked": {
        +      "description": "Masked recipient address.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "request_hash": {
        +      "description": "SHA-256 of the request.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "response_hash": {
        +      "description": "SHA-256 of the response.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "rules_applied": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "Rule keys used."
        +    },
        +    "rules_version": {
        +      "description": "Rule set version.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "sender_country": {
        +      "description": "Sender country.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "signature": {
        +      "description": "Ed25519 signature, base64.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "verdict": {
        +      "description": "Verdict given.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "id"
        +  ],
        +  "type": "object"
        +}
  10. 1 tool update
    • Changedcontact_check10 fields changed
      • changedInput schema / properties / address_source / description
        Previous value: -"Where the address came from. Default published."New value: +"Where the address came from: published (on their website, profile or a directory), bought (a purchased list), scraped (collected by a tool), given (the person gave it to you) or unknown. It affects the verdict, so do not assume published."
      • changedInput schema / properties / company_number / description
        Previous value: -"UK company number, if known. Speeds up UK checks."New value: +"UK company number if known (8 characters), so the register can confirm the company."
      • changedInput schema / properties / existing_customer / description
        Previous value: -"Whether the recipient is already a customer. Default false."New value: +"True if the recipient has bought from you before. Default false."
      • changedInput schema / properties / pitch / description
        Previous value: -"A short description of what the email offers."New value: +"What the email offers, in a few words, for example 'bookkeeping software for dental practices'. Used to judge relevance to the recipient's role."
      • changedInput schema / properties / pitch_relevant / description
        Previous value: -"Whether the pitch relates to the recipient's role or business."New value: +"True if the pitch relates to the recipient's job or business, false if it does not."
      • changedInput schema / properties / recipient_country / description
        Previous value: -"ISO 3166 two-letter country of the recipient, if known."New value: +"Two-letter country code of the recipient if known, for example GB or DE. Otherwise it is worked out from the domain and company records."
      • changedInput schema / properties / recipient_domain / description
        Previous value: -"Recipient domain, used when there is no email address."New value: +"The recipient's domain when you have no email address, for example acme.co.uk."
      • changedInput schema / properties / recipient_email / description
        Previous value: -"Recipient email address. Give this or recipient_domain."New value: +"The recipient's email address. Give this or recipient_domain."
      • changedInput schema / properties / sender_country / description
        Previous value: -"Where the sender is based. GB or US. Default GB."New value: +"Country the sending business is based in, GB or US. Not the recipient's country. Default GB."
      • changedInput schema / properties / suppressed / description
        Previous value: -"Set true if the recipient is on your own suppression list."New value: +"True if the recipient is on your own do-not-contact list."
  11. 2 tool updates
    • First observedcontact_check
    • First observedverify_receipt

Publisher details

Operator
Precleared · Publisher source
Operator website
https://precleared.dev
Vendor relationship
First-party
Trust center
Not available
Restrictions
Free without a key: 100 checks a day over MCP, shared by everyone on the same IP address. Every new key gets 14 days at 100 checks a day with no card needed, then its own 100 a day over MCP or 25 over the REST API. For more checks: £15 a month for 100 a day, or packs of £9 for 300 checks (a key's first purchase) or £39 for 2,000, which never expire. It covers recipients in the UK, US, Canada, Germany, France, Australia, Ireland and the Netherlands, and the sending business must be based in the UK, US or UAE. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    EMEA sales + employment compliance for AI agents across 7 countries (UK, Germany, France, Spain, Italy, Netherlands, Sweden). GDPR, IR35, CNIL, B2B opt-out rules, cultural buyer psychology. Built by an ex-Deel ($12B) compliance + sales operator.
    7
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Validates email deliverability, assesses domain credibility, and scores B2B leads from A-F to help prioritize outreach, with batch processing and a free tier.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to assess cold-email deliverability by checking sending domains' SPF/DKIM/DMARC/MX configuration and scanning subject/body copy for spam-triggering patterns, with scores and risk levels. Runs locally over stdio without SaaS signup or API keys.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables an agent that reads a person's inbox to check a raw or .eml message and receive a 0-100 cold-outreach score with the reasons behind it. The agent can then avoid replying on the person's behalf to a cold message, or surface a likely cold one with its signals for the person to judge.
    27 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.