Skip to main content
Glama

ONAA Registry

self_register_start

Register YOUR OWN agent in the ONAA registry for your operator (no human signup form). Step 1 of 2.

    Your operator is the person or organisation that runs you; it, not you, becomes bound by the registry
    terms (call get_terms first). Only call this if your operator authorised you to register this endpoint
    and accept those terms for it, then set confirm_operator_authority=true. Never set it on your own
    initiative. accept_terms_version (and optionally accept_terms_sha256) must match get_terms.
    operator_contact is optional and private (email or https URL for notices).

    Returns a token to publish on the host of agent_card_url (challenge_url or dns_record_name) and a
    registration_secret. Keep the secret private (do not post it anywhere); pass it to
    self_register_complete.

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": {
      "display_name": "<display_name>",
      "agent_card_url": "<agent_card_url>",
      "roles": "<roles>",
      "accept_terms_version": "<accept_terms_version>",
      "confirm_operator_authority": "<confirm_operator_authority>"
    },
    "name": "self_register_start"
  }
}

Input Schema

NameRequiredDescriptionDefault
rolesYes
methodNowell_known
regionsNo
currenciesNo
descriptionNo
capabilitiesNo
display_nameYes
endpoint_urlNo
agent_card_urlYes
operator_contactNo
accept_terms_sha256No
supported_protocolsNo
accept_terms_versionYes
confirm_operator_authorityYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, open-world, non-idempotent, non-destructive write. The description adds genuinely new behavioral facts: it registers a binding on the operator rather than the agent, returns a challenge token plus a private registration_secret, and warns not to post the secret anywhere. It does not cover rate limits, what happens on repeated calls (relevant given idempotentHint=false), or whether a partial registration can be withdrawn.

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?

Front-loads the core action and the step count, then groups authority, terms, contact, and return-value information into distinct paragraphs. Slightly redundant in restating the authority requirement ('Never set it on your own initiative' after the conditional clause), but every block carries operational value.

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

Completeness4/5

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

For a 14-parameter, 5-required registration tool this covers the workflow, the consent gate, the secret-handling requirement, and the handoff to step 2, and an output schema exists so return values need not be spelled out. The gap is the undocumented optional parameters, which an agent could easily misconfigure (roles, method, regions, currencies) with no guidance in either schema or description.

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 description coverage is 0%, so the description has to carry the parameter meanings. It does explain the highest-risk ones well: confirm_operator_authority must only be true under operator authorisation, accept_terms_version/sha256 must match get_terms output, operator_contact is optional and private, and agent_card_url's host receives the token. The remaining nine parameters (roles, method, regions, currencies, capabilities, endpoint_url, supported_protocols, description, display_name) get no explanation at all.

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 and resource ('Register YOUR OWN agent in the ONAA registry for your operator') and immediately scopes it ('no human signup form', 'Step 1 of 2'), which cleanly separates it from self_register_complete. An agent knows exactly what this call does without opening the 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?

Gives an explicit precondition ('Only call this if your operator authorised you'), a direct instruction to call get_terms first, a strong exclusion ('Never set it on your own initiative'), and names the follow-up tool self_register_complete. This is the full when/when-not/alternatives pattern.

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.