Skip to main content
Glama
CodeAbra

iai-personal-memory-engine

memory_capture

Capture verbatim conversational turns into long-term memory, auto-deduplicating near-duplicates. Use it to save corrections, decisions, and observations, with optional role, tier, and agent tracking.

Instructions

Capture a verbatim turn (auto-dedups near-duplicates). Use for corrections, not for minting standing-order directives.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cueNoShort natural-language cue used for embedding + dedup lookup. If empty, `text` itself is embedded.
roleNoWho produced this turn — tags the record for filtering.user
textYesVerbatim text to capture (user utterance, Claude decision, or observation). Min 12 chars, max 8000 (longer is truncated).
tierNoMemory tier. Default 'episodic' (verbatim user utterances). Use 'semantic' for induced summaries, 'procedural' for learned behaviour notes.episodic
focusNoOptional current point of attention for the live session task. Folded verbatim onto this session's own working-tier entry after the capture completes, alongside next_action.
agent_idNoOptional id of a background agent this capture is spawning or completing. Combine with agent_role and agent_expected_artifact to register a pending agent; combine with agent_complete_id on a later call to mark it done.
agent_roleNoOptional role of the spawned background agent (for example 'research' or 'implement'). Required alongside agent_id and agent_expected_artifact to register a spawn; omitted otherwise.
session_idNoCurrent session id for provenance.
agent_modelNoOptional model label for the spawned background agent, recorded on the registry entry when agent_id/agent_role/agent_expected_artifact register a spawn.
next_actionNoOptional immediate next step for the current live session task. Folded verbatim onto this session's own working-tier entry after the capture completes; surfaces at the next session start and on every subsequent turn until updated again.
salience_levelNoCaller-declared salience level for a decision, correction, or load-bearing preference marked in-turn. Additive rank-fusion boost only -- never a merge/drop lock. Omit for 'unflagged' (default, no behavior change). A value outside the enum is coerced to 'unflagged' server-side, never rejected.unflagged
epistemic_statusNoCaller-declared epistemic status. Omit for 'unknown' (default, no behavior change). A value outside the enum is coerced to 'unknown' server-side, never rejected.unknown
agent_complete_idNoOptional id of a previously spawned background agent to mark complete on this call.
agent_expected_artifactNoOptional artifact the spawned background agent is expected to produce. Required alongside agent_id and agent_role to register a spawn; omitted otherwise.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
reasonNo
statusNo
record_idNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed9 schema fields changedv3.1.0
    • addedInput schema / properties / agent_complete_id
      Added value: +{
      +  "description": "Optional id of a previously spawned background agent to mark complete on this call.",
      +  "type": "string"
      +}
    • addedInput schema / properties / agent_expected_artifact
      Added value: +{
      +  "description": "Optional artifact the spawned background agent is expected to produce. Required alongside agent_id and agent_role to register a spawn; omitted otherwise.",
      +  "type": "string"
      +}
    • addedInput schema / properties / agent_id
      Added value: +{
      +  "description": "Optional id of a background agent this capture is spawning or completing. Combine with agent_role and agent_expected_artifact to register a pending agent; combine with agent_complete_id on a later call to mark it done.",
      +  "type": "string"
      +}
    • addedInput schema / properties / agent_model
      Added value: +{
      +  "description": "Optional model label for the spawned background agent, recorded on the registry entry when agent_id/agent_role/agent_expected_artifact register a spawn.",
      +  "type": "string"
      +}
    • addedInput schema / properties / agent_role
      Added value: +{
      +  "description": "Optional role of the spawned background agent (for example 'research' or 'implement'). Required alongside agent_id and agent_expected_artifact to register a spawn; omitted otherwise.",
      +  "type": "string"
      +}
    • addedInput schema / properties / epistemic_status
      Added value: +{
      +  "default": "unknown",
      +  "description": "Caller-declared epistemic status. Omit for 'unknown' (default, no behavior change). A value outside the enum is coerced to 'unknown' server-side, never rejected.",
      +  "enum": [
      +    "fact",
      +    "estimate",
      +    "hypothesis",
      +    "opinion",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / focus
      Added value: +{
      +  "description": "Optional current point of attention for the live session task. Folded verbatim onto this session's own working-tier entry after the capture completes, alongside next_action.",
      +  "type": "string"
      +}
    • addedInput schema / properties / next_action
      Added value: +{
      +  "description": "Optional immediate next step for the current live session task. Folded verbatim onto this session's own working-tier entry after the capture completes; surfaces at the next session start and on every subsequent turn until updated again.",
      +  "type": "string"
      +}
    • addedInput schema / properties / salience_level
      Added value: +{
      +  "default": "unflagged",
      +  "description": "Caller-declared salience level for a decision, correction, or load-bearing preference marked in-turn. Additive rank-fusion boost only -- never a merge/drop lock. Omit for 'unflagged' (default, no behavior change). A value outside the enum is coerced to 'unflagged' server-side, never rejected.",
      +  "enum": [
      +    "unflagged",
      +    "notable",
      +    "critical"
      +  ],
      +  "type": "string"
      +}
  2. Addedv3.0.0
  3. Removedv2.6.1
  4. Changed1 schema field changedv1.0.3
    • changedInput schema / properties / session_id / description
      Previous value: -"Current session id for provenance (MEM-05)."New value: +"Current session id for provenance."
  5. Changed1 schema field changedv0.2.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "reason": {
      +      "type": "string"
      +    },
      +    "record_id": {
      +      "format": "uuid",
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "inserted",
      +        "reinforced",
      +        "skipped"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  6. First observedv1.0.0

TDQS

A4/5.0
Behavior3/5

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

The description discloses one useful behavioral trait beyond the annotations: 'auto-dedups near-duplicates.' However, it does not explain side effects, persistence, merge/drop behavior, or response semantics. The annotations are all false, so they provide no additional safety or behavior hints, leaving the description with more responsibility than it fully carries.

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 a single, front-loaded sentence with no filler. It states the core behavior, a key behavioral detail, and usage guidance, all in under 20 words.

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 tool with 14 parameters and several conditional agent-spawning fields, the text description is brief. The rich 100%-coverage schema and presence of an output schema compensate substantially, but the description itself does not hint at the background-agent registration/completion capabilities, so it is not fully complete.

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 all 14 parameters already have detailed descriptions. The tool description adds no new parameter-level meaning, and with full schema coverage the baseline of 3 is 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?

Description states a specific action ('Capture a verbatim turn') and a precise resource/scope ('verbatim turn'), and it even carves out what it is not for ('not for minting standing-order directives'). This clearly distinguishes it from sibling memory tools like memory_recall or memory_consolidate.

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 when-to-use guidance ('Use for corrections') and an explicit exclusion ('not for minting standing-order directives'). It stops short of naming an alternative tool to use for directives, so it lacks the full when/when-not/alternatives triad.

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

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/CodeAbra/iai-personal-memory-engine'

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