Skip to main content
Glama

memory_create_tool

Create a persistent memory item to store engineering decisions, invariants, and gotchas with tags, evidence, and confidence for cross-session recall.

Instructions

Create a new memory item.

Args: type: One of: decision, invariant, gotcha, rejected_idea, assumption, open_question, ambiguity, contract, constraint, hypothesis, observation, bug, architecture, implementation title: Short title for the memory statement: The factual claim being stored tags: At least one tag for categorization details: Optional additional details confidence: 0 to 1; derived from asserted_by when omitted (user 1.0, test 0.95, source/git/doc 0.9, runtime 0.7, agent 0.6; hypotheses cap at 0.4) importance: 0 to 1, default 0.5 evidence: List of evidence objects with path, startLine, endLine, contentHash related_memory_ids: IDs of related memory items metadata: Extra metadata. Decision items accept 'rationale' (strongly recommended: explain WHY this decision was made, alternatives considered). Invariant items require 'verificationMethod' and 'condition' asserted_by: Who established the claim: user, test, source, git, doc, runtime, agent (default agent) applicability: current, legacy, deprecated, planned (orthogonal to status) scope: user, project, path, task — or JSON {"kind": "...", "value": "..."} supersedes_id: ID of a memory this one replaces (marks it superseded) project: Optional project root path. Auto-detected from git root if omitted.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsYes
typeYes
actorNo
scopeNo
titleYes
detailsNo
projectNo
sessionNo
evidenceNo
metadataNo
statementYes
confidenceNo
importanceNo
request_idNo
asserted_byNo
operation_idNo
applicabilityNo
supersedes_idNo
related_memory_idsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changedv0.6.0
    • addedInput schema / properties / actor
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Actor"
      +}
    • addedInput schema / properties / applicability
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Applicability"
      +}
    • addedInput schema / properties / asserted_by
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Asserted By"
      +}
    • addedInput schema / properties / confidence / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / confidence / default
      Previous value: -1New value: +null
    • removedInput schema / properties / confidence / type
      Removed value: -"number"
    • addedInput schema / properties / operation_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Operation Id"
      +}
    • addedInput schema / properties / request_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Request Id"
      +}
    • addedInput schema / properties / scope
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Scope"
      +}
    • addedInput schema / properties / session
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Session"
      +}
    • addedInput schema / properties / supersedes_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Supersedes Id"
      +}
  2. Changed2 schema fields changedv0.5.1
    • addedInput schema / properties / confidence
      Added value: +{
      +  "default": 1,
      +  "title": "Confidence",
      +  "type": "number"
      +}
    • addedInput schema / properties / importance
      Added value: +{
      +  "default": 0.5,
      +  "title": "Importance",
      +  "type": "number"
      +}
  3. First observedv0.1.0

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose real behavioral detail: confidence derivation cascades by asserted_by with hypotheses capped at 0.4, invariant items require verificationMethod and condition, decision items strongly recommend rationale, supersedes_id marks the prior item superseded, applicability is orthogonal to status, and project is auto-detected from git root. These are meaningful conditional/derivation rules, though no auth, rate-limit or error behavior is mentioned.

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?

The one-line purpose is front-loaded, followed by a tight Args block where each line adds distinct semantics (enum values, defaults, conditional requirements). It is long only because the schema has 19 undocumented parameters; no sentence is filler.

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 19-parameter mutation tool with zero schema descriptions and no annotations, the description supplies the semantics an agent needs for the important fields, and return values need not be described because an output schema exists. The four undocumented infrastructure params (actor, session, request_id, operation_id) are the only completeness gap.

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 coverage is 0%, so the description must compensate, and it does for 15 of 19 params, including enum values for type/asserted_by/applicability, formats for scope and evidence objects, and defaults/derivations for confidence and importance. It leaves actor, session, request_id and operation_id entirely unexplained, which is the only real gap.

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 states a specific verb and resource ('Create a new memory item'), and the type enum signals it is the generic creator covering decision/invariant/gotcha/etc. However, it never explicitly distinguishes itself from the sibling typed creators (decision_create, invariant_create, gotcha_create), leaving the agent to infer which to call.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance. The list of valid types implies the typed siblings exist, but the description never says 'prefer decision_create for decisions' or when the generic tool is appropriate versus the specialized ones. Context is entirely absent.

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