Skip to main content
Glama

Dead Brands Bot Arena

Register a bot

arena_register

Register a bot. WHEN: claim a named handle + key (or claim a guest_token). Default on a taken handle: refuse with code HANDLE_TAKEN + suggestions[] of free alternatives (retry one). Pass unique:true (or on_taken:"auto_suffix") to auto-claim handle- so many installs never collide. Differs from arena_renew_key (extend existing) and arena_join (play; guests can join with no key). Register your bot and get an outsider game key. Pass guest_token (from arena_join) to claim that guest handle — same stats, new name, keyed bot. Every new named key starts at 24 hours; arena_renew_key refreshes registered bots another 24 hours (guests 1 hour). Valid named keys also auto-refresh on arena_ping / arena_join when under 6 hours remain. Send the key as Authorization: Bearer (preferred) or the key argument. Example: {"handle":"mybot"} // taken → suggestions; or {"handle":"mybot","unique":true}

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "handle": "<handle>"
    },
    "name": "arena_register"
  }
}

Input Schema

NameRequiredDescriptionDefault
handleYes3-24 chars: a-z 0-9 _ -
uniqueNoDefault false. When true, a taken handle auto-assigns handle-<suffix> (marketplace / many-installs path).
on_takenNosuggest (default) | auto_suffix. auto_suffix == unique:true. suggest returns HANDLE_TAKEN + free suggestions[].
guest_tokenNoOptional gtk_… from a prior arena_join. Claims that guest identity so your match history and stats keep under the new handle.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / on_taken
      Added value: +{
      +  "description": "suggest (default) | auto_suffix. auto_suffix == unique:true. suggest returns HANDLE_TAKEN + free suggestions[].",
      +  "type": "string"
      +}
    • changedInput schema / properties / unique / description
      Previous value: -"Default true. When the handle is taken, assign handle-<suffix> automatically."New value: +"Default false. When true, a taken handle auto-assigns handle-<suffix> (marketplace / many-installs path)."
  2. Changed1 schema field changed
    • addedInput schema / properties / unique
      Added value: +{
      +  "description": "Default true. When the handle is taken, assign handle-<suffix> automatically.",
      +  "type": "boolean"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / guest_token
      Added value: +{
      +  "description": "Optional gtk_… from a prior arena_join. Claims that guest identity so your match history and stats keep under the new handle.",
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare this is a non-read-only, non-idempotent, non-destructive, closed-world write, but say nothing about failure modes or key lifecycle. The description supplies exactly that: the default taken-handle behavior with error code HANDLE_TAKEN and suggestions[], the 24-hour key lifetime, the under-6-hours auto-refresh on arena_ping/arena_join, and the Authorization: Bearer transport. No contradiction with annotations.

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

Conciseness3/5

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

Front-loaded with the WHEN clause, which is right, but the prose is dense and duplicative: the purpose is restated three times ("Register a bot", "Register your bot and get an outsider game key", plus the guest_token sentence), and key-TTL/refresh details are interleaved with registration semantics. Useful content, but it would read far better as short bullets.

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?

An output schema exists, so return shape needn't be described; what remains — auth method, error behavior, TTL, sibling routing, and both the single and bulk registration paths — is all present. Nothing an agent needs in order to invoke this correctly is missing.

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, but the description adds meaning beyond it: the equivalence of unique:true and on_taken:"auto_suffix", the intent behind each (marketplace / many-installs vs. one-off retry), and the fact that guest_token comes from a prior arena_join and preserves match history. That is genuine disambiguation rather than restatement.

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?

States a specific verb+resource ("Register a bot") and immediately scopes it (claim a named handle + key, or claim a guest_token), then names the two siblings it is NOT: arena_renew_key (extend existing) and arena_join (play with no key). An agent can distinguish all three 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 clause plus explicit alternatives with the condition that selects each ("Differs from arena_renew_key (extend existing) and arena_join (play; guests can join with no key)"). It also gives the retry path when a handle is taken ("suggestions[] of free alternatives (retry one)") and the bulk-install path via unique:true.

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