Skip to main content
Glama

ctxstore — memory that follows you across models

Move Fact

move_fact
Idempotent

Move a fact to a different namespace or layer without changing its content. Updates metadata in place — preserves fact_id, text, embedding, timestamp, and deprecation chain. Use for reclassifying facts (e.g. bootstrap-v2 refactor) without the storage bloat of store-new + soft-delete-old.

Input Schema

NameRequiredDescriptionDefault
fact_idYesThe UUID of the fact to move
new_layerNoNew layer: 0=identity, 1=architecture, 2=state, 3=session. Optional.
new_namespaceNoNew namespace (e.g. 'archive', 'bootstrap-v2'). Optional.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already establish idempotent=true, destructive=false, readOnly=false. The description adds substantial behavioral context beyond that: it updates metadata in place, preserves fact_id, text, embedding, timestamp, and the deprecation chain, and explicitly avoids storage bloat. This is exactly the kind of mutation semantics the annotations cannot convey.

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?

Three sentences, front-loaded with the core action, then the invariants, then the use case. No filler — every clause carries distinct information.

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 non-destructive, idempotent mutation with a fully documented schema, the description covers action, invariants, and motivation. The only omission is what the call returns or whether it reports confirmation, which is minor given there is no output schema.

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 coverage is 100%, so fact_id, new_layer (with layer enum semantics), and new_namespace are already fully documented. The description names namespace and layer conceptually but adds no format, default, or validation detail beyond the schema. Baseline 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?

The description states a specific verb+resource ('Move a fact') and pins down the scope ('to a different namespace or layer without changing its content'). This cleanly separates it from siblings like store_fact, delete_fact, and get_fact without needing to open their schemas.

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?

It gives an explicit use case ('reclassifying facts, e.g. bootstrap-v2 refactor') and contrasts the alternative pattern ('store-new + soft-delete-old'), telling the agent when this is preferable. It stops short of naming the actual sibling tools or stating hard exclusions.

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.