Skip to main content
Glama

get_thread_knowledge

Read-only

Retrieve a short distilled recap of a conversation thread—summary, decisions, gotchas, and open TODOs—to recall key context before fetching the full thread.

Instructions

Short distilled recap of one thread: summary, decisions, gotchas and open TODOs. Much cheaper than get_thread, so try it first. Summary, decisions and gotchas exist only for distilled threads.

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": {
      "thread_id": "<thread_id>"
    },
    "name": "get_thread_knowledge"
  }
}

Input Schema

NameRequiredDescriptionDefault
thread_idYesThread id from a search or recent result.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.11.4
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "anyOf": [
      +    {
      +      "properties": {
      +        "canDistill": {
      +          "type": "boolean"
      +        },
      +        "decisions": {
      +          "items": {
      +            "properties": {
      +              "decidedAt": {
      +                "type": "integer"
      +              },
      +              "id": {
      +                "type": "integer"
      +              },
      +              "pinned": {
      +                "type": "boolean"
      +              },
      +              "status": {
      +                "enum": [
      +                  "current",
      +                  "disputed",
      +                  "flagged",
      +                  "superseded"
      +                ],
      +                "type": "string"
      +              },
      +              "text": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "text",
      +              "pinned",
      +              "status",
      +              "decidedAt"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "error": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "extracted": {
      +          "type": "boolean"
      +        },
      +        "gotchas": {
      +          "items": {
      +            "properties": {
      +              "decidedAt": {
      +                "type": "integer"
      +              },
      +              "id": {
      +                "type": "integer"
      +              },
      +              "pinned": {
      +                "type": "boolean"
      +              },
      +              "status": {
      +                "enum": [
      +                  "current",
      +                  "disputed",
      +                  "flagged",
      +                  "superseded"
      +                ],
      +                "type": "string"
      +              },
      +              "text": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "text",
      +              "pinned",
      +              "status",
      +              "decidedAt"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "stale": {
      +          "type": "boolean"
      +        },
      +        "summary": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "todos": {
      +          "items": {
      +            "properties": {
      +              "decidedAt": {
      +                "type": "integer"
      +              },
      +              "id": {
      +                "type": "integer"
      +              },
      +              "pinned": {
      +                "type": "boolean"
      +              },
      +              "status": {
      +                "enum": [
      +                  "current",
      +                  "disputed",
      +                  "flagged",
      +                  "superseded"
      +                ],
      +                "type": "string"
      +              },
      +              "text": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "text",
      +              "pinned",
      +              "status",
      +              "decidedAt"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "summary",
      +        "decisions",
      +        "gotchas",
      +        "todos",
      +        "extracted",
      +        "stale",
      +        "error",
      +        "canDistill"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "properties": {
      +        "notice": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "notice"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "type": "object"
      +}
  2. Changed3 schema fields changedv0.11.3
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / thread_id / description
      Previous value: -"The thread id from a search/recent result."New value: +"Thread id from a search or recent result."
    • removedInput schema / title
      Removed value: -"ThreadKnowledgeArgs"
  3. Addedv0.6.0

TDQS

A4.3/5.0
Behavior4/5

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

With readOnlyHint=true and openWorldHint=false already covering the safety profile, the description adds real context: a relative cost signal versus get_thread and a data-availability constraint tied to distilled threads. It stops short of saying what actually happens for a non-distilled thread (error, empty fields, or a summary-only result), which is the one behavioral detail an agent would still want.

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 payload description, then the routing advice, then the caveat — good ordering and no wasted framing. The field list ('summary, decisions, gotchas') is essentially restated in the final sentence, a minor redundancy that keeps it out of the top band.

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?

An output schema exists and the tool is a one-parameter read, so the description does not need to explain return structure; it correctly spends its words on cost and availability instead. The only unresolved point is the concrete behavior on a non-distilled thread, which would complete an otherwise tight definition.

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?

The single parameter has 100% schema description coverage ('Thread id from a search or recent result'), so the schema already carries the semantics. The description adds no format, range, or provenance detail beyond that, making the baseline 3 appropriate.

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 ('short distilled recap of one thread') and enumerates the exact contents: summary, decisions, gotchas and open TODOs. It also explicitly distinguishes itself from the sibling get_thread by cost, 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?

Gives a direct routing rule — 'Much cheaper than get_thread, so try it first' — naming the alternative and the ordering that selects it. It adds a scoping condition ('Summary, decisions and gotchas exist only for distilled threads'), which tells the agent when this tool's payload will be thin and implies escalation to get_thread.

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