MCP server
VerifyEmail runs a remote MCP server. Any MCP client that supports remote servers with OAuth can connect to it with your VerifyEmail sign-in. No API key is involved.
Server
Section titled “Server”| Server URL | https://api.tryverifyemail.com/mcp |
| Transport | Streamable HTTP |
| Authentication | OAuth 2.1 with PKCE |
| Authorization server metadata | https://api.tryverifyemail.com/.well-known/oauth-authorization-server |
| Protected resource metadata | https://api.tryverifyemail.com/.well-known/oauth-protected-resource |
| Client registration | Client ID Metadata Documents, or dynamic client registration |
| Scope | A single scope, verify |
Connect manually
Section titled “Connect manually”In your MCP client, add a remote server and paste https://api.tryverifyemail.com/mcp. The client opens a browser
where you sign in to VerifyEmail (or create an account) and approve the connection. After approval the three tools
below are available.
The token is tied to the VerifyEmail account you signed in with, so verifications spend that account’s credits.
The server exposes exactly three tools. Each is annotated read-only (readOnlyHint: true).
verify_email
Section titled “verify_email”Verifies one email address.
Input:
{ "email": string }Output is either the public verification result object or a pending stub.
The result object, with fields in this order:
{ "verdict": "deliverable" | "undeliverable" | "risky" | "unknown", "sub_status": string, "quality_score": number, "confidence": number, "provider": string, "primary_mx": string, "signals": object, "verified_at": string}Every field is defined in the result object of the REST reference.
The pending stub:
{ "status": "pending", "id": string }It is returned when the mail server has not answered within the request window. Pass id to get_verification to
collect the result.
A malformed address is not an error. It returns verdict: "undeliverable".
get_verification
Section titled “get_verification”Fetches a verification by id.
Input:
{ "id": string }Output: the same result object as verify_email, or the same pending stub if the check is still running.
get_account
Section titled “get_account”Returns the connected account. Takes no input:
{}Output:
{ "email": string, "plan": string, "credits_remaining": number }Credits
Section titled “Credits”Each verify_email call that reaches a verdict costs 1 credit from the connected account. get_verification and
get_account are free.
Errors
Section titled “Errors”| Condition | What the client sees | What to do |
|---|---|---|
| 0 credits | The tool returns an error saying the account has no credits. | Top up in the VerifyEmail dashboard. get_account still works. |
| Account frozen | The tool returns an error saying the account is frozen. | Contact support from the dashboard. |
| Rate limited | The tool returns an error saying too many requests. The Free plan allows 1 request per second. | Retry after a short wait. |
| Expired or revoked token | The server returns HTTP 401 with a WWW-Authenticate challenge pointing at the protected-resource metadata. |
The client should re-run the OAuth flow. |
Disconnect
Section titled “Disconnect”Revoke the connection from Settings → Connected apps in the VerifyEmail dashboard, or remove the server from your MCP client. Either one invalidates the token.