返回市场
克劳德写作助手mcp

克劳德写作助手mcp

作者:xiaolai6 星标更新:2025-11-13

项目介绍

Claude Writer's Aid MCP

一个专门为使用Markdown手稿的作家和作者设计的模型上下文协议(MCP)服务器。它提供了智能分析、质量检查以及集成到Claude Code中的写作辅助工具。

💡 功能概述

  • 手稿索引 - 自动索引并跟踪您写作项目中的所有Markdown文件
  • 语义搜索 - 使用自然语言查询在您的手稿中查找内容
  • 质量分析 - 检查术语一致性、可读性、重复内容和结构问题
  • 链接管理 - 验证内部链接,查找损坏的引用,并建议交叉引用
  • 进度追踪 - 监控字数统计,跟踪更改,并生成进度报告
  • 主题提取 - 发现并分析您内容中的反复出现的主题
  • TODO管理 - 提取并跟踪所有TODO、FIXME和DRAFT标记
  • 写作统计 - 您的写作项目的综合指标和分析

⚠️ 重要提示:仅适用于Claude Code CLI

此MCP服务器仅与Claude Code CLI兼容。

不支持以下平台:

  • ❌ Claude Desktop
  • ❌ Claude Web
  • ❌ 其他Claude集成

Writer's Aid MCP将手稿数据存储在项目文件夹内的.writers-aid/manuscript.db中,确保所有写作数据与手稿文件一起有序存放。

📦 安装

前提条件

必需项:

  1. Claude Code CLI: https://github.com/anthropics/claude-code
  2. Node.js: 版本18或更高

快速安装(推荐)

从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工具正常工作,您将看到分析结果和统计数据!

MCP配置命令

该包包括用于管理您的Claude Code MCP配置的命令:

# 检查MCP配置状态
writers-aid mcp-status

# 配置或更新MCP服务器
writers-aid init-mcp

# 移除MCP配置
writers-aid remove-mcp

重要提示:更新后重启

当您升级到新版本时,必须重启Claude Code CLI以重新加载MCP服务器:

  1. 完全退出Claude Code CLI
  2. 再次启动它
  3. 新版本将被加载

为什么? Claude Code缓存了MCP服务器。如果不重启,即使您已经全局升级了npm包,它也会继续使用旧的缓存版本。

快速检查:重启后,您可以验证版本:

claude-conversation-memory-mcp --version

🖥️ 独立CLI / REPL模式

除了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启动

快速CLI示例

# 查看数据库状态
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 获取 提供者

可用命令

  • 📥 索引索引重新索引
  • 🔍 搜索搜索决策错误相似
  • 📋 文件检查历史
  • 🔗 Git提交
  • 📝 其他需求工具文档
  • ℹ️ 信息状态版本帮助
  • ⚙️ 配置配置获取设置
  • 🧹 维护清理重置

👉 详见完整的CLI指南了解所有命令、示例和工作流程

🎯 使用示例

第一次设置

您: "索引我在这个项目中的对话历史"

Claude: 我将索引该项目中的所有对话...
✓ 索引了5个对话,共2,341条消息
✓ 开启语义搜索(生成嵌入)

搜索过去的对话

您: "我们讨论过身份验证系统了吗?"

Claude: 让我搜索我们的对话历史...
[返回相关消息及其上下文和时间戳]

修改文件前

您: "在我修改database.ts之前,我应该知道什么?"

Claude: 让我检查database.ts的上下文...
[显示最近的更改、相关的决策和过去的错误]

跟踪决策

您: "为什么我们选择SQLite而不是PostgreSQL?"

Claude: 让我检查我们的决策历史...
[返回决策及其理由和考虑的替代方案]

从错误中学习

您: "我们以前遇到过异步/等待的问题吗?"

Claude: 让我搜索过去的错误...
[显示之前的错误及其修复方法]

查找相关工作

您: "我们以前是否处理过类似的API端点?"

Claude: 让我找到类似的工作会话...
[返回过去关于类似工作的对话]

查看文件历史

您: "展示auth.ts是如何随时间演变的"

Claude: 让我追踪文件的演变...
[显示完整的演变时间轴,包括对话、提交和决策]

回忆并应用上下文

您: "回忆我们如何实现身份验证,现在使用相同的模式添加OAuth支持"

Claude: 让我回忆身份验证实现的上下文...
[返回相关的对话、决策、错误、文件更改和提交]
[提供将此上下文应用于OAuth实现的建议]

更多示例:

  • "记住我们在parser.ts中修复的bug,检查lexer.ts中是否存在类似的问题"
  • "回忆所有关于数据库模式的决策,现在设计迁移策略"
  • "查找我们犯过的异步/等待错误,在这个新的异步函数中避免它们"

🔧 高级用法

索引特定会话

您: "索引来自会话a1172af3-ca62-41be-9b90-701cef39daae的对话"

排除MCP对话

默认情况下,关于MCP本身的对话会被排除,以防止自我引用循环。要包含它们:

您: "索引所有对话,包括MCP对话"

索引选项

在索引对话时,有几个选项可以控制存储的内容:

包含思考块

默认false(思考块被排除)

思考块包含Claude的内部推理过程。它们可能非常大(3-5倍的数据量),通常不需要用于搜索。

# 默认行为(推荐)
您: "索引对话"
# 思考块被排除

# 包含思考块(显著增加数据库大小)
您: "索引对话,包含思考块"

何时启用

  • ✅ 您想要搜索Claude的推理过程
  • ✅ 您正在分析决策模式
  • ❌ 如果您只是想搜索可见的对话内容,则不要启用

排除MCP对话

默认"self-only"(仅排除此对话记忆MCP调用)

控制哪些MCP工具交互被索引:

  • "self-only"(默认):排除关于此对话记忆MCP的消息,以防止自我引用循环
  • false:索引所有服务器的所有MCP工具调用
  • "all-mcp"true:排除所有服务器的所有MCP工具调用
  • ["server1", "server2"]:排除特定的MCP服务器
# 默认 - 仅排除对话记忆MCP
您: "索引对话"

# 包括所有MCP对话(包括这个)
您: "索引对话,包含所有MCP工具"

# 排除所有MCP工具调用
您: "索引对话,排除所有MCP交互"

过滤的内容:只过滤特定消息,这些消息调用了MCP工具,而不是整个对话。这保留了对话上下文,同时防止了自我引用循环。

启用Git集成

默认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将:

  • 将所有对话JSONL文件复制到新位置
  • 更新数据库中的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将:

  • 只复制新的对话文件(跳过重复项)
  • 当ID冲突时保留目标对话(无数据丢失)
  • 使用INSERT OR IGNORE合并所有数据库条目
  • 在合并前创建目标数据库的备份
  • 保留所有原始源数据

示例工作流程:

# 场景:您有来自不同项目的对话需要合并

当前项目:/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覆盖目标跳过源(保留目标)
使用场景重命名项目合并不同项目
备份位置源文件夹目标文件夹

📚 更多学习

🐛 故障排除

"未找到对话"

确保您在