Skip to main content
Glama

propose

Submit an option for decision in a MACP session by providing session ID, proposal ID, the option, and rationale.

Instructions

Put an option up for decision in a session.

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": {
      "session_id": "<session_id>",
      "proposal_id": "<proposal_id>",
      "option": "<option>"
    },
    "name": "propose"
  }
}

Input Schema

NameRequiredDescriptionDefault
optionYesThe option being proposed.
rationaleNoWhy this option.
session_idYesThe MACP session id (from start_session).
proposal_idYesShort identifier for the proposal, unique within the session.

Output Schema

NameRequiredDescriptionDefault
okYes
senderYes
duplicateYes
message_idYes
session_idYes
proposal_idYes
session_stateYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

C2.6/5.0
Behavior2/5

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

Annotations declare a non-read-only, open-world, non-destructive operation, and an output schema exists, so the description's burden is reduced but not eliminated. It adds nothing about whether proposing opens a decision round, whether proposal_id must be unique in practice (schema says it, but the failure behavior is undisclosed), or what state change occurs. A one-line paraphrase of the annotations' implied write is a real gap for a protocol step.

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?

A single short sentence with no filler and the core action front-loaded. It is concise to a fault: the size reflects under-specification rather than efficient information density.

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

Completeness2/5

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

The tool takes a required session_id and a uniquely scoped proposal_id, and the output schema covers the return value, yet the description never situates the call in the session lifecycle or says what the caller should expect the proposal to enable. For a multi-step protocol tool with six siblings, one sentence is not enough to call it correctly.

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 100%, and each of the four parameters carries its own description (including that session_id comes from start_session and proposal_id is unique within the session). Baseline 3 applies, since the description contributes no additional parameter semantics of its own.

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

Purpose3/5

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

The description names a verb-ish action ('put an option up for decision') and a scope ('in a session'), so the general intent is graspable. But it never says the tool creates/registers a proposal record under a proposal_id, and it does nothing to separate this from the decision-sequence siblings (evaluate, vote, commit). Purpose is vague rather than crisp.

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?

There is no guidance on when to call this versus evaluate, vote, or commit, and no stated prerequisites beyond the implicit session. The agent must infer that propose is the first step in the protocol from the sibling list alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.