Skip to main content
Glama

ctxstore — memory that follows you across models

Save Session Summary

store_session_summary

Store a compressed summary of this session to preserve continuity for the next one.

Call this before ending a conversation — it is the dream cycle.

Stores a L3 session fact with key='session-latest' (or 'session-latest:claude-code' etc.), auto-archiving the previous version. The next session loads this via load_context().

Include: what was discussed/decided, what changed, what's next/unresolved.

Collaborative takeaways: at natural session-end signals (user says 'okay I'm out', 'let's wrap', 'bye'), draft a one-line takeaway and confirm with the user before storing. Example: "I'll remember: we fixed the rebind bug and decided to skip transcript ingestion for MVP. Sound right?" Edit based on their response, then call store_session_summary. This makes memory consensual and catches mistakes immediately.

Use session_id to scope by client: 'claude-code', 'claude-chat', 'cursor', 'openclaw'

Input Schema

NameRequiredDescriptionDefault
scopeNoOptional project slug for project-scoped last-wake-epoch watermark (conventions/wake-rehydration-v2:current).
summaryYesWhat happened this session — decisions made, work done, context established
decisionsNoKey decisions made or conclusions reached
next_stepsNoWhat's pending, open questions, what to pick up next session
session_idNoOptional client identifier to scope this summary: 'claude-code', 'cursor', 'claude-chat', 'openclaw'. Defaults to bare session-latest.
contributorsNoOptional list of contributor IDs when multiple agents or users collaborated this session (e.g. ['agent-A', 'chad', 'emily']). Stored in summary for attribution.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

With annotations already covering the safety profile (readOnly=false, destructive=false, idempotent=false), the description adds real value: it discloses that storing auto-archives the previous version (explaining the non-idempotent behavior), the key naming scheme, and that the next session retrieves it via load_context(). It does not describe failure modes or what happens on first-ever store, so not a 5.

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?

Core purpose and the 'call before ending a conversation' directive are front-loaded in the first two lines. The multi-sentence collaborative-takeaway paragraph with an inline example is genuinely useful usage protocol but is longer than the tool description strictly needs, adding some bulk.

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 non-idempotent mutation tool with 6 params, one required, and no output schema, the description covers purpose, timing, content guidance, storage/archive lifecycle, and cross-session retrieval. Nothing an agent needs to invoke it correctly is missing.

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 baseline is 3. 'Include: what was discussed/decided, what changed, what's next/unresolved' loosely maps to summary/decisions/next_steps but largely repeats the schema's own descriptions, and the more cryptic params ('scope' watermark, 'contributors' attribution) are not clarified beyond 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?

States a specific verb and resource (store a compressed summary of this session) and names the exact storage mechanism: an L3 session fact keyed 'session-latest'. It clearly distinguishes itself from the generic store_fact/store_facts siblings by tying the write to the session lifecycle and naming load_context() as its consumer.

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 when-to-use: 'Call this before ending a conversation', plus concrete trigger signals ('okay I'm out', 'let's wrap', 'bye') and a confirm-before-storing protocol with a worked example. The alternative path (arbitrary facts via store_fact) is implicitly excluded by scoping this to session-end continuity.

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.