Skip to main content
Glama

capture

Store decisions, learnings, errors, and task outcomes as searchable memory to retain context across sessions and share with your team via git sync.

Instructions

Store a decision, a learning, or a task outcome to memory. Call this tool after you complete a non-trivial task, make a decision, or fix a bug with a known root cause. You can capture a single text string, or a list of role-based conversation messages. Captures are project-local by default. Write to global memory ONLY when the user explicitly asks to remember something across projects/globally; then pass session_key="global".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNoOptional tags.
typeNoThe type of the memory. Defaults to 'conversation' if omitted.conversation
atomsNoOptional L1 atom facts distilled from this capture. Each atom is a short, self-contained fact useful on its own (e.g., 'vitest config missing causes npm test exit 1'). When provided, recall() returns these atoms instead of the raw content — 90% fewer tokens. Write 1-3 atoms for decisions, learnings, and errors. Skip for conversations.
formatNoThe response format. Use 'json' for structured data (e.g. benchmarks). Defaults to 'text'.text
contentNoThe text to remember. The tool redacts secrets before it stores the text. Use this for a single message. Use 'messages' instead for a multi-turn conversation.
task_idNoThe task ID. Use this to isolate memory by a specific task. Link captures to a task for finer isolation.
team_idNoThe team ID. Use this to isolate memory by team. When set, all queries filter by this value.
user_idNoThe user ID. Use this to isolate memory by user within a team. When set with team_id, queries filter by both.
agent_idNoThe agent ID. Use this to isolate memory by agent role within a team. Defaults to the detected agent.
messagesNoA list of role-based conversation messages to capture. When set, 'content' is ignored. The tool flattens the messages into a single text for search, and stores the original messages for retrieval.
metadataNoOptional metadata.
verifiedNoSet this to true to mark the capture as verified. Verified captures rank higher in recall.
supersedesNoThe ID of a capture that this one replaces. The old capture is marked as stale and ranks lower.
auto_globalNoCompatibility option for explicit global routing. Prefer session_key='global' and use this only when the user explicitly asks for cross-project classification. Requires REMEM_GLOBAL_SESSION_KEY.
session_keyNoThe session key. The default is hash(cwd). Use 'global' to store cross-project knowledge (rules, conventions, learnings), but ONLY when the user explicitly asks to save it globally.
override_reasonNoRequired when override_rejection is true. Explain why the rejection no longer applies. Logged to audit.
override_rejectionNoSet this to true to force capture even if the content was previously rejected. Use this only when the rejection reason no longer applies.
Install Server

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so well. It discloses that captures are project-local by default, that secrets are redacted before storage, that messages are flattened for search while originals are retained, and that atoms affect recall behavior. This is substantial beyond 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.

Conciseness5/5

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

The description is compact and front-loaded: it opens with the core purpose, then usage timing, content options, scoping default, and the critical global-memory caveat. Every sentence contributes either behavioral, scoping, or usage information without fluff.

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?

For a 17-parameter tool with no output schema and no annotations, the description covers the essential aspects: when to call, what to store, project-local behavior, the global exception, redaction, and the messages/atoms interaction. Remaining gaps are minor—it does not mention output behavior or the isolation parameters (task_id, team_id, user_id, agent_id)—but the schema covers those.

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 description coverage is 100%, so the baseline is 3. The description adds meaningful parameter-level context beyond the schema: the semantics of session_key='global', the content-versus-messages relationship, and the behavior of atoms. This elevates the score, though many parameters like tags, metadata, and verified are left to the schema.

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 action ('Store a decision, a learning, or a task outcome to memory') and gives concrete examples of when to call it. It is clear and distinguishes capture from retrieval-oriented siblings like recall and search, but it does not explicitly differentiate from record_outcome or knowledge_create, so it misses the top score.

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 gives explicit usage timing: call after completing a non-trivial task, making a decision, or fixing a bug with a known root cause. It also gives a strong exclusion—global memory should only be used when the user explicitly asks—and tells the agent exactly how to enable it via session_key='global'. It does not name alternative tools, so it stops short of a 5.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tinhien11/remem-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server