inboxvalid-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@inboxvalid-mcpCheck if email john.doe@gmail.com is valid"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
inboxvalid-mcp
An MCP (Model Context Protocol) server built with TypeScript and Node.js that exposes a mock email verification tool (verify_email) over stdio transport.
Getting Started
Prerequisites
Node.js 18+ (or 20+)
npm 9+
Installation & Build
# Clone or navigate to the directory
cd inboxvalid-mcp
# Install dependencies
npm install
# Build TypeScript to dist/
npm run build
# Run unit tests
npm test
# Run the console demo
npm run demoStarting the Server
npm start
# or directly: node dist/server.jsRelated MCP server: mcp-email-sender
Testing with the MCP Inspector
You can test inboxvalid-mcp interactively in the official MCP Inspector:
npx @modelcontextprotocol/inspector node dist/server.jsOpen the inspector URL shown in the terminal (usually
http://localhost:5173or similar).Connect to the stdio transport.
Select
verify_emailfrom the Tools tab.Provide an argument such as:
{ "address": "user@gmail.com" }Click Run Tool to inspect the structured response.
Tool Interface: verify_email
Input Schema
{
"address": "string (email address to verify)"
}Output Schema
{
"email": "user@gmail.com",
"status": "valid",
"reasons": [],
"checks": {
"syntaxValid": true,
"disposableDomain": false,
"mxPlausible": true
},
"latencyMs": 120
}Interface Design Choices
Structured JSON vs Plain Text: LLMs and agentic pipelines require predictable, machine-parseable outputs to make reliable branching decisions (e.g. asking the user for a new email vs proceeding with signup). Structured JSON prevents ambiguous text parsing errors.
Three-State Status (
valid|invalid|risky) instead of Binary (valid|invalid): Email verification in practice is probabilistic. Syntax failure is binary (invalid), but disposable domains or unverified MX servers don't always mean the inbox cannot receive mail—they signal elevated fraud or deliverability risk. Ariskystate allows consuming systems to decide custom business logic (e.g. challenge with 2FA, flag for manual review, or display a warning) rather than forcing an artificial pass/fail.Separated
checksin Response: Exposing granular flags (syntaxValid,disposableDomain,mxPlausible) alongside the high-levelstatusand human-readablereasonslets downstream callers inspect exactly which rule triggered without reverse-engineering error messages.
Error Handling & Retry/Backoff Reasoning
Fail-Fast Syntax Validation: If email syntax fails regex checks, execution terminates immediately without triggering network operations or retry loops.
Exponential Backoff with Jitter: Mock MX lookups are wrapped in a generic retry utility (
withRetry) that attempts up to 3 times with exponential backoff (baseDelay * 2^(attempt - 1)) plus randomized jitter. Jitter prevents thundering herd issues under concurrent load.Fail-Open vs Fail-Closed Strategy: When external verification/MX lookup exhausts all retries, the server fails open with caution: instead of throwing an unhandled exception or returning
invalid, it returnsstatus: "risky"with reason"verification service unavailable, defaulting to caution".Why: Crashing the MCP tool breaks the agent's execution loop. Rejecting valid users because of a transient network blip causes false positives and bad UX. Flagging as
riskykeeps the pipeline resilient while alerting callers to proceed carefully.
Assumptions
Mock Verification Engine: Simulates network latency (50–200ms) and uses a deterministic list of known reputable mail providers (
gmail.com,outlook.com,yahoo.com,icloud.com,proton.me, etc.) to provide reproducible demo results without live SMTP/DNS queries.Static Disposable List: Bundles a local
disposableDomains.jsonfile representing ~18 known temporary email services (mailinator.com,10minutemail.com,yopmail.com, etc.).Transport: Standard stdio transport for local integration with LLM hosts (Claude Desktop, MCP Inspector, etc.).
Production Readiness Roadmap
To transition this server to production:
Real DNS MX Resolution: Replace mock MX logic with Node's native
node:dns/promises(dns.resolveMx(domain)), inspecting record priority and fallback A records.Real-time Disposable & Fraud Feed: Integrate with live disposable domain feeds or APIs (e.g. Kickbox, Debounce, or daily synchronized blocklists).
Caching Layer: Add an in-memory (LRU) or Redis cache keyed by domain to prevent redundant DNS lookups for popular domains (
gmail.com,outlook.com), dramatically lowering latency and upstream traffic.SMTP Handshake / Mailbox Ping: Optional RCPT TO verification with connection pooling and strict timeout handling where deliverability guarantees are critical.
Rate Limiting & Concurrency Control: Apply token bucket or leaky bucket rate limiting per client to guard upstream DNS resolvers and APIs.
Scalability & Architecture
Stateless MCP Server: The server maintains no local session state. Multiple worker processes can run behind load balancers or container orchestrators without coordination.
Shared Cache & Feed Storage: In a distributed setup, domain MX cache and disposable lists move to Redis or an edge KV store (Cloudflare Workers KV, AWS ElastiCache) for real-time invalidation and synchronized updates.
Transport Flexibility: While stdio is ideal for local desktop clients, the server logic is isolated from the transport layer and can be mounted over SSE (Server-Sent Events) or WebSockets for cloud-hosted agent deployments.
Demo
Screenshots of the verify_email tool being invoked via MCP Inspector, showing all three result states:

Available Tools
1 toolverify_emailB
Verify email address syntax, disposable domain status, and MX plausibility
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The email address to verify |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently lists the checks performed (syntax, disposable domain, MX plausibility), but it does not mention whether these checks are live/network-based, what the return format is, or any limitations or side effects. This adds meaningful context but is not fully transparent.
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?
The description is a single, concise sentence that contains no fluff or redundant information. It is front-loaded with the primary verb and resource, making it easy to parse quickly.
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?
With no output schema and no annotations, the description leaves out crucial information about the return value or result format. The agent knows what aspects are checked but not what the tool returns (e.g., a boolean, a report, error behavior). For a verification tool, this is a significant gap.
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?
The schema already provides a 100% description coverage for the single parameter 'address'. The tool description does not add any parameter-specific semantics beyond what the schema states, which aligns with the baseline score of 3 for high schema coverage.
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 uses the specific verb 'verify' and identifies the resource 'email address', while detailing three distinct aspects: syntax, disposable domain status, and MX plausibility. This is a clear and specific purpose statement, even without sibling tools to compare against.
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?
There is no guidance on when to use this tool versus alternatives, nor any exclusion criteria. The description only states what the tool does, leaving the agent to infer usage context from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of ambiguity. The tool's purpose is clearly stated and distinct.
The single tool name 'verify_email' follows a clear verb_noun pattern, which is consistent and predictable.
The server has only one tool, which feels thin for a general-purpose email verification service. However, for a narrowly scoped utility, the single tool could be acceptable, making it borderline.
The tool covers syntax, disposable domain status, and MX plausibility, but lacks SMTP-level verification or mailbox existence checks. This leaves a significant gap for a service named 'inboxvalid'.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for MailTempo's public free temporary email inboxes.
Cloudflare Workers MCP server: email-validator
MCP server for Tomba email finder, verification, and contact enrichment API
An MCP server that provides email capabilities, hosted on Alpic platform
Related MCP Servers
- AlicenseAqualityCmaintenanceEmail validation MCP server using MailboxValidator API to determine validity of an email address.3731MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to validate email addresses and send emails via SMTP with zero external dependencies.MIT
- FlicenseAqualityBmaintenanceAn MCP server that exposes a verify_email tool for checking email syntax, disposable domains, and MX records, returning a structured validity result.1
- FlicenseNot gradedqualityCmaintenanceAn MCP server that provides email verification, returning valid, invalid, or risky status with detailed checks and metadata. It enables verifying email addresses via a simple tool interface.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/KumarManglam-123/inboxvalid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server