Skip to main content
Glama

Server Details

Long-term memory for AI agents: learns what is true about each person and answers with sources.

Ownership verified
Status
Healthy
Uptime
69.2% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have clearly distinct purposes: writing raw messages vs writing explicit facts, answering questions vs returning evidence, listing facts vs getting a peer card. Some overlap remains between chat and search, and between list_conclusions and search when a peer is involved, but the descriptions make the intended use cases clear.

Naming Consistency3/5

The set is mostly snake_case with verb_noun names, but 'chat' and 'search' are bare verbs while others are descriptive phrases. Pluralization is also inconsistent: create_conclusions and list_conclusions use plural, while delete_conclusion uses singular.

Tool Count5/5

Eight tools is well-scoped for a memory service, with each tool covering a distinct operation: ingest messages, create/delete/list conclusions, chat, search, get peer card, and get session context. No obvious redundancy or missing core action.

Completeness4/5

The surface covers ingestion, retrieval, deletion, and context assembly well. Minor gaps include no update conclusion operation (must delete and recreate) and no explicit message or session deletion, but agents can work around these.

Available Tools

8 tools
add_messages_to_sessionRecord messagesAInspect

Store specific messages the user wants kept, as they were said, so memory can learn from them. Send only those messages, never the conversation history. Creates the session and the speakers on first use; learning runs in the background, so do not wait for it. Pass idempotency_key when a retry is possible, so the same batch is never stored twice.

NameRequiredDescriptionDefault
messagesYesMessages in the order they were said.
session_idNoConversation to record into. Reuse one id per conversation. Defaults to this connection's session when it has one.
workspace_idNoWorkspace to use. Defaults to this connection's workspace.
idempotency_keyNoAny unique string; a repeated call with the same key returns the first result.

Output Schema

NameRequiredDescription
storedYesMessages stored by this call.
messagesYes
replayedYesTrue when an idempotent retry returned the first result.
session_idYes

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing side effects (it creates the session and speakers on first use), asynchronous behavior (learning runs in the background, do not wait), and idempotency mechanics (a repeated key returns the first result). This is exactly the kind of mutation/async context an agent needs and cannot get from the structured fields.

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?

Four tightly packed sentences, front-loaded with the core action and scoping rule, then side effects, then the idempotency instruction. No filler, and each sentence carries a distinct operational instruction.

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, the description need not explain return values, and it fully covers scoping, side effects, async behavior, and retry handling for this 4-param mutation tool. Nothing an agent needs to call it 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 coverage is 100%, so the baseline is 3, but the description adds usable meaning: it explains the timing/purpose of idempotency_key ('when a retry is possible') and constrains what should go into messages. It does not add format/syntax detail, but the added semantic value above the schema is real.

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 ('Store specific messages... so memory can learn from them') and scopes it precisely to messages the user wants kept. The 'never the conversation history' clause distinguishes it from a general chat/history tool, so an agent can tell it apart from siblings like chat or search.

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?

Gives clear when/when-not guidance: send only the messages to keep, never the conversation history, and pass idempotency_key when a retry is possible. It also tells the caller not to wait for learning. It does not name a specific sibling as the alternative, but the conditions for correct use are explicit.

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

chatAsk memoryA
Read-onlyIdempotent
Inspect

Ask memory a natural-language question and get a written answer grounded in what was recorded, e.g. "Where does the user live?" or "What did we decide about the launch date?". Says so when memory does not know. Read-only.

NameRequiredDescriptionDefault
queryYesThe question.
peer_idNoWhose memory to consult (the observer). Defaults to this connection's user.
session_idNoPrefer this conversation's messages. Defaults to this connection's session when it has one.
workspace_idNoWorkspace to use. Defaults to this connection's workspace.
target_peer_idNoAsk what peer_id knows about this other peer. Defaults to peer_id itself.
reasoning_levelNoHow hard to think. minimal/low are fast and cheap; high/max dig deeper. Default low.
include_evidenceNoReturn the facts and messages the answer rests on, as JSON.

Output Schema

NameRequiredDescription
contentYesThe answer.
evidenceNo
abstainedNoTrue when memory did not know.
citationsNo
confidenceNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful behavior beyond that: answers are grounded in recorded data, and the tool explicitly says so when it does not know (abstention behavior). It omits any note about latency/cost of deeper reasoning, but the core behavior is 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 with illustrative examples and the read-only guarantee front-loaded; no filler. Every clause carries information useful for selection.

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?

With an output schema present and annotations covering the safety profile, the description need not explain return values or permissions. It covers purpose, grounding, and abstention adequately for a 7-parameter tool; only explicit sibling routing 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%, so the schema already documents all seven parameters, including the non-obvious peer_id/target_peer_id relationship, defaults, and the reasoning_level enum. The description adds nothing beyond this, so the baseline 3 applies.

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 action and resource: ask memory a natural-language question and receive a written, grounded answer. The examples ("Where does the user live?") make the resource and output shape concrete. It does not explicitly distinguish itself from the sibling `search`, though the NL-question framing implicitly separates it.

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?

Usage is implied through the examples and the read-only framing, but there is no explicit when-to-use guidance or routing against alternatives in the sibling set (`search`, `get_peer_card`, `list_conclusions`). An agent can infer intent but is not told when this beats a plain search.

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

create_conclusionsSave factsAInspect

Save facts you were told outright, so memory has them straight away (for example "Prefers vegetarian food" or "Is moving to Berlin in March"). Write each as a short, self-contained statement. Creates the peers on first use.

NameRequiredDescriptionDefault
peer_idNoWho holds the belief (the observer). Defaults to this connection's user.
session_idNoFile the facts under this conversation.
conclusionsYesOne fact per entry.
workspace_idNoWorkspace to use. Defaults to this connection's workspace.
target_peer_idNoWho the facts are about. Defaults to peer_id itself.

Output Schema

NameRequiredDescription
createdYes
conclusionsYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare this is a write (readOnlyHint=false), non-idempotent, non-destructive. The description adds real behavioral context beyond them: "Creates the peers on first use" discloses a side effect (peer creation) an agent could not infer otherwise.

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?

Two tight sentences, front-loaded with the purpose and followed by concrete examples and formatting guidance. No filler; the examples earn their space by clarifying what counts as a fact.

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?

An output schema exists, so return values need no explanation. The description covers purpose, content format, and the peer-creation side effect, and the schema covers the optional session/workspace/peer parameters; only explicit sibling routing is absent.

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%, so all five parameters are already documented, making 3 the baseline. The description adds a little meaning — each conclusion should be a "short, self-contained statement" — but this is content-format advice rather than parameter clarification.

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 and resource ("Save facts") with a concrete scope constraint ("facts you were told outright") and examples. It does not explicitly distinguish itself from siblings like add_messages_to_session or list_conclusions, so a 4 rather than 5.

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?

Provides an implicit trigger — facts the user stated outright, as opposed to inferring them — and hints at timing ("so memory has them straight away"). However, it names no alternative tool and gives no explicit when-not-to-use guidance.

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

delete_conclusionDelete a factA
DestructiveIdempotent
Inspect

Permanently remove one conclusion that is wrong or that the user asked to forget. This cannot be undone, so confirm with the user first. Get the id from list_conclusions or search.

NameRequiredDescriptionDefault
workspace_idNoWorkspace to use. Defaults to this connection's workspace.
conclusion_idYesThe id of the conclusion to delete.

Output Schema

NameRequiredDescription
deletedYesThe deleted conclusion's id.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds genuinely new context: the deletion is irreversible ('cannot be undone') and requires user confirmation before executing. It does not cover auth/permission requirements or failure modes, keeping it short of a 5.

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 short sentences, no waste, with the destructive nature front-loaded before the confirmation instruction and the id sourcing. Every sentence earns its place.

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?

Output schema exists, so return values need not be explained. For a two-parameter destructive mutation, the description covers permanence, confirmation, and argument sourcing – nothing an agent needs to invoke it 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 both parameters are already documented and the baseline is 3. The description goes beyond the schema by naming the tools (list_conclusions, search) that supply the required conclusion_id, adding practical meaning to the parameter.

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 (permanently remove) and resource (one conclusion), plus the qualifying conditions (wrong or user-requested forgetting). An agent can distinguish it from create_conclusions, list_conclusions, and search without opening any 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?

Explicitly says when to use it (conclusion is wrong, or the user asked to forget), mandates confirming with the user first, and routes the agent to list_conclusions or search to obtain the required id. Both the when and the how-to-source-the-argument are covered.

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

get_peer_cardGet peer cardA
Read-onlyIdempotent
Inspect

Get the peer card: a short list of the most stable facts about a person (name, location, role, preferences). Cheap; a good first call. Returns null when there is no card yet. Read-only.

NameRequiredDescriptionDefault
peer_idNoThe person whose memory holds the card. Defaults to this connection's user.
workspace_idNoWorkspace to use. Defaults to this connection's workspace.
target_peer_idNoGet peer_id's card about this other peer instead of about themself.

Output Schema

NameRequiredDescription
noteNoSet when memory has nothing to go on yet.
peer_idYes
peer_cardYes
target_peer_idYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the 'Read-only' clause is redundant. What the description adds beyond the structured data is genuinely useful: it discloses that the call is cheap, that it is a sensible first call, and that it returns null when no card exists yet — a non-obvious return 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?

Three tight clauses, front-loaded with the verb and resource definition, followed by cost/ordering guidance and the null-return caveat. No filler sentences and nothing repeated from 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?

An output schema exists, so return structure need not be described, yet the description still flags the null case. With annotations covering the safety profile and full schema coverage on all three parameters, an agent has everything needed to call this 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%, and the schema already explains peer_id, workspace_id defaults, and the target_peer_id indirection in detail. The description adds no parameter-level semantics beyond that, 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?

States a specific verb and resource ('Get the peer card') and immediately defines what the resource is: 'a short list of the most stable facts about a person (name, location, role, preferences).' That content definition cleanly separates it from siblings like search, list_conclusions, or get_session_context, none of which return a per-person fact card.

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?

'Cheap; a good first call' gives an explicit ordering heuristic for when to reach for this tool, which is real routing guidance. It stops short of naming alternatives or stating when not to use it (e.g., when you need richer context, use get_session_context), so it is clear but not exhaustive.

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

get_session_contextGet session contextA
Read-onlyIdempotent
Inspect

Get what you need to continue a conversation in one call, sized to a token budget: a summary of older turns, the most recent messages, and (with a peer) what memory knows about that person plus their peer card. Drop the result into your prompt. Read-only.

NameRequiredDescriptionDefault
tokensNoToken budget for the whole result (default: everything, up to 100000).
summaryNoInclude a summary of older turns (default true).
session_idNoThe conversation. Defaults to this connection's session when it has one.
peer_targetNoThe person to include the representation and card of. Defaults to this connection's user.
search_queryNoBias the representation towards facts relevant to this text.
workspace_idNoWorkspace to use. Defaults to this connection's workspace.
limit_to_sessionNoOnly use facts learned in this conversation.
peer_perspectiveNoView the target through this other peer's memory instead of its own.

Output Schema

NameRequiredDescription
noteNoSet when memory has nothing to go on yet.
summaryYes
messagesYes
peer_cardYes
session_idYes
peer_representationYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and non-open-world, so the trailing 'Read-only' is largely redundant. The description does add that output is sized to a token budget and is prompt-ready, which is useful, but it omits default behaviors driven by the optional params (summary default true, session/peer defaults).

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?

Two dense, front-loaded sentences enumerate the payload first, and the takeaway ('Drop the result into your prompt') follows immediately. The trailing 'Read-only.' fragment is slightly redundant against the annotations but costs almost nothing.

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?

An output schema exists, so return values need no prose, and annotations cover the safety profile. The description adequately frames what the call assembles for a zero-required-param aggregation tool, though it could have flagged the default-behavior interactions of summary and peer_target.

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 schema already documents all eight parameters, including defaults and bounds. The description echoes token budget, summary, and optional peer presence but adds no syntax or format detail beyond the schema, so 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 concrete verb (Get) and enumerates the exact resource payload: a summary of older turns, recent messages, and the peer representation plus peer card. This distinguishes it from siblings like get_peer_card and search, which return only fragments of the same data.

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?

It implies usage ('to continue a conversation', 'Drop the result into your prompt') and hints that peer data only appears 'with a peer', but never states when to prefer this over get_peer_card, search, or chat, nor any exclusions. Usage is inferable but not explicit.

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

list_conclusionsList conclusionsA
Read-onlyIdempotent
Inspect

List the facts (conclusions) memory holds about a person, newest first, or the best matches for a query. Each has an id you can pass to delete_conclusion. Read-only.

NameRequiredDescriptionDefault
pageNoPage number, from 1.
sizeNoItems per page (default 20).
queryNoReturn the best matches for this text instead of a plain listing.
filtersNoExtra filters, e.g. {"level": "explicit"}.
peer_idNoThe observer whose memory to read. Defaults to this connection's user.
reverseNoOldest first instead of newest first.
session_idNoOnly facts learned in this conversation.
workspace_idNoWorkspace to use. Defaults to this connection's workspace.
target_peer_idNoFacts peer_id holds about this other peer. Defaults to peer_id itself.

Output Schema

NameRequiredDescription
noteNoSet when memory has nothing to go on yet.
itemsYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so 'Read-only' in the description is largely redundant. The description does add one genuinely useful cross-tool fact: returned ids can be passed to delete_conclusion. No mention of pagination defaults beyond what the schema carries.

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?

Two tightly written sentences, front-loaded with the resource and ordering, with the delete-tip last. 'Read-only' is the only phrase that duplicates annotation data rather than earning its place.

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?

An output schema exists, so return values need not be described, and all nine parameters are documented in the schema. The description covers the two modes adequately; only the ambiguous boundary with the `search` sibling is left unaddressed.

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 all nine parameters (including peer_id, target_peer_id, reverse, session_id) are already documented in the schema. The description echoes the query and ordering behavior but adds no syntax or default details beyond the schema, so the baseline 3 applies.

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+resource ('list the facts/conclusions') plus scope ('about a person, newest first, or best matches for a query'), so the two operating modes are clear. It does not, however, differentiate from the sibling `search`, which likely covers overlapping query semantics.

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?

Describes the two modes (plain listing vs query match) and notes the id feeds delete_conclusion, which implies usage. But it gives no explicit when-to-use/when-not guidance against alternatives like `search` or `get_peer_card`, leaving the agent to infer routing.

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. 8 tool updates
    • First observedadd_messages_to_session
    • First observedchat
    • First observedcreate_conclusions
    • First observeddelete_conclusion
    • First observedget_peer_card
    • First observedget_session_context
    • First observedlist_conclusions
    • First observedsearch

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides persistent long-term memory for AI agents through semantic search and automated knowledge graph extraction. It enables agents to store, recall, and reason over facts, preferences, and relationships across multiple conversations and sessions.
    14
    3 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with persistent, searchable memory that survives across conversations using semantic search, temporal versioning, and smart organization. Enables long-term context retention and cross-session continuity for AI assistants.
    14
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources