Skip to main content
Glama

signup

Idempotent

Redeem a private-beta code and create an account. No API key needed.

    Standard codes are single-use with ten product requests. Owner codes are reusable
    and unlimited. Signup retains 500 credits as a compatibility balance, while
    customer pricing is zero during beta. An exact idempotent replay returns the same
    account and same derived API key without a second redemption.
    Errors: beta_access_denied, invalid_request, idempotency_conflict, rate_limited.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name for the account, 1-100 chars. Purely a label (it is never checked for uniqueness); defaults to 'agent'.agent
emailNoOPTIONAL contact address. Never required, never verified, and never used to authenticate; the api_key is the only credential.
idempotency_keyYesRequired replay key for beta signup. Reuse it only for exact retries.
beta_access_codeYesPrivate-beta invite code: exactly eight ASCII digits.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
docsNoWhere to read more, keyed by topic.
noteNoHuman-readable summary of the above.
tierNoowner (unlimited) or standard (ten product requests).
api_keyNoThe API key. An exact signup replay recovers the same derived value without storing the plaintext in SQLite.
creditsNoCompatibility balance: 500 for a fresh beta account. Beta operations do not spend it.
replayedNotrue when this response replays an earlier signup with the same code and idempotency_key; false on a fresh redemption.
unlimitedNotrue only for the owner tier.
account_idNoYour account id. Not a credential.
created_atNoAccount creation time, ISO-8601 UTC.
next_stepsNoOrdered suggestions for what to call next.
memory_cardNoA compact block worth persisting into your own memory.
request_limitNo10 for standard; null for owner.
requests_usedNoProduct requests admitted so far.
api_key_prefixNoFirst 12 chars of the key, safe to log and to pass to revoke_key.
requests_remainingNoRemaining product requests; null for owner.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changed
    • addedInput schema / properties / beta_access_code
      Added value: +{
      +  "description": "Private-beta invite code: exactly eight ASCII digits.",
      +  "maxLength": 8,
      +  "minLength": 8,
      +  "pattern": "^[0-9]{8}$",
      +  "title": "Beta Access Code",
      +  "type": "string"
      +}
    • removedInput schema / properties / idempotency_key / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / idempotency_key / default
      Removed value: -null
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Caller-chosen replay key (any string, unique per intended effect). A repeat call with the SAME key returns the stored result and is NEVER charged twice; the same key with different arguments is an idempotency_conflict. Omit and every call is a fresh, separately charged operation."New value: +"Required replay key for beta signup. Reuse it only for exact retries."
    • addedInput schema / properties / idempotency_key / maxLength
      Added value: +200
    • addedInput schema / properties / idempotency_key / minLength
      Added value: +1
    • addedInput schema / properties / idempotency_key / type
      Added value: +"string"
    • addedInput schema / required
      Added value: +[
      +  "beta_access_code",
      +  "idempotency_key"
      +]
    • changedOutput schema / description
      Previous value: -"A new account and, on the FIRST call only, its plaintext API key."New value: +"A private-beta account and its replay-recoverable API key."
    • changedOutput schema / properties / api_key / description
      Previous value: -"The plaintext key, returned EXACTLY once. NULL on an idempotent replay (the plaintext is never stored), so store it on first sight: it cannot be re-read."New value: +"The API key. An exact signup replay recovers the same derived value without storing the plaintext in SQLite."
    • changedOutput schema / properties / credits / description
      Previous value: -"Starting balance (500 on a fresh account)."New value: +"Compatibility balance: 500 for a fresh beta account. Beta operations do not spend it."
    • changedOutput schema / properties / replayed / description
      Previous value: -"true when this response replays an earlier signup with the same idempotency_key (and therefore carries no api_key); false on a fresh one."New value: +"true when this response replays an earlier signup with the same code and idempotency_key; false on a fresh redemption."
    • addedOutput schema / properties / request_limit
      Added value: +{
      +  "description": "10 for standard; null for owner.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / requests_remaining
      Added value: +{
      +  "description": "Remaining product requests; null for owner.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / requests_used
      Added value: +{
      +  "description": "Product requests admitted so far.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / tier
      Added value: +{
      +  "description": "owner (unlimited) or standard (ten product requests).",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / unlimited
      Added value: +{
      +  "description": "true only for the owner tier.",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
  2. Changed6 schema fields changed
    • addedInput schema / properties / email / description
      Added value: +"OPTIONAL contact address. Never required, never verified, and never used to authenticate; the api_key is the only credential."
    • addedInput schema / properties / idempotency_key / description
      Added value: +"Caller-chosen replay key (any string, unique per intended effect). A repeat call with the SAME key returns the stored result and is NEVER charged twice; the same key with different arguments is an idempotency_conflict. Omit and every call is a fresh, separately charged operation."
    • addedInput schema / properties / name / description
      Added value: +"Display name for the account, 1-100 chars. Purely a label (it is never checked for uniqueness); defaults to 'agent'."
    • addedOutput schema / description
      Added value: +"A new account and, on the FIRST call only, its plaintext API key."
    • addedOutput schema / properties
      Added value: +{
      +  "account_id": {
      +    "description": "Your account id. Not a credential.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "api_key": {
      +    "description": "The plaintext key, returned EXACTLY once. NULL on an idempotent replay (the plaintext is never stored), so store it on first sight: it cannot be re-read.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "api_key_prefix": {
      +    "description": "First 12 chars of the key, safe to log and to pass to revoke_key.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "created_at": {
      +    "description": "Account creation time, ISO-8601 UTC.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "credits": {
      +    "description": "Starting balance (500 on a fresh account).",
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "docs": {
      +    "description": "Where to read more, keyed by topic.",
      +    "type": [
      +      "object",
      +      "null"
      +    ]
      +  },
      +  "memory_card": {
      +    "description": "A compact block worth persisting into your own memory."
      +  },
      +  "next_steps": {
      +    "description": "Ordered suggestions for what to call next.",
      +    "type": [
      +      "array",
      +      "null"
      +    ]
      +  },
      +  "note": {
      +    "description": "Human-readable summary of the above.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "replayed": {
      +    "description": "true when this response replays an earlier signup with the same idempotency_key (and therefore carries no api_key); false on a fresh one.",
      +    "type": [
      +      "boolean",
      +      "null"
      +    ]
      +  }
      +}
    • removedOutput schema / title
      Removed value: -"signupDictOutput"
  3. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  4. First observed

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses many behavioral traits beyond the idempotentHint annotation: standard codes are single-use with ten product requests, owner codes are reusable/unlimited, signup retains 500 credits as a compatibility balance, and exact idempotent replays return the same account/key. It also lists specific error codes, adding substantial value over the annotation.

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 description is compact and well-structured. The first sentence is a clear action statement, followed by concise behavioral notes on codes, credits, and errors. It is not bloated, though it packs multiple pieces of information in a dense but readable way.

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?

Given that an output schema exists, the description covers all essential aspects: purpose, prerequisites, code behavior, idempotency semantics, and error cases. It gives an agent enough context to call the tool correctly without missing critical information.

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

Parameters3/5

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

Schema coverage is 100% with detailed descriptions for all four parameters. The tool description does not introduce new parameter-level details; it only reinforces idempotency behavior. Therefore the baseline score of 3 is appropriate.

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 opens with 'Redeem a private-beta code and create an account,' which is a specific verb+resource statement. Among the sibling tools, only this one handles signup, so it is clearly distinguished from all others.

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

Usage Guidelines4/5

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

It gives clear context by noting 'No API key needed' and describing the two code types and idempotent replay behavior. It does not explicitly name alternatives or exclusions, but the context strongly implies when to use the tool (when you have a beta code).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources