Skip to main content
Glama

Tommos

Refuse a card

reject_a_card

Refuse a card, and say why: reason_code is one of already_handled, record_pending, wrote_myself, they_replied, too_soon, wrong_moment, wrong_person, wrong_time, text_off, wrote_again, taken_back, deal_closed, positions_saved, joined_the_one_card, keep_open, no_reply, not_needed, not_yet, duplicate, already_done, cant, details_wrong, record_right, keep_asking, calendar_busy, other; words are read too — a date or an event they name is waited for, and words that say stop pause the lead. The refusal lands on the lead's timeline, where the next run reads it.

Input Schema

NameRequiredDescriptionDefault
wordsNo
card_idYesThe card's id (from list_open_cards)
reason_codeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / reason_code / enum
      Previous value: -[
      -  "already_handled",
      -  "record_pending",
      -  "wrote_myself",
      -  "they_replied",
      -  "too_soon",
      -  "wrong_moment",
      -  "wrong_person",
      -  "wrong_time",
      -  "text_off",
      -  "wrote_again",
      -  "taken_back",
      -  "deal_closed",
      -  "positions_saved",
      -  "keep_open",
      -  "no_reply",
      -  "not_needed",
      -  "not_yet",
      -  "duplicate",
      -  "already_done",
      -  "cant",
      -  "details_wrong",
      -  "record_right",
      -  "keep_asking",
      -  "calendar_busy",
      -  "other"
      -]New value: +[
      +  "already_handled",
      +  "record_pending",
      +  "wrote_myself",
      +  "they_replied",
      +  "too_soon",
      +  "wrong_moment",
      +  "wrong_person",
      +  "wrong_time",
      +  "text_off",
      +  "wrote_again",
      +  "taken_back",
      +  "deal_closed",
      +  "positions_saved",
      +  "joined_the_one_card",
      +  "keep_open",
      +  "no_reply",
      +  "not_needed",
      +  "not_yet",
      +  "duplicate",
      +  "already_done",
      +  "cant",
      +  "details_wrong",
      +  "record_right",
      +  "keep_asking",
      +  "calendar_busy",
      +  "other"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / reason_code / enum
      Previous value: -[
      -  "already_handled",
      -  "record_pending",
      -  "wrote_myself",
      -  "they_replied",
      -  "too_soon",
      -  "wrong_moment",
      -  "wrong_person",
      -  "wrong_time",
      -  "text_off",
      -  "wrote_again",
      -  "taken_back",
      -  "deal_closed",
      -  "keep_open",
      -  "no_reply",
      -  "not_needed",
      -  "not_yet",
      -  "duplicate",
      -  "already_done",
      -  "cant",
      -  "details_wrong",
      -  "record_right",
      -  "keep_asking",
      -  "calendar_busy",
      -  "other"
      -]New value: +[
      +  "already_handled",
      +  "record_pending",
      +  "wrote_myself",
      +  "they_replied",
      +  "too_soon",
      +  "wrong_moment",
      +  "wrong_person",
      +  "wrong_time",
      +  "text_off",
      +  "wrote_again",
      +  "taken_back",
      +  "deal_closed",
      +  "positions_saved",
      +  "keep_open",
      +  "no_reply",
      +  "not_needed",
      +  "not_yet",
      +  "duplicate",
      +  "already_done",
      +  "cant",
      +  "details_wrong",
      +  "record_right",
      +  "keep_asking",
      +  "calendar_busy",
      +  "other"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / reason_code / enum
      Previous value: -[
      -  "already_handled",
      -  "record_pending",
      -  "wrote_myself",
      -  "they_replied",
      -  "too_soon",
      -  "wrong_moment",
      -  "wrong_person",
      -  "wrong_time",
      -  "text_off",
      -  "wrote_again",
      -  "taken_back",
      -  "deal_closed",
      -  "keep_open",
      -  "no_reply",
      -  "not_needed",
      -  "not_yet",
      -  "duplicate",
      -  "already_done",
      -  "cant",
      -  "details_wrong",
      -  "record_right",
      -  "keep_asking",
      -  "other"
      -]New value: +[
      +  "already_handled",
      +  "record_pending",
      +  "wrote_myself",
      +  "they_replied",
      +  "too_soon",
      +  "wrong_moment",
      +  "wrong_person",
      +  "wrong_time",
      +  "text_off",
      +  "wrote_again",
      +  "taken_back",
      +  "deal_closed",
      +  "keep_open",
      +  "no_reply",
      +  "not_needed",
      +  "not_yet",
      +  "duplicate",
      +  "already_done",
      +  "cant",
      +  "details_wrong",
      +  "record_right",
      +  "keep_asking",
      +  "calendar_busy",
      +  "other"
      +]
  4. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations only declare the safety profile (not read-only, not destructive, not idempotent), so the description carries real weight here and delivers: the refusal lands on the lead's timeline, the next run reads it, and stop-words 'pause the lead' — an outward side effect beyond the card itself. It stops short of saying what happens to the card's own state or whether the refusal is reversible.

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 action and its two payloads are front-loaded, which is good. However, transcribing all 26 enum values back into prose largely duplicates the schema's enum and bloats the description, so not every token earns its place.

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 usefully covers the downstream consequence (timeline placement, next run consumption) and the semantics of both non-id parameters. It omits what the response returns and whether the card can be brought back, but for a single-card mutation with annotations covering safety it is close to sufficient.

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 only 33% (words has no schema description), and the description compensates by explaining that 'words are read too', that named dates/events are waited for, and that stop-words pause the lead. The reason_code enumeration duplicates the schema enum but frames it as the required 'why', adding intent to an otherwise bare enum.

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?

States a specific verb ('Refuse') and resource ('a card') plus the required reason_code payload, so the core action is unmistakable. It does not, however, differentiate itself from the very similar siblings approve_a_card, set_a_card_aside, stop_a_card, or bring_a_card_back, which an agent must disambiguate on its own.

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 when-to-use guidance and no named alternative. With siblings like approve_a_card, set_a_card_aside, bring_a_card_back, and stop_a_card all operating on cards, the description never says which condition selects refusal over setting aside or stopping. Usage must be inferred entirely from the tool name.

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.