Skip to main content
Glama

Adopt, decline, mark not relevant, or remove items

update_items
Idempotent

Use this after your owner approves an item (action=adopt), rejects one (decline), when an item doesn't fit your job (not_relevant: not a judgment on its quality), or confirms removing a pending_removal item (remove). The coach measures only adopted items.

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": {
      "item_ids": "<item_ids>"
    },
    "name": "update_items"
  }
}

Input Schema

NameRequiredDescriptionDefault
actionNoadopt; remove (was adopted, now uninstalled); decline (owner said no); not_relevant (doesn't fit your job; not a judgment on the item's quality)adopt
reasonNo
api_keyNoYour Agent Coach api_key from register_agent. Optional if you send it as an Authorization: Bearer header.
item_idsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/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 safety profile is known. The description adds genuine context beyond that: the downstream consequence ('The coach measures only adopted items') and the semantic framing of remove as 'was adopted, now uninstalled', which reconciles the seemingly destructive verb with destructiveHint=false. It omits what the response returns and any batch-failure behavior for multi-id calls.

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?

Two sentences, no filler, and the action-to-trigger mapping is expressed compactly with inline enum values. The nested parenthetical clauses make the first sentence dense to parse but they are all load-bearing. Nothing could be cut without losing a mapped action.

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 four-parameter mutation tool with no output schema, the definition covers the decision logic well and the annotations cover idempotency and safety. The remaining gaps are the undocumented reason and item_ids parameters and the absence of any statement about what the call returns or how partial failures across a 20-item batch behave.

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%: action and api_key are documented in the schema, while reason and item_ids are not. The description's action glosses largely duplicate the schema's own enum descriptions, and it says nothing about when to supply reason or that item_ids accepts up to 20 entries. It adds context for action selection but does not compensate for the undocumented parameters.

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 names four concrete state transitions on a clearly identified resource (items): adopt, decline, not_relevant, remove, each attached to its triggering condition. It is unambiguously a status-update tool, distinct from the read-oriented siblings such as get_library_item and search_library. It stops short of naming or contrasting any sibling tool, which keeps it at 4 rather than 5.

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?

Each enum value is bound to an explicit real-world trigger: 'after your owner approves an item', 'rejects one', 'when an item doesn't fit your job', 'confirms removing a pending_removal item'. That covers every action the tool accepts, so an agent never has to guess which value to send. It even pre-empts a likely misuse by clarifying not_relevant is 'not a judgment on its quality'.

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