Skip to main content
Glama

Write Studocu Agent Memory

write-memory
DestructiveIdempotent

Save one memory (a preference or project fact) for this learner. Writing the same kind again replaces it.

Input Schema

NameRequiredDescriptionDefault
kindYesKind for this memory. At least 1 character. Example: "study_preference" or "project_learning_context". Writing the same kind again replaces the previous memory.
valueYesJSON object to store. Usual shape: { "content": "the memory text" }. Other keys are allowed.
project_idNoUUID of the project this memory belongs to, or null. Example: 11111111-1111-4111-8111-111111111111. Omit or null to store a learner-wide memory.

Output Schema

NameRequiredDescriptionDefault
kindYesMemory kind that was written.
valueYesStored memory document.
userIdYesOwner of the memory document.
createdAtYesCreation timestamp of the row.
projectIdYesOwning project UUID, or null for global memory.
updatedAtYesLast write timestamp of the row.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / kind / description
      Previous value: -"Memory kind, e.g. study_preference or project_learning_context."New value: +"Kind for this memory. At least 1 character. Example: \"study_preference\" or \"project_learning_context\". Writing the same kind again replaces the previous memory."
    • changedInput schema / properties / project_id / description
      Previous value: -"Project UUID for project-local memory; null or omitted stores global (user-level) memory."New value: +"UUID of the project this memory belongs to, or null. Example: 11111111-1111-4111-8111-111111111111. Omit or null to store a learner-wide memory."
    • changedInput schema / properties / value / description
      Previous value: -"Freeform memory document. MVP convention is { content: string }."New value: +"JSON object to store. Usual shape: { \"content\": \"the memory text\" }. Other keys are allowed."
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but they don't say what is destroyed. The description fills that gap precisely: only the memory of the same kind is replaced, not the whole store. It omits rate limits or auth requirements, but for this tool the key hazard is fully disclosed.

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?

Two short sentences, zero filler, and the overwrite semantics are front-loaded in the second sentence where an agent will see them before writing.

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?

Output schema exists and the input schema is fully documented, so the description only needs to carry behavior. It does so for the replacement semantics; the only minor gap is not restating that omitting project_id yields a learner-wide memory, which the schema already covers.

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 kind, value, and project_id are already well documented, including the replacement rule and the usual {content: ...} shape. The description reinforces that the payload is a preference or project fact but adds no syntax or format 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Save") and resource ("one memory") with the content scoped ("a preference or project fact") and the owner ("this learner"). It is clearly distinct from read-memory, delete-memory, and write-artifact, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

The parenthetical "a preference or project fact" implies the appropriate content, and the replacement rule signals the overwrite consequence. However, there is no explicit when-to-use vs. when-not guidance and no reference to alternatives such as write-artifact or create-project.

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.

Resources