memory-engine
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-engineWhat do you remember about Windows bat encoding issues?"
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.
Programming Agent Self-Learning Memory Engine
An MCP (Model Context Protocol)-based self-learning memory engine that provides programming agents with a four-layer closed-loop learning capability: "Perceive-Reflect-Consolidate-Apply". It lets agents learn from mistakes and get better with use.
Architecture Overview
┌──────────────────────────────────────────────────────┐
│ 编程智能体 │
│ (Claude Code / Cursor / 任何支持 MCP 的智能体) │
└──────────┬───────────────────────┬────────────────────┘
│ MCP Protocol │
┌──────▼──────┐ ┌──────▼──────┐
│ 应用层 │ │ 感知层 │
│ 检索+注入 │ │ 错误捕获 │
└──────┬──────┘ └──────┬──────┘
│ │
┌──────▼──────┐ ┌──────▼──────┐
│ 沉淀层 │ │ 反思层 │
│ 技能+记忆 │◄────────│ 根因分析 │
└──────┬──────┘ └─────────────┘
│
┌──────▼──────┐
│ 存储层 │
│ SQLite+FTS5 │
└─────────────┘Related MCP server: recall-memory-mcp
Four-Layer Closed Loop
Layer | Responsibility | MCP Tools |
Perception Observation | Captures tool execution errors, test failures, user corrections, conversation signals |
|
Reflection Reflection | Root cause analysis, extracts reusable experience |
|
Consolidation Consolidation | Distills skills, generates SKILL.md, maintains memory |
|
Application Application | Retrieves relevant experience, injects into task context |
|
Statistics | Views engine status |
|
Installation
# 进入项目目录(替换为你本机的实际路径)
cd memory-engine
# 安装依赖(绕过代理)
pip install --no-proxy -e .
# 或手动安装
pip install --no-proxy mcp[cli] jiebaConfiguring the MCP Server
ZCode / Claude Code
Add the following to the MCP configuration file:
{
"mcpServers": {
"memory-engine": {
"command": "python",
"args": ["-m", "memory_engine.server"],
"cwd": "<项目根目录的绝对路径>"
}
}
}Replace
<absolute path to the project root>with the actual path where this project is cloned/stored on your machine (i.e., the directory containingpyproject.toml), for exampleD:/tools/memory-engineon Windows, or/home/user/tools/memory-engineon macOS/Linux.
Cursor / VS Code
Add the same configuration in .cursor/mcp.json or the MCP settings in VS Code.
Standalone Run (for debugging)
cd memory-engine
python -m memory_engine.serverCore Workflow
0. Capturing Conversation Signals (Perception Enhancement)
During vibe coding, operators often leave explicit signals in the conversation—emphatic instructions such as "please note" or "please remember"—as well as complaints caused by the agent repeatedly making the same mistakes ("why again...", "how many times have I told you..."). These statements are the highest-value learning material and should be captured and incorporated into memory:
capture_conversation_signals(
conversation_text="用户: 请注意,bat文件必须用ANSI编码
用户: 怎么又是编码问题,我说过多少次了",
auto_record=true
)The detector identifies four types of signals and ranks them by priority:
Signal | Recognition Examples | Meaning |
| "why again", "still wrong", "how many times have I said" | Complaints from repeated mistakes, indicating previous lessons were not learned (highest priority) |
| "please note", "please remember", "be sure to", "never" | Rules explicitly emphasized by the user |
| "always use from now on", "I like", "please default to" | User preferences on how to work |
| "speechless", "too slow", "wasting time" | Dissatisfaction, signaling efficiency/experience issues |
Detection results are automatically recorded as conversation_signal type observations. During reflection, a specially tailored prompt is used (inferring past mistakes + distilling into imperative rules), and the subsequent flow is identical to error reflection.
1. Recording Errors (Perception)
When a tool execution fails, the agent calls:
record_observation(
obs_type="tool_error",
tool_name="Bash",
error_message="bat文件执行报错:编码错误",
context="在Windows上创建的bat文件包含中文注释",
tags="encoding,windows,bat"
)2. Reflection Analysis (Reflection)
Get the analysis prompt:
get_reflection_prompt(obs_id="abc123")The agent analyzes the root cause based on the returned prompt, then saves the result:
reflect_and_save(
obs_id="abc123",
root_cause="Windows的cmd.exe默认使用系统ANSI编码,UTF-8编码的bat文件会导致中文注释被解析错误",
category="encoding",
lesson="在Windows上创建bat文件时,文件必须使用ANSI/GBK编码,而非UTF-8",
solution="将bat文件保存为ANSI编码,或使用chcp 65001切换代码页",
tags="encoding,windows,bat,cmd",
generalizable=true
)3. Distilling Skills (Consolidation)
After accumulating enough experience, check whether a skill can be distilled:
check_consolidation()Create the skill:
create_skill(
name="windows-bat-encoding",
description="Windows bat文件中文编码问题的处理方法",
trigger_conditions="创建或编辑.bat文件\n在Windows上运行脚本失败且涉及中文",
steps="将文件保存为ANSI编码\n或使用chcp 65001 + UTF-8 BOM",
caveats="chcp 65001仅在当前cmd会话有效\n某些旧版Windows不支持UTF-8 BOM",
category="encoding"
)4. Retrieval and Application (Application)
Before starting a new task, retrieve relevant experience:
get_context(task_description="需要创建一个Windows批处理脚本来部署应用")Returns context containing relevant skills and cases, injected directly into the prompt.
Memory Hierarchy
Type | Description | Example |
Episodic Memory | Specific "stories", a complete record of a particular fix | "2024-01-15 fixed the bat encoding issue in project XX" |
Semantic Memory | Abstracted rules and lessons | "bat files on Windows should use ANSI encoding" |
Skill | Standardized executable operation guide | SKILL.md file |
Data Storage
SQLite database (
data/memories.db): structured storage, supports FTS5 full-text searchJSONL log (
data/observations.jsonl): append-only log of raw observation recordsMarkdown files (
data/skills/): generated skill documents, human-readable and version-controllable
Project Structure
memory-engine/
├── 开发思路.md # 设计文档
├── README.md # 本文件
├── pyproject.toml # Python 项目配置
├── requirements.txt # 依赖列表
├── config/
│ └── settings.json # 引擎配置
├── src/memory_engine/
│ ├── __init__.py
│ ├── server.py # MCP 服务器入口(15个工具)
│ ├── models/
│ │ └── schemas.py # 数据模型
│ ├── observation/
│ │ ├── collector.py # 感知层:错误收集器
│ │ └── signal_detector.py # 感知层:对话信号检测器
│ ├── reflection/
│ │ └── analyzer.py # 反思层:根因分析器
│ ├── consolidation/
│ │ ├── memory_store.py # 存储层:SQLite + FTS5
│ │ └── skill_generator.py # 沉淀层:技能生成器
│ └── application/
│ └── retriever.py # 应用层:记忆检索器
├── data/
│ ├── memories.db # SQLite 数据库(运行后生成)
│ ├── observations.jsonl # 观察日志(运行后生成)
│ └── skills/ # 技能 Markdown(运行后生成)
└── tests/
└── test_engine.py # 测试Error Categories
encoding | build_error | runtime_error | test_failure | dependency | configuration | platform_specific | performance | security | best_practice | api_usage | preference | communication | other
Design Philosophy
No external LLM dependency: reflection and skill distillation are done by the caller (the agent itself); the engine only provides the framework and storage
MCP-native: runs as a standard MCP server; any MCP-capable agent can connect directly
Human-machine collaboration: all memories and skills are stored in human-readable formats (Markdown, JSON) for easy review and maintenance
Progressive learning: from single errors → episodic memory → semantic memory → skills, abstracting layer by layer and refining gradually
Available Tools
15 toolsbatch_get_reflection_promptsC
批量获取待反思观察的分析提示词。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
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 of disclosing behavior. It does not state whether the operation is read-only, what 'pending reflection observations' means, how many results return, or any side effects. This is a significant gap for a tool with no annotation support.
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, which is efficient in length. However, it is under-specified rather than thoughtfully concise—it omits crucial details that would justify its brevity. The structure is fine, but the content is too sparse to earn a higher score.
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?
With no output schema, no annotations, and a minimal description, the tool is incompletely specified. Key terms like 'pending reflection observations' are undefined, and the return format is unknown. For an agent to invoke this correctly, it needs more context about the input constraints and output structure. The single parameter mitigates complexity slightly, but the lack of essential detail makes this insufficient.
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 has 0% description coverage and the description does not mention the 'limit' parameter at all. While its meaning (number of results) is likely inferable, the description fails to add any explicit semantics, leaving the agent to guess the parameter's purpose and constraints beyond the default value.
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 ('batch get') and resource ('analysis prompts for pending reflection observations'), making the core purpose clear. However, it does not explicitly contrast with the sibling tool get_reflection_prompt (singular), relying on the 'batch' prefix to imply the distinction. This is strong but not fully differentiated.
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 retrieving multiple prompts at once, but it does not provide explicit context on when to prefer this over the singular get_reflection_prompt or other sibling tools. No exclusions or alternative routing are mentioned, leaving the agent to infer the boundary from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_conversation_signalsA
分析近期对话文本,捕获用户的显式信号并记录为待反思观察。识别四类信号:complaint(重复犯错的埋怨,如"怎么又"、"我说过多少次")、emphasis(显式强调,如"请注意"、"请记住")、preference(偏好表达,如"以后都用")、frustration(不满情绪)。用户话语包含明显纠正/强调语气时应调用。
| Name | Required | Description | Default |
|---|---|---|---|
| auto_record | No | 是否自动记录为观察事件 | |
| conversation_text | Yes | 近期对话文本(可多行;带 智能体:/assistant: 前缀的行会被跳过) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive 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?
描述结构紧凑:先说明核心功能,再逐项列举信号类型并附示例,最后给出调用条件,信息密度高且无冗余内容。
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?
工具复杂度较低且无输出schema;描述已覆盖用途、信号定义、触发时机和输入格式。虽未说明返回内容,但对正确选择与调用该工具而言已足够完整。
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覆盖率为100%,conversation_text和auto_record的参数含义已由schema描述清楚;描述本身没有额外补充参数语义,因此给予基线3分。
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?
描述明确使用'捕获'作为动词、'对话信号'作为对象,并具体列出四类信号(complaint、emphasis、preference、frustration)及示例,功能边界清晰,能与record_observation等泛化记录工具区分。
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?
给出了明确的调用触发条件:'用户话语包含明显纠正/强调语气时应调用',提供了使用场景指引;但未显式说明何时不应调用或与record_observation等替代工具的对比。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_consolidationC
检查是否有足够的记忆可以提炼为新技能。
| Name | Required | Description | Default |
|---|---|---|---|
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not explain what 'enough' means, what threshold triggers consolidation, what side effects occur (if any), or what output the check returns. This is substantial missing context for a decision-gating tool.
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 definition is a single front-loaded sentence with no wasted words. However, it is under-specified rather than economically concise, omitting essential details that a slightly longer definition would carry.
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 state-checking tool with one undocumented parameter and no output schema, the description is incomplete. It neither explains the category parameter nor describes what the agent should expect as a result, leaving key invocation details unclear.
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 0%, so the description must compensate by explaining the 'category' parameter, but it never mentions it. The agent receives no guidance on what values category accepts or how it filters the memory check. This is a clear gap.
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: checking whether sufficient memory exists to distill into a new skill. This distinguishes it from siblings like search_skill or get_stats, which serve different purposes. The meaning is clear even in translation, though the non-English description could hamper some agents.
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 given on when to invoke this tool versus related siblings such as reflect_and_save, get_pending_observations, or get_reflection_prompt. There are no conditions, prerequisites, or exclusions mentioned, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_skillC
从经验中创建一个标准化技能。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 技能名称(kebab-case) | |
| steps | Yes | 执行步骤,每行一个 | |
| caveats | No | 注意事项,每行一个 | |
| category | No | other | |
| examples | No | 示例,每行一个 | |
| description | Yes | 一句话描述 | |
| related_memory_ids | No | 关联记忆ID,逗号分隔 | |
| trigger_conditions | Yes | 触发条件,每行一个 |
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 of disclosing behavior. It only states 'create', which implies mutation, but does not disclose whether the operation persists immediately, whether it can overwrite existing skills with the same name, any permission/auth requirements, or what a successful creation returns. For a mutation-oriented tool with zero annotation coverage, this is a significant gap.
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 one short, efficient sentence with no filler, which is commendable. However, it is so thin that conciseness borders on under-specification — it carries almost no information beyond the tool's name itself. It is not bloated, but earns only a middle score because brevity comes at the cost of useful 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?
This is an 8-parameter create operation with 4 required fields, no output schema, and no annotations. The description must carry substantial context, yet it offers only a one-line summary. It omits return values, duplicate-handling behavior, relationships to related_memory_ids, and when creating a skill is appropriate. Given the tool's complexity, the description is materially 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 description coverage is 88%, so the input schema already documents the parameters well (e.g., name uses kebab-case, steps as one per line). The description adds little beyond the 'standardized' qualifier. The schema handles the parameter semantics, and the description does not meaningfully compensate for the ~12% uncovered or add value beyond what the schema provides, so the baseline of 3 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 'Create a standardized skill from experience' clearly states a specific verb (create), resource (skill), and source context (from experience), which differentiates it from the sibling read/list/search tools (list_skills, get_skill, search_skill, get_skill_prompt). It conveys the purpose adequately, though it lacks any explicit differentiation detail about what makes a skill 'standardized'.
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 about when to use this tool versus the many sibling tools such as search_skill, list_skills, or get_skill. No context is given about prerequisites (e.g., must have prior observations or memories) or situations where creating a skill is appropriate versus fetching an existing one. The 'from experience' phrasing hints at a trigger but does not state it explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contextB
根据任务描述获取相关历史经验和技能。在开始新任务前调用此工具。
| Name | Required | Description | Default |
|---|---|---|---|
| top_k | No | ||
| task_description | Yes | 当前任务描述 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It states the purpose and timing but does not disclose whether the operation is read-only, what the return format is, or any side effects. For a retrieval tool, the read-only nature is implied but not explicit, and the lack of output specification leaves significant gaps.
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 concise, consisting of two short sentences that state purpose and usage timing. It is front-loaded with the core action. No wasted words, though it could be slightly more structured if it mentioned parameters.
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 tool has no output schema, so the description should explain what the tool returns and how parameters affect results. It only says it retrieves relevant experience and skills, but not the format or how top_k limits the response. This is insufficient for an agent to confidently call the tool and interpret the output.
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 only 50% (only task_description has a description; top_k has none but a default). The description does not mention any parameters, not even task_description or top_k. It fails to explain how top_k controls the number of results, so the description adds no value beyond 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 specific verb and resource: 'retrieve relevant historical experience and skills' based on task description, and adds a usage timing ('call before starting a new task'). It clearly distinguishes itself from sibling tools like search_skill (which searches only skills) by covering both experiences and skills.
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 explicitly says when to use it ('before starting a new task'), providing clear context. However, it does not mention exclusions or alternatives, so it does not fully guide an agent on when not to use it versus siblings like search_skill.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pending_observationsC
获取所有待反思的观察记录。定期调用检查是否有未处理的错误需要反思分析。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states that the tool retrieves observations but does not explicitly state it is read-only, describe the return format, pagination, or any side effects. The description's sole behavioral hint is 'periodic call', implying safety, but this is insufficient without annotation backing.
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 concise—two short sentences that state the purpose and usage frequency. It avoids unnecessary fluff and gets to the point quickly. While it lacks structured sections, the brevity is appropriate for a simple retrieval tool.
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 is incomplete given the absence of annotations, output schema, and parameter descriptions. It does not specify what the returned data looks like, how to handle multiple pages of observations, or any limits beyond the schema default. An agent would struggle to correctly process results or know how to use the 'limit' parameter effectively.
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 0%, and the description completely ignores the only parameter 'limit' (with default 20). It does not explain what 'limit' controls (e.g., maximum number of returned items) or how to use it. The description adds no value beyond the schema's bare parameter definition.
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 observation records pending reflection ('获取所有待反思的观察记录'). It is specific about the resource and its state ('pending reflection'), and the verb 'get' is clear. While it doesn't explicitly contrast with sibling tools like record_observation or reflect_and_save, the purpose is evident and 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?
The description advises calling periodically ('定期调用') to check for unprocessed errors needing reflection, giving a clear usage scenario. However, it provides no guidance on when not to use it or mentions alternatives, such as other observation-related tools. The usage context is implied but lacks exclusions or comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reflection_promptA
获取某条观察记录的反思分析提示词。分析完成后用 reflect_and_save 保存结果。
| Name | Required | Description | Default |
|---|---|---|---|
| obs_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 of behavioral disclosure. It implies a read-only operation (fetching a prompt) and does not mention side effects or state changes. It does not explicitly state that no data is modified, nor does it address prerequisites or rate limits. The description is adequate for a simple read operation but lacks depth beyond the immediate action.
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 short sentences. The first sentence front-loads the primary action, and the second provides the follow-up workflow. Every word earns its place; there is no redundancy or filler. The structure is efficient and easy to parse.
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, no output schema, and no annotations, the description covers the essential usage: what it does (get a prompt) and what to do next (use reflect_and_save). It does not describe the return format, but the noun '提示词' (prompt) implies the output. It also implicitly signals that no side effects occur. Given the low complexity, the description is nearly complete, though a mention of the return nature could push it to 5.
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% because the only parameter, obs_id, has a description in the schema ('观察记录 ID'). The tool description adds no additional meaning to the parameter, so the baseline of 3 applies. There is no additional context about the parameter format or constraints that would elevate the score.
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: '获取某条观察记录的反思分析提示词' (get the reflection analysis prompt for a specific observation record). It specifies the resource (observation record) and the operation (get prompt), and distinguishes from siblings by focusing on a single record with a follow-up action (reflect_and_save). The verb and resource are 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 provides a usage flow: '分析完成后用 reflect_and_save 保存结果' (after analysis, use reflect_and_save to save the result). This gives clear context on when to use this tool (to fetch a prompt for a single observation) and what to do after. While it doesn't explicitly mention alternatives like batch_get_reflection_prompts, the single-record focus is implied by '某条', and the workflow guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skillC
获取技能的完整内容(含Markdown)。
| Name | Required | Description | Default |
|---|---|---|---|
| skill_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It states the tool 'gets' the skill content, implying a read-only operation, but does not explicitly confirm this or disclose any side effects, authorization needs, or output specifics. The absence of safety context is a significant gap.
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, which is efficient in terms of length. However, it is under-specified: it omits critical information about parameters, behavior, and usage. Conciseness is fine, but the description is not appropriately sized for the complexity of the tool (one param, no annotations, no output schema).
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 annotations, output schema, and parameter explanations, the description is severely incomplete. It does not tell an agent what constitutes a valid skill_id, what the returned content looks like, or when this tool should be preferred over related tools. The definition fails to provide enough context for reliable 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 only parameter, skill_id, is entirely unexplained in the description. With 0% schema coverage, the description fails to clarify what format skill_id should take, how to obtain it, or whether it references an ID from another tool like list_skills. This leaves the agent with no guidance beyond the parameter's name and type.
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 that the tool retrieves the complete content of a skill, including Markdown. This is a specific verb-resource pair that distinguishes it from siblings like search_skill (search) and get_skill_prompt (prompt retrieval), though it does not explicitly name these alternatives. The purpose is clear and 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 offers no guidance on when to use this tool versus alternatives such as search_skill, list_skills, or get_skill_prompt. There are no prerequisites, conditions, or exclusions mentioned. An agent must infer usage from the name and brief description, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skill_promptC
根据记忆ID列表生成技能提炼提示词。
| Name | Required | Description | Default |
|---|---|---|---|
| memory_ids | Yes | 逗号分隔的记忆ID列表 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states that it generates a prompt; it doesn't disclose whether this is a read-only operation, whether it has side effects, or what the output format is. For a tool that likely triggers further agent actions, this is a significant gap.
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, clear sentence with no unnecessary words. It is appropriately front-loaded, stating the action and key input immediately.
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 tool with one parameter and no output schema, the description provides the essential purpose but omits details like what the generated prompt is used for or how the output is structured. Given the low complexity, this is minimally adequate but could be improved with a sentence on its role in the skill-refinement workflow.
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% and the parameter already explains it takes a comma-separated list. The description restates this (memory ID list) without adding new meaning, so it meets the baseline of 3 but doesn't exceed it.
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 (generate) and the resource (skill refinement prompt) plus the input basis (memory ID list). It distinguishes the tool's purpose from generic prompt tools, though it doesn't explicitly name alternatives or contrast with siblings like get_reflection_prompt.
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 about when to use this tool versus alternatives. With siblings like get_reflection_prompt and batch_get_reflection_prompts, the description gives no context for selection, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statsB
获取记忆引擎的统计信息。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'get statistics' and does not explicitly state that it is a read-only operation, nor does it describe any side effects, persistence, or the structure of the returned data. While '获取' implies reading, it is not explicit, and nothing is disclosed about what the agent will receive.
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 short sentence with no unnecessary words. It is maximally concise and front-loaded, stating the action and resource immediately. No filler or repetition exists.
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 tool with no output schema and no annotations, the description should explain what statistics are returned or at least hint at the format. It does not, leaving the agent to guess what the response will contain. The description is too sparse to be considered complete for a tool that has any meaningful output.
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, so the baseline is 4 per the rubric. The schema is fully covered (empty), and the description adds nothing about parameters because none exist. This matches the baseline that requires no additional parameter documentation.
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 retrieves statistics from the memory engine, using a specific verb ('获取' = get) and a distinct resource. It is distinguishable from sibling tools like search_memory or get_context because it focuses on statistics. However, it does not specify what kind of statistics, making it slightly vague but still clear on its core purpose.
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 only states the action without any context on typical use cases, prerequisites, or when it should not be used. Given the many sibling tools, an agent would have no direction on selecting this over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsD
列出已学习的技能。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It merely restates the tool name ('List learned skills') without revealing any behavioral traits such as ordering, pagination, read-only guarantees, or error conditions. This adds no value beyond the tool name itself.
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 short sentence with no filler, but it is under-specified to the point of being unhelpful. Conciseness should accompany substance; here it sacrifices necessary context, so it earns a low score.
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 tool with three optional parameters, no output schema, and no annotations, the description is grossly inadequate. It fails to explain parameter semantics, filtering options, return structure, or when to use this tool over siblings, making it nearly unusable for an agent.
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 has 0% description coverage for its three parameters (limit, status, category), and the description does not mention any of them. There is no explanation of what each parameter does, how they interact, or what formats are expected, leaving the agent completely in the dark.
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 ('列出' - list) and resource ('已学习的技能' - learned skills), which conveys the basic purpose. However, it does not distinguish this tool from siblings like search_skill or get_skill, which might also return skill lists, so it falls short of a top score.
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. It does not mention triggering conditions, prerequisites, or how it differs from search_skill or get_skill, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_observationA
记录一次错误观察或用户纠正事件。在工具执行失败、测试未通过、或用户纠正你的操作时调用。
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | 逗号分隔的标签 | |
| context | No | 错误发生时的上下文 | |
| obs_type | Yes | 事件类型: tool_error/test_failure/user_correction/build_failure/runtime_error/manual_entry/conversation_signal | |
| tool_name | No | 出错的工具/命令名称 | |
| correction | No | 用户的纠正内容或正确做法 | |
| error_message | Yes | 错误信息或原始问题描述 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It states the action (record) and triggers, implying a write operation, but omits details about side effects, persistence, idempotency, or any return value. This is a moderate gap, not as severe as missing triggers but not comprehensive.
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: first states the purpose, second lists the trigger conditions. Every sentence is necessary and directly useful; there is no filler or redundant information.
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 logging tool with six parameters fully documented in the schema and no output schema, the description provides the essential 'when to use' context. However, it does not mention that recorded observations can be retrieved later (via get_pending_observations), nor any potential side effects or limitations, leaving minor gaps.
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 the schema already documents all six parameters with descriptions. The tool description does not add any extra meaning beyond the schema, which is acceptable but not enhancing. Baseline of 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?
The description clearly states the verb '记录' (record) and resource '错误观察或用户纠正事件' (error observation or user correction event), specifying the tool's purpose. It differentiates from siblings like capture_conversation_signals by focusing on errors/corrections, though it does not explicitly name alternatives.
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 explicitly lists three trigger scenarios (tool execution failure, test failure, user correction), providing clear context for when to use the tool. However, it does not mention when NOT to use it or alternative tools, missing the full guidance for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reflect_and_saveC
保存对某条观察记录的反思分析结果(根因、教训、方案)。
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| lesson | Yes | 学到的核心教训 | |
| obs_id | Yes | ||
| category | Yes | 错误类别 | |
| solution | Yes | 推荐的解决方案 | |
| root_cause | Yes | 根本原因描述 | |
| generalizable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states 'save,' implying a write operation, but does not mention whether it overwrites existing reflections, what happens if the observation does not exist, or any side effects. No return format is described. This is inadequate for a mutation tool.
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 with no unnecessary words. It front-loads the core intent. However, it could benefit from a brief structure (e.g., separating the purpose from parameter hints), but it remains appropriately sized.
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 7 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the relationship to the observation lifecycle, required inputs beyond the listed fields, or success/failure behavior. An agent would struggle to correctly invoke this tool without additional context.
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 57%, meaning some parameters (tags, generalizable, obs_id) lack schema descriptions. The tool description only mentions root cause, lesson, and solution, and does not elaborate on the others or explain their role in the overall reflection process. It adds minimal value beyond the schema and fails to compensate for the coverage gap.
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 saves reflection analysis (root cause, lesson, solution) for an observation record. It uses a specific verb ('save') and resource, and implicitly distinguishes itself from siblings like record_observation (which captures the observation itself) and get_reflection_prompt (which fetches prompts). However, it does not explicitly differentiate from other save-type tools, so a 4 is appropriate.
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 (e.g., an existing observation) or exclusions, leaving the agent to infer the appropriate context from the name and schema. This is a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_memoryD
搜索历史记忆。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No | ||
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'search' and gives no information about whether the operation is read-only, what side effects occur (if any), what the response format is, or any limits (e.g., maximum top_k). This is insufficient for an agent to understand the tool's safety or 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 one-sentence description is extremely brief, but it is under-specification rather than effective conciseness. It provides no details or structure that help the agent, and it does not 'earn its place'—it merely restates the tool's name. Being short is not a virtue when it omits essential information.
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 search tool with three parameters and no output schema, the description is drastically incomplete. It does not explain what results are returned, how to interpret them, or how parameters influence the search. The complexity warrants a more detailed description, and this one leaves the agent without enough context to use the tool effectively.
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 0%, meaning the description must explain the parameters (query, top_k, category) but does not mention any of them. The description adds zero value beyond the schema's raw type definitions, leaving the agent with no idea of what values are valid or how they affect the search.
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 a verb ('search') and a resource ('historical memory'), distinguishing it from tools like record_observation or get_stats. However, 'memory' is somewhat ambiguous—it could refer to observations, conversation signals, or other stored data—and it doesn't explicitly differentiate from the similar search_skill tool. Still, the core purpose is understandable.
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. It does not mention search_skill, which likely also queries stored knowledge, nor does it specify any conditions or exclusions. An agent has no information about which tool is appropriate for a given scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_skillC
搜索已学习的技能。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'search' without specifying whether it is read-only, what it returns, how results are ranked, or any side effects. This is insufficient for a search operation.
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 extremely concise (one short sentence), which is structural simplicity, but it lacks essential detail. It is under-specified rather than efficiently informative, so it does not fully earn 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 search tool with two parameters and no output schema, the description should at least indicate the return format or result count. It does not, making the tool incomplete for an agent to call correctly without guessing.
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 0%, and the description does not elaborate on 'query' or 'top_k' beyond their names. The agent gets no guidance on expected input format, semantics, or the meaning of top_k (e.g., maximum number of results).
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 – search learned skills – with a specific resource (skills). It distinguishes from search_memory by specifying 'skills' rather than generic memory, but it does not explicitly contrast with siblings like get_skill or list_skills, so differentiation is partial.
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 the sibling tools (e.g., search_memory, get_skill). There is no mention of alternatives or conditions for use, leaving the agent to infer the appropriate context.
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.
15 tool updates
v0.1.0- First observed
batch_get_reflection_prompts - First observed
capture_conversation_signals - First observed
check_consolidation - First observed
create_skill - First observed
get_context - First observed
get_pending_observations - First observed
get_reflection_prompt - First observed
get_skill - First observed
get_skill_prompt - First observed
get_stats - First observed
list_skills - First observed
record_observation - First observed
reflect_and_save - First observed
search_memory - First observed
search_skill
TDQS
每个工具都有明确且独特的用途:记录观察、捕获信号、获取待办、获取反思提示、保存反思、批量获取提示、搜索技能、统计、创建技能、获取技能提示、列出技能、获取技能、检查整合、获取上下文、搜索记忆。即使有相似工具(如get_pending_observations与get_reflection_prompt),它们分别针对观察记录和提示生成,边界清晰。
所有工具名称均采用小写蛇形命名,且遵循动词_名词模式(如record_observation, search_skill, create_skill)。命名风格统一,没有混合约定,动词选择也符合操作语义。
15个工具覆盖了记忆引擎的核心功能:记录、分析、反思、技能管理、上下文检索等,每个工具都有明确的存在价值,没有冗余或重叠。数量在合理范围内(接近上限但仍紧凑)。
工具表面覆盖了记忆引擎的主要生命周期:观察记录->反思->技能创建->检索。缺少明确的删除/更新操作(如删除记忆或技能),但对于该领域并非核心需求,且其他关键步骤齐全。
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 cross-session memory shared by Codex, Claude Code, ChatGPT, and other AI agents.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Persistent memory for AI agents — verbatim conversations, searchable by meaning.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to learn from their work by recording tasks, extracting patterns, detecting mistakes, and proactively surfacing insights, all using the agent's own model through a cooperative intelligence pattern.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to store, retrieve, and self-improve procedural memories (lessons learned) based on relevance to the current task, pruning unused memories to reduce context load and prevent repetition of past mistakes.MIT
- AlicenseNot gradedqualityCmaintenanceProvides coding agents with durable, cross-session lessons-learned memory, enforcing that success or failure verdicts can only come from human approval, human correction, or objective metrics—never from the agent itself.Apache 2.0
- FlicenseNot gradedqualityBmaintenancePersistent, self-curating memory for coding agents. It enables local, zero-cost context recall through MCP tools with hybrid retrieval and autonomous consolidation.-
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/top777/memory-engine'
If you have feedback or need assistance with the MCP directory API, please join our Discord server