Docs

MCP server

MCP server

Add our server's URL to your AI assistant or coding agent. The checker tools need no key.

The server and its tools

AI assistants and coding agents can use the free checker, and fetch the code for your stack, through MCP (Model Context Protocol). Add a remote server with this URL, no key needed:

https://signupbouncer.com/mcp

The server speaks the Streamable HTTP transport. It answers each request with plain JSON, with no sessions and no event stream. It has four read-only tools that need no key:

  • integration_guide: the steps and code from Code for your stack for the stack you name (supabase, fetch, nextjs, express, hono, python, firebase or better-auth).
  • check_email: checks an address, and optionally an IP, like the disposable email checker. It returns allow, challenge or block, the score, every reason with its code, the normalized inbox and the IP's network, plus suggestion when the domain looks like a typo of a big mail provider. Each reason links to its row on the reason codes page.
  • explain_reason: what a reason code means and the lowest plan on which it counts. Without a code, it lists them all.
  • lookup_burner_domain: whether a domain is on our burner list (or is a relay service, a free subdomain mail service or a known real provider), without a DNS lookup.

With your API key, two more tools work with an app's rules:

  • get_rules: the app's Rules settings, as the Rules API returns them.
  • update_rules: changes the settings you name, as a PATCH does. It changes live signup blocking for that app, so have your assistant confirm each change with you. Switching to enforce starts refusing signups.

With a key made for an app, the rules tools work on that app. An older all-apps key needs app. Without a key, both tools answer with how to get one. The rules tools share the Rules API's allowance.

Limits and keys

check_email and lookup_burner_domain share the free checker's per-IP limits (20 a minute, 200 a day).

check_email counts every reason, including reasons that count only on paid plans, so its score can differ from your app's. To check real signups in your app, use the Supabase hook or the REST API with a free key.

Assistants hosted by their provider, such as claude.ai, call from the provider's servers and share its IP addresses. To get your account's own free allowance (20 a minute, 200 a day per account), send your API key as Authorization: Bearer sb_live_... in clients that let you set headers.

Calls with a key do not count as checks against your plan. A key that is not valid gets a 401.

What we keep

  • Addresses, IPs and domains sent to lookup_burner_domain: never stored or logged.
  • The domain of each check_email address, with its mail servers: cached up to an hour.
  • Keyed hashes for rate limits: calling IP (account with a key), up to 24 hours.
  • Key lookup: IP and /24 or /64 network keyed hashes, up to two minutes.
  • update_rules settings and block messages: saved until changed or the app's removed.

Add the MCP server to your client

Claude Code:

claude mcp add --transport http signupbouncer https://signupbouncer.com/mcp

# with your key:
claude mcp add --transport http signupbouncer https://signupbouncer.com/mcp \
  --header "Authorization: Bearer sb_live_..."

Cursor, in .cursor/mcp.json (the headers part is optional):

{
  "mcpServers": {
    "signupbouncer": {
      "url": "https://signupbouncer.com/mcp",
      "headers": { "Authorization": "Bearer ${env:SIGNUPBOUNCER_API_KEY}" }
    }
  }
}

VS Code, in .vscode/mcp.json:

{
  "servers": {
    "signupbouncer": { "type": "http", "url": "https://signupbouncer.com/mcp" }
  }
}

Claude Desktop and claude.ai: add a custom connector with the URL above. Other clients: add a remote (HTTP) MCP server with the same URL.