Block disposable signups from Python, TypeScript, or an AI agent: three official packages are live
As of August 5, 2026, isitdisposable.com has official client libraries for Python and TypeScript plus a Model Context Protocol (MCP) server, so you no longer need to hand-roll your own wrapper around the detection service. Install one package, point it at your key, and guard a signup form in a few lines, with fail-open behavior on by default so a failed check never blocks a real user. The two Software Development Kits (SDKs) are on PyPI and npm, and the MCP server lets an AI assistant such as Claude check addresses while it works. All three are open source, free to use on the free plan, and take a couple of minutes to set up.
Until today, calling the detection Application Programming Interface (API) from your own code meant rebuilding the same small wrapper every time: read the key from the environment, set sensible timeouts, retry once, and decide what happens when the network hiccups in the middle of a signup. Now the official version of that wrapper exists in three forms, and none of it is on you anymore.
What shipped?
Three packages, all at version 0.1, all MIT licensed, all open source on GitHub.
| Package | Install | What it does | Links |
|---|---|---|---|
Python SDK isitdisposable |
pip install isitdisposable |
Synchronous and asynchronous clients, single and batch checks, full type information | PyPI, source |
TypeScript SDK isitdisposable |
npm install isitdisposable |
Zero runtime dependencies, both module formats, Node.js 18 and later plus edge runtimes, fully typed results | npm, source |
MCP server isitdisposable-mcp |
npx -y isitdisposable-mcp |
Three tools for an assistant: check one email, one domain, or up to 100 at once | npm, source |
The MCP server is also listed in the official MCP registry as io.github.richelo/isitdisposable-mcp, so an MCP-capable assistant such as Claude Desktop or Claude Code can discover it directly.
What does a signup guard look like now?
Python, in a form handler:
from isitdisposable import Client
client = Client() # reads ISITDISPOSABLE_API_KEY
result = client.check(email="[email protected]")
if result.disposable:
raise ValueError("Please use a permanent email address.")
TypeScript, in a route handler:
import { IsItDisposable } from "isitdisposable";
const client = new IsItDisposable();
const result = await client.check({ email: "[email protected]" });
if (result.disposable) {
return new Response("Please use a permanent email address.", { status: 422 });
}
Both clients read the key from the ISITDISPOSABLE_API_KEY environment variable, apply sensible timeouts, and retry once with backoff before giving up. Note that both examples check disposable only, so relay and alias addresses, which the service classifies separately, pass straight through this guard, exactly as they should. Those forward to real inboxes and belong to real customers, so you do not want to block them.
What happens when the network fails mid-signup?
Nothing breaks, and that is deliberate. Both SDKs fail open by default: on a network failure, a timeout, or trouble on our side, they return a result marked as not checked, with the recommended action allow, and log a warning, rather than throwing an error into your signup flow. A real customer never loses a signup because a check could not finish. Genuine setup mistakes, like a missing or revoked key, still fail loudly so you catch them in development. The platform behaves the same way on its side, so the whole chain, from your form to our servers, follows one rule: detection helps you, it never blocks you by accident.
What can an AI agent do with the MCP server?
Add this to your Claude Desktop configuration:
{
"mcpServers": {
"isitdisposable": {
"command": "npx",
"args": ["-y", "isitdisposable-mcp"],
"env": { "ISITDISPOSABLE_API_KEY": "your_secret_key" }
}
}
}
With that in place, the assistant can vet an address or a whole list while it works: qualifying leads, cleaning a spreadsheet of signups, or checking a suspicious domain during an investigation. The tool descriptions tell the agent how to read each verdict, and an inconclusive result is reported as inconclusive, never as safe.
Where do I start?
Grab an API key at isitdisposable.com, install a package, and you have a working guard in minutes. Every account includes a free plan with 250 lookups per month plus a 14-day full-access trial, no credit card. Under the hood, all three packages wrap the same detection API: a live dataset of more than 205,000 domains from six upstream sources, MX-validated and refreshed daily, that fails open by design. Each package's README walks through setup: Python, TypeScript, MCP server. Install one, and your signup form is guarded before your coffee cools.
About the author
Richelo Killian
Founder
Founder of isitdisposable.com and the SenderWorx email tool suite. Builds email infrastructure and anti-abuse tooling.