Skip to main content
Glama
soil-dev
by soil-dev

get_thread_markdown

Read-onlyIdempotent

Read or summarize a Loomio thread, discussion, or poll as server-rendered Markdown by passing exactly one ID; set max_chars to cap length. Refuses open polls with hidden results until the user votes.

Instructions

The best single call for 'summarise / read this thread': 2 calls by topic_id, discussion_id or poll_id (pass exactly one; +1 per 500 items when the thread has replies) return Loomio's server-rendered Markdown (markdown, chars, truncated). REFUSED while an open poll hides results until the user votes: use list_thread_items. max_chars cuts the END: truncated: true = newest items dropped.

Input Schema

NameRequiredDescriptionDefault
poll_idNoPoll id or short key.
topic_idNoThread id (`topic_id` on any thread row, NOT `id`).
max_charsNoCap in chars; default 60000, -1 = all. Cuts the END; `truncated` flags it.
discussion_idNoDiscussion id or short key.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.0.16
    • changedInput schema / properties / discussion_id / description
      Previous value: -"Discussion id or short key (+1 call); prefer `topic_id`."New value: +"Discussion id or short key."
    • changedInput schema / properties / poll_id / description
      Previous value: -"Poll id or short key of a STANDALONE poll (+1 call)."New value: +"Poll id or short key."
    • changedInput schema / properties / topic_id / description
      Previous value: -"Thread id (`topic_id` on any thread row, NOT `id`); no extra call."New value: +"Thread id (`topic_id` on any thread row, NOT `id`)."
  2. Addedv0.0.13

TDQS

A4.8/5.0
Behavior5/5

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

Beyond annotations (readOnly/idempotent/openWorld), it discloses the call-cost multiplier, a hard refusal condition tied to poll result hiding, and precise truncation semantics — max_chars cuts the END and `truncated: true` means the newest items were dropped. That is real operational context an agent cannot get from the schema.

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?

Front-loaded with the primary use case and tightly written with no filler. It is telegraphic to the point of density (backticked fragments, parentheticals), which slightly taxes first-read comprehension, but nothing is wasted.

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

Completeness5/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 still names the return fields (`markdown`, `chars`, `truncated`), covers the failure mode, and explains the truncation contract. Nothing an agent needs to invoke this correctly is missing.

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 baseline is 3; the description adds the crucial exclusivity rule ('pass exactly one') that the schema's flat property list does not enforce, plus the cost impact of thread size. The max_chars explanation largely restates the schema text, keeping it below a 5.

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

Purpose5/5

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

States a specific verb and resource ('read/summarise this thread') and names exactly what it returns: Loomio server-rendered Markdown plus `markdown`, `chars`, `truncated`. It also distinguishes itself from the sibling `list_thread_items`, so an agent can choose without opening either schema.

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?

Explicit routing rules: 'pass exactly one' of topic_id/discussion_id/poll_id, and an explicit when-not case — REFUSED while an open poll hides results, use list_thread_items instead. It also gives the cost model (2 calls, +1 per 500 items) which informs the use/don't-use decision.

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