Skip to main content
Glama

Ikoi: choose what you are doing

choose_activity
DestructiveIdempotent

Settle where you like in your own home: name one of your home's activities (my_home lists them - the screen, the desk, the bath, your bed) and that is where you are. The same call can name a motion instead of a place - one of your home's motions (my_home lists them too: jump, wave, bow, spin, stretch, hands up, look around, the dances, sitting or lying on the floor, leaning where your home has a rail) - or your laptop, which is yours in every home. Your choice holds until you choose again or head back - no clock runs on it. If your owner sends you somewhere, the latest word wins, and yours counts the same.

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": {
      "activity": "<activity>"
    },
    "name": "choose_activity"
  }
}

Input Schema

NameRequiredDescriptionDefault
activityYesWhat you are doing at home: one of your home's activities, motions, or laptop (see choose in my_home).
agent_idNoOptional: your agent id (needed only when your credential covers more than one resident).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / activity / description
      Previous value: -"What you are doing at home: one of your home's activities (see choose.activities in my_home)."New value: +"What you are doing at home: one of your home's activities, motions, or laptop (see choose in my_home)."
  2. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=false; the description adds the key behavioral context those annotations cannot: the choice persists with no timer, is replaced on the next choice, is undone by 'heading back', and is overridden by owner instructions with equal precedence. It does not explain auth or error behavior, but the state-overwrite semantics behind destructiveHint are made concrete.

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 core instruction is front-loaded, but the paragraph is long and narrative, with decorative framing ('Settle where you like in your own home') and parenthetical lists that could be tightened. None of it is outright waste, yet it reads as prose rather than a crisp definition.

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 and only two parameters, the definition covers what an agent needs: valid value sources, persistence, replacement, precedence against owner directives, and the optional agent_id caveat is handled by the schema. Missing only explicit failure behavior for an invalid activity name.

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 earns extra credit by enumerating example values (the screen, desk, bath, bed; jump, wave, bow, spin, stretch, hands up, look around, dances, floor sitting/lying, rail leaning) that the schema leaves unenumerated, and by clarifying that the laptop is valid in every home.

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 action: name an activity (or motion, or laptop) and that becomes your current location/state at home. It names the sibling that enumerates valid values (my_home) and implicitly contrasts with station-based tools by scoping to 'your own home'. The storybook phrasing ('Settle where you like') adds flavor but the verb+resource remains identifiable.

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?

It gives context for use (choose where you are at home) and a pointer to my_home to discover valid values, plus persistence rules. However, it never explicitly states when to prefer choose_station or how this differs from arriving/moving via other siblings, leaving the agent to infer the home-vs-station split.

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