SignupBouncer

An API that checks new signups for disposable emails and repeat accounts.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
98%
Naming quality
85%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,006Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (0.79% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "checker": {
      "url": "https://signupbouncer.com/mcp"
    }
  }
}

Remote endpoints

https://signupbouncer.com/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_email(email, ip)

Checks one email address, and optionally the signup's IP address, the way SignupBouncer checks a new signup. Returns the result as "verdict" (allow, challenge or block), a 0-100 score, the reasons with their reason codes, the normalised inbox (Gmail dots and +tags folded) and the IP's network. When the domain looks like a typo of a big mail provider (gmial.com), "suggestion" holds the corrected address. Looks up the domain's mail servers live. Every reason is listed, including ones only paid plans count. Nothing sent is stored.

Input Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The email address to check.",
      "maxLength": 320
    },
    "ip": {
      "type": "string",
      "description": "Optional IPv4 or IPv6 address the signup came from.",
      "maxLength": 64
    }
  },
  "required": [
    "email"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "verdict": {
      "type": "string",
      "enum": [
        "allow",
        "challenge",
        "block"
      ]
    },
    "score": {
      "type": "number"
    },
    "reasons": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "points": {
            "type": "number"
          },
          "plan": {
            "type": "string"
          }
        },
        "required": [
          "code"
        ]
      }
    },
    "normalized": {
      "type": "object"
    },
    "suggestion": {
      "type": "string",
      "description": "The corrected address when the domain looks like a typo of a big mail provider. Absent otherwise. It does not change the score."
    },
    "network": {
      "type": [
        "object",
        "null"
      ]
    },
    "data_version": {
      "type": "string"
    }
  },
  "required": [
    "verdict",
    "score",
    "reasons"
  ]
}
🟢explain_reason(code)

Explains a SignupBouncer reason code (for example disposable_domain, burner_mx, repeat_inbox, datacenter_ip): what it means, how many points it adds or whether it blocks alone, and the lowest plan on which it counts. Without a code, lists every code.

Input Schema

{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "description": "A reason code such as disposable_domain. Omit to list all codes."
    }
  },
  "additionalProperties": false
}
🟢lookup_burner_domain(domain)

Says whether a domain is on SignupBouncer's disposable (burner) email list, a known relay service or a free subdomain mail service, or a known real mailbox provider, and when our harvester observed it. Uses only the loaded lists, no DNS lookup, so a brand-new burner domain on a burner mail server is caught only by check_email. Accepts a domain or an email address.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "A domain such as mailinator.com, or an email address.",
      "maxLength": 320
    }
  },
  "required": [
    "domain"
  ],
  "additionalProperties": false
}
🟢integration_guide(stack)

Returns the steps and the copy-paste code that checks new signups with SignupBouncer in one stack: supabase (a hook, no code), fetch (any TypeScript server), nextjs, express, hono, python, firebase or better-auth. Use it when the user is building or changing a signup, register or auth flow. The code reads the API key from SIGNUPBOUNCER_API_KEY. The call has a 1.5-second limit, and any failure lets the signup through.

Input Schema

{
  "type": "object",
  "properties": {
    "stack": {
      "type": "string",
      "enum": [
        "supabase",
        "fetch",
        "nextjs",
        "express",
        "hono",
        "python",
        "firebase",
        "better-auth"
      ],
      "description": "The user's backend or auth stack."
    }
  },
  "required": [
    "stack"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "stack": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "intro": {
      "type": "string"
    },
    "steps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "files": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "code": {
            "type": "string"
          }
        },
        "required": [
          "path",
          "code"
        ]
      }
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "rules": {
      "type": "string"
    },
    "docs": {
      "type": "string"
    },
    "api": {
      "type": "string"
    }
  },
  "required": [
    "stack",
    "title",
    "steps",
    "files",
    "docs"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools