ContactLint
Server Details
Validate emails (MX, disposable, role, typo) and phone numbers, singly or in batches, for AI agents.
- Status
- Healthy
- Uptime
- 100.0% over 20 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- zksyncer/contactlint
- GitHub Stars
- 0
- Server Listing
- ContactLint MCP server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
The three tools target clearly different things: single email, batch email, and phone validation. The only risk is the near-identical pair validate_email/validate_emails, which differ only by an 's', but their descriptions make the single-vs-batch distinction explicit enough to avoid most misselection.
All tools follow the same validate_<noun> pattern with no stylistic drift. The singular/plural distinction is conventional and consistent across the set.
Three tools is well-scoped for a focused contact-validation service, and each one covers a distinct input type or usage mode (single email, batch email, phone). Nothing feels padded or missing at the structural level.
The surface covers the core validation domain, including a batch variant for email, and results include verdicts plus suggested_action. The obvious gap is the absence of a bulk phone validation counterpart, and there is no tool to inspect quota/check balance, though agents can work around both.
Available Tools
3 toolsvalidate_emailAInspect
Check an email address: syntax, MX/A records via DNS-over-HTTPS, disposable domain, role address, free provider, typo suggestion for major providers. No SMTP probing. The result carries suggested_action (accept, suggest_correction with did_you_mean, review, reject) plus verdict and reason. Works without a key for a trial of 20 checks per day per network; with a key, uses 1 check.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses the scoping limit (no SMTP probing), the quota model (20 free checks/day per network without a key, 1 check with a key), and the shape of the response including suggested_action and did_you_mean. It does not mention latency, caching, or whether addresses are logged/stored, which are the main remaining behavioral unknowns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences: what is checked first, the exclusion second, the output contract and cost model third. Every clause carries information an agent would otherwise have to guess, and nothing is repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by naming the key result fields (suggested_action, did_you_mean, verdict, reason) and the decision outcomes. Combined with quota and no-SMTP disclosure, an agent can call this correctly; only minor gaps like error behavior on malformed input remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there is one required string parameter, 'email'. The description refers to 'an email address' but adds no format, normalization, or validation expectations beyond what the parameter name already implies. The single-parameter surface keeps this adequate, but the description does not compensate for the missing schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Check) and resource (an email address) and enumerates the exact checks performed: syntax, MX/A via DNS-over-HTTPS, disposable domain, role address, free provider, and typo suggestion. It is unambiguous about what the tool does, but it never mentions the sibling validate_emails, so an agent gets no explicit signal that this is the single-address variant rather than the bulk one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'an email address' (singular) and by the explicit exclusion 'No SMTP probing', which tells the agent what this tool will not do. However, there is no statement of when to prefer validate_emails for multiple addresses, no prerequisites, and no guidance on handling results beyond the listed suggested_action values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_emailsAInspect
Check a list of up to 50 email addresses in one call, with the same checks as validate_email. Returns one result per address in the same order plus a summary of verdicts. Uses 1 check per address; addresses whose DNS lookup fails come back with reason dns_error and are not billed. If the key lacks checks for the whole list, nothing is checked or billed.
| Name | Required | Description | Default |
|---|---|---|---|
| emails | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers uncommon specifics: billing (1 check per address), non-billing on dns_error, order preservation, and the all-or-nothing behavior when the key lacks sufficient checks. It does not cover auth/permission prerequisites or any rate limit beyond the billing model, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences with zero filler; the scale-and-batch fact is front-loaded, followed by return shape, then cost behavior. Every sentence carries information an agent would otherwise have to guess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, yet the description explains the return shape (one result per address in input order plus a verdict summary), an error reason value (dns_error), and billing outcomes. It leaves the possible verdict values and the summary's structure unspecified, which is a real gap given there is no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there is a single parameter, but the name 'emails' plus the stated cap of 50 makes the shape self-evident, and the description reinforces the documented bounds. It adds the semantics of ordering and per-item results but never states the expected string format, so it stops at 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) and resource (a list of up to 50 email addresses in one call) and explicitly anchors itself to the sibling validate_email by inheriting its checks. An agent can immediately tell this apart from validate_email (single) and validate_phone (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The batch framing ("up to 50 email addresses in one call") gives a clear condition for choosing this over the single-address sibling, and the key-lacks-checks note signals a failure case. It stops short of an explicit "use validate_email when you have one address, use this for many" routing statement, so it is context rather than a full when/when-not rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_phoneAInspect
Parse and validate a phone number: valid, possible, type, region, E.164 and national formats, plus suggested_action (accept, review, reject). Does not check whether the line is in service. Works without a key for a trial of 20 checks per day per network; with a key, uses 1 check.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| country | No | ISO 3166-1 alpha-2 default region, e.g. US |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does so well: it discloses the negative capability ("Does not check whether the line is in service"), the quota/credit model (20 free checks per day per network without a key, 1 check with a key). It stops short of saying whether an invalid number raises an error or returns a response, and doesn't quantify latency or quota-exceeded behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct payload: capabilities front-loaded, then the limitation, then the cost model. No redundant restatement of the tool name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description has to describe the return shape, and it does by naming all seven result fields and the three suggested_action values. The remaining gap is input-format guidance for the undocumented phone parameter, which matters for a validation tool that will fail differently depending on input convention.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the country parameter is documented in-schema as ISO 3166-1 alpha-2, but phone has no description in either place, and the description never clarifies whether phone should be supplied in national or E.164 form or how country interacts with it. Baseline 3 given the partial schema coverage and no compensating detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Parse and validate") plus the exact resource (a phone number) and enumerates the concrete outputs (valid, possible, type, region, E.164, national, suggested_action). The resource name makes the boundary against the email validators unambiguous without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource (use this for phones, the siblings for emails) and the suggested_action field hints at decision-making use, but there is no explicit statement of when to choose this over validate_email/validate_emails or of preconditions such as input format requirements.
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 tool update
- Added
validate_emails
2 tool updates
- First observed
validate_email - First observed
validate_phone
Related MCP Connectors
Verify emails (valid/invalid/risky/unknown): MX, SMTP, catch-all, disposable. Free agent key.
Verify emails (valid/invalid/risky/unknown): MX, SMTP, catch-all, disposable. Free agent key.
Verify emails (valid/invalid/risky/unknown): MX, SMTP, catch-all, disposable. Free agent key.
Email validation for AI assistants: verdict, risk score, evidence. Free: 100 checks a month.
Related MCP Servers
- AlicenseAqualityFmaintenanceProvides email validation and domain configuration auditing tools for AI assistants, enabling single address checks, bulk list cleaning, SPF verification, and full mail setup grading (A-F) with actionable fixes.448 npmMIT
- AlicenseAqualityBmaintenanceEnables AI assistants to verify single email addresses and bulk lists of up to 1,000 addresses in real time, checking RFC 5322 syntax, DNS MX records, disposable providers, role accounts, and typos, with an optional deep SMTP mailbox handshake. Bulk runs handle partial-quota situations gracefully.2MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to verify email addresses in real-time, checking syntax, DNS, MX records, and SMTP handshake, returning verdicts and deliverability scores without sending actual emails.-
- AlicenseAqualityAmaintenanceEnables AI agents to verify email addresses and receive a 'send', 'hold', or 'kill' verdict with the reason, while also managing signup and credits programmatically.52MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.