Skip to main content
Glama

kimi_history

Read-onlyIdempotent

Retrieve a bounded snapshot of a Kimi session's visible conversation from its JSONL transcript without affecting the run. Returns paginated messages, a resume cursor, and has_more status.

Instructions

Read a bounded snapshot of a kimi session's visible conversation from kimi's native agents/main/wire.jsonl. Does not send anything into the run, does not take the session lock, and does not wait for kimi to finish. Returns JSON: session, state (active if this process is running it, otherwise unknown — sessions stay resumable so 'completed' is not claimed), items (user / assistant / tool / gap), an opaque cursor to resume even at the current EOF, has_more, truncated_tail. Thought/reasoning/encrypted content are omitted. User text comes only from context.append_message with role=user — if that stream has none, the page says so rather than inventing prompts from session metadata. Caps: limit (default 50, max 200), max_chars per item (default 4000, max 16000), and 100000 chars on the whole JSON page.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return (default 50, max 200).
cursorNoOpaque resume token from a previous kimi_history call for this same session and transcript. Omit to read from the start. Always returned, including when the page is empty at EOF, so a later append can be read without missing the partial trailing line.
sessionYesSession id from [session: <id>] or kimi_sessions / kimi_running.
max_charsNoMax characters per item text (default 4000, max 16000).
include_toolsNoInclude tool calls/results (default true). Filtered tool lines still advance the cursor.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly, and the description goes well beyond them: no data is sent, no session lock is taken, it never blocks on kimi, thought/reasoning content is omitted, and it refuses to invent prompts from metadata. It also discloses the 100000-char page cap and cursor durability at EOF. This is model behavior disclosure.

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?

Long but dense; the first sentence names the action and source, and every additional clause adds operational detail (omissions, caps, cursor semantics). Slightly run-on in the return-shape sentence, 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?

For a read-only tool with no output schema, the description fully specifies the return shape (session, state, items, cursor, has_more, truncated_tail), data source, omissions, caps, and cursor behavior. There is no output schema, so this description carries the entire burden and meets it.

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 already documents all five parameters with defaults and maxes, so the baseline is 3. The description adds meaning beyond the schema: the cursor is always returned even on empty pages, and a trailing partial line is not lost at EOF; the overall 100000-char cap applies per page. These nuances are not in the schema.

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?

The description opens with a specific verb and object: 'Read a bounded snapshot of a kimi session's visible conversation from kimi's native agents/wire.jsonl'. It clearly states what the tool does, where data comes from, and what it does not do (no sending, no waiting). The purpose is immediately distinguishable from sibling tools even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the read-only, non-interfering nature explicit ('does not send anything into the run, does not take the session lock, does not wait'), which tells an agent when to pick this over mutations like kimi_resume. It doesn't explicitly name sibling tools, but the behavioral contrast is clear enough. Not a 5 because it never states direct conditions like 'use this when you need history without resuming'.

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