一个专门为使用Markdown手稿的作家和作者设计的模型上下文协议(MCP)服务器。它提供了智能分析、质量检查以及集成到Claude Code中的写作辅助工具。
此MCP服务器仅与Claude Code CLI兼容。
不支持以下平台:
Writer's Aid MCP将手稿数据存储在项目文件夹内的.writers-aid/manuscript.db中,确保所有写作数据与手稿文件一起有序存放。
必需项:
从npm全局安装:
# 全局安装包
npm install -g claude-writers-aid-mcp
# 自动配置Claude Code CLI
writers-aid init-mcp
就是这样!init-mcp命令会自动:
~/.claude.json中配置正确的设置从这个仓库进行本地开发/使用:
# 克隆仓库
git clone https://github.com/xiaolai/claude-writers-aid-mcp.git
cd claude-writers-aid-mcp
# 安装依赖
npm install
# 构建项目
npm run build
# 配置MCP服务器
npm run init-mcp
如果您偏好手动设置,请添加到您的~/.claude.json(不是~/.claude/config.json):
{
"mcpServers": {
"writers-aid": {
"type": "stdio",
"command": "node",
"args": [
"/path/to/claude-writers-aid-mcp/dist/index.js"
]
}
}
}
请将/path/to/替换为您实际安装包的位置。
检查您的MCP配置:
writers-aid mcp-status
重新启动Claude Code CLI并测试:
"索引我的手稿文件"
"检查我的手稿是否有质量问题"
"显示写作统计"
如果MCP工具正常工作,您将看到分析结果和统计数据!
该包包括用于管理您的Claude Code MCP配置的命令:
# 检查MCP配置状态
writers-aid mcp-status
# 配置或更新MCP服务器
writers-aid init-mcp
# 移除MCP配置
writers-aid remove-mcp
当您升级到新版本时,必须重启Claude Code CLI以重新加载MCP服务器:
为什么? Claude Code缓存了MCP服务器。如果不重启,即使您已经全局升级了npm包,它也会继续使用旧的缓存版本。
快速检查:重启后,您可以验证版本:
claude-conversation-memory-mcp --version
除了MCP服务器之外,此包还包括一个强大的独立CLI,可以直接从终端管理您的对话记忆。
1. 交互式REPL模式(默认)
claude-conversation-memory-mcp
# 启动具有40多个命令的交互式shell
2. 单个命令模式
claude-conversation-memory-mcp status
claude-conversation-memory-mcp "搜索身份验证"
claude-conversation-memory-mcp 错误 --限制 5
3. MCP服务器模式(由Claude Code CLI使用)
claude-conversation-memory-mcp --server
# 或者通过Claude Code CLI自动从stdio启动
# 查看数据库状态
claude-conversation-memory-mcp status
# 索引对话
claude-conversation-memory-mcp index --包含-mcp
# 搜索主题
claude-conversation-memory-mcp "搜索数据库迁移" --限制 3
# 查找过去的错误
claude-conversation-memory-mcp 错误 "异步" --类型 逻辑错误
# 编辑前检查文件上下文
claude-conversation-memory-mcp 检查 src/auth.ts
# 配置嵌入模型
claude-conversation-memory-mcp 配置
claude-conversation-memory-mcp 设置 模型 mxbai-embed-large
claude-conversation-memory-mcp 设置 维度 1124
# 查看帮助
claude-conversation-memory-mcp 帮助
claude-conversation-memory-mcp "帮助 搜索"
CLI内置了用于管理嵌入模型和维度的命令:
# 查看当前配置
claude-conversation-memory-mcp 配置
# 切换到Ollama,使用mxbai-embed-large(1024维)
claude-conversation-memory-mcp 设置 提供者 ollama
claude-conversation-memory-mcp 设置 模型 mxbai-embed-large
claude-conversation-memory-mcp 设置 维度 1024
# 切换到Transformers.js(离线,无需设置)
claude-conversation-memory-mcp 设置 提供者 transformers
claude-conversation-memory-mcp 设置 模型 Xenova/all-MiniLM-L6-v2
claude-conversation-memory-mcp 设置 维度 384
# 获取特定配置值
claude-conversation-memory-mcp 获取 提供者
索引,重新索引搜索,决策,错误,相似检查,历史提交需求,工具,文档状态,版本,帮助配置,获取,设置清理,重置👉 详见完整的CLI指南了解所有命令、示例和工作流程
您: "索引我在这个项目中的对话历史"
Claude: 我将索引该项目中的所有对话...
✓ 索引了5个对话,共2,341条消息
✓ 开启语义搜索(生成嵌入)
您: "我们讨论过身份验证系统了吗?"
Claude: 让我搜索我们的对话历史...
[返回相关消息及其上下文和时间戳]
您: "在我修改database.ts之前,我应该知道什么?"
Claude: 让我检查database.ts的上下文...
[显示最近的更改、相关的决策和过去的错误]
您: "为什么我们选择SQLite而不是PostgreSQL?"
Claude: 让我检查我们的决策历史...
[返回决策及其理由和考虑的替代方案]
您: "我们以前遇到过异步/等待的问题吗?"
Claude: 让我搜索过去的错误...
[显示之前的错误及其修复方法]
您: "我们以前是否处理过类似的API端点?"
Claude: 让我找到类似的工作会话...
[返回过去关于类似工作的对话]
您: "展示auth.ts是如何随时间演变的"
Claude: 让我追踪文件的演变...
[显示完整的演变时间轴,包括对话、提交和决策]
您: "回忆我们如何实现身份验证,现在使用相同的模式添加OAuth支持"
Claude: 让我回忆身份验证实现的上下文...
[返回相关的对话、决策、错误、文件更改和提交]
[提供将此上下文应用于OAuth实现的建议]
更多示例:
您: "索引来自会话a1172af3-ca62-41be-9b90-701cef39daae的对话"
默认情况下,关于MCP本身的对话会被排除,以防止自我引用循环。要包含它们:
您: "索引所有对话,包括MCP对话"
在索引对话时,有几个选项可以控制存储的内容:
默认:false(思考块被排除)
思考块包含Claude的内部推理过程。它们可能非常大(3-5倍的数据量),通常不需要用于搜索。
# 默认行为(推荐)
您: "索引对话"
# 思考块被排除
# 包含思考块(显著增加数据库大小)
您: "索引对话,包含思考块"
何时启用:
默认:"self-only"(仅排除此对话记忆MCP调用)
控制哪些MCP工具交互被索引:
"self-only"(默认):排除关于此对话记忆MCP的消息,以防止自我引用循环false:索引所有服务器的所有MCP工具调用"all-mcp"或true:排除所有服务器的所有MCP工具调用["server1", "server2"]:排除特定的MCP服务器# 默认 - 仅排除对话记忆MCP
您: "索引对话"
# 包括所有MCP对话(包括这个)
您: "索引对话,包含所有MCP工具"
# 排除所有MCP工具调用
您: "索引对话,排除所有MCP交互"
过滤的内容:只过滤特定消息,这些消息调用了MCP工具,而不是整个对话。这保留了对话上下文,同时防止了自我引用循环。
默认:true(git提交被链接)
根据时间戳和文件更改将git提交链接到对话。
# 默认行为
您: "索引对话"
# git提交自动链接
# 禁用git集成
您: "索引对话,不包含git集成"
索引后,您将看到:
📁 索引自:/path/to/modern-folder, /path/to/legacy-folder
💾 数据库:/path/to/.claude-conversations-memory.db
这显示:
您: "上周我们在做什么?"
您: "从我们的对话生成项目文档"
Claude将创建结合代码分析和对话历史的全面文档。
当您重命名或移动项目目录时,您的对话历史将变得不可访问,因为Claude Code会在新路径下创建一个新的文件夹。使用迁移工具恢复您的历史:
第1步:发现旧的对话文件夹
您: "发现这个项目的旧对话"
Claude将扫描~/.claude/projects/并显示与您当前项目匹配的文件夹,按相似性得分排序。输出包括:
第2步:迁移历史
您: "从/Users/name/.claude/projects/-old-project-name迁移对话,旧路径是/Users/name/old-project,新路径是/Users/name/new-project"
Claude将:
project_path.claude-conversations-memory.db.bak)示例工作流程:
# 您重命名了项目目录
# 旧:/Users/alice/code/my-app
# 新:/Users/alice/code/my-awesome-app
您: "发现这个项目的旧对话"
Claude: 找到了1个潜在的旧对话文件夹:
- 文件夹:-Users-alice-code-my-app
- 原始路径:/Users/alice/code/my-app
- 对话:15
- 文件:47
- 得分:95.3
您: "从/Users/alice/.claude/projects/-Users-alice-code-my-app迁移,旧路径/Users/alice/code/my-app,新路径/Users/alice/code/my-awesome-app"
Claude: 成功迁移了47个对话文件。
现在您可以索引并搜索您的完整历史记录!
干运行模式:
测试迁移而不做任何更改:
您: "干运行:从[源]旧路径[旧]新路径[新]迁移"
这将显示将要迁移的内容,而不会实际复制文件。
v0.4.0新增:使用合并模式将不同项目的对话历史合并到一个文件夹中。
使用场景:您希望将/project-a/drafts/2025-01-05中的对话合并到当前项目/project-b中。
第1步:发现源文件夹
您: "发现项目路径/Users/name/project-a/drafts/2025-01-05的旧对话"
第2步:合并到当前项目
您: "从/Users/name/.claude/projects/-project-a-drafts-2025-01-05合并对话,旧路径/Users/name/project-a/drafts/2025-01-05,新路径/Users/name/project-b,模式合并"
Claude将:
示例工作流程:
# 场景:您有来自不同项目的对话需要合并
当前项目:/Users/alice/main-project(已有20个对话)
源项目:/Users/alice/drafts/experiment(有10个对话,其中3个与main重叠)
您: "发现/Users/alice/drafts/experiment的旧对话"
Claude: 找到了1个文件夹:
- 文件夹:-Users-alice-drafts-experiment
- 原始路径:/Users/alice/drafts/experiment
- 对话:10
- 文件:10
您: "从/Users/alice/.claude/projects/-Users-alice-drafts-experiment合并,旧路径/Users/alice/drafts/experiment,新路径/Users/alice/main-project,模式合并"
Claude: 成功将7个新的对话文件合并到/Users/alice/.claude/projects/-Users-alice-main-project
(跳过了3个重复的对话以保留目标数据)
备份创建于:.claude-conversations-memory.db.bak
# 结果:main-project现在有27个对话(20个原始 + 7个新的来自experiment)
迁移模式与合并模式之间的关键差异:
| 功能 | 迁移模式(默认) | 合并模式 |
|---|---|---|
| 目标有数据 | ❌ 拒绝(冲突) | ✅ 允许 |
| 重复ID | 覆盖目标 | 跳过源(保留目标) |
| 使用场景 | 重命名项目 | 合并不同项目 |
| 备份位置 | 源文件夹 | 目标文件夹 |
确保您在