智慧商店
一个MCP服务器,为AI编码助手提供持久记忆、上下文控制和抗幻觉工具。
提前释放 --积极开发,API可能会发生变化。预计会有粗糙的边缘。
它做什么
上下文控制 --实时修剪对话上下文(无需重新启动),将精心策划的知识注入会话,监控上下文使用情况。
持久的知识 --将课程、模式、注意事项和边缘案例保存到跨会话的平面文件中。按项目部分、文件或全局组织。
项目索引 --基于AST的符号提取(通过 @astgrep/napi),API路由检测,HTML页面清单。生成一个紧凑的项目概述,旨在为Claude提供一个详细的项目地图,用于您的上下文窗口的一小部分。
抗幻觉 --具有模糊匹配的符号注册表可以捕获幻觉函数名、拼写错误和未知符号。包括一个写后挂钩,每次编辑后都会自动警告幻觉导入、文件路径、函数调用和API路由。
工具(11)
上下文控制
| 工具 | 说明 |
|---|---|
context_status | 检查上下文使用情况——消息计数、估计令牌、膨胀指标 |
prune_context | 实时修剪旧消息。模式: oldest_percent, before_message, after_phrase |
inject_context | 插入精心策划的上下文作为新的对话根。需要 /resume 重新加载 |
持久知识
| 工具 | 说明 |
|---|---|
save_wisdom | 坚持经验教训、模式、注意事项、边缘案例或决定 .wisdom/ 文件 |
get_wisdom | 加载文件、节或关键字的智慧。无参数调用项目概述 |
update_plan | 用文件、决策和状态记录功能计划 |
list_wisdom | 浏览存在的智慧——章节、计划、模式、侧车 |
项目索引
| 工具 | 说明 |
|---|---|
reindex_project | 扫描项目,通过AST提取符号,保存到 .wisdom/symbols.json |
get_project_overview | 紧凑的项目地图-文件树,符号,API路线,HTML页面。始终新鲜 |
抗幻觉
| 工具 | 说明 |
|---|---|
check_symbols | 对照注册表的交叉引用符号。报告:确认、模糊匹配(拼写错误?)或未知(幻觉?) |
refresh_symbols | 重新扫描并更新符号注册表 |
安装
git clone https://github.com/InfiniQuest-App/wisdom-store.git
cd wisdom-store
npm install添加到您的 ~/.claude.json 或项目 .mcp.json (参见 examples/mcp.json):
{
"mcpServers": {
"wisdom-store": {
"command": "node",
"args": ["/path/to/wisdom-store/src/mcp-server/index.js"],
"env": {}
}
}
}重新启动Claude Code或运行 /mcp 连接。
教克劳德使用它
从以下位置复制相关章节 examples/CLAUDE.md 进入你的项目 CLAUDE.md这教会了克劳德何时加载智慧、保存知识、检查符号和管理上下文。
钩子
这 hooks/ 该目录包含自动与智慧存储集成的Claude Code挂钩。
添加到您的设置文件-- ~/.claude/settings.json (全球), .claude/settings.json (项目),或 .claude/settings.local.json (每个项目个人)。替换 /path/to/wisdom-store 使用您的实际克隆路径。
写作后幻觉检查
每次写入/编辑后自动检查幻觉:
- 导入指向不存在文件的路径
- 导入的符号不在项目注册表中
- 对未知符号的独立函数调用
- 在项目索引中找不到API路由
需要 .wisdom/symbols.json --奔跑 get_project_overview 生成一次(每次调用时自动刷新)。仅对代码文件开火(.js, .ts, .py, .go, .rs).
预压缩保存提醒
提醒克劳德在压缩上下文之前将重要发现保存到智慧库中。手动和手动都着火了(/compact)以及自动压实。仅在具有以下条件的项目中发生火灾 .wisdom/ 目录。
设置
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit",
"hooks": [{
"type": "command",
"command": "/path/to/wisdom-store/hooks/post-write-symbol-check.sh",
"timeout": 10
}]
},
{
"matcher": "Write",
"hooks": [{
"type": "command",
"command": "/path/to/wisdom-store/hooks/post-write-symbol-check.sh",
"timeout": 10
}]
}
],
"PreCompact": [
{
"matcher": "",
"hooks": [{
"type": "command",
"command": "/path/to/wisdom-store/hooks/pre-compact-save-reminder.sh",
"timeout": 10
}]
}
]
}
}运作原理
存储
一切都是平面文件 .wisdom/ 项目根目录:
.wisdom/
index.json # Project metadata + file list
symbols.json # Symbol registry (functions, classes, exports, routes)
sections/ # Knowledge organized by topic
auth.md
estimates.md
plans/ # Feature plans
v2-migration.md
patterns/ # Reusable patterns
error-handling.md智慧储存在三个层面:
- 项目 —
.wisdom/sections/,.wisdom/plans/,.wisdom/patterns/了解这个项目 - 文件特定 --源旁边的Sidecar文件:
myfile.js获取myfile.js.wisdom - 全球 —
~/.claude/wisdom/用于跨项目课程(使用scope: "global"随着save_wisdom)
上下文操纵
prune_context 通过设置工作 parentUuid: null 在JSONL对话文件中的目标消息上,孤立它之前的所有内容。这在下一条消息上生效——不需要重新启动。
inject_context 附加一条新消息 parentUuid: null 就像一根新鲜的根。需要 /resume 重新加载。辅助脚本(hooks/send-resume.sh)作为tmux自动化的起点,但手动 /resume 是最可靠的方法。
AST提取
用途 @ast-grep/napi (基于树的)JavaScript/TypeScript/TSX。提取函数、类、变量、导出、接口、类型、枚举。正则表达式在Python、Go和Rust中的回退。
项目概述旨在提高上下文效率——足够紧凑,可以容纳单个工具响应,同时涵盖文件树、符号、路线和页面。
输出示例
跑步 get_project_overview 关于此回购:
# Project Overview
## Files (16)
Total: 3,093 lines
- hooks/: symbol-check.mjs (273L)
- src/mcp-server/: index.js (371L)
- src/mcp-server/lib/: indexer.js (643L), jsonl.js (276L), wisdom.js (325L)
- src/mcp-server/tools/: check-symbols.js (87L), context-status.js (123L),
get-project-overview.js (58L), get-wisdom.js (179L), inject-context.js (177L),
list-wisdom.js (144L), prune-context.js (125L), refresh-symbols.js (15L),
reindex-project.js (92L), save-wisdom.js (106L), update-plan.js (99L)
## Symbols
Functions: 62, Classes/Types: 0, Exports: 40
### Exports
- appendLine — src/mcp-server/lib/jsonl.js:273
- checkSymbols — src/mcp-server/lib/indexer.js:543
- findConversationFile — src/mcp-server/lib/jsonl.js:30
- generateOverview — src/mcp-server/lib/indexer.js:450
- handleCheckSymbols — src/mcp-server/tools/check-symbols.js:24
- handlePruneContext — src/mcp-server/tools/prune-context.js:23
- scanProject — src/mcp-server/lib/indexer.js:50
- walkChain — src/mcp-server/lib/jsonl.js:160
... (40 exports total)典型工作流程
1. Start working on a task
2. get_project_overview → understand the codebase
3. get_wisdom for relevant files/sections → load past knowledge
4. Work on the task
5. save_wisdom to persist new insights
6. check_symbols after writing code → catch hallucinations
7. If context gets large: save_wisdom → prune_context → continue语言支持
| 语言 | AST提取 | Regex回退 |
|---|---|---|
| JavaScript(.js、.mjs、.cjs、.jsx) | 完整 | - |
| TypeScript(.ts,.tsx) | 完整 | - |
| Python(.py) | - | 函数、类、方法 |
| Go(.Go) | - | 函数、类型、变量 |
| Rust(.rs) | - | 函数、结构、枚举、特征 |
| HTML(.HTML) | - | 页面标题、结构 |
需求
- Node.js 18+
- Claude代码(用于MCP集成和挂钩)
许可证
麻省理工学院
