anchor-memory
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., "@anchor-memory我遇到一个问题:接口 500 但是没有日志,帮我排查"
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.
anchor-memory · 个人排错经验记忆
它把 AI 每次帮你解决的问题,变成你自己的经验。
存:你在 Trae 里解决 bug,AI 自动把整段对话蒸馏成一张 100 字的「排错卡」
联:卡片挂到知识锚点上(连接池、事务、Vue……),长成你的 3D 经验网络
忆:每天 90 秒「点亮复习」,快忘的卡自动回到你面前
零依赖、零 API Key、数据全在本地一个 JSON 文件里。
五分钟上手
第 1 步:启动服务
双击 start.bat(或手动运行 node server/index.js)。
看到这行字就说明成功了:
[anchor-memory] MCP(stdio) 就绪,可视化: http://localhost:7331浏览器打开 http://localhost:7331 ——这就是你的经验网络。
第 2 步:接入 Trae
Trae 设置 → MCP → 添加:
{
"mcpServers": {
"anchor-memory": {
"command": "node",
"args": ["E:\\AI-zhishi\\anchor-memory\\server\\index.js"]
}
}
}
command用node即可(Trae 会用系统 PATH 里的 node)。如果你的机器有多版本 node 且默认版本低于 v14,请写 node.exe 的完整路径。
路径换成你自己的实际位置。配置后重启 Trae 会话。
第 3 步:验证
对 AI 说:
我遇到一个问题:接口 500 但是没有日志,帮我排查
AI 会先检索你的历史卡片(种子数据里正好有这张!)。问题解决后说「存卡」,然后刷新可视化页面——网络长出了新节点。
第 4 步:每天的习惯(90 秒)
打开 http://localhost:7331 ,右侧「今日点亮」:
看症状 → 心里默走一遍排查路径 → 自评「记得 / 模糊 / 忘了」→ 揭示答案。
就这些。剩下的交给间隔重复调度。
Related MCP server: arcane
我的数据在哪?
全部在 data/cards.json 一个文件里(纯文本 JSON)。
备份:复制这个文件即可
换电脑:拷贝整个
anchor-memory文件夹想跑路:数据是标准 JSON,随时可以导出成任何格式
不联网、不上传、没有账号
常见问题
Q:页面打不开 / fetch 报错?
服务没启动。先双击 start.bat,看到「就绪」字样再刷新页面。
Q:Trae 里 AI 不查卡 / 不存卡?
确认 .trae/rules/anchor-memory.md 存在且会话已重启。项目规则会把「先查卡、后存卡」变成纪律。
Q:控制台中文乱码?
不影响功能。start.bat 已自动切换 UTF-8 代码页;手动启动时可先执行 chcp 65001。
Q:端口 7331 被占用? 说明已经有一个实例在跑,可视化由先启动的实例提供,MCP 功能不受影响。不需要开两个。
Q:AI 依赖什么 API?要不要付费? 不依赖任何外部 AI API。蒸馏和检索的智能由 Trae 里的模型提供,MCP 只是本地管道。
项目结构
anchor-memory/
├── server/index.js # MCP(stdio) + 可视化(HTTP 7331),零依赖
├── data/cards.json # 你的全部经验数据(可 git、可备份)
├── public/index.html # 3D 经验网络 + 点亮复习页
├── test/mcp-smoke.js # MCP 协议冒烟测试
├── start.bat # Windows 一键启动
└── .trae/rules/ # Trae 项目规则(查卡/存卡纪律)复习调度的原理
简化版间隔重复:答「记得」等级 +1,间隔拉长(1→2→4→8→…→128 天);「模糊」等级 -1;「忘了」回到 1 天后重来。等级 ≥3(间隔 ≥8 天)视为「已内化」。每天最多 15 张,逾期的优先,超出的顺延——复习债永远不滚雪球。
Available Tools
9 toolsclaim_cardA
认领一张参考卡(ref=true 的包卡):转正为用户的卡,明天进入复习队列,锚点此时才归并入用户网络。用户在详情面板点「认领/收编」时调用。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 卡片 id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the behavioral disclosure. It states that the card is promoted to the user's card, enters the review queue tomorrow, and the anchor gets merged only at this moment. It does not mention permissions, reversibility, or failure scenarios, but covers the primary state changes well.
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 compact and front-loaded: target type, outcome, timing, and trigger are all included in two focused clauses. Every sentence carries essential information without 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?
Given this is a simple one-parameter tool with no output schema or annotations, the description addresses the main user-visible effects and call trigger. It could detail return values or preconditions, but for a direct 'claim' action, the context is sufficiently complete.
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 already describes the single `id` parameter with 100% coverage. The tool description refines that the id belongs to a ref=true card, which adds slight context, but it doesn't significantly expand beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: '认领一张参考卡(ref=true 的包卡)' and explains the conversion to the user's card. It clearly distinguishes claim_card from sibling tools like review_card or delete_card by indicating the promotion/ownership action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit trigger: call this when the user clicks '认领/收编' in the detail panel. It doesn't list exclusions or alternatives, but the UI condition is concrete enough for an agent to decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_cardA
删除一张卡片(用户明确要求删除某张卡时调用,如"删掉这张卡")。删除前应向用户确认。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 要删除的卡片 id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the confirmation requirement, which is a meaningful behavioral trait, but it does not state the consequence (permanent removal) or any other side effects. The confirmation implies irreversibility, but explicit disclosure would be stronger.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, with the primary purpose and usage condition front-loaded, followed by the confirmation requirement. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete tool, the description covers the purpose, usage condition, and a critical safety step. It could explicitly mention that deletion is permanent or irreversible, but the confirmation requirement largely covers this. Overall adequate for the tool's simplicity.
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 description clearly explains the 'id' field. The description adds no extra parameter information, but none is needed; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('delete a card') with a specific resource and includes an explicit trigger condition ('when the user explicitly asks to delete'), distinguishing it from sibling tools. The example phrase further clarifies intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the exact condition for use (explicit user request) and provides a safety guideline (confirm before deleting). It does not explicitly state when not to use, but given it is the only delete tool, this is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
due_cardsA
获取今天到期的复习卡片(点亮式复习清单)。用户说"复习"或"今天该复习什么"时调用。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose the output nature ('复习卡片'/'复习清单' – a list of due cards) and implies a non-destructive read operation with '获取'. However, it does not explicitly state whether it modifies state, requires authentication, or what '点亮式' visually means, leaving some behavior implied rather than explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states what the tool does, second states when to call it. No redundant words, front-loaded with the primary purpose. This is an efficient, well-structured definition.
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 zero-parameter, simple retrieval tool, the description sufficiently covers the purpose and triggering condition. Without an output schema, it doesn't fully describe the return structure, but the phrase '复习清单' makes it clear the result is a list, which is enough given the tool's simplicity.
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 0 parameters, and schema description coverage is trivially 100% (empty schema). The description contributes no parameter details because there are none, which matches the baseline for 0-parameter tools. All needed information is already present.
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 action ('获取今天到期的复习卡片' – get review cards due today) with a clear resource ('复习卡片') and scope ('今天到期'). It also names the trigger phrases, and the wording distinguishes it from siblings like search_cards, review_card, and weekly_report by focusing on the 'today + due' use case.
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 tells when to use the tool: when the user says '复习' (review) or '今天该复习什么' (what should I review today). This is clear context for when to invoke it, though it does not explicitly mention alternatives or exclusions (e.g., 'not for weekly reports').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
install_packA
安装经验包(插槽生态):别人的经验卡整包进库,独立成域、不融合锚点。包卡挂参考态(ref):能搜到(垫底)、3D 图可见、但不进复习队列;用户在详情面板点「认领」后才转正进入复习。pack 格式:{name, keywords?, cards:[{type?, symptom, story?, checks, rootCause, example?, anchors}]}
| Name | Required | Description | Default |
|---|---|---|---|
| pack | Yes | 包对象:{name, cards:[...]},卡字段与 save_card 相同 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility—and it delivers. It discloses that cards enter in ref state, are searchable, appear in 3D view, are excluded from the review queue, and only become active after the user claims them.
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?
Every sentence earns its place: scope, behavioral effect, lifecycle, and format are packed into a compact description with no filler. The most important facts appear early.
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 there is no output schema or annotations, the description covers the tool's purpose, its lifecycle effects, and its data shape. It lacks explicit return/outcome behavior and preconditions, but for an install-style tool the provided context is largely sufficient.
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 already names the pack parameter, and the description adds the full pack shape including nested card fields, optionality markers, and the anchors field. This adds genuine semantic value beyond the schema, though field-level details like anchors are not deeply explained.
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?
Uses a specific verb and resource: installing an experience pack (整包进库). It distinguishes the behavior from save_card by emphasizing batch import, domain independence, and ref-state lifecycle.
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 makes clear this is for bulk-importing someone else's experience pack and explains the resulting card lifecycle, implying it is not for creating a single active card. It does not explicitly name save_card or claim_card as alternatives, but the context strongly signals the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_topicA
记录对话流水:每次协作结束时,把本次对话"问过/解决了什么"记成一行短句(≤40字)。 同一天自动合并成一行。作用:用户三个月后模糊记得"问过某个问题但没存卡",靠流水能定位到是哪天、什么场景。 调用时机:①一个话题收尾时记一句;②用户说收尾时补记当天漏掉的。 示例:log_topic("anchor-memory 误删 three.core.js 已从镜像恢复")
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | 一行短句描述本次做了/解决了什么,≤40字 | |
| project | 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 goes beyond the schema by revealing that same-day entries are automatically merged, that entries are limited to 40 characters, and that the log serves future recall. It does not detail mutation side effects or return behavior, but for a lightweight logging tool the disclosed traits are sufficient.
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 organized into clear sections: action, merging behavior, purpose, call timing, and an example. It is somewhat longer than strictly necessary, but every sentence adds practical information and the main action is front-loaded.
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 only two parameters, no output schema, and no annotations, the description is complete enough for an agent to know when to call the tool, what to pass, what length constraint applies, and what the tool does with the input. The example further disambiguates the expected text format.
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 baseline is 3. The description adds a concrete example and restates the 40-character limit, but it does not provide additional semantic detail beyond the schema for either 'text' or 'project'.
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 uses a specific verb and resource ('记录对话流水', record conversation log) and clearly distinguishes the tool from sibling card-management tools by stating it captures a short line of what was asked/solved. The purpose is concrete 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 gives explicit call timing: record when a topic wraps up, and backfill when the user says the session is ending. This is clear contextual guidance, though it does not explicitly state when not to use the tool or name alternatives. The sibling names make the distinction fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_cardA
记录一次复习结果。result 取值:remember(记得)/fuzzy(模糊)/forgot(忘了),由用户自评。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 卡片 id | |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the transparency burden. It clearly indicates a user-initiated recording of a review result, but does not disclose side effects such as updating the card's review schedule, overwriting previous results, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that starts with the core action and includes necessary parameter semantics. There is no redundancy or filler.
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 2-parameter tool the description covers the main call intent and parameter semantics, but it does not mention side effects such as updating the card's next review time or whether an existing review record is overwritten.
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 description adds meaning beyond the schema by defining the three possible values of result (remember/fuzzy/forgot) and stating that the assessment is user self-reported. The id parameter is already described in the schema as the card id.
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 action ('记录一次复习结果') with a clear object and context. It does not explicitly contrast with sibling tools like save_card or claim_card, but the purpose is unambiguous from the tool name and description.
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 when to use this tool—after a user completes a review and self-assesses their recall. However, it does not explicitly mention alternatives or conditions such as 'use this instead of save_card when logging a review outcome.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_cardA
当一段 AI 协作产生了值得用户长期记住的内容时调用此工具沉淀成卡。三种类型: 触发时机:①解决完 bug/讲懂概念/做完决策后主动调用;②用户说「存一下」「今天就到这」「收尾」时,回看全对话把值得留的全部蒸馏存卡(可多张)。 type=debug(默认):解决了一个 bug/报错。symptom=症状一句话;checks=下次遇到同样症状的首查步骤(2-4条);rootCause=根因一句话。 type=knowledge:用户不懂某概念/知识,经 AI 讲解后弄懂了。symptom=问题或概念一句话(如"什么是MVCC");checks=理解的要点/记忆钩子(2-4条);rootCause=最终结论一句话。 type=decision:做了一个技术/产品决策。symptom=要决策的问题;checks=主要考量因素;rootCause=最终结论及理由。 anchors=知识锚点(1-4个词,尽量复用库中已有锚点命名,服务端自动归并相似锚点)。 请在调用前根据整段对话自行蒸馏字段(本工具核心价值:把几万字过程压成百字结论)。 存卡后向用户展示一行确认:"已存卡: → <checks[0]>(可丢弃)"
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | No | 当时的坐标(解决"找不到当时的卡"):project=项目名、file=文件路径,都可选。存卡时自动带上当时的上下文,以后可按"那个项目的问题"检索 | |
| type | No | 卡类型,默认 debug | |
| story | No | 当时的处境一句话(≤40字),写场景不写解法,帮三个月后的你唤起现场。可选 | |
| checks | Yes | 首查路径或理解要点 2-4 条,每条动词开头一行一步不超15字 | |
| source | No | 来源标识,如 trae 会话主题(可选) | |
| anchors | Yes | 知识锚点 1-4 个 | |
| example | No | 精选示例:一段最有代表性的代码/SQL/报错原文(≤300字)。复习流不展示,详情里折叠可查。可选 | |
| symptom | Yes | 症状/问题/决策点,一句话 | |
| rootCause | 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 behavioral disclosure. It explains the tool's core value (compressing a long conversation into a short card), discloses that anchors are automatically merged server-side, and specifies a post-call confirmation message to show the user. This is behaviorally informative without annotations.
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 front-loaded with purpose and trigger timing, followed by a clean type-by-type breakdown. It is fairly long, but the length is justified by the need to define three distinct card types and their field semantics. A slightly tighter structure could improve scannability, but there is little waste.
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 creation tool with 9 parameters, 4 required, and no output schema, the description covers what the tool does, when to trigger it, how to map conversation content into fields, and what to output after saving. It also explains the optional ctx coordinates and the anchoring behavior, so an agent has enough context to invoke it correctly.
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?
Although schema coverage is 100%, the description adds substantial meaning beyond the schema: it maps each card type to specific field interpretations, gives constraints like checks 2-4 items with verb-first steps, anchors 1-4 words, and clarifies that symptom/checks/rootCause mean different things per type. This is far beyond a baseline schema-only 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 opens with a specific verb and resource: '沉淀成卡' (distill into a card) when AI collaboration produces content worth long-term memory. It further defines three concrete card types (debug, knowledge, decision), making the tool's purpose unambiguous and distinct from sibling tools like search_cards, review_card, or delete_card.
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 gives explicit trigger conditions: call proactively after solving a bug, explaining a concept, or making a decision; also trigger on user phrases like '存一下', '今天就到这', or '收尾'. It covers when to use the tool well, though it does not explicitly state when not to use it or name alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cardsA
在开始排查任何问题之前调用:检索用户的历史排错卡,把相关旧卡作为上下文注入。 传入当前问题的症状描述或关键词(如 "500 无日志"、"跨域"、"索引失效"),返回最相关的卡片。 若命中相关卡片,回答时应优先参考用户自己的历史经验路径。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数上限,默认 5 | |
| query | Yes | 问题/症状描述或关键词 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
In the absence of annotations, the description explains the retrieval behavior: it takes symptoms/keywords, returns relevant cards, and instructs using them as context. However, it does not disclose edge behaviors such as no-result handling, whether the operation is read-only, or any rate limits or permission requirements.
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 three sentences and opens with the key instruction on when to call. It is well-structured and economical, though the examples in the second sentence partly duplicate the schema's query description.
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 2-parameter tool with no output schema, the description covers what to pass, what to expect back, and how to use the result in answer generation. It is missing an explicit statement on what to do when there are no matching cards, but overall it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters at 100% coverage, giving the baseline of 3. The description adds example keywords for the query, but no additional semantic detail for the limit parameter or any supplemental explanation 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 clearly states the tool retrieves the user's historical troubleshooting cards and returns the most relevant ones for context, which is a specific verb+resource pairing. It is distinct from siblings like save_card, delete_card, and claim_card because it focuses on search/retrieval of existing history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to call before troubleshooting any issue and to pass symptoms or keywords, which is a strong usage trigger. It also says to favor the returned historical context in answers, but it does not name alternatives or describe when this tool should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weekly_reportA
生成个人进化周报(纯本地统计,零依赖):对比最近 7 天与前 7 天。 四张清单:①不再问了的锚点(内化信号:上周问得多本周零新卡)②还在重复踩的坑(同锚点症状高相似卡对)③薄弱锚点(最近两周复习忘了≥2次)④本周新触达的锚点。 用户说「复盘」「周报」「我进步了吗」时调用:拿到统计后,由你结合本周对话与流水写成叙事周报(成长/缺陷/建议),别只复述数字。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the operation is pure local statistics with zero dependencies and specifies the four output lists precisely. It does not explicitly state 'read-only', but the framing strongly implies a safe, side-effect-free computation.
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 dense but every segment earns its place: purpose, data window, four list definitions, trigger phrases, and the narrative-writing instruction. The numbered list improves scanability and keeps the description structured.
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 parameters and no output schema, the description fully explains what the tool returns (the four lists with their criteria) and how the agent should use that output. Nothing necessary for correct invocation or follow-up is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the 100% schema coverage is vacuous and no parameter documentation is needed. The description still adds useful semantic context by defining the data window: comparing the current 7 days against the prior 7 days.
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: generating a personal evolution weekly report that compares the last 7 days to the previous 7 days, and lists four specific output lists. This clearly distinguishes it from sibling tools like save_card and review_card.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names trigger phrases ('复盘', '周报', '我进步了吗') and instructs the agent to write a narrative weekly report after receiving the statistics, not just repeat numbers. This gives clear when-to-use context and expected follow-up behavior.
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.
9 tool updates
v0.1.0- First observed
claim_card - First observed
delete_card - First observed
due_cards - First observed
install_pack - First observed
log_topic - First observed
review_card - First observed
save_card - First observed
search_cards - First observed
weekly_report
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose: creating, searching, reviewing, deleting cards, logging topics, importing/claiming packs, and generating reports. No two tools overlap in function or trigger condition.
Tools follow a consistent snake_case, mostly verb_noun pattern (save_card, search_cards, review_card). 'due_cards' uses an adjective-led name instead of a verb, a minor deviation from the otherwise uniform convention.
9 tools cover the full memory workflow without redundancy: create, retrieve, review, delete, log, import, claim, and analyze. The count feels intentional and well-scoped for the domain.
The core card lifecycle is complete (create, search, review, delete) plus useful extras like packs, logs, and reporting. Minor gaps exist, such as no direct edit-card tool or explicit pack management beyond claiming, but these don't break the main workflows.
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
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Personal wiki and memory layer for AI assistants. Persistent, structured memory across sessions.
Shared debugging memory for AI coding agents
Shared memory for coding agents. Stop re-explaining your codebase every session.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceGives AI coding assistants cross-session persistent memory with semantic search and task management, fully local.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceProvides persistent, searchable memory and knowledge capture for AI-assisted development, enabling agents to retain decisions, bugs, and patterns across sessions and projects.MIT
- AlicenseCqualityAmaintenanceLocal-first error memory for AI coding agents, enabling them to search past fixes before attempting new repairs and save verified cases as Markdown.3MIT
- FlicenseNot gradedqualityCmaintenanceLocal-first, durable knowledge-card RAG for Codex, enabling search, retrieval, and maintenance of reusable experience cards.-