Skip to main content
Glama

Server Details

Hosted AI agent memory that learns from outcomes, with shared rooms, in Claude, Cursor and ChatGPT.

Ownership verified
Status
Healthy
Uptime
17.8% over 42 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
mnemoverse/mcp-memory-server
GitHub Stars
25
Server Listing
Mnemoverse Memory

TDQS

A4.5/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: write/read/list_recent/list_rooms/stats/graph/feedback plus room lifecycle (create/invite/join) and vault_list. The potentially overlapping pair — semantic search (memory_read) vs chronological catch-up (memory_list_recent) — is explicitly distinguished in the descriptions, and room management tools split cleanly by action.

Naming Consistency5/5

All tools follow a consistent snake_case prefix_noun_verb pattern (memory_create_room, memory_read, memory_list_rooms, memory_join_room, etc.). The single vault_ prefix (vault_list) still matches the same prefix_verb convention, so there is no convention mixing.

Tool Count5/5

11 tools is well within the ideal 3-15 range and each earns its place: 5 core memory ops, 4 room/collaboration ops, plus graph and stats introspection. No redundant or filler tools are present.

Completeness4/5

Core memory lifecycle is well covered: write, read, list recent, list rooms, feedback, graph, stats, plus room create/invite/join. Gaps remain: no way to leave or delete a room (or revoke an invite/remove a member), and vault_list is a viewer with no companion tool to add a secret through this connector.

Available Tools

11 tools
memory_create_roomAInspect

Create a SHARED memory room — a space OTHER people's assistants can read, and write too when their invite granted read_write (the default scope), across Claude/ChatGPT/Cursor. Use when the user wants to share context or collaborate with someone else (e.g. 'make a room for me and Olya'). Returns the room's address; pass that address as the domain on memory_write/memory_read to use it, and on memory_list_recent to catch up on what others added. To bring someone in, call memory_invite_to_room next.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRoom name, unique within your account (e.g. 'me-and-olya').
descriptionNoOptional description of the room.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoThe room name as stored.
addressYesDomain address (xroom:<id>); pass as `domain` on read/write.
room_idYesThe room's id (room_...); pass to memory_invite_to_room.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only say the tool is not read-only, not open-world, not idempotent, and not destructive. The description adds meaningful behavior: default invite scope is read_write, other assistants can read and write, and the return value is the room's address. This goes well beyond annotation hints, though it does not cover edge cases like duplicate names or failure behavior.

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 longer than average, but every sentence earns its place: shared semantics, default permissions, when to use it, return-value usage, and the next recommended action. No filler or redundant restatement of the schema.

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?

The description covers what the tool does, why it exists, how to use the result across sibling tools, and what action to take next. With only two parameters and an output schema present, nothing essential is missing for an agent to invoke this tool correctly.

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 the input schema already fully documents the `name` and `description` parameters. The description does not add significant new parameter-level meaning beyond restating the name example and the uniqueness constraint already present in 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 opens with a specific verb and resource: 'Create a SHARED memory room.' It clearly distinguishes this from other sibling tools by emphasizing the shared/collaborative aspect and by explaining that the returned address is used as a `domain` on memory_write/memory_read and memory_list_recent. The example 'make a room for me and Olya' anchors the intent unambiguously.

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?

The description explicitly states when to use this tool ('Use when the user wants to share context or collaborate with someone else'), and it names the next logical step, memory_invite_to_room. It also explains how to use the result with sibling tools. It does not explicitly state when not to use it or contrast it against a close alternative, but the shared-vs-private distinction is strongly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_feedbackAInspect

Report whether memories returned by memory_read were actually helpful. This is a learning signal, not a log: positive feedback raises a memory's ranking so it surfaces faster next time (across all of the user's tools), negative feedback lowers it so other memories out-rank it — nothing is erased and nothing decays with time. Call it right after you act on (or reject) recalled memories, passing the ids from the memory_read results as memory_ids. For memories read from a shared room, also pass that room's address as domain; your own memories need no domain. A read-only room member cannot rate the room's memories.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoOnly for memories read from a shared room: that room's address (xroom:...), exactly as you read it. Omit it for your own memories, which are rated by id alone.
outcomeYesHow helpful was this? 1.0 = very helpful, 0 = neutral, -1.0 = harmful/wrong
memory_idsYesIDs of the memories to rate, the `id:` line of each memory_read result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
avg_valenceNoAverage valence of the rated memories after the update. Reported as 0 in an asynchronous acknowledgement, where the real value is computed later — a 0 here is therefore not evidence of a neutral outcome.
updated_countYesHow many memories the service reports it applied the rating to. Processed synchronously this is the real count of memories that existed and were updated; processed asynchronously it is a best-effort ACCEPTED-count estimate — the number of IDs submitted — and the authoritative number is not known until the background worker runs. Zero means no submitted ID matched in the service's resolved request scope.
coactivation_edgesNoNumber of feedback-driven query/result concept co-activation edges changed by the service. This is separate from ordinary Hebbian strengthening among a memory's own concepts. This connector does not send query_concepts, so live calls through this tool report 0; asynchronous acknowledgements also report 0.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false, idempotentHint=false, destructiveHint=false; the description goes well beyond by explaining the ranking consequence of positive vs. negative feedback, that it applies across all of the user's tools, and that nothing is erased or time-decayed. It also discloses the authorization constraint that a read-only room member cannot rate room memories, which the annotations do not capture.

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 core purpose and the ranking consequence are front-loaded in the first two sentences, with the mechanics (ids, domain, permission caveat) following. It is a little dense at four sentences, but every sentence carries distinct information and none is redundant with the schema.

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?

With an output schema present, return values need no explanation, and the description still covers the trigger, the effects, the parameter sourcing, the domain rule, and the permission boundary. Nothing an agent needs to invoke this mutation correctly is missing.

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 description coverage is 100%, so the baseline is 3; the description adds real meaning on top by specifying where memory_ids come from (the id: line of memory_read results) and precisely when domain must be supplied versus omitted. It stops short of adding numeric guidance for the outcome range, which the schema already handles well.

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 first sentence gives a specific verb and resource ('Report whether memories returned by memory_read were actually helpful') and immediately frames the tool's role as a learning signal rather than a log, which separates it from memory_read and memory_write in the sibling set. An agent can identify the tool's function without opening the schema.

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?

It gives explicit timing ('Call it right after you act on (or reject) recalled memories') and an explicit prerequisite mapping ('passing the ids from the memory_read results as memory_ids'), plus the domain condition and the read-only-room exclusion. When-to-use, when-not, and the required upstream tool are all stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_graphA
Read-onlyIdempotent
Inspect

Reads the association edges around given concepts: which concepts the memory has linked together, with each link's weight, outcome valence and co-activation count. Use to inspect what a memory store has learned or to explain why a read expanded to a concept. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoHops to expand from the seeds (1-3, default 1). At depth 2 or 3, if min_weight is omitted the engine floors edge weight at 0.05 at EVERY hop — including the first — so a hub concept cannot fan out across the whole store before limit applies; pass min_weight explicitly (0 included) to see every edge anyway.
limitNoMax edges to return (1-500, default 100 — mirrors memory_read's top_k bounds).
seedsYesConcepts to center the graph on (1-20, each ≤200 chars, non-blank) — e.g. ['deploy', 'staging']. An unrecognised concept simply contributes no edges; it is not an error.
domainNoRead a shared room's graph instead of your own: pass that room's address (e.g. 'xroom:room_01ABC'). Find room addresses with memory_list_rooms. Unlike memory_read, any OTHER value has no effect here — the association store has no domain column, so a plain domain name behaves exactly like omitting this field.
min_weightNoOnly include edges at or above this weight (≥ 0). Omit for no floor at depth 1; at depth 2/3 the engine applies its own 0.05 floor when this is omitted (see depth) — pass 0 to see every edge at every depth.

Output Schema

ParametersJSON Schema
NameRequiredDescription
edgesYesAssociation edges found within the requested depth.
nodesYesConcepts touched by edges below. A seed with no surviving edge (unrecognised concept, or every edge fell below the weight floor) is not listed.
truncatedYesTrue when a per-hop server cap or limit cut the walk short — the store may hold more edges than are reported here.
min_weight_appliedYesThe weight floor actually used at every hop: your min_weight when you set one (0 included); otherwise 0.05 from depth 2, or 0 at depth 1.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the explicit 'Read-only' adds no new safety information. The description does add scoping context (edges around given concepts) and the returned edge attributes, but deeper behavioral quirks such as depth-based weight flooring and the domain no-op live in the schema rather than the description.

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 two tight sentences that front-load the core operation and then state concrete use cases. The trailing 'Read-only' is redundant with annotations but negligible, and there is no filler.

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?

Between the rich schema documentation, the output schema, and the annotations, an agent has everything needed to call this tool correctly. The description supplies the conceptual purpose and use cases without needing to repeat return-value details.

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%, with all five parameters fully documented including defaults, bounds, and special cases. The tool description does not add parameter-level meaning, so the baseline 3 applies.

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 names a specific verb ('Reads'), a specific resource ('association edges around given concepts'), and the concrete output fields (weight, outcome valence, co-activation count). It is clearly distinct from siblings like memory_read by focusing on the graph structure rather than raw memory entries.

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?

The second sentence gives concrete use cases: inspecting what a memory store has learned and explaining why a read expanded to a concept. It does not explicitly name alternatives or state when not to use this tool, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_invite_to_roomAInspect

Mint an invite for a room you own and get a ready-to-forward message. An invite is single-use by default; pass max_uses to let several people join with the same one. The user sends that message to the person they want to add (any messenger); the recipient opens the link or tells THEIR assistant the code to join. Use after memory_create_room, or whenever the user says 'invite ' to an existing room.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoRole the invitee gets — 'read' or 'read_write' (default read_write).
room_idYesThe room's id (room_...), from memory_create_room.
max_usesNoHow many people may join with this invite (default 1, single-use).
expires_in_daysNoDays until the invite expires (default 7).

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeNoThe invite code (mnvr_...). Single-use by default, with a configurable use limit. Shown once.
scopeNoRole the invitee will get.
join_urlNoLanding URL the invitee can open to join.
expires_atNoISO 8601 expiry, or null.
room_addressNoThe room's domain address (xroom:<id>).
share_messageYesReady-to-forward invite text.

TDQS

A4.5/5.0
Behavior4/5

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

With annotations carrying almost no behavioral detail, the description properly carries the burden: it explains the single-use default, the max_uses override, the fact that the user forwards a prepared message, and the recipient's two join paths (link or code). It does not cover error cases or rate limits, but it covers what an agent needs to invoke safely.

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-load the core action and output, then provide workflow and trigger context. There is no filler; every sentence contributes distinct operational information.

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?

Given that all parameters are documented, an output schema exists, and annotations are present, the description supplies the missing context: ownership prerequisite, default single-use behavior, the forwarding flow, and when to invoke. An agent has enough to call this tool correctly without guessing.

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. The description adds meaning beyond the schema by explaining max_uses as 'let several people join with the same one' and room_id as requiring a room the user owns. It does not add extra semantics for scope or expires_in_days, but the schema already documents those clearly.

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 action ('Mint an invite') and resource ('for a room you own'), and immediately distinguishes it from sibling tools like memory_create_room and memory_join_room. It also names the concrete outcome, a ready-to-forward message, so an agent can tell exactly what this tool does.

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?

The description explicitly says 'Use after memory_create_room' and maps a user trigger phrase ('invite <someone>') to this tool, which is strong routing guidance. It does not explicitly name when not to use it or point to an alternative, but the triggers given are specific and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_join_roomA
Idempotent
Inspect

Join a shared memory room using an invite code (starts with 'mnvr_'). Use when the user pastes an invite code or says something like 'join room with code ...'. After joining, use the returned address as the domain on memory_read to read the shared room — the result tells you what you may do with it: memory_write to that address is only allowed when your membership scope is read_write; a read-only membership has that write refused; and when the server does not report a scope, whether memory_write would succeed is stated as unknown rather than promised either way.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe invite code (mnvr_...).

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoThe room name.
scopeNoYour role in the room ('read' | 'read_write').
addressYesDomain address (xroom:<id>); pass as `domain` on read/write.
room_idYesThe room's id (room_...).
next_stepsYesHow to use the room now.
already_memberNoTrue if you were already a member (no-op join).

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, the description explains the post-join behavior: the returned address should be used as the domain on memory_read, and whether memory_write succeeds depends on membership scope. It even handles the unknown-scope case instead of promising either outcome, which is valuable transparency.

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 dense sentences, with the action and trigger front-loaded. The later permission/scope guidance earns its place because it directly affects how an agent should use the result. No filler is present.

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?

With only one required parameter, 100% schema coverage, and a provided output schema, the description still adds important context about what to do after joining and how memory_write authorization is determined. No essential calling information is missing.

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% and the schema already says the code is 'The invite code (mnvr_...)'. The description repeats the 'mnvr_' prefix and adds user-trigger context, but provides little additional semantic meaning beyond what the schema already supplies.

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 ('Join') and resource ('shared memory room'), and immediately identifies the invite-code format ('mnvr_'). This cleanly distinguishes it from sibling tools like memory_create_room and memory_invite_to_room.

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?

The description gives explicit triggers: 'when the user pastes an invite code or says something like join room with code ...'. It does not spell out when-not-to-use or name alternative tools, but the trigger conditions are clear enough for confident selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_list_recentA
Read-onlyIdempotent
Inspect

List the NEWEST memories first — no search query needed. Semantic search answers 'what do I know about X'; this answers 'what happened lately': resuming work after a break, catching up on a shared room ('any new messages?'), or reviewing what was saved recently. Pass since (your last-seen time) to get only what's new, and page through older entries with the returned cursor. Complete by construction WITHIN ONE SCOPE — nothing is skipped there, unlike a semantic search. A page is also bounded by SIZE, so a page of long entries comes back shorter than limit and hands you a cursor for the rest — nothing is dropped, and following the cursor is how you get it. To catch up on a shared room you MUST pass its address as domain: rooms are separate stores and an unscoped call never covers them.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMost entries per page (default: 20). Newest first. ⚠️ A CEILING, not a promise: the page is ALSO bounded by size, so a page of long entries stops early and returns a cursor for the rest. In rooms whose entries run long, ask for 5–10 — a large `limit` there buys nothing the size budget will not take back, and costs round trips.
sinceNoOnly entries created at/after this ISO-8601 instant (naive = UTC) — your novelty watermark.
untilNoOnly entries created at/before this ISO-8601 instant (inclusive). Pair with `since` to read a closed window — 'what happened on Monday' — instead of paging back from now.
cursorNoOpaque cursor from a previous page's 'More older entries exist' line — continues the listing without skips or duplicates.
domainNoRestrict to one domain. REQUIRED to read a shared room — pass its address ('xroom:room_01ABC'), because rooms are separate stores that an unscoped feed does NOT cover. Omit only when you mean your own domains. Room addresses come from memory_list_rooms. Room entries are often long — a room feed usually reaches its size budget after a handful of them, so expect to page (see `limit`).
exclude_authorNoDrop entries written by this author PRINCIPAL. ⚠️ NOT USABLE FROM HERE YET — the principal is never shown in these results, so there is no value you can get through this tool; a guess like 'me' filters nothing, silently. Same caveat as on memory_read.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYesEntries newest-first (creation time descending).
next_cursorNoPass back as cursor for the next (older) page; null = listing complete. Absent when the service sent a continuation token this client will not pass on; the text then says the token could not be displayed.

TDQS

A5/5.0
Behavior5/5

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

Annotations already mark the tool read-only and idempotent, and the description adds genuinely useful behavioral context: pages are complete within a scope, size-bounded pages can return fewer than `limit`, cursors are required to avoid dropped entries, and rooms are separate stores. No contradiction with 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and front-loaded: the core action appears in the first sentence, and every caveat earns its place by either explaining a consequence or a required condition. Warnings such as size budgeting and room separation are actionable rather than filler.

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?

The description covers everything needed to invoke correctly: when to use it, when to scope by domain, how paging works, and where room addresses come from memory_list_rooms. Since an output schema exists, the lack of return-format explanation is not a gap.

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?

Even with 100% schema coverage, the description adds meaning beyond the schema: `since` is framed as a novelty watermark, cursors continue listings without skips/duplicates, `limit` is a ceiling affected by page size, and `domain` unlocks shared rooms. The schema already documents syntax well, and the description reinforces behavior around it.

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 the exact behavior—lists the newest memories first—and immediately distinguishes itself from semantic search by contrasting 'what do I know about X' with 'what happened lately.' This also cleanly separates it from sibling tools like memory_read and memory_list_rooms.

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 use cases (resuming work, catching up on a shared room, reviewing recent activity), tells when to pass `since`, and when `domain` is mandatory. It even specifies the exclusion condition: an unscoped call never covers rooms, so an agent knows exactly when to supply the room address.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_list_roomsA
Read-onlyIdempotent
Inspect

List the shared memory rooms you can use — the ones you OWN plus the ones you've JOINED — each with the address to pass as domain on memory_read, and on memory_write too where your membership scope is read_write; a read-only membership has that write refused. Use this to RE-FIND a room in a new session (e.g. 'what rooms do I have?', 'resume the room with Olya') instead of having to create or re-join it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
roomsYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context by explaining that returned addresses are suitable for memory_read and conditionally for memory_write, including that read-only membership will have writes refused. This goes beyond the annotation hints and provides practical 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, but each clause carries essential information: ownership/joined scope, how returned addresses are used, the read-only write caveat, and concrete usage examples. There is no filler or redundancy.

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 zero-parameter tool with an output schema present, the description is complete. It explains what the tool lists, how the results should be consumed, and when to invoke it across sessions. It also implicitly clarifies membership semantics, so an agent has enough context to call and interpret the tool correctly.

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?

The tool has zero parameters, so the input schema fully documents everything. The description adds no parameter information, which is appropriate and unnecessary here. A baseline of 4 is appropriate for a parameterless tool with complete schema coverage.

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 clear, specific action: listing the shared memory rooms the user owns plus those they've joined. It also explains that each result includes the address to pass as `domain` on memory_read and memory_write, which distinguishes this tool from sibling list tools like memory_list_recent or memory_graph.

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?

The description explicitly says to use this tool to re-find a room in a new session, giving concrete examples like 'what rooms do I have?' and 'resume the room with Olya'. It also contrasts it with creating or re-joining a room, making the intended use case and alternatives clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_readA
Read-onlyIdempotent
Inspect

Search your long-term memory before answering anything that may have come up before — user preferences, past decisions, project setup, people, or earlier context. This memory is shared: it persists across sessions and across every AI tool the user has connected (Claude, ChatGPT, Cursor, VS Code). ALWAYS check here first when you're unsure whether you already know something; no need to call it for general world knowledge you already hold. Returns matches ranked by relevance (or newest-first with order_by: 'recency'); each result carries an id you can pass to memory_feedback. A wrong or stale memory is corrected by writing a fresh one with memory_write, not by deleting it.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesNatural-language description of what you're looking for, e.g. 'database choice for the API' or 'user's preferred testing framework'.
sinceNoOnly memories created at/after this ISO-8601 instant (naive = UTC) — e.g. your last-seen watermark in a shared room.
top_kNoRequested number of results (default: 5, what this connector asks for when you omit it; the engine's own default of 10 never applies, because the field is always sent). ⚠️ Not a hard cap: association expansion can return MORE than this, and the relevance floor can return fewer — raising it does not reliably widen the result set. For a complete, exactly-bounded listing use memory_list_recent instead.
untilNoOnly memories created at/before this ISO-8601 instant.
domainNoRestrict the search to one domain namespace (e.g. 'project:acme'). Omitting it searches your OWN domains — it does NOT include shared rooms, which are separate stores: to search a room, pass its address here (e.g. 'xroom:room_01ABC'). Find room addresses with memory_list_rooms.
order_byNo'relevance' (default) = ranking order. 'recency' = the matched set re-sorted newest-first. For a complete newest-first feed with no search at all, use memory_list_recent instead.
exclude_authorNoDrop memories written by this author PRINCIPAL — the server-side identity. ⚠️ NOT USABLE FROM HERE YET: the principal is not shown in these results, so there is no value you can obtain through this tool, and a guess like 'me' silently matches nothing and filters nothing. Only pass it if your system knows the exact principal from elsewhere (e.g. the REST API). A self-exclusion shortcut is planned.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYesMatching memories, ordered per order_by.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this tool read-only, non-destructive, and idempotent; the description adds valuable behavioral context beyond that: memory persists across sessions and across all connected AI tools, results are ranked by relevance or recency, and each result carries an id usable by memory_feedback. It also explains the correction workflow via memory_write, which helps an agent understand the broader memory ecosystem. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and includes useful guidance, alternatives, and behavioral notes, but it is somewhat dense and includes a few sentences that could be trimmed (e.g., the 'ALWAYS check here first' emphasis could be shortened). Still, every sentence adds value, so it earns a 4 rather than a 5.

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?

Given the tool's complexity (7 parameters, an output schema, and several siblings), the description provides the essential context for correct invocation: shared-memory semantics, search vs. list distinction, alternatives, and feedback routing. The output schema already covers return values, so the description need not explain them. Nothing an agent needs to select and call this tool correctly is missing.

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% and each parameter has a rich, self-explanatory description (e.g., domain, order_by, since/until). The tool description itself adds minimal parameter-level meaning—only re-mentioning order_by 'recency' in the context of output ranking. With the schema carrying the full semantic load, the 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 opens with a specific verb and resource: 'Search your long-term memory' and lists concrete example contents (user preferences, past decisions, project setup, people, earlier context). It names sibling tools (memory_list_recent, memory_feedback, memory_write) and distinguishes search from listing/writing, so an agent can tell it apart from memory_list_recent and memory_write without opening the schema.

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?

The description gives explicit when-to-use guidance: 'ALWAYS check here first when you're unsure whether you already know something,' and a clear exclusion: 'no need to call it for general world knowledge you already hold.' It also directs agents to memory_list_recent for complete, bounded listings and to memory_write for correcting stale memories, providing concrete alternatives and conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_statsA
Read-onlyIdempotent
Inspect

Get an overview of the stored memory: total count, episodes vs consolidated prototypes, number of learned associations, the list of domains, and average quality scores. This memory is shared across all AI tools the user has connected to Mnemoverse. Use it to orient yourself, to confirm the exact domain name before writing to it, or when the user asks what you remember. Read-only — changes nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainsYesUser-defined memory domains.
episodesNoNumber of episodic (not yet consolidated) memories.
prototypesNoNumber of consolidated prototype memories.
avg_valenceNoAverage valence of stored memories: how well recalls turned out, on a scale from -1 to 1.
memory_countYesNumber of saved memories.
hebbian_edgesNoNumber of Hebbian concept-to-concept links, learned from concepts that occur together as memories are stored and used.
avg_importanceNoAverage importance of stored memories, on a scale from 0 to 1.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior, so the description's 'Read-only — changes nothing' restates the schema. However, it adds valuable non-obvious context: the memory is shared across all AI tools connected to Mnemoverse. It also describes what the overview includes, providing behavior beyond what annotations specify.

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 three sentences with no filler. It front-loads the operation and its main outputs, then adds the shared-memory context and usage guidance, ending with a clear read-only note. Every sentence contributes distinct information.

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 zero-parameter read-only tool with an output schema available, the description covers the operation, the returned data categories, the shared-memory scope, and practical use cases. Nothing needed for correct invocation is missing.

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?

The tool has zero parameters and an empty input schema, so no parameter documentation is needed. The baseline of 4 applies because the description cannot add parameter meaning to a tool that takes no inputs.

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 clearly states the verb ('Get an overview') and the resource ('stored memory'), then enumerates the specific outputs: total count, episode vs. prototype breakdown, learned associations, domains, and average quality scores. This is specific enough to be distinguished from all sibling tools such as memory_read or memory_write, even without naming them.

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?

The description provides explicit usage contexts: 'to orient yourself, to confirm the exact domain name before writing to it, or when the user asks what you remember.' This gives clear routing guidance, though it does not explicitly state when not to use the tool or name alternative tools beyond the implied writing context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_writeAInspect

Store a long-term memory that persists across sessions AND across every AI tool the user has connected to Mnemoverse (Claude, ChatGPT, Cursor, VS Code) — write once, recall everywhere. Call this PROACTIVELY the moment the user states a preference, makes a decision, or you learn a durable fact (people, roles, project setup, a lesson). Don't wait to be asked. Never store passwords, API keys, payment data, MFA codes, government IDs, or health records; skip transient chatter that only matters this turn. Behavior: an importance gate may filter low-value writes, so the result tells you whether the memory was stored or filtered. Write content as a self-contained statement that still makes sense when recalled out of context.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoNamespace to organize memories (e.g. 'engineering', 'user:alice', 'project:acme'). Matched byte-for-byte — a leading space, a different case, or an invisible character opens a SEPARATE, permanent store, so reuse an exact name from memory_stats rather than retyping one. To write into a shared room, pass its address here instead (e.g. 'xroom:room_01ABC'). Find room addresses with memory_list_rooms.
contentYesThe memory to store as a self-contained statement, e.g. 'User prefers TypeScript strict mode' or 'Decided to deploy the API on Cloudflare Workers (2026-06)'.
conceptsNoKey concepts for linking related memories (e.g. ['deploy', 'friday', 'staging'])

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNoThe memory service's own explanation of this outcome, quoted as sent — when stored is false this is the ONLY statement of WHY, e.g. "Below importance threshold (0.047 < 0.1)". Ordinary text is preserved exactly; only control, bidi, zero-width, and repeated-whitespace characters are normalized before display, and the value is capped at 400 characters. Absent when the service sent no explanation, or when nothing remains after that normalization.
storedYesWhether the memory passed the novelty gate and was stored.
memory_idYesIdentifier of the stored memory, or null when it was not stored.
importanceNoNovelty score for this write (0-1): how much it adds over the nearest memories already saved in the same domain. A first-generation metric UNDER ACTIVE DEVELOPMENT and known to be unreliable — the same content has measured ~0.08 in Russian against ~0.55 in English, so it under-reads non-English text. It is not a verdict on whether the memory was worth keeping. Absent when the service sent no score.

TDQS

A5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses that an importance gate may filter low-value writes and that the result indicates whether the memory was stored or filtered. It also warns about exact byte-for-byte domain matching creating separate permanent stores, which is critical behavioral context not available 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries operational value: outcome, triggers, exclusions, gate behavior, and content formatting guidance are all included. It is front-loaded with the core purpose, and the structured lists keep constraints scannable.

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?

The description covers all essential dimensions for correct invocation: when to use, what not to store, how to format `content`, how `domain` matching behaves, how to reference rooms via memory_list_rooms, and what to expect from the filtering gate. With an output schema present and these details included, nothing essential is missing.

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?

Even though schema coverage is 100%, the description adds significant meaning: the `domain` parameter's exact-match and namespace behavior, the `content` requirement to be a self-contained statement with examples, and `concepts` as link keys for related memories. This goes well beyond the schema's basic field descriptions.

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 action — 'Store a long-term memory' — and clearly defines its unique scope: persistence across sessions and across multiple connected AI tools. It distinguishes itself from sibling tools like memory_read and memory_list_rooms by being the write destination for durable knowledge.

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?

The description gives explicit when-to-use guidance: call proactively when the user states a preference, makes a decision, or reveals a durable fact, and don't wait to be asked. It also provides strong exclusions — never store passwords, API keys, payment data, MFA codes, government IDs, health records, or transient chatter — which helps an agent decide correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vault_listA
Read-onlyIdempotent
Inspect

List the secrets stored in your Mnemoverse Vault — by ALIAS and purpose only; the secret VALUE is never returned or shown to you, and no tool on this connector returns it. Use this to check WHICH secrets the user has stored and under what alias (e.g. the user says 'do I have a GitHub token saved?'). Only YOUR account's secrets are listed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
secretsYes

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly, idempotent, and non-destructive annotations, the description adds meaningful behavioral context: secret values are never returned, listing is limited to aliases and purposes, and account scoping applies. This gives the agent a clear model of the tool's safety and output boundaries.

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 concise and well-structured: the core purpose is front-loaded, followed by the key value-scoping caveat, then a concrete usage example. Each sentence contributes distinct, necessary information without redundancy.

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 zero-parameter list tool with an output schema and strong annotations, the description is fully adequate. It covers what is returned, what is explicitly not returned, the intended use case, and the account scope, leaving no critical ambiguity for an agent selecting or invoking the tool.

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?

The tool has zero parameters and schema coverage is 100%, so the baseline of 4 applies. There are no parameter semantics to add, and the description does not need to compensate for undocumented inputs.

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 clearly states the verb and resource: listing secrets stored in the Mnemoverse Vault. It further specifies that results are by ALIAS and purpose only and explicitly notes that the secret VALUE is never returned, which distinguishes it from any value-returning counterpart.

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?

It explicitly says when to use the tool: to check which secrets the user has stored and under what alias, with a concrete example. It also sets expectations by stating only the user's account secrets are listed and that no tool on the connector returns the secret value.

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.

  1. 2 tool updates
    • Changedmemory_feedback3 fields changed
      • removedInput schema / properties / atom_ids
        Removed value: -{
        -  "description": "Deprecated since 0.11, removed in 0.13: atom_ids is the old name of memory_ids, still accepted on its own until then. Pass memory_ids instead.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "minItems": 1,
        -  "type": "array"
        -}
      • changedInput schema / properties / memory_ids / description
        Previous value: -"Required: IDs of the memories to rate, the `id:` line of each memory_read result. (Optional in this schema only while the deprecated atom_ids is still accepted in its place.)"New value: +"IDs of the memories to rate, the `id:` line of each memory_read result."
      • changedInput schema / required
        Previous value: -[
        -  "outcome"
        -]New value: +[
        +  "memory_ids",
        +  "outcome"
        +]
    • Addedmemory_graph
  2. 10 tool updates
    • Changedmemory_create_room3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / description / description
        Previous value: -"Optional human description of the room."New value: +"Optional description of the room."
      • changedOutput schema / required
        Previous value: -[
        -  "room_id",
        -  "address",
        -  "name"
        -]New value: +[
        +  "room_id",
        +  "address"
        +]
    • Changedmemory_feedback9 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / atom_ids
        Added value: +{
        +  "description": "Deprecated since 0.11, removed in 0.13: atom_ids is the old name of memory_ids, still accepted on its own until then. Pass memory_ids instead.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
      • addedInput schema / properties / domain
        Added value: +{
        +  "description": "Only for memories read from a shared room: that room's address (xroom:...), exactly as you read it. Omit it for your own memories, which are rated by id alone.",
        +  "type": "string"
        +}
      • changedInput schema / properties / memory_ids / description
        Previous value: -"Personal-scope memory IDs from a prior memory_read. Shared-room IDs cannot currently be rated because this tool has no domain input."New value: +"Required: IDs of the memories to rate, the `id:` line of each memory_read result. (Optional in this schema only while the deprecated atom_ids is still accepted in its place.)"
      • removedInput schema / properties / memory_ids / items / format
        Removed value: -"uuid"
      • removedInput schema / properties / memory_ids / items / pattern
        Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
      • removedInput schema / properties / memory_ids / maxItems
        Removed value: -20
      • changedInput schema / properties / outcome / description
        Previous value: -"Outcome signal: -1.0 (failure) to +1.0 (success)."New value: +"How helpful was this? 1.0 = very helpful, 0 = neutral, -1.0 = harmful/wrong"
      • changedInput schema / required
        Previous value: -[
        -  "memory_ids",
        -  "outcome"
        -]New value: +[
        +  "outcome"
        +]
    • Changedmemory_invite_to_room6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / expires_in_days / description
        Previous value: -"Days until the invite expires (1-90, default 7)."New value: +"Days until the invite expires (default 7)."
      • changedInput schema / properties / max_uses / description
        Previous value: -"How many accounts may redeem the invite (1-1000, default 1)."New value: +"How many people may join with this invite (default 1, single-use)."
      • changedInput schema / properties / room_id / maxLength
        Previous value: -200New value: +100
      • changedInput schema / properties / scope / description
        Previous value: -"Role the invitee gets: 'read' or 'read_write' (default read_write)."New value: +"Role the invitee gets — 'read' or 'read_write' (default read_write)."
      • changedOutput schema / required
        Previous value: -[
        -  "code",
        -  "join_url",
        -  "share_message",
        -  "scope",
        -  "room_address",
        -  "expires_at"
        -]New value: +[
        +  "share_message"
        +]
    • Changedmemory_join_room2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedOutput schema / required
        Previous value: -[
        -  "room_id",
        -  "address",
        -  "name",
        -  "scope",
        -  "already_member",
        -  "next_steps"
        -]New value: +[
        +  "room_id",
        +  "address",
        +  "next_steps"
        +]
    • Changedmemory_list_recent13 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from the previous page's next_cursor — continues the listing without skips or duplicates."New value: +"Opaque cursor from a previous page's 'More older entries exist' line — continues the listing without skips or duplicates."
      • changedInput schema / properties / domain / description
        Previous value: -"Restrict to one namespace (e.g. a shared room address 'xroom:...'); omit for all."New value: +"Restrict to one domain. REQUIRED to read a shared room — pass its address ('xroom:room_01ABC'), because rooms are separate stores that an unscoped feed does NOT cover. Omit only when you mean your own domains. Room addresses come from memory_list_rooms. Room entries are often long — a room feed usually reaches its size budget after a handful of them, so expect to page (see `limit`)."
      • removedInput schema / properties / domain / maxLength
        Removed value: -100
      • changedInput schema / properties / exclude_author / description
        Previous value: -"Drop entries written by this author PRINCIPAL — the 'everyone but me' read in a shared room. Same parameter memory_read takes."New value: +"Drop entries written by this author PRINCIPAL. ⚠️ NOT USABLE FROM HERE YET — the principal is never shown in these results, so there is no value you can get through this tool; a guess like 'me' filters nothing, silently. Same caveat as on memory_read."
      • changedInput schema / properties / limit / description
        Previous value: -"Page size (default: 20). Newest first."New value: +"Most entries per page (default: 20). Newest first. ⚠️ A CEILING, not a promise: the page is ALSO bounded by size, so a page of long entries stops early and returns a cursor for the rest. In rooms whose entries run long, ask for 5–10 — a large `limit` there buys nothing the size budget will not take back, and costs round trips."
      • removedInput schema / properties / since / maxLength
        Removed value: -40
      • changedInput schema / properties / until / description
        Previous value: -"Only entries created at/before this ISO-8601 instant (inclusive). Pair with `since` to read a closed window — 'what happened on Monday' — instead of paging back from now and discarding."New value: +"Only entries created at/before this ISO-8601 instant (inclusive). Pair with `since` to read a closed window — 'what happened on Monday' — instead of paging back from now."
      • removedInput schema / properties / until / maxLength
        Removed value: -40
      • removedOutput schema / properties / items / items / properties / memory_id / format
        Removed value: -"uuid"
      • removedOutput schema / properties / items / items / properties / memory_id / pattern
        Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
      • changedOutput schema / properties / next_cursor / description
        Previous value: -"Pass back as cursor for the next (older) page; null = listing complete."New value: +"Pass back as cursor for the next (older) page; null = listing complete. Absent when the service sent a continuation token this client will not pass on; the text then says the token could not be displayed."
      • changedOutput schema / required
        Previous value: -[
        -  "items",
        -  "next_cursor"
        -]New value: +[
        +  "items"
        +]
    • Changedmemory_list_rooms2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedOutput schema / properties / rooms / items / required
        Previous value: -[
        -  "room_id",
        -  "name",
        -  "address",
        -  "role",
        -  "scope",
        -  "archived"
        -]New value: +[
        +  "room_id",
        +  "address",
        +  "role",
        +  "archived"
        +]
    • Changedmemory_read11 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / domain / description
        Previous value: -"Restrict recall to a single namespace, e.g. 'project:x' (default: all)."New value: +"Restrict the search to one domain namespace (e.g. 'project:acme'). Omitting it searches your OWN domains — it does NOT include shared rooms, which are separate stores: to search a room, pass its address here (e.g. 'xroom:room_01ABC'). Find room addresses with memory_list_rooms."
      • removedInput schema / properties / domain / maxLength
        Removed value: -100
      • changedInput schema / properties / exclude_author / description
        Previous value: -"Drop memories written by this author PRINCIPAL (the server-side identity, not shown in these results). Useful when your system knows principals; a self-exclusion shortcut is planned server-side."New value: +"Drop memories written by this author PRINCIPAL — the server-side identity. ⚠️ NOT USABLE FROM HERE YET: the principal is not shown in these results, so there is no value you can obtain through this tool, and a guess like 'me' silently matches nothing and filters nothing. Only pass it if your system knows the exact principal from elsewhere (e.g. the REST API). A self-exclusion shortcut is planned."
      • changedInput schema / properties / order_by / description
        Previous value: -"'relevance' (default) keeps ranking order; 'recency' re-sorts the matched set newest-first. For a complete newest-first listing without a search, use memory_list_recent."New value: +"'relevance' (default) = ranking order. 'recency' = the matched set re-sorted newest-first. For a complete newest-first feed with no search at all, use memory_list_recent instead."
      • changedInput schema / properties / query / description
        Previous value: -"Natural-language query for saved memories. Do not include passwords, API keys, payment data, MFA codes, government IDs, or health records."New value: +"Natural-language description of what you're looking for, e.g. 'database choice for the API' or 'user's preferred testing framework'."
      • changedInput schema / properties / since / description
        Previous value: -"Only memories created at/after this ISO-8601 instant (naive = UTC) — e.g. a last-seen watermark in a shared room."New value: +"Only memories created at/after this ISO-8601 instant (naive = UTC) — e.g. your last-seen watermark in a shared room."
      • changedInput schema / properties / top_k / description
        Previous value: -"Maximum number of memories to return (1-50, default 5)."New value: +"Requested number of results (default: 5, what this connector asks for when you omit it; the engine's own default of 10 never applies, because the field is always sent). ⚠️ Not a hard cap: association expansion can return MORE than this, and the relevance floor can return fewer — raising it does not reliably widen the result set. For a complete, exactly-bounded listing use memory_list_recent instead."
      • changedInput schema / properties / top_k / maximum
        Previous value: -50New value: +500
      • removedOutput schema / properties / items / items / properties / memory_id / format
        Removed value: -"uuid"
      • removedOutput schema / properties / items / items / properties / memory_id / pattern
        Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • Changedmemory_stats6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedOutput schema / properties / avg_importance
        Added value: +{
        +  "description": "Average importance of stored memories, on a scale from 0 to 1.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / avg_valence
        Added value: +{
        +  "description": "Average valence of stored memories: how well recalls turned out, on a scale from -1 to 1.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / episodes
        Added value: +{
        +  "description": "Number of episodic (not yet consolidated) memories.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / hebbian_edges
        Added value: +{
        +  "description": "Number of Hebbian concept-to-concept links, learned from concepts that occur together as memories are stored and used.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / prototypes
        Added value: +{
        +  "description": "Number of consolidated prototype memories.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedmemory_write7 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / concepts
        Added value: +{
        +  "description": "Key concepts for linking related memories (e.g. ['deploy', 'friday', 'staging'])",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 256,
        +  "type": "array"
        +}
      • changedInput schema / properties / content / description
        Previous value: -"The text to remember (1-10,000 chars). Do not store passwords, API keys, payment data, MFA codes, government IDs, or health records."New value: +"The memory to store as a self-contained statement, e.g. 'User prefers TypeScript strict mode' or 'Decided to deploy the API on Cloudflare Workers (2026-06)'."
      • changedInput schema / properties / domain / description
        Previous value: -"Namespace: 'general', 'user:X', 'project:Z' (default 'general')."New value: +"Namespace to organize memories (e.g. 'engineering', 'user:alice', 'project:acme'). Matched byte-for-byte — a leading space, a different case, or an invisible character opens a SEPARATE, permanent store, so reuse an exact name from memory_stats rather than retyping one. To write into a shared room, pass its address here instead (e.g. 'xroom:room_01ABC'). Find room addresses with memory_list_rooms."
      • removedOutput schema / properties / memory_id / anyOf
        Removed value: -[
        -  {
        -    "format": "uuid",
        -    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / memory_id / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / reason / description
        Previous value: -"The memory service's own explanation of this outcome, quoted as sent — when stored is false this is the ONLY statement of WHY, e.g. \"Below importance threshold (0.047 < 0.1)\". Ordinary text is preserved exactly; only control, bidi, zero-width, and repeated-whitespace characters are normalized before display. Absent when the service sent no explanation."New value: +"The memory service's own explanation of this outcome, quoted as sent — when stored is false this is the ONLY statement of WHY, e.g. \"Below importance threshold (0.047 < 0.1)\". Ordinary text is preserved exactly; only control, bidi, zero-width, and repeated-whitespace characters are normalized before display, and the value is capped at 400 characters. Absent when the service sent no explanation, or when nothing remains after that normalization."
    • Changedvault_list1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  3. 10 tool updates
    • First observedmemory_create_room
    • First observedmemory_feedback
    • First observedmemory_invite_to_room
    • First observedmemory_join_room
    • First observedmemory_list_recent
    • First observedmemory_list_rooms
    • First observedmemory_read
    • First observedmemory_stats
    • First observedmemory_write
    • First observedvault_list

Publisher details

Operator
Mnemoverse · Publisher source
Operator website
https://mnemoverse.com
Vendor relationship
First-party · Publisher source
Restrictions
Requires a free Mnemoverse account (OAuth sign-in on first connect). Free plan: 1,000 queries/day and 10,000 stored memories, no credit card. Paid Pro and Team plans raise the limits; Enterprise adds SSO/SAML and dedicated infrastructure. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides long-term memory for AI coding agents, enabling them to remember, search, and organize information across sessions and platforms like Claude Code, ChatGPT, and Cursor.
    13 npm
    8
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Persistent memory API for AI agents — store, recall, and inject semantically-searchable context across sessions. EU-hosted, GDPR-compliant. Supports Claude, Cursor, Cline, and any MCP-compatible client.
    4
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Living memory for AI coding agents (Claude Code, Cursor, Copilot, Codex). Cross-vendor persistent memory, decision recall, and outcome calibration via MCP and hooks.
    1,111 npm
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.