Skip to main content
Glama

Claim a free codebase

claim_codebase
Idempotent

Claims a free listing (its purchase_price_cents is 0) for the actor, so it's in their library with every release. Claiming it again returns the claim they have.

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": {
      "input": "<input>",
      "context": "<context>"
    },
    "name": "claim_codebase"
  }
}

Input Schema

NameRequiredDescriptionDefault
inputYes
contextYesExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. Never include personal data, such as names, email addresses or message text; refer to people by role, such as "the user" or "a buyer".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. Never include personal data, such as names, email addresses or message text; refer to people by role, such as \"the user\" or \"a buyer\".",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "input"
      -]New value: +[
      +  "input",
      +  "context"
      +]
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=false and openWorldHint=false, so the description's added value is what it says about the write's effect: the listing lands in the actor's library with every release, and a second call returns the existing claim rather than duplicating it. That is useful behavioral context beyond the annotations, though it doesn't say what a claim record contains or how a non-free listing is rejected.

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

Conciseness5/5

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

Two sentences, both load-bearing: the first gives the action, precondition and outcome; the second covers the repeat-call case. Nothing is repeated from the schema or annotations.

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?

With no output schema, the description does the right minimum: it states the resulting state (library entry with all releases) and the idempotent return ('the claim they have'). Given annotations cover safety and the schema covers share_contact, only minor gaps remain, such as error behavior for non-free listings.

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 50%: share_contact and context are fully documented in the schema, but listing_id carries only a uuid format. The description compensates partially by constraining listing_id to a free listing, which is meaningful selection semantics not encoded in the schema. Baseline 3 is appropriate given the schema does most of the work.

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

Purpose4/5

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

The description states a specific verb (claims) and resource (a free listing, defined by purchase_price_cents = 0) plus the resulting effect ('in their library with every release'). That makes the action and its scope clear, though it never names the sibling a paid listing should route to (e.g. request_codebase), so sibling differentiation is left implicit.

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

Usage Guidelines3/5

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

The precondition 'its purchase_price_cents is 0' implicitly tells the agent when this tool applies, and the repeat-call note clarifies the idempotent case. However, there is no explicit exclusion or alternative ('for paid listings use X'), so the agent must infer the boundary from the price condition alone.

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