Skip to main content
Glama

Memwyre

upsert_memory

Save or update a living memory/document by title in the Memwyre Vault.
If a memory with a matching title already exists in this workspace, it will be updated in-place with the new text and re-indexed (preventing duplicate entries).
If no existing memory matches the title, a new memory is created.
Use this tool when maintaining living documents (e.g. project architecture, meeting notes, benchmarks, user preferences).
Args:
    title: Unique title or topic name (e.g., 'Production Retrieval Benchmark' or 'System Architecture').
    text: The full content to save or update (Markdown fully supported, do not summarize).
    source: Source of memory (default 'mcp').
    tags: Optional list of categorization tags (e.g., ['benchmarks', 'architecture']).
    workspace_name: Optional workspace name to scope this memory.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNo
textYes
titleYes
sourceNomcp
workspace_nameNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations present, the description carries the full burden, and it discloses important behavioral traits: existing memories are updated in-place, re-indexed, duplicate entries are prevented, and new memories are created when no title matches. It stops short of describing permissions, irreversibility of the old text, or response details, but the core mutation and idempotence behavior is clearly communicated.

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 well-structured: a focused opening states the core operation, two conditional sentences explain the upsert logic, a usage sentence gives context, and an Args list maps cleanly to the schema. Every sentence adds value; nothing is redundant or wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with five parameters and an output schema, the description covers the essential context: the update-vs-create decision, the deduplication behavior, appropriate use cases, and parameter semantics. Since an output schema exists, not describing return values is acceptable. The description gives an agent everything needed to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate—and it does. Each parameter gets practical guidance: title is described as unique with examples, text instructs the agent not to summarize and notes Markdown support, source gets its default, tags get formatting examples, and workspace_name is explained as a scope. This goes well beyond the bare schema titles.

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 the exact behavior with a specific verb phrase ('Save or update a living memory/document by title') and explains the upsert mechanics: update-in-place if the title exists, create if it doesn't. This clearly distinguishes it from siblings like save_memory and update_memory by the deduplication and re-indexing behavior.

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 explicitly names when to use this tool: 'when maintaining living documents' with helpful examples (project architecture, meeting notes, benchmarks, user preferences). It does not explicitly contrast with save_memory or update_memory or list exclusions, but the provided usage context is clear enough for an agent to select it appropriately.

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.

TDQS

A3.8/5.0
Disambiguation4/5

Most tools map cleanly to distinct operations such as semantic search, date search, inbox approval/discard, and tag listing. The main ambiguity is between save_memory and upsert_memory, both of which can create memories with similar arguments; get_memory/get_document and delete_memory/discard_memory are also distinguishable mainly by ID prefix or inbox state.

Naming Consistency4/5

The names are consistently lowercase snake_case and verb-first, which makes the set fairly predictable. Minor deviations include search_by_date breaking the verb_noun pattern, get_inbox/get_all_tags acting as list operations while list_memories uses 'list', and upsert_memory being an unusual verb.

Tool Count5/5

At 13 tools, the surface is well-scoped for a memory/document vault: create, upsert, update, retrieve, list, semantic and date search, tags, and inbox workflow are all represented without excessive granularity or redundant filler.

Completeness4/5

The toolset covers the core memory lifecycle well, including save, upsert, update, get, search, list, delete, and inbox approval/discard. Minor gaps remain: update_memory only accepts mem_ IDs, so documents found via search have no document-specific update path, and workspace management is only handled through optional name strings.

Resources