Verify email in Codex CLI
The Codex CLI, the ChatGPT desktop app and the Codex IDE extension all read the same MCP configuration, so setting this up once covers all three. Add the Qualisend endpoint and the agent can verify addresses without leaving your editor.
- MCP endpoint
- https://app.qualisend.com/api/mcp
- Authentication
- Sign-in or API key
- Available on
- Codex CLI on every platform. No plan gating documented for MCP on Codex hosts.
Connect it to Codex CLI
You need a Qualisend account - the free plan includes 100 verification credits that never expire - and Codex CLI itself. Steps checked against OpenAI's documentation in September 2026.
- 1
Add the server
--url selects Streamable HTTP transport.
codex mcp add qualisend --url https://app.qualisend.com/api/mcp - 2
Sign in
Runs the OAuth flow and stores the credentials for you.
codex mcp login qualisend - 3
Or use an API key
Skip the sign-in entirely: set bearer_token_env_var in the config below and export the variable in the shell you launch Codex from.
- 4
Check it
codex mcp list shows configured servers; /mcp inside the codex TUI shows what is actually live.
codex mcp list - 5
Desktop app and IDE extension
Both read the same file. In the ChatGPT desktop app: Settings -> MCP servers -> Add server, choose Streamable HTTP, paste the endpoint, then Restart. In the Codex IDE extension it is the gear menu -> MCP servers.
Sign-in or API key
Either. codex mcp login runs the sign-in, or point bearer_token_env_var at an environment variable holding a Qualisend API key.
Check that it worked
Ask "how many Qualisend credits do I have left?". A number back means you are connected - that tool is free, so it costs nothing to test.
Config file
~/.codex/config.tomlShared by the CLI, the ChatGPT desktop app and the Codex IDE extension. Project-scoped .codex/config.toml works too, in trusted projects.
# Option A - sign in (run: codex mcp login qualisend)
[mcp_servers.qualisend]
url = "https://app.qualisend.com/api/mcp"
auth = "oauth"
# Option B - static API key instead
# [mcp_servers.qualisend]
# url = "https://app.qualisend.com/api/mcp"
# bearer_token_env_var = "QUALISEND_API_KEY"Worth knowing
- If bearer_token_env_var names a variable that is not exported, auth fails silently - Codex connects unauthenticated rather than erroring, and every tool call comes back needing sign-in.
- Adding the server in the ChatGPT desktop app does NOT make it appear on chatgpt.com, and vice versa. Those are two unrelated mechanisms.
- The desktop and IDE UIs only expose name, transport and URL. Tokens and headers have to go in config.toml.
- Restart the app or the extension after changing a server. It does not hot-reload.
- Raise tool_timeout_sec if you run large list verifications - the default is 60 seconds.
What to ask once it is connected
There are no commands to learn. Ask in your own words and Codex CLI picks the right tool - there are twelve, covering verification, sending-domain deliverability and blacklist checks.
What Codex CLI can reach
Only the verification tools, scoped to the single workspace you connect. It cannot reach another customer's data, your billing, or any admin function, and it never sees how a check is performed - just the verdict and the score. Authentication is an explicit token in a request header, never a cookie, so there is no session for a malicious page to borrow. Revoke it from Codex CLI or from your Qualisend dashboard at any time; sign-in access also expires on its own within an hour. Full detail is on the MCP documentation page.
Codex CLI FAQ
OpenAI's own reference: OpenAI's Codex MCP docs
Using something else?
It is the same endpoint everywhere. Pick your client:
Any other MCP-compatible client works too - Cline, JetBrains AI Assistant and the rest all take the same Streamable HTTP endpoint. The MCP documentation has the transport and authentication details.
Start free with 100 credits that never expire, then paste the endpoint.