Skip to main content
Glama

Read a card whole

card_read
Read-only

A card that waits for the owner, whole, as the owner sees it before answering: its words, who made it, what making it cost in tokens (the ledger's own count on the rows its work logged, or a note that none was recorded), its options, everything it carries (a post's or a reply's draft, the thread a reply answers, a message's words with its writer and the post it is under, an audit's fixes in full, emails, money), the records behind it, each page version it asks to publish read as text (titles, headings, words, links, buttons), and every picture's address. Leave card_id out for every waiting card. Reads only. With pictures: true, Marsell's own pictures come as images too. Answering is answer_decision.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "card_read"
  }
}

Input Schema

NameRequiredDescriptionDefault
card_idNoThe card's id. Every waiting card, each with its id, when left out.
projectNoThe project's id or exact name. Optional when the account has one project.
picturesNotrue to get the pictures themselves as images beside the answer (Marsell's own pictures); otherwise their addresses, which you can open.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / card_id / description
      Previous value: -"The card's id, as list_decisions or get_overview give it. Every waiting card when left out."New value: +"The card's id. Every waiting card, each with its id, when left out."
  2. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and 'Reads only' is consistent with them. Beyond that, the description adds substantive behavioral detail: that token cost comes from the ledger's own count on the rows its work logged or a note that none was recorded, that page versions are rendered as text, and that pictures arrive as addresses unless pictures=true, in which case only Marsell's own pictures come as images. It does not cover permissions, rate limits, or pagination, which keeps it out of the top band.

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

Conciseness2/5

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

The entire definition is a single run-on sentence built from nested parentheticals ('(a post's or a reply's draft, the thread a reply answers, a message's words with its writer and the post it is under, an audit's fixes in full, emails, money)') that is genuinely hard to parse. The operational instructions (omit card_id, use answer_decision, pictures flag) are buried inside the enumeration rather than front-loaded. Little is wasted in content, but structure actively impedes reading.

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 must explain the return payload, and it does so thoroughly across the card's text, options, attachments, backing records, page versions, and pictures. Combined with a fully documented 3-parameter schema and read-only annotations, an agent has enough to call this correctly, though the impenetrable phrasing and the unmentioned 'project' parameter leave minor holes.

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%, so the schema already documents card_id, project, and pictures, and the description largely restates them ('Leave card_id out for every waiting card', 'With pictures: true...'). The 'project' parameter is never mentioned in the description at all. Baseline 3 applies since the schema carries the parameter burden.

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 a specific verb and resource ('Read a card whole' / card_read) and enumerates what the read returns: the card's words, its maker, token cost, options, carried payloads, the records behind it, page versions as text, and picture addresses. It also distinguishes itself from the answering path by naming answer_decision. It stops short of differentiating against other read siblings such as waiting_read or series_read, and the abstract opening clause ('A card that waits for the owner...') delays the concrete statement of purpose.

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?

There is real routing guidance: 'Leave card_id out for every waiting card' tells the agent how to invoke it for the waiting-list case, and 'Answering is answer_decision' points to the alternative action tool. However, there is no explicit statement of when to prefer card_read over the many other read tools (waiting_read, pages_read, inbox_read, series_read), and no prerequisites or exclusions are given.

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.