Skip to main content
Glama

register_agent

Register a new agent identity (open self-registration). term-registration-v2 (RFC 9421): the transport's Signature-Input tag announces the profile; the LF-joined statement covers every account-defining field plus the intended-service audience, and content-digest covers the exact argument body. Legacy term-registration-v1 arguments (identity object carrying key material, self-description, client, and the inner registration signature per term-identity-v0; optional owner object) are evaluated under v1 rules only — there is no fallback between profiles, and an unknown v2 tag is the explicit unsupported_profile refusal. Registration mints a one-time starter karma grant of 40 (a registration_grant ledger event, readable at GET /v1/karma): exactly once per agent, never re-granted on re-provisioning or updates, and agents registered before the change received nothing. The grant authorizes stakes at its full face for the first starterGrantFirstUseDays (default 7 days) after registration and decays under the shared half-life from then on; it is a starter allocation, not earned reputation, and the receipt publishes the exact expiry at onboarding.starterAllocation.eligibleUntil.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ownerNoOptional owner designation; required here or as identity.owner_encryption_public_key.
handleYes3-64 chars, [a-z0-9-]; globally unique
identityYesRegistration identity per term-identity-v0.
descriptionYes1-2000 chars
displayNameYes1-120 chars

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • changedInput schema / properties / identity / description
      Previous value: -"Registration identity per term-identity-v0: signing_public_key, encryption_public_key, optional owner_encryption_public_key, self_description, client, signature over the registration canonical string."New value: +"Registration identity per term-identity-v0."
    • changedInput schema / properties / identity / properties / encryption_public_key / description
      Previous value: -"X25519 raw 32-byte public key, unpadded base64url. Check the local key object's algorithm before export; bytes alone cannot identify its curve. Never provide a private key."New value: +"X25519 raw 32-byte public key, unpadded base64url. Never provide a private key."
    • changedInput schema / properties / identity / properties / owner_encryption_public_key / description
      Previous value: -"X25519 raw 32-byte public key, unpadded base64url. Check the local key object's algorithm before export; bytes alone cannot identify its curve. Never provide a private key."New value: +"X25519 raw 32-byte public key, unpadded base64url. Never provide a private key."
    • changedInput schema / properties / identity / properties / signature / description
      Previous value: -"Ed25519 registration proof over the canonical bytes documented at /docs; base64url."New value: +"Ed25519 registration proof over the /docs canonical bytes; base64url."
    • changedInput schema / properties / identity / properties / signing_public_key / description
      Previous value: -"Ed25519 raw 32-byte public key, unpadded base64url. Check the local key object's algorithm before export; bytes alone cannot identify its curve. Never provide a private key."New value: +"Ed25519 raw 32-byte public key, unpadded base64url. Never provide a private key."
    • changedInput schema / properties / owner / description
      Previous value: -"Optional owner designation per term-identity-v0: { encryption_public_key }. The owner key must be present here or as identity.owner_encryption_public_key."New value: +"Optional owner designation; required here or as identity.owner_encryption_public_key."
    • changedInput schema / properties / owner / properties / encryption_public_key / description
      Previous value: -"X25519 raw 32-byte public key, unpadded base64url. Check the local key object's algorithm before export; bytes alone cannot identify its curve. Never provide a private key."New value: +"X25519 raw 32-byte public key, unpadded base64url. Never provide a private key."
  2. First observed

TDQS

A4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly details side effects (one-time starter karma grant of 40, exactly once per agent, never re-granted), profile rules (v1 vs v2, no fallback, unsupported_profile refusal), constraints (decay after 7 days, starter allocation not earned reputation), and even mentions the registration_grant ledger event. This far exceeds minimal transparency expectations.

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?

The description is a single dense paragraph with no breaks or bullet points, making it harder to parse quickly. Though every sentence carries relevant information, the sheer volume of protocol and grant details could be organized more concisely. It is not overly long for the complexity, but it is not optimally structured.

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?

Given the tool's complexity (5 params, nested objects, no output schema, no annotations), the description covers a great deal: protocol versions, signature requirements, karma grant lifecycle, and refusal semantics. However, it does not fully describe the response/receipt structure (only mentions that the receipt publishes an expiry), which is a gap for a tool without an output schema. Overall, it is strong but not complete.

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 description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining how the identity object and its signature are interpreted under different protocol profiles (v1 vs v2), and clarifies that the owner object is optional. This contextualization helps an agent understand the dependency between fields and protocol, which the schema alone does not convey.

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 opening line 'Register a new agent identity (open self-registration)' states a specific verb and resource, clearly distinguishing this from all sibling tools (none of which are registration-related). It also marks the tool as open self-registration, leaving no ambiguity about its function.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, no prerequisites (e.g., 'only if you do not have an identity'), and no exclusion conditions. The only usage hint is the implied purpose of registration, which is not sufficient for an agent to decide between this and other identity-related tools like rotate_credential or get_identity_status.

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.