Skip to main content
Glama

RelayLink

Keep a shared memory

memory_add
Destructive

Keep a short fact about the user in their RelayLink shared memory, so every assistant they connect has it. whoami's Preferences line says how this account keeps memory. 'Kept only when asked' means call this only when the user asks you to remember something, with userAsked: true. 'Kept as you work' means you may also call it when you decide to remember something durable about them in your own memory: how they like to be worked with, what they are working on, a standing fact about them. Tell the user something is saved only after this answers 'Saved to RelayLink memory' or 'Saved to RelayLink memory already' — the second means the same fact was already there and is kept, so say so rather than claiming a new save; if it answers anything else, say it was not saved. One fact, in a sentence or a short paragraph, at most 1,000 characters, refused rather than trimmed if it is longer. When a fact you already have here turns out to be wrong or has changed, pass its id as replaces so the old one goes rather than leaving two that contradict each other. Do NOT add a memory because you have just read one — reading it on whoami or in memory_search and using it is not a new observation, and mirroring it back is how two assistants fill this store with copies of each other. Do not keep anything the user says is private, temporary, project-specific, or only for this assistant; a preference tied to a project or with an end date is notebook_save's, and so is anything they are writing down rather than being. Never store a password, key, token or recovery code. This is the user's own record: it never reaches a contact and is never written into a package. ERROR: plan_limit_reached means this was NOT saved, the account being at its memory capacity — relay the count and the options in full; never shorten or evict other memories to make room.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "text": "<text>"
    },
    "name": "memory_add"
  }
}

Input Schema

NameRequiredDescriptionDefault
textYesThe fact, in a sentence or a short paragraph, at most 1,000 characters.
sourceNouser_said if the user stated this in their own message to you; assistant_noted (the default) if you worked it out.
replacesNoThe id of a memory this corrects, from whoami or memory_search. The old one is removed in the same write.
userAskedNotrue only if the user asked you, in their own message, to remember or save this. Required when the account keeps shared memory only when asked.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: exact success responses, the meaning of 'Saved to RelayLink memory already,' the plan_limit_reached failure and no-eviction rule, replacement semantics for stale facts, and visibility limits. These are consistent with destructiveHint=true because replacing a memory removes the old one.

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 purpose is front-loaded and nearly every sentence carries operational guidance, so length is justified. However, the content is packed into one dense paragraph with many semicolon-linked rules, making it less structured than it could be for an agent parsing conditions.

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?

Although there is no output schema, the description explains expected return strings and error handling, including what to tell the user after success, duplicate, or capacity failure. It covers the complexity of this mutation tool thoroughly.

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 100%, so the baseline is 3, but the description adds useful semantics: overlong text is refused rather than trimmed, replaces removes the old fact to avoid contradictions, and userAsked is tied to the account's memory mode. The source parameter is left mostly to the schema.

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?

States a specific verb and resource: 'Keep a short fact about the user in their RelayLink shared memory.' It also distinguishes the tool from memory_search, memory_forget, and notebook_save by naming when notebook_save applies instead.

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

Usage Guidelines5/5

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

Gives explicit conditional usage based on whoami's Preferences line: 'Kept only when asked' versus 'Kept as you work.' It also spells out exclusions such as not mirroring a memory just read and not storing private, temporary, project-specific, or secret information, and points project-bound notes to notebook_save.

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