Skip to main content
Glama

register_new_account

Creates a new PushNotif account via two-step email OTP verification, registers the first website, and returns a live API key with 1,000 free credits.

Instructions

Two-step onboarding tool to request a 6-digit email OTP (step 1: omit otp_code) or verify the OTP to create a new PushNotif account with 1,000 free lifetime credits, register the initial website, and return a live API key (step 2: pass otp_code, password, and name). Use this tool only for brand-new user signups; do not use it for existing accounts (use login_existing_account instead) or to add websites to an existing account (use create_app instead). Public endpoint requiring no API key; step 1 is rate-limited to 5 OTPs per 10 minutes per IP (valid 10 minutes), while step 2 irreversibly creates a tenant and ECDSA P-256 VAPID keypair. Returns JSON { ok, step, tenant: { id, name, email, api_key, credits }, app: { id, site_name, site_url, vapid_public_key } }.

Input Schema

NameRequiredDescriptionDefault
nameNoWorkspace or company display name (2 to 80 characters; required when verifying otp_code)
emailYesEmail address to register (must not already belong to an existing PushNotif account)
otp_codeNoOptional 6-digit numeric OTP from email: omit on first call to send the OTP email, then provide on second call to complete registration
passwordNoAccount login password (minimum 6 characters; required when verifying otp_code)
site_urlNoOptional full HTTPS origin URL of the initial website (e.g., https://example.com)
site_nameNoOptional display name for the initial website or app (defaults to workspace name)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv2.2.0
    • changedInput schema / properties / email / description
      Previous value: -"Email address that received the OTP from request_registration_otp"New value: +"Email address to register (must not already belong to an existing PushNotif account)"
    • changedInput schema / properties / name / description
      Previous value: -"User or company workspace name (2 to 80 characters)"New value: +"Workspace or company display name (2 to 80 characters; required when verifying otp_code)"
    • changedInput schema / properties / otp_code / description
      Previous value: -"Exact 6-digit numeric OTP code sent to the user's email"New value: +"Optional 6-digit numeric OTP from email: omit on first call to send the OTP email, then provide on second call to complete registration"
    • changedInput schema / properties / password / description
      Previous value: -"Account password (minimum 6 characters)"New value: +"Account login password (minimum 6 characters; required when verifying otp_code)"
    • changedInput schema / properties / site_name / description
      Previous value: -"Optional display name for the first website or app (defaults to workspace name)"New value: +"Optional display name for the initial website or app (defaults to workspace name)"
    • changedInput schema / properties / site_url / description
      Previous value: -"Optional full HTTPS origin URL of the first website (e.g., https://example.com)"New value: +"Optional full HTTPS origin URL of the initial website (e.g., https://example.com)"
    • changedInput schema / required
      Previous value: -[
      -  "name",
      -  "email",
      -  "password",
      -  "otp_code"
      -]New value: +[
      +  "email"
      +]
  2. Changed6 schema fields changedv2.1.2
    • changedInput schema / properties / email / description
      Previous value: -"Alamat email pengguna (sama dengan saat request_registration_otp)"New value: +"Email address that received the OTP from request_registration_otp"
    • changedInput schema / properties / name / description
      Previous value: -"Nama pengguna atau workspace"New value: +"User or company workspace name (2 to 80 characters)"
    • changedInput schema / properties / otp_code / description
      Previous value: -"Kode OTP 6 angka yang diterima pengguna di inbox email"New value: +"Exact 6-digit numeric OTP code sent to the user's email"
    • changedInput schema / properties / password / description
      Previous value: -"Password akun baru (minimal 6 karakter)"New value: +"Account password (minimum 6 characters)"
    • changedInput schema / properties / site_name / description
      Previous value: -"Nama website atau aplikasi pertama"New value: +"Optional display name for the first website or app (defaults to workspace name)"
    • changedInput schema / properties / site_url / description
      Previous value: -"URL lengkap website pertama (diawali https://)"New value: +"Optional full HTTPS origin URL of the first website (e.g., https://example.com)"
  3. First observedv2.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses the rate limit (5 OTPs per 10 min per IP), OTP validity window, that step 2 irreversibly creates a tenant plus an ECDSA P-256 VAPID keypair, and that the endpoint is public with no API key. These are behavioral facts the structured fields do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The two-step mechanism and sibling exclusions are front-loaded, and every clause carries operational information. It is dense to the point of being a single long sentence, which slightly hurts scannability, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A non-idempotent, open-world mutation tool with no output schema is fully covered: the description supplies the return payload shape (ok, step, tenant, app fields including the API key and VAPID key), the rate limit, and the irreversibility warning. An agent has everything needed to call it correctly and interpret the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining the conditional coupling of otp_code with password and name and by tying each parameter set to a step. It does not add format constraints beyond what the schema already states (length minimums, HTTPS origin).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb and resource (register a new account via OTP) and spells out the two-step protocol explicitly. It names the sibling tools it is not (login_existing_account, create_app), so an agent can distinguish it from all 15 siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('only for brand-new user signups') and when-not-to-use rules with named alternatives for each case. The two-step invocation condition (omit otp_code first, pass it on the second call) is stated as a routing rule, not left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.