Skip to main content
Glama

Server Details

Persistent memory for AI agents — log and recall conversation context over MCP.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
maximem-ai/maximem_synap_sdk
GitHub Stars
48
Tool DescriptionsA

Average 4.5/5 across 4 of 4 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a clearly distinct operation: logging an exchange, recalling relevant context, listing recent memories, and checking async processing status. recall_context and list_recent_memories both read memory but are separated by semantic relevance versus recency/debugging, so there is no real ambiguity.

Naming Consistency5/5

All four names follow the same lowercase snake_case verb_noun pattern: check_, list_, log_, recall_. The action is predictable from the verb and the resource from the noun, making the set easy to navigate.

Tool Count5/5

Four tools is well-scoped for a memory server: write, recall, list, and status check. Each tool earns its place and there is no redundancy or bloat.

Completeness4/5

The core conversational memory workflow is covered end-to-end: log, recall, list, and confirm processing. The only notable gap is the lack of a delete/forget operation for memory management, but that does not break the primary use case.

Available Tools

4 tools
check_memory_statusAInspect

Check whether a logged exchange has finished processing. Pass the ingestion_id returned by log_exchange. Returns the processing status and how many memories were extracted. Useful to confirm a save completed (extraction is asynchronous). Takes no user_id or customer_id: an ingestion_id already identifies the write, so the identifier contract does not apply here.

ParametersJSON Schema
NameRequiredDescriptionDefault
ingestion_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does it well: it reveals asynchronous extraction, the returned information (status and memory count), and the identifier contract exception. It stops short of stating read-only behavior or error semantics, but the core behavior is transparent.

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 sentences, each earning its place: purpose, parameter source, return value, usage rationale, and identifier-contract exception. The most important information is front-loaded 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?

Given a single required parameter, an output schema that can carry return-value details, and sibling tools providing surrounding context, the description covers what an agent needs: what the tool does, when to use it, and how to obtain the parameter.

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?

Schema coverage is 0%, so the description must compensate, and it fully does. It tells the agent exactly where to get ingestion_id ('returned by log_exchange') and explains why no user_id or customer_id is needed, adding meaning far beyond the bare string schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with a specific verb and resource: 'Check whether a logged exchange has finished processing.' It clearly defines the tool's scope and differentiates it from siblings by clarifying that it takes no user_id or customer_id, since the ingestion_id already identifies the write.

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 situational guidance: use it to confirm a save completed because extraction is asynchronous, and pass the ingestion_id from log_exchange. It does not enumerate when-not-to-use alternatives, but the intended workflow is clear.

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

list_recent_memoriesAInspect

List recent things remembered about this user. Useful for debugging or to confirm that memory is working. Pass user_id to scope to one person. SCOPING: customer_id is B2B ONLY. On a B2B instance (user_context_isolation=strict) it is REQUIRED and a user_id on its own is an error. On a B2C instance (user_context_isolation=equals_customer) it is NOT accepted: the API rejects it with HTTP 400, customer-scoped retrieval does not exist there, and user_id is the whole identity. If you do not know which mode this instance is in, send user_id only and no customer_id; GET /api/v1/auth/whoami reports the mode as user_context_isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNoStable id of the end-user this call belongs to. On a B2C instance this is the ONLY identifier you send and it is the whole identity. On a B2B instance send it together with customer_id. Omit both if every conversation is the same single user.
customer_idNoB2B ONLY. Required on a B2B instance (user_context_isolation=strict), where a user_id on its own is an error. NOT accepted on a B2C instance (user_context_isolation=equals_customer): the API rejects it with HTTP 400 and there is no customer scope to read from. When in doubt leave this out and send user_id alone. GET /api/v1/auth/whoami reports the mode.
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

With no annotations available, the description carries the full burden, and it does impressively: it discloses B2B/B2C mode-specific error behavior (HTTP 400, rejected customer_id), explains that customer-scoped retrieval does not exist on B2C, and points to the whoami endpoint for determining the intended mode. This goes well beyond the schema and gives an agent a realistic picture of API behavior.

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 longer than average but front-loads the core purpose and then organizes scoping rules in a clear 'SCOPING' block. There is some repetition of the B2B/B2C rules, and it could be tightened, but each section contributes necessary operational detail.

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?

Given the complex authentication/scoping model, the description is quite complete: it explains when each parameter is valid, what errors occur, and how to resolve mode uncertainty. Since an output schema exists, return values do not need to be spelled out. It does not mention auth beyond instance mode, but the provided guidance is sufficient for selecting and invoking this 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?

Schema coverage is 67% and the description substantially enriches user_id and customer_id semantics by explaining mode-dependent rules, required combinations, and error cases. It does not add any meaning to max_results beyond the schema's default, which keeps this at a 4 rather than a 5.

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: 'List recent things remembered about this user.' It also adds the intended use case ('debugging or to confirm that memory is working'), which distinguishes it from the sibling tools like log_exchange and recall_context by focusing on inspecting what was already stored.

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 when-to-use guidance ('useful for debugging or to confirm that memory is working') and provides extensive conditional rules about when to include or omit customer_id based on instance mode. It does not explicitly compare against sibling alternatives, so it misses the full 'alternatives' aspect for a 5.

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

log_exchangeAInspect

After each user message, send the exchange here so it can be remembered. You do not need to decide what is important, just forward the user message (and your reply, if you have one) and Synap will keep what matters. If your app serves more than one end-user, pass that person's stable id as user_id so each person's memory stays separate; if every conversation is the same single user, omit it. SCOPING: customer_id is B2B ONLY. On a B2B instance (user_context_isolation=strict) it is REQUIRED and a user_id on its own is an error. On a B2C instance (user_context_isolation=equals_customer) it is NOT accepted: the API rejects it with HTTP 400, customer-scoped retrieval does not exist there, and user_id is the whole identity. If you do not know which mode this instance is in, send user_id only and no customer_id; GET /api/v1/auth/whoami reports the mode as user_context_isolation. Logging is fire-and-forget by default; set wait_for_processing=true only when you need to confirm the memory finished extracting before continuing.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNoStable id of the end-user this call belongs to. On a B2C instance this is the ONLY identifier you send and it is the whole identity. On a B2B instance send it together with customer_id. Omit both if every conversation is the same single user.
customer_idNoB2B ONLY. Required on a B2B instance (user_context_isolation=strict), where a user_id on its own is an error. NOT accepted on a B2C instance (user_context_isolation=equals_customer): the API rejects it with HTTP 400 and there is no customer scope to read from. When in doubt leave this out and send user_id alone. GET /api/v1/auth/whoami reports the mode.
user_messageYes
conversation_idNo
assistant_messageNo
wait_for_processingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

No annotations are provided, so the description carries the full burden. It discloses fire-and-forget logging, the meaning of wait_for_processing, and concrete failure modes including HTTP 400 on B2C and the invalid user_id-only case on B2B.

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?

Although long, it is front-loaded with the core purpose and every subsequent sentence carries meaningful scoping or behavioral guidance. The SCOPING block is dense but necessary given the mode-dependent behavior, and there is no filler.

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?

For a 6-parameter tool with no annotations, this description covers the required call pattern, optional parameters, async behavior, error conditions, and mode detection. An output schema exists, so return-value explanation is not needed. The only meaningful gap is conversation_id, which is undocumented in both the schema and description.

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 only 33%, and the description compensates for most parameters: user_message and assistant_message contents, user_id omission rule, customer_id B2B-only behavior, and wait_for_processing semantics. However, conversation_id is never mentioned in the description or schema, leaving that parameter unexplained.

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 'send the exchange here so it can be remembered', clearly identifying this as the memory-write action. It distinguishes itself from sibling read-only tools like check_memory_status and recall_context by orienting the agent toward logging rather than retrieving.

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 to use this after every user message and tells the agent not to judge importance. It gives precise when-to-use rules for user_id and customer_id based on instance mode, how to resolve ambiguity via GET /api/v1/auth/whoami, and when to set wait_for_processing.

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

recall_contextAInspect

Before replying, call this to recall anything already known about this user from past conversations. Use the user's latest message as the query. If you serve multiple end-users, pass the same user_id you log with so you recall the right person's memory. SCOPING: customer_id is B2B ONLY. On a B2B instance (user_context_isolation=strict) it is REQUIRED and a user_id on its own is an error. On a B2C instance (user_context_isolation=equals_customer) it is NOT accepted: the API rejects it with HTTP 400, customer-scoped retrieval does not exist there, and user_id is the whole identity. If you do not know which mode this instance is in, send user_id only and no customer_id; GET /api/v1/auth/whoami reports the mode as user_context_isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
user_idNoStable id of the end-user this call belongs to. On a B2C instance this is the ONLY identifier you send and it is the whole identity. On a B2B instance send it together with customer_id. Omit both if every conversation is the same single user.
customer_idNoB2B ONLY. Required on a B2B instance (user_context_isolation=strict), where a user_id on its own is an error. NOT accepted on a B2C instance (user_context_isolation=equals_customer): the API rejects it with HTTP 400 and there is no customer scope to read from. When in doubt leave this out and send user_id alone. GET /api/v1/auth/whoami reports the mode.
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does meaningful work: it explains that customer_id is B2B-only, that a B2C instance rejects it with HTTP 400, and that GET /api/v1/auth/whoami reports the mode. This goes well beyond a generic recall description. It stops short of stating read-only/no-side-effects explicitly, but the usage context makes that reasonably safe to infer.

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 content is dense and every sentence serves a purpose. The earlier paragraphs carry the core usage, and the scoping details appear later. It is a single long paragraph and could benefit from bullets for the B2B/B2C modes, but it is still appropriately sized for the complexity.

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?

For a recall tool with mode-dependent scoping, the description covers the when, the query, the identity, the failure modes, and how to disambiguate the instance mode. An output schema exists so return shape is covered. The only notable gap is max_results semantics, but it is optional and its title is reasonably self-explanatory.

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?

The description adds substantial semantics for query, user_id, and customer_id, especially the B2B/B2C distinction and which identifier to send. However, max_results is not mentioned anywhere, and the schema only gives it a type and default, leaving its effect unexplained. With schema description coverage at 50%, the description compensates for most but not all parameters.

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 verb and resource: 'call this to recall anything already known about this user from past conversations'. This is specific and naturally distinguishes recall from the sibling tools (status check, listing, logging). It also adds the timely behavior 'before replying', which sharpens the purpose.

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

Usage Guidelines4/5

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

It gives explicit usage direction: call before replying, use the latest message as the query, pass the same user_id you log with, and fall back to user_id-only when the instance mode is unknown. It does not explicitly name alternatives such as list_recent_memories or check_memory_status, so the when-not-to-use guidance is limited.

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

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

  • Persistent memory for AI agents across Claude, ChatGPT and any MCP client.

  • Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.

  • Persistent personal memory for AI assistants — save, search, and recall across every MCP client.

  • Persistent memory for AI agents with OAuth-backed hosted MCP access.

View all MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Persistent memory MCP server for AI agents that stores, recalls, and searches conversation history, key-value context, and long-term entries across sessions with semantic search and FIFO queues.
    75
    1
    Unlicense - libtelnet variant
  • A
    license
    A
    quality
    D
    maintenance
    Provides persistent memory with semantic search for MCP-based AI agents, enabling them to store and recall information across sessions using vector embeddings.
    4
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides persistent, local-first AI memory across sessions via MCP tools for storing, searching, and retrieving context from past interactions.
    1
    MIT

View all MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.