Skip to main content
Glama

Memory MCP Service

PyPI version Python License: MIT

English | 中文

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. Memory recall demo - retrieving past session history

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 | sh

Requires 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-init

2. Add MCP Server to Claude Code

claude mcp add memory-mcp -s user -- uvx --from chenxiaofie-memory-mcp memory-mcp

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 list

You 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 Summary
  • Episodes: 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

memory_start_episode

Start a new episode

memory_close_episode

Close and archive current episode

memory_get_current_episode

Get current active episode

memory_add_entity

Add a knowledge entity

memory_confirm_entity

Confirm a detected entity candidate

memory_reject_candidate

Reject a false detection

memory_deprecate_entity

Mark an entity as outdated

memory_get_pending

List pending entity candidates

memory_recall

Semantic search across episodes and entities

memory_search_by_type

Search entities by type

memory_get_episode_detail

Get full episode details

memory_list_episodes

List all episodes chronologically

memory_stats

Get system statistics

memory_encoder_status

Check vector encoder status

memory_cache_message

Manually cache a message

memory_clear_cache

Clear message cache

memory_cleanup_messages

Clean up old cached messages

Entity Types

Type

Level

Description

Decision

Project

Technical decisions for this project

Architecture

Project

Architecture designs

File

Project

Important file descriptions

Preference

User

Personal preferences (shared across projects)

Concept

User

General concepts

Habit

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.sh

Then 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.server

Author

陈佳俊 (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 tools
memory_clear_cacheA

清空消息缓存日志(message_cache.jsonl)。警告:此操作不可逆!

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes确认清空,必须设为 true

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

废弃一个过时的实体

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYes实体 ID
superseded_byNo取代此实体的新实体 ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description 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.

Purpose4/5

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.

Usage Guidelines2/5

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

查询向量编码器状态。返回编码器是否已就绪,以及哪些操作当前可用。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

获取情景详情(包含消息和关联实体)

ParametersJSON Schema
NameRequiredDescriptionDefault
episode_idYes情景 ID

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

获取所有待确认的实体候选

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the verb '获取' (get) 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.

Usage Guidelines2/5

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

综合检索记忆(情景+实体)。【重要】当用户询问'我是谁'、身份信息、个人偏好、历史决策、之前讨论过的内容时,应主动调用此工具检索相关记忆,而不是凭空回答。

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes检索查询
top_kNo返回结果数量
include_deprecatedNo是否包含已废弃的实体

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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

拒绝一个误判的实体候选

ParametersJSON Schema
NameRequiredDescriptionDefault
candidate_idYes候选实体 ID

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

按类型检索实体

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo可选的检索查询
top_kNo返回结果数量
entity_typeYes实体类型

TDQS

C2.7/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

获取记忆系统统计信息

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema coverage is 100%. 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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 8 tool updatesv0.3.3
    • Removedmemory_add_entity
    • Removedmemory_cache_message
    • Removedmemory_cleanup_messages
    • Removedmemory_close_episode
    • Removedmemory_confirm_entity
    • Removedmemory_get_current_episode
    • Removedmemory_list_episodes
    • Removedmemory_start_episode
  2. 17 tool updatesv0.2.2
    • First observedmemory_add_entity
    • First observedmemory_cache_message
    • First observedmemory_cleanup_messages
    • First observedmemory_clear_cache
    • First observedmemory_close_episode
    • First observedmemory_confirm_entity
    • First observedmemory_deprecate_entity
    • First observedmemory_encoder_status
    • First observedmemory_get_current_episode
    • First observedmemory_get_episode_detail
    • First observedmemory_get_pending
    • First observedmemory_list_episodes
    • First observedmemory_recall
    • First observedmemory_reject_candidate
    • First observedmemory_search_by_type
    • First observedmemory_start_episode
    • First observedmemory_stats

TDQS

A3.6/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives Claude persistent memory by storing conversation context, entities, and enabling semantic search across sessions.
    18
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Persistent memory MCP server for Claude Code that captures and recalls project context across sessions, eliminating the need to re-explain architecture and decisions daily.
    137
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    12
    1
    MIT

Latest Blog Posts

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