Recalld (EU)
Server Details
Hosted long-term memory for AI agents via MCP. Recalld updates facts as information changes and retrieves relevant context. Connect with a Recalld EU account.
- Status
- Healthy
- Uptime
- 99.4% over 42 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
memory_recall and memory_search are the closest pair, but the descriptions clearly separate them (LLM-synthesized answer vs. raw embedding matches), and memory_filters is explicitly framed as a prerequisite helper for the other two. No two tools appear to do the same thing, though the recall/search distinction requires reading past the names.
All four tools share a consistent snake_case `memory_` prefix, making the server's scope immediately obvious. The only minor deviation is `memory_filters`, a plural noun rather than a verb, but it reads naturally as a listing operation.
Four tools is on the lean side but well matched to a narrow memory-retrieval domain: write, filtered lookup, semantic recall, and metadata discovery. Nothing feels redundant or padded, though the surface is thin enough that any missing operation is noticeable.
The read path is well covered (filters, search, recall) and ingestion exists via memory_add, but there is no way to update, delete, or forget a memory, and no operation to fetch a specific stored fact by id. Agents that need to correct bad memories or clean up stale data will hit a dead end.
Available Tools
4 toolsmemory_addAInspect
Ingest content into memory (conversation or document inputs). Agent is fixed by the OAuth connection.
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | Yes | content items to ingest | |
| task_id | No | optional shared task id; include findings in the task memory pool visible to other agents on the same task | |
| thread_id | No | optional free-form conversation/session label; reuse the same value to group memories within one session, omit for agent-wide memory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It adds the constraint that the agent is fixed by the OAuth connection, which is useful context. However, it does not mention side effects beyond 'ingest', the persistence behavior, whether it is idempotent, or any restrictions on inputs (e.g., the 'deleted' field hints at deletion handling, but the description does not explain it). It provides some behavioral context but leaves important traits undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and contains no filler. The addendum about OAuth is relevant and concise. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only 3 top-level parameters, the 'inputs' parameter is a nested array with several fields (kind, path, author, content, deleted, event_date, content_type). The description does not explain the expected structure or constraints (e.g., valid values for 'kind' or 'content_type'), nor does it mention return values or error behavior (no output schema). The tool's complexity warrants a more detailed description to guide an agent on correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all top-level parameters (inputs, task_id, thread_id) with descriptions, so the baseline is 3. The description adds a note about 'conversation or document inputs' which loosely maps to the 'inputs' argument, but does not explain the nested structure or the meaning of 'kind' or 'content_type' beyond what the schema provides. The description adds marginal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Ingest content into memory') and specifies the resource and input type ('conversation or document inputs'). The verb 'ingest' distinguishes it from sibling tools (memory_search, memory_recall, memory_filters) which are clearly for retrieval/filtering, not adding. Purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for adding content and siblings are for querying, but it does not explicitly state when to use this vs alternatives or when not to use it. There is no mention of 'use this for adding, memory_search for finding' or any exclusion context. Guidance is implied by the verb and the sibling names but not made explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_filtersAInspect
List the source kinds, authors and document paths this agent holds. Call it before passing source_kind, author or path to memory_recall or memory_search, so the filter matches something.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | No | optional session label; restrict to one session, omit for every session |
TDQS
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 transparently states the output content (source kinds, authors, paths) and the verb 'List' implies a read-only operation. It does not explicitly mention side-effect-free or scope limitations, but for a simple listing tool the behavior is clear enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. The purpose is front-loaded, and the usage guidance follows immediately. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers purpose, output content, and when to use it. It does not describe the exact response format, but the stated content and intended usage are sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the only parameter, thread_id, fully describing it as optional and session-restricting. The description adds no additional parameter meaning, which matches the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List the source kinds, authors and document paths this agent holds.' This clearly distinguishes it from siblings like memory_recall and memory_search, which retrieve memories, and memory_add, which writes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: 'Call it before passing source_kind, author or path to memory_recall or memory_search, so the filter matches something.' This tells the agent exactly when to invoke the tool and why, with no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_recallBInspect
Recall relevant facts for a query using LLM-assisted selection. Returns a concise answer from stored memory.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | optional; only use memory from this one document or file, e.g. contract-b.pdf; call memory_filters for the available values | |
| limit | No | maximum results to return | |
| query | Yes | natural language query | |
| scope | No | thread (default) searches this session plus memory not tied to a session; agent searches every session for the agent | |
| author | No | optional; only use memory produced by this author, matched case-insensitively; call memory_filters for the available values | |
| task_id | No | optional shared task id; also search facts stored in that task's shared pool | |
| thread_id | No | optional free-form conversation/session label; reuse the same value to scope recall/search to one session, omit to read only memory that is not tied to a session | |
| source_kind | No | optional; only use memory from sources of this kind: SYSTEM, USER, AGENT, TOOL, DOCUMENT or CODE | |
| include_sources | No | optional; also return the original source text behind the returned facts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose one genuinely useful behavioral trait — retrieval is LLM-assisted selection, implying non-deterministic, possibly slower/costlier behaviour — and that output is a synthesized answer rather than raw facts. Missing are latency/cost implications, whether answers are grounded in the stored text, and how it behaves when nothing matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero repetition, with the mechanism front-loaded before the return-value note. Nothing could be removed without losing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no annotations, no output schema, and three siblings, the description is minimal: it never clarifies the memory_search vs memory_recall split, nor what happens across the default thread scope versus agent scope. The schema covers parameters well, which limits the damage, but routing context is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters are already documented in structured form, including scope defaults, filter lookups via memory_filters, and include_sources. The description adds nothing about parameters and does not cover the default scope semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("recall relevant facts for a query") and adds a distinguishing mechanic (LLM-assisted selection) that implies synthesis rather than raw retrieval. It never names the closest sibling, memory_search, so the agent cannot be fully certain which retrieval tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no exclusions, and no mention of the three siblings (memory_add, memory_filters, memory_search). The agent must infer from the phrase "concise answer" that this is the synthesized-recall path versus raw search, which is a guess rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_searchBInspect
Search memory using embedding retrieval without LLM selection. Returns multiple matching facts for the agent to digest.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | optional; only use memory from this one document or file, e.g. contract-b.pdf; call memory_filters for the available values | |
| limit | No | maximum results to return | |
| query | Yes | natural language query | |
| scope | No | thread (default) searches this session plus memory not tied to a session; agent searches every session for the agent | |
| author | No | optional; only use memory produced by this author, matched case-insensitively; call memory_filters for the available values | |
| task_id | No | optional shared task id; also search facts stored in that task's shared pool | |
| thread_id | No | optional free-form conversation/session label; reuse the same value to scope recall/search to one session, omit to read only memory that is not tied to a session | |
| source_kind | No | optional; only use memory from sources of this kind: SYSTEM, USER, AGENT, TOOL, DOCUMENT or CODE | |
| include_sources | No | optional; also return the original source text behind the returned facts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the retrieval mechanism and that multiple matching facts come back, which is useful behavioral context. It does not say whether results are ranked, deduplicated, truncated by limit, or how include_sources affects payload size, leaving notable gaps for a read operation with nine parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, mechanism first, return shape second, with no filler. The closing clause 'for the agent to digest' is mildly decorative but does convey the multi-fact return nature.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Nine parameters with non-trivial scoping (thread vs agent, task pools, source kinds) are fully documented in the schema, and no output schema exists, so the description should say more about what the returned facts look like. It gestures at multiplicity but omits ranking, format, and result-size behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the scope/thread_id semantics and memory_filters pointer, so the schema does the heavy lifting. The description adds no parameter-level meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (search memory) plus the mechanism (embedding retrieval, no LLM selection), which implicitly separates it from memory_recall's LLM-based selection. It never names the sibling, so the differentiation is left partly to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without LLM selection' hints at when this is preferred over memory_recall, but there is no explicit when-to-use or when-not-to-use guidance and memory_add/memory_filters are not addressed. Usage must be inferred from the mechanism description.
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.
2 tool updates
- Changed
memory_recall2 fields changed- added
Input schema / properties / include_sourcesAdded value: +{ + "description": "optional; also return the original source text behind the returned facts", + "type": "boolean" +} - removed
Input schema / properties / modeRemoved value: -{ - "description": "facts (default) or sources", - "type": "string" -}
- Changed
memory_search2 fields changed- added
Input schema / properties / include_sourcesAdded value: +{ + "description": "optional; also return the original source text behind the returned facts", + "type": "boolean" +} - removed
Input schema / properties / modeRemoved value: -{ - "description": "facts (default) or sources", - "type": "string" -}
4 tool updates
- First observed
memory_add - First observed
memory_filters - First observed
memory_recall - First observed
memory_search
Related MCP Connectors
Hosted long-term memory for AI agents via MCP. Recalld updates facts as information changes and retrieves relevant context. Connect with a Recalld US account.
Hosted memory for AI agents over MCP. One memory shared by all your agents.
Hosted agent memory: store, search, and recall facts across sessions from any MCP client.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to store and semantically retrieve durable memories across sessions via MCP or REST, with tools for remembering, recalling, asking, updating, and forgetting memories.13 npmMIT
- AlicenseAqualityDmaintenancePersistent 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.42MIT
- AlicenseAqualityDmaintenancePersistent memory for AI agents. Store, recall, and share knowledge across sessions with five MCP tools: remember, recall, context, forget, and share. Includes semantic search and agent/user/org scoping.53Apache 2.0
- AlicenseNot gradedqualityDmaintenancePersistent memory for AI agents. Store and semantically search memories via REST API or MCP. Free tier available.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.