WhiteMagic — governed local memory for agent continuity
Server Details
Local-first, governed memory and session continuity for AI coding agents. No cloud, no telemetry.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 9 tools
memory.hybrid_recall and memory.search both describe hybrid semantic/BM25/associative retrieval, so an agent may struggle to choose between them. The wm meta-tool also overlaps by routing to the same operations, adding another ambiguous entry point.
Most tools follow a clean <domain>.<action> pattern with lowercase dot-separated names, which is predictable. The deviations are minor: hybrid_recall and continuity are nominal rather than imperative, and wm does not follow the namespace convention.
Nine tools is a well-scoped set for a memory and session-continuity server. Each core capability—create, read, list, search, session lifecycle—has a dedicated tool without unnecessary bloat.
The surface covers memory creation, retrieval, listing, and session continuity, but lacks memory update and delete operations, which are important for a governed memory store. There is also no explicit session close, leaving some lifecycle gaps.
Available Tools
9 toolsmemory.createCreate memoryCRead-onlyInspect
Store a new memory in the holographic memory core with 5D spatial coordinates and galaxy routing.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional tags | |
| title | No | Optional human-readable title (envelope v2) | |
| topic | No | Optional topic label for subject-scoped retrieval (envelope v2) | |
| galaxy | No | Target galaxy (default codex) | |
| source | No | Authorship claim: user (user-dictated content, trust 1.0) | agent (default, trust 0.7) | other free-form class (trust 0.7) | |
| content | Yes | Memory content (text) | |
| importance | No | Optional importance 0.0-1.0 (write gate applies class ceilings/floors when the class is recognized) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Store a new memory', which is clearly a write operation, while annotations declare readOnlyHint=true. This directly contradicts the annotations. No additional behavioral context is provided beyond the conflicting statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence and front-loaded with the core action. However, '5D spatial coordinates' is decorative jargon that is not supported by the schema and could confuse an agent, making the description slightly less effective than pure conciseness would allow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the schema and output schema cover the parameters well, the description lacks usage guidance and contains a significant annotation contradiction. An agent cannot reliably determine whether this is a safe read operation or a write operation, which is a critical gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters. The description adds no parameter-level detail, and the mention of '5D spatial coordinates' does not map to any actual schema property, so it contributes little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Store a new memory') and a resource ('holographic memory core'), clearly distinguishing it from the read/search/list siblings. The verb is unambiguous and the scope is evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like memory.search, memory.read, or memory.list. The description gives no context for selection, exclusions, or prerequisites, leaving the agent to infer usage from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory.hybrid_recallHybrid recallBRead-onlyIdempotentInspect
Fused recall across full-text, vector, graph, and coordinate lookup with recall_mode disclosure.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default 10; must be >= 1) | |
| query | Yes | Full-text query | |
| galaxy | No | Galaxy filter (optional; default: search all memory galaxies, results labeled; "all" is accepted as an alias for the unfiltered default) | |
| min_score | No | Absolute BM25 score floor | |
| min_trust | No | Minimum source_trust (0-1): drop results below this trust floor | |
| include_cold | No | Opt-in unranked cold recovery (no thaw). Trust/importance floors apply; BM25 floors do not apply to unscored recovery. Search content is scrubbed navigation capped at 8192 characters; read by id/galaxy for the exact original. | |
| min_importance | No | Minimum memory importance (0-1) | |
| cold_scan_limit | No | Maximum cold records to scan when include_cold is set (default 2048) | |
| min_score_ratio | No | Relative floor: reject hits below this fraction of the top score |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds one useful behavioral detail—'with recall_mode disclosure'—indicating the response reveals which retrieval mode(s) produced results. It does not, however, explain how the fusion works (e.g., result merging, scoring interaction), so it provides only modest value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, and the core action 'Fused recall' is front-loaded. Every word contributes meaning, but the extreme brevity edges toward under-specification, so it does not quite earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and 100% schema description coverage, this is a complex 9-parameter tool with multiple retrieval modes. The description omits critical context such as when to prefer this over memory.search, how the fused modes interact, or what 'recall_mode disclosure' concretely means in the response. Significant gaps remain for an agent deciding whether and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 9 parameters are already documented in the input schema. The description's mention of the four retrieval modes adds context for the query parameter, but it does not add per-parameter meaning beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'fused recall across full-text, vector, graph, and coordinate lookup.' This clearly distinguishes the tool from a plain memory.search by emphasizing its multi-modal hybrid nature. However, it does not explicitly name a sibling tool or contrast itself, so it stops short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use guidance, no exclusions, and no mention of alternative tools like memory.search or memory.list. The 'fused' wording implies a use case, but the agent is left to infer when this hybrid approach is appropriate vs a single-mode search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory.listList memoriesARead-onlyIdempotentInspect
List memories with filters (galaxy, tags, limit, offset) for inventory and discovery.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum entries (default 20) | |
| galaxy | No | Galaxy to list (default codex) | |
| offset | No | Skip this many matching entries before returning (default 0) | |
| exclude_tags | No | Drop memories carrying any of these tags |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context such as default pagination or scope limitations, but it also does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core action and then lists filters. It contains no unnecessary words, though it could be slightly more precise with the parameter names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and all parameters documented in the input schema, the description does not need to explain return values or parameter formats. The only notable gap is the 'tags' vs 'exclude_tags' mismatch, but overall the information needed to call the tool correctly is available from the schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. However, the description's filter list says 'tags' while the actual parameter is 'exclude_tags', which is a misleading shorthand that could cause an agent to pass an invalid parameter name. This inaccuracy outweighs the minimal value added by summarizing the filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('memories') and mentions the available filters, making the tool's function immediately clear. The action 'list' is distinct from siblings like memory.read, memory.search, and memory.hybrid_recall, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says the tool is 'for inventory and discovery', which implies a browsing context but does not explicitly state when to use it over alternatives like memory.search. It provides no exclusions or comparisons to sibling tools, leaving the decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory.readRead memoryARead-onlyIdempotentInspect
Retrieve a specific memory by its ID or coordinate address.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Memory UUID | |
| galaxy | No | Galaxy containing the memory (default codex) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds little behavioral context beyond the retrieval action and the claim that it accepts 'coordinate address,' which is not otherwise represented in the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and the key access mechanism with no filler. Every word contributes to understanding the tool's core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-identifier tool with only two parameters, an output schema, and strong annotations, the description is nearly sufficient. The main gap is the unexplained 'coordinate address' concept and the lack of guidance on behavior when the memory is not found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 a hint that 'id' may accept either a UUID or a coordinate address, but it does not clarify the format or relationship to the galaxy parameter. This is marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Retrieve' with a clear resource ('a specific memory') and identifies access by 'ID or coordinate address.' It distinguishes the tool from siblings like memory.list and memory.search, which imply listing or searching rather than direct retrieval. However, 'coordinate address' is not defined or reflected in the schema, introducing slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool should be used when you already have a memory ID or coordinate address, which is a clear context. It does not explicitly state when to prefer alternatives like memory.search or memory.hybrid_recall, so exclusion guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory.searchSearch memoriesBRead-onlyIdempotentInspect
Search and recall memories across galaxies using hybrid semantic, BM25, and associative retrieval.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default 10; must be >= 1) | |
| query | Yes | Full-text query | |
| galaxy | No | Galaxy filter (optional; default: search all memory galaxies, results labeled; "all" is accepted as an alias for the unfiltered default) | |
| min_score | No | Absolute BM25 score floor | |
| min_trust | No | Minimum source_trust (0-1): drop results below this trust floor | |
| include_cold | No | Opt-in unranked cold recovery (no thaw). Trust/importance floors apply; BM25 floors do not apply to unscored recovery. Search content is scrubbed navigation capped at 8192 characters; read by id/galaxy for the exact original. | |
| min_importance | No | Minimum memory importance (0-1) | |
| cold_scan_limit | No | Maximum cold records to scan when include_cold is set (default 2048) | |
| min_score_ratio | No | Relative floor: reject hits below this fraction of the top score |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the retrieval mode ('hybrid semantic, BM25, and associative retrieval'), which offers some insight into how it behaves, but it does not disclose other behavioral traits such as auth needs, rate limits, or side effects beyond what annotations and parameter descriptions already do. The description neither contradicts nor substantially exceeds annotation coverage, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is concise and front-loaded with the core purpose and retrieval approach. There is no filler or repetition, and every word contributes value. It is appropriately sized for a search tool with a detailed schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with nine parameters and an output schema, but the description is minimal. It covers the broad purpose but does not explain typical use cases, how it differs from sibling tools, or when to set various filters. The presence of an output schema and comprehensive parameter descriptions reduces the burden, yet the lack of usage context and sibling differentiation leaves gaps. A score of 3 reflects that it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters are documented in the schema. The description does not add additional parameter semantics; it only mentions retrieval methods that loosely relate to the query parameter but does not clarify syntax, defaults, or inter-parameter relationships beyond the schema. With high schema coverage, the baseline is 3, and the description does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('search and recall memories') with a specific scope ('across galaxies') and method ('hybrid semantic, BM25, and associative retrieval'). It is more specific than the title, but it does not explicitly differentiate from the sibling tool memory.hybrid_recall, which is likely a similar retrieval function. Thus, it is clear but not fully distinguishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like memory.hybrid_recall, memory.list, or memory.read. It does not state prerequisites, exclusions, or conditions that would route an agent to this tool over its siblings. The description is purely functional with no decision-making context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session.continuityRecall session continuityARead-onlyIdempotentInspect
Recall where the previous session left off: recent turns, checkpoints, and open work.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Number of prior turns (default 10) | |
| since | No | Time-range floor: epoch seconds, RFC 3339, or YYYY-MM-DD | |
| until | No | Time-range ceiling: epoch seconds, RFC 3339, or YYYY-MM-DD | |
| max_content_bytes | No | Per-turn content cap in bytes (256-262144, default 8192) | |
| current_session_id | No | Session to exclude (optional) | |
| max_response_bytes | No | Turns budget in bytes (256-262144, default 49152) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds behavioral context by listing what is recalled (recent turns, checkpoints, open work), but does not disclose anything further like rate limits, filtering behavior, or how sessions are identified. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words, front-loading the core action and scope. It is appropriately sized for a read-only recall tool with a well-covered schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, fully described parameters, and annotations covering safety and idempotency, so the description's job is minimal. The only minor gap is that 'previous session' is ambiguous—how a session is identified is not stated—but the schema's current_session_id parameter hints at it, and the overall definition is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all six optional parameters. The description does not add meaning beyond 'recent turns,' which loosely maps to the n and time-range parameters, but it does not need to compensate for missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Recall') and explicit resource ('where the previous session left off: recent turns, checkpoints, and open work'), making the tool's purpose immediately clear. It also distinguishes itself from the memory.* siblings by focusing on session continuity rather than general memory storage or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: an agent should call this when it needs to resume work from a previous session. However, it does not explicitly state when to prefer this over memory.hybrid_recall, memory.search, or session.record, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session.recordRecord a session turnCRead-onlyInspect
Record a session turn (decision, breakthrough, summary) so the next session can resume.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | user | ai (default user) | |
| track | No | Optional track slug (lowercase; a-z0-9 start, then a-z0-9-_. /) — tags this turn into that track's implementation log (session.track_log) | |
| content | Yes | Turn content | |
| turn_type | No | Turn type (default message) | |
| importance | No | 0-1 importance (default 0.5) | |
| session_id | No | Target session (default: most recent session) | |
| supersedes | No | Memory id of an earlier turn this record corrects/replaces (amend-with-supersede) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the tool records a turn, which is clearly a write/mutation operation, yet the annotations declare readOnlyHint=true. This is a direct contradiction and is deeply misleading for an agent. No other behavioral context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficiently written sentence that front-loads the core action before mentioning the purpose. It earns a high score, though it sacrifices useful behavioral detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters selection and multiple sibling tools, this description is thin. It does not address the contradiction between the read-only annotation and the write behavior, nor give guidance on selecting among related memory/session tools. The presence of an output schema reduces the need to describe return values, but the other gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the baseline is 3. The description only echoes a few enum values from turn_type (decision, breakthrough, summary) and adds no deeper meaning about parameters like supersedes, track, or session_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Record a session turn') and adds examples of turn types, which makes the core action clear. It does not explicitly distinguish itself from siblings like memory.create or session.continuity, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'so the next session can resume' implies the intended use case: persisting progress for future sessions. However, there is no explicit guidance on when to use this tool versus session.continuity or memory.create, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session.startStart or resume a sessionBRead-onlyInspect
Start or resume an agent session for persistent continuity across tool invocations.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | User identifier (default 'default') | |
| title | No | Session title |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims a state-changing action ('Start or resume') while annotations declare readOnlyHint=true. This is a direct contradiction. An agent would be misled about whether the tool mutates session state, and no additional behavioral traits (e.g., side effects, response format) are disclosed beyond the annotation conflict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action and purpose without any fluff. Every word contributes to understanding the tool's role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has an output schema, but the contradicting annotations and lack of explicit usage guidance leave an agent uncertain about side effects and when to choose this tool. The read-only mislabel is a significant completeness gap that outweighs the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (user and title), so the schema already documents them. The description adds no extra meaning about parameter usage or formatting, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Start or resume'), a clear resource ('agent session'), and an explicit purpose ('persistent continuity across tool invocations'). This is unambiguous and easily distinguishable from sibling memory tools, and even from 'session.continuity' which implies a different operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('for persistent continuity across tool invocations') but does not explicitly state when to use this tool versus alternatives like 'session.continuity' or memory tools. It offers no exclusions or alternative routing, so guidance is present but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wmWhiteMagic memory and continuity meta-toolARead-onlyInspect
WhiteMagic meta-tool — memory and continuity kernel over the curated tool surface (69 tools): persistent memory, session continuity and recall, governance/audit, and local tool execution. Mode: READ-ONLY — writes (session.*, memory.create/update) are refused; recall only. Scope: store /srv/whitemagic/hosted-store/lmdb. Invoke with thought= (auto-routed), route= (e.g. 'memory.search', 'session.continuity'), or args= (passthrough). Provide exactly one of thought or route. Say 'list tools' to enumerate the curated surface.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments to pass through to the target tool. | |
| route | No | Explicit tool name for direct dispatch (e.g. 'memory.create', 'tools.list'). | |
| thought | No | Natural language input describing what to do. Auto-routes to the best-matching tool via TF-IDF NLU classification. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true annotation, the description explicitly states READ-ONLY mode, lists refused operations (session.*, memory.create/update), and discloses the underlying store path (/srv/whitemagic/hosted-store/lmdb). This gives agents concrete behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense but every sentence earns its place: function, mode, scope, invocation modes, and enumeration command. It is front-loaded with the tool's role and immediately orients the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations, output schema, and 100% parameter coverage, the description covers all operational essentials: read-only behavior, routing modes, one-of constraint, and how to discover the tool surface. No critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds meaning beyond it: thought is auto-routed via TF-IDF NLU, route is an exact tool id for direct dispatch, and args is a passthrough object. It also adds the one-of constraint, which the schema does not enforce.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a meta-tool over the curated 69-tool surface and enumerates its functions: persistent memory, session continuity and recall, governance/audit, and local execution. This clearly distinguishes it from sibling concrete tools like memory.search or session.start, and the READ-ONLY mode further scopes it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit invocation instructions: provide exactly one of thought or route, pass args as an object, and say 'list tools' to enumerate the surface. It does not explicitly state when not to use it relative to direct sibling tools, but the routing semantics make the intended usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
- First observed
memory.create - First observed
memory.hybrid_recall - First observed
memory.list - First observed
memory.read - First observed
memory.search - First observed
session.continuity - First observed
session.record - First observed
session.start - First observed
wm
Related MCP Connectors
Shared memory for coding agents. Stop re-explaining your codebase every session.
Persistent memory for AI agents. Semantic search, memory graph, W3C DID identity.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Persistent memory for AI agents. EU-hosted, privacy-first, hybrid recall, contradiction detection.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceProvides persistent, local-first memory with knowledge graph and hybrid search for AI coding agents, reducing token usage by storing decisions, patterns, and codebase context.9MIT
- AlicenseBqualityAmaintenanceProvides local-first durable memory and session continuity for AI coding agents over MCP, enabling context across restarts without cloud services or telemetry.21MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to maintain persistent, local memory with retrieval-augmented search, knowledge graphs, and context surfacing, without any cloud dependencies.52 npmMIT
- AlicenseNot gradedqualityCmaintenanceGives AI coding assistants cross-session persistent memory with semantic search and task management, fully local.Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.