memory-mcp
The memory-mcp server provides a persistent memory service for Claude Code, enabling automatic saving, recall, and semantic search of conversation context, decisions, preferences, and knowledge entities across sessions.
Episode Management
Start, close, and archive conversation sessions (episodes) with tags and auto-generated summaries
Get the currently active episode, list all historical episodes, or retrieve full details (messages + linked entities) of a specific episode
Knowledge Entity Management
Add, confirm, reject, or deprecate knowledge entities of types:
Decision,Preference,Concept,Habit,File, orArchitectureList pending auto-detected entity candidates awaiting review
Memory Retrieval & Search
Semantic search across all stored episodes and entities using natural language queries
Filter entity searches by type (e.g., all Decisions or Preferences)
Message Caching
Manually cache user or assistant messages (with automatic entity detection)
Clear the entire cache or clean up messages older than a specified number of days
System & Status
Retrieve system statistics (episodes, entities, etc.) and check vector encoder status
Automatic Context Management When configured with Claude Code hooks, it automatically saves messages, recalls relevant memories, and injects context into ongoing conversations.
Dual-Layer Storage Supports both user-level (shared across projects) and project-level (isolated per project) memory storage.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@memory-mcprecall what we discussed about authentication"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Memory MCP Service
A persistent memory MCP service for Claude Code. Automatically saves conversations and retrieves relevant history across sessions.
What it does: Every time you chat with Claude Code, your conversation context (decisions, preferences, key discussions) is saved and automatically recalled in future sessions — so Claude always has the background it needs.

Quick Start
Prerequisites
Install uv (Python package runner):
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Mac/Linux
curl -LsSf https://astral.sh/uv/install.sh | shRequires Python 3.10 - 3.13 (chromadb is not compatible with Python 3.14+).
1. Initialize (First Time Only)
Download the vector model (~400MB, one-time):
uvx --from chenxiaofie-memory-mcp memory-mcp-init2. Add MCP Server to Claude Code
claude mcp add memory-mcp -s user -- uvx --from chenxiaofie-memory-mcp memory-mcp3. Configure Hooks (Recommended)
Hooks enable fully automatic message saving. Without hooks, you need to manually call memory tools.
Add the following to ~/.claude/settings.json:
{
"hooks": {
"SessionStart": [{
"matcher": ".*",
"hooks": [{ "type": "command", "command": "uvx --from chenxiaofie-memory-mcp memory-mcp-session-start" }]
}],
"UserPromptSubmit": [{
"matcher": ".*",
"hooks": [{ "type": "command", "command": "uvx --from chenxiaofie-memory-mcp memory-mcp-auto-save" }]
}],
"Stop": [{
"matcher": ".*",
"hooks": [{ "type": "command", "command": "uvx --from chenxiaofie-memory-mcp memory-mcp-save-response" }]
}],
"SessionEnd": [{
"matcher": ".*",
"hooks": [{ "type": "command", "command": "uvx --from chenxiaofie-memory-mcp memory-mcp-session-end" }]
}]
}
}4. Verify
claude mcp listYou should see memory-mcp: ... - ✓ Connected.
That's it! Start a new Claude Code session and your conversations will be automatically saved and recalled.
Related MCP server: claude-memory-mcp
How It Works
Session Start ──► Create Episode ──► Monitor Process (background)
│
User Message ──► Save Message ──► Recall Related Memories ──► Inject Context
│
Claude Reply ──► Save Response │
│
Session End ──► Close Signal ──► Archive Episode + Generate SummaryEpisodes: Each conversation session is an "episode" with auto-generated summaries
Entities: Key knowledge extracted from conversations (decisions, preferences, concepts)
Dual-layer storage: User-level (shared across projects) + Project-level (isolated per project)
Semantic search: Vector-based retrieval finds relevant past context
Usage
Automatic Mode (With Hooks)
Once hooks are configured, everything is automatic. Claude will see relevant history from past sessions as context.
Manual Mode
You can also call memory tools directly in Claude Code:
# Start a new episode
memory_start_episode("Login Feature Development", ["auth"])
# Record a decision
memory_add_entity("Decision", "Use JWT + Redis", "For distributed deployment")
# Search history
memory_recall("login implementation")
# Close episode
memory_close_episode("Completed JWT login feature")Hooks Reference
Hook | What it does | Timing |
SessionStart | Creates a new episode | ~50ms |
UserPromptSubmit | Saves user message + retrieves related memories | ~1-2s |
Stop | Saves assistant response | ~1s |
SessionEnd | Signals episode closure | ~50ms |
Tools Reference
Tool | Description |
| Start a new episode |
| Close and archive current episode |
| Get current active episode |
| Add a knowledge entity |
| Confirm a detected entity candidate |
| Reject a false detection |
| Mark an entity as outdated |
| List pending entity candidates |
| Semantic search across episodes and entities |
| Search entities by type |
| Get full episode details |
| List all episodes chronologically |
| Get system statistics |
| Check vector encoder status |
| Manually cache a message |
| Clear message cache |
| Clean up old cached messages |
Entity Types
Type | Level | Description |
| Project | Technical decisions for this project |
| Project | Architecture designs |
| Project | Important file descriptions |
| User | Personal preferences (shared across projects) |
| User | General concepts |
| User | Work habits |
Storage Locations
User-level:
~/.claude-memory/Project-level:
{project-root}/.claude/memory/
If you need to run from source (e.g., for development):
git clone https://github.com/chenxiaofie/memory-mcp.git
cd memory-mcp
# Windows:
install.bat
# Mac/Linux:
chmod +x install.sh && ./install.shThen configure MCP server with the venv Python:
# Windows:
claude mcp add memory-mcp -s user -- "C:\path\to\memory-mcp\venv310\Scripts\python.exe" -m memory_mcp.server
# Mac/Linux:
claude mcp add memory-mcp -s user -- /path/to/memory-mcp/venv310/bin/python -m memory_mcp.serverAuthor
陈佳俊 (Jiajun Chen) — front-end engineer based in Hangzhou, China. GitHub @chenxiaofie · feifeichen1999@gmail.com
本项目由陈佳俊(GitHub: chenxiaofie)开发并维护。
License
MIT License - see LICENSE file for details.
Available Tools
9 toolsmemory_clear_cacheA
清空消息缓存日志(message_cache.jsonl)。警告:此操作不可逆!
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | 确认清空,必须设为 true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lacking annotations, the description warns about irreversible operation, which is a crucial behavioral trait. However, it does not disclose other potential side effects, auth requirements, or system impact beyond the cache file.
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 concise sentences: the first states the action, and the second adds the critical warning. No extraneous information; front-loaded and efficient.
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 one-parameter tool with no output schema and no annotations, the description covers the essential action and warning. It is complete enough for an agent to understand the operation and required confirmation, though it could hint at when to clear the cache.
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 sole parameter 'confirm', so the baseline is 3. The description does not add additional parameter information beyond the schema's own description.
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 clearly states the tool's purpose: clearing the message cache log file (message_cache.jsonl). It uses a specific verb and resource, distinguishing it from sibling tools that add, cache, or recall messages.
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?
No guidance on when to use this tool vs alternatives like memory_cleanup_messages or memory_cache_message. Only a warning about irreversibility is given, but no explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_deprecate_entityC
废弃一个过时的实体
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | 实体 ID | |
| superseded_by | No | 取代此实体的新实体 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral details. It does not explain what deprecation entails (e.g., side effects, required permissions, or state changes), leaving the agent to guess.
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 a single concise sentence that is front-loaded. However, it could include essential behavioral context without sacrificing brevity, so it is slightly under-specified.
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?
Given the tool has only 2 parameters, no output schema, and no annotations, the description should provide more context about return values, side effects, or when to use superseded_by. It is incomplete for a mutation tool.
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 coverage is 100%, so the baseline is 3. The description does not add any parameter-level meaning beyond the schema's brief descriptions ('entity ID', 'new entity ID that supersedes'). This is adequate but not enhanced.
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 clearly states the action 'deprecate an outdated entity' with a specific verb and resource. However, it does not differentiate from sibling tools like memory_reject_candidate or memory_confirm_entity, which could have overlapping semantics.
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?
No guidance is provided on when to use this tool versus alternatives. Sibling tools exist for rejecting or confirming entities, but the description lacks any context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_encoder_statusA
查询向量编码器状态。返回编码器是否已就绪,以及哪些操作当前可用。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the tool returns status (ready and available ops), but does not mention side effects, auth requirements, rate limits, or any other behavioral traits. Given the simplicity of a zero-parameter query, this is adequate but not enriched.
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 consists of two short sentences, no wasted words. The purpose is front-loaded. Every sentence is informative and 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?
The description covers the basic purpose and output but lacks detail on return format (e.g., field names, data types). Since there is no output schema, the description should be more complete about what the status response includes. It is adequate but not thorough.
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?
There are no parameters, and schema coverage is 100%. Per guidelines, baseline is 4 for zero params. The description adds clear meaning about what the tool returns (encoder readiness and available operations), exceeding the baseline.
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 clearly states it queries the encoder status and returns readiness and available operations. It uses specific verb ('query') and resource ('encoder status'), and it distinguishes from sibling tools (e.g., memory_add_entity, memory_recall) which perform different actions.
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 usage for checking encoder state before performing encoder-related operations, but it provides no explicit guidance on when to use or when not to use. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_get_episode_detailA
获取情景详情(包含消息和关联实体)
| Name | Required | Description | Default |
|---|---|---|---|
| episode_id | Yes | 情景 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool retrieves details including messages and entities, implying a read-only operation. However, it does not mention error behavior, permissions, or side effects. It adds some value beyond the schema but lacks depth.
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 a single, focused sentence that is front-loaded with the core purpose. No superfluous words or tangents. It efficiently communicates what the tool does.
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 parameter and no output schema, the description provides the essential return content (details, messages, entities). However, it lacks information about error cases, pagination, or format. Given the simplicity, it is somewhat complete but could be more thorough.
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% as the sole parameter 'episode_id' has a description. The tool description does not add any additional meaning or constraints beyond what the schema already provides, which matches the baseline for high 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 clearly states the tool retrieves detailed information about an episode, including messages and related entities. The verb 'get' and resource 'episode details' are specific, and the inclusion of 'messages and related entities' distinguishes it from sibling tools like memory_list_episodes and memory_get_current_episode.
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 guidance on when to use this tool versus alternatives such as memory_list_episodes or memory_recall. An explicit statement about usage context or exclusions is missing, leaving the agent to infer appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_get_pendingB
获取所有待确认的实体候选
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It does not disclose return format, behavior when no pending candidates exist, or any side effects beyond simply retrieving.
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?
Single brief sentence in Chinese, efficient for conveying the core purpose, though could be more informative for non-Chinese readers.
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?
Lacks completeness: no output schema, no annotations, and no details about return type or behavior, leaving the agent uninformed about what to expect.
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?
Tool has zero parameters, and the baseline for 0 params is 4. The description adds no parameter information because none exists.
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 clearly states the verb '获取' (get) and the resource '待确认的实体候选' (pending entity candidates), distinguishing it from sibling tools like memory_confirm_entity and memory_reject_candidate.
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?
No guidance on when to use this tool versus alternatives; lacks context on prerequisites, conditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_recallA
综合检索记忆(情景+实体)。【重要】当用户询问'我是谁'、身份信息、个人偏好、历史决策、之前讨论过的内容时,应主动调用此工具检索相关记忆,而不是凭空回答。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 检索查询 | |
| top_k | No | 返回结果数量 | |
| include_deprecated | No | 是否包含已废弃的实体 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It describes a read operation but does not disclose any side effects, error handling, or behavior like relevance scoring. Adequate for a simple retrieval.
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?
Single sentence plus an important note, front-loaded with key information. 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?
Adequate for a retrieval tool with three parameters and no output schema. Does not describe return format but provides sufficient context for 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 coverage is 100% with descriptions for all parameters. Tool description adds no additional parameter context beyond the schema. Baseline score 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?
Description clearly states it retrieves memories (scenarios and entities), with specific examples of when to use. However, it lacks explicit differentiation from sibling tools like memory_search_by_type.
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?
Provides explicit guidance on when to use (e.g., user asks about identity, preferences) and instructs to avoid answering from scratch. Could be improved by also mentioning when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_reject_candidateB
拒绝一个误判的实体候选
| Name | Required | Description | Default |
|---|---|---|---|
| candidate_id | Yes | 候选实体 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It only states 'reject' but does not disclose side effects (e.g., deletion, status change, reversibility) or any requirements. The behavioral impact is vague.
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?
A single sentence with no filler. Every word is necessary and directly conveys the tool's purpose.
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 one-parameter tool with no output schema, the description is minimally adequate. However, given no annotations, it lacks behavioral context about the rejection process (e.g., what happens to the candidate).
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 coverage is 100% with a single parameter described as '候选实体 ID'. The description adds no additional meaning beyond the schema. Baseline score is appropriate.
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 '拒绝一个误判的实体候选' clearly states the action ('reject') and the resource ('entity candidate that was misjudged'). It distinguishes from siblings like memory_confirm_entity (which confirms a candidate) and memory_add_entity (which adds a new entity).
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?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, when not to use it, or any context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_search_by_typeC
按类型检索实体
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | 可选的检索查询 | |
| top_k | No | 返回结果数量 | |
| entity_type | Yes | 实体类型 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. However, it only states the basic function and omits critical details like read-only nature, return format, pagination, or side effects. This is insufficient for an agent to understand behavior.
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 very concise—one short sentence—which is efficient. However, it could be slightly more informative without becoming verbose. Still, it earns a 4 for brevity.
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?
Given the absence of an output schema, the description should explain what the tool returns. It does not. Additionally, the tool is a search operation but lacks details on filtering behavior, result count, or interaction with other memory tools. This is incomplete.
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 coverage is 100%, meaning all parameters are described in the input schema. The description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate. No extra value is added.
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 'Retrieve/search entities by type' clearly indicates the action and the key resource (entities filtered by type). It is specific enough to suggest a search operation, but does not explicitly distinguish from sibling tools like 'memory_recall'.
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?
No guidance is provided on when to use this tool versus alternatives (e.g., memory_recall for general search, memory_add_entity for adding). The description lacks any context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_statsC
获取记忆系统统计信息
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 not disclose what statistics are returned, whether the operation is read-only, or any other behavioral traits.
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 a single sentence, front-loaded with the action and resource, with no unnecessary words.
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?
Given no output schema and no annotations, the description fails to specify what kind of statistics or return format to expect, leaving the agent underinformed.
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 tool has zero parameters, and schema coverage is 100%. The description adds no extra meaning beyond the schema, which is acceptable for a parameterless tool.
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 clearly states the tool retrieves statistics about the memory system. However, it does not explicitly differentiate from sibling tools, though its function is distinct enough.
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?
No guidance is provided on when to use this tool versus alternatives, nor any conditions or exclusions.
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. Dates show when Glama detected each change.
8 tool updates
v0.3.3- Removed
memory_add_entity - Removed
memory_cache_message - Removed
memory_cleanup_messages - Removed
memory_close_episode - Removed
memory_confirm_entity - Removed
memory_get_current_episode - Removed
memory_list_episodes - Removed
memory_start_episode
17 tool updates
v0.2.2- First observed
memory_add_entity - First observed
memory_cache_message - First observed
memory_cleanup_messages - First observed
memory_clear_cache - First observed
memory_close_episode - First observed
memory_confirm_entity - First observed
memory_deprecate_entity - First observed
memory_encoder_status - First observed
memory_get_current_episode - First observed
memory_get_episode_detail - First observed
memory_get_pending - First observed
memory_list_episodes - First observed
memory_recall - First observed
memory_reject_candidate - First observed
memory_search_by_type - First observed
memory_start_episode - First observed
memory_stats
TDQS
Each tool serves a distinct purpose: entity management, episode handling, caching, cleanup, and recall. No two tools overlap in functionality; even related tools like memory_recall and memory_search_by_type target different retrieval scopes.
All tools follow the 'memory_verb_noun' pattern using snake_case consistently. Verbs are clear and predictable (add, cache, cleanup, clear, close, confirm, deprecate, get, list, recall, reject, search, start, stats), with no mixing of conventions.
With 17 tools covering entities, episodes, caching, and maintenance, the count is well-scoped for a memory management system. Each tool earns its place without redundancy or bloat.
The tools cover entity lifecycle (add, confirm, deprecate, reject), episode management (start, close, get, list), caching, and search. However, there is no explicit update entity tool, which is a minor gap for full CRUD support.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Cloud-hosted MCP server for durable AI memory
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives Claude persistent memory by storing conversation context, entities, and enabling semantic search across sessions.181MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives Claude Code cross-session memory persisted to a plain .claude-memory.md file in your repo.MIT
- AlicenseNot gradedqualityDmaintenancePersistent memory MCP server for Claude Code that captures and recalls project context across sessions, eliminating the need to re-explain architecture and decisions daily.1371MIT
- AlicenseNot gradedqualityDmaintenanceA persistent memory MCP server for Claude Code that enables long-term recall across sessions via hybrid search, code intelligence, and tools for reading/writing memory.121MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chenxiaofie/memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server