Skip to content

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 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

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).

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".

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.

Returns the connected account. Takes no input:

{}

Output:

{ "email": string, "plan": string, "credits_remaining": number }

Each verify_email call that reaches a verdict costs 1 credit from the connected account. get_verification and get_account are free.

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.

Revoke the connection from Settings → Connected apps in the VerifyEmail dashboard, or remove the server from your MCP client. Either one invalidates the token.