Verify email addresses in real time: deliverability, disposable and role addresses, typo fixes.
Official Model Context Protocol server of the MailProbe API. Your AI assistant checks whether email addresses exist and can receive mail, in real time and without sending anything: one address, or a list before a campaign. Verification runs on OVHcloud servers in France, and the API stores no address.
Installation · Tools · How it behaves · Development
There are two ways to reach it, with the same two tools:
https://mailprobe.dev/mcp, for a client that connects to a remote server and can send a header: nothing to install;npx -y mailprobe-mcp, for a client that starts its servers on your computer.This repository also holds the Claude Code plugin and the skill that tells an assistant how to read a result and how to go through a list.
mp_live_, under Developer in your account. MailProbe shows it only once, at creation.The key goes in the Authorization header. In Claude Code:
claude mcp add --transport http mailprobe https://mailprobe.dev/mcp --header "Authorization: Bearer mp_live_..."
In Cursor, in .cursor/mcp.json:
{
"mcpServers": {
"mailprobe": {
"url": "https://mailprobe.dev/mcp",
"headers": { "Authorization": "Bearer mp_live_..." }
}
}
}
Any other client that connects to a remote MCP server and can send a header works the same way.
The key goes in the MAILPROBE_API_KEY environment variable, and the server needs Node.js 22 or later. In Claude Desktop and the other clients configured with a JSON file:
{
"mcpServers": {
"mailprobe": {
"command": "npx",
"args": ["-y", "mailprobe-mcp"],
"env": { "MAILPROBE_API_KEY": "mp_live_..." }
}
}
}
The Claude and ChatGPT apps connect to a remote server only through an OAuth sign-in, which MailProbe does not offer yet. Claude Desktop takes the local server above; elsewhere, MailProbe is available through Zapier MCP.
The plugin connects Claude Code to the remote server and adds a skill that tells the assistant how to read a result, what a call costs, and how to go through a list.
/plugin marketplace add jamalofski/mailprobe-mcp
/plugin install mailprobe@mailprobe
Claude Code asks for the API key when the plugin is enabled, and keeps it in the credential store of the system, not in a settings file. To set it later, run /plugin configure mailprobe@mailprobe, or open /plugin, Installed tab, mailprobe, Configure options. A remote server you added by hand at the same address takes precedence over the one of the plugin.
Then ask for what you need: "does jane@example.com exist?", "check the addresses of contacts.csv before I send the newsletter", "which of these sign-ups are disposable?".
| Tool | What it does |
|---|---|
verify_emails | Verifies 1 to 20 addresses and returns one result per address, in the order given: status (valid, invalid, risky or unknown), a score from 0 to 100, the reason of a verdict that is not plainly deliverable, the disposable, role_based, free_provider and catch_all flags, and did_you_mean for a likely typo |
get_credits | Returns the credits left on the account of the API key |
The fields of a result are those of the API: see the API documentation.
https://mailprobe.dev/api/v1 and returns the answer.get_credits is free.unknown with the reason timeout, at no charge.MAILPROBE_API_KEY.Every request of the local server carries User-Agent: mailprobe-mcp/<version>. Mention it when you contact support: it tells your calls apart in the API's logs.
The local server has no dependency: Node.js runs the sources as they are. It talks to its client over stdio and serves both eras of the protocol from the same process: revision 2026-07-28, where each request carries its protocol version, and the earlier revisions (2025-11-25 down to 2024-11-05), which start with an initialize handshake.
npm test
runs the tests against a fake MailProbe API on a local port: no key and no network are needed. They also check that the package, the plugin, the skill and this README agree.
npm run check-tools
compares the instructions and the tool definitions of this package with those of the remote server, which gives them without a key.
plugin/ holds the Claude Code plugin: its manifest, the .mcp.json that points at the remote server, and the skill, plugin/skills/mailprobe/SKILL.md. .claude-plugin/marketplace.json is the catalog that lets Claude Code install the plugin from this repository. Neither is part of the npm package.
claude plugin validate . --strict
claude --plugin-dir ./plugin
check the manifests, then start a session with the plugin loaded from the folder, without installing it. A user gets a change of the plugin or of the skill when the version changes: it ships with a release.
package.json and plugin/.claude-plugin/plugin.json, and date its section in CHANGELOG.md.npm test and npm run check-tools.Open an issue or write to contact@mailprobe.dev.
MIT, see LICENSE.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y mailprobe-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"dev-mailprobe-mailprobe": {
"command": "npx",
"args": [
"-y",
"mailprobe-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencemailprobe-mcpnpmMailProbe works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.