🚀 Claude Writer's Aid MCP
Claude Writer's Aid MCPは、マークダウン原稿を扱うライターや著者向けに設計されたモデルコンテキストプロトコル(MCP)サーバーです。Claude Codeに統合された、インテリジェントな分析、品質チェック、および執筆支援ツールを提供します。
🚀 クイックスタート
Claude Writer's Aid MCPは、マークダウン原稿の管理や執筆を支援するための機能を提供します。以下のセクションでは、その主な機能、インストール方法、使用例などを説明します。
✨ 主な機能
- 原稿インデックス作成 - 執筆プロジェクト内のすべてのマークダウンファイルを自動的にインデックス化し、追跡します。
- セマンティック検索 - 自然言語クエリを使用して、原稿全体から内容を検索します。
- 品質分析 - 用語の一貫性、読みやすさ、重複、構造上の問題をチェックします。
- リンク管理 - 内部リンクを検証し、壊れた参照を見つけ、相互参照を提案します。
- 進捗追跡 - 単語数を監視し、変更を追跡し、進捗レポートを生成します。
- テーマ抽出 - コンテンツ全体で繰り返されるテーマを発見し、分析します。
- TODO管理 - すべてのTODO、FIXME、DRAFTマーカーを抽出し、追跡します。
- 執筆統計 - 執筆プロジェクトの包括的な指標と分析を提供します。
⚠️ 重要な注意事項
⚠️ 重要提示
このMCPサーバーは、Claude Code CLIでのみ動作します。Claude Desktop、Claude Web、その他のClaude統合では動作しません。
Writer's Aid MCPは、プロジェクトフォルダ内の.writers-aid/manuscript.dbに原稿データを保存し、すべての執筆データを原稿ファイルと一緒に整理します。
📦 インストール
前提条件
必要なもの:
- Claude Code CLI: https://github.com/anthropics/claude-code
- Node.js: バージョン18以上
クイックインストール(推奨)
npmからグローバルにインストールします。
npm install -g claude-writers-aid-mcp
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
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を再起動し、以下でテストします。
"Index my manuscript files"
"Check my manuscript for quality issues"
"Show writing statistics"
MCPツールが正常に動作していれば、分析結果と統計情報が表示されます!
MCP構成コマンド
このパッケージには、Claude Code MCPの構成を管理するコマンドが含まれています。
writers-aid mcp-status
writers-aid init-mcp
writers-aid remove-mcp
重要: 更新後の再起動
新しいバージョンにアップグレードしたとき、Claude Code CLIを再起動してMCPサーバーを再読み込みする必要があります。
- Claude Code CLIを完全に終了します。
- 再度起動します。
- 新しいバージョンが読み込まれます。
なぜですか? Claude CodeはMCPサーバーをキャッシュします。再起動しないと、npmパッケージをグローバルにアップグレードした後も、古いキャッシュされたバージョンを引き続き使用します。
簡単な確認: 再起動後、以下でバージョンを確認できます。
claude-conversation-memory-mcp --version
🖥️ スタンドアロンCLI / REPLモード
MCPサーバー以外に、このパッケージにはターミナルから直接会話履歴を管理する強力なスタンドアロンCLIが含まれています。
3つの動作モード
1. 対話型REPLモード(デフォルト)
claude-conversation-memory-mcp
2. 単一コマンドモード
claude-conversation-memory-mcp status
claude-conversation-memory-mcp "search authentication"
claude-conversation-memory-mcp mistakes --limit 5
3. MCPサーバーモード(Claude Code CLIで使用)
claude-conversation-memory-mcp --server
CLIの簡単な例
claude-conversation-memory-mcp status
claude-conversation-memory-mcp index --include-mcp
claude-conversation-memory-mcp "search database migration" --limit 3
claude-conversation-memory-mcp mistakes "async" --type logic_error
claude-conversation-memory-mcp check src/auth.ts
claude-conversation-memory-mcp config
claude-conversation-memory-mcp set model mxbai-embed-large
claude-conversation-memory-mcp set dimensions 1024
claude-conversation-memory-mcp help
claude-conversation-memory-mcp "help search"
設定管理
CLIには、埋め込みモデルと次元を管理する組み込みコマンドが含まれています。
claude-conversation-memory-mcp config
claude-conversation-memory-mcp set provider ollama
claude-conversation-memory-mcp set model mxbai-embed-large
claude-conversation-memory-mcp set dimensions 1024
claude-conversation-memory-mcp set provider transformers
claude-conversation-memory-mcp set model Xenova/all-MiniLM-L6-v2
claude-conversation-memory-mcp set dimensions 384
claude-conversation-memory-mcp get provider
利用可能なコマンド
- 📥 インデックス化:
index, reindex
- 🔍 検索:
search, decisions, mistakes, similar
- 📋 ファイル:
check, history
- 🔗 Git:
commits
- 📝 その他:
requirements, tools, docs
- ℹ️ 情報:
status, version, help
- ⚙️ 設定:
config, get, set
- 🧹 メンテナンス:
vacuum, reset
👉 すべてのコマンド、例、およびワークフローについては、完全なCLIガイドを参照してください
💻 使用例
初回設定
You: "Index my conversation history for this project"
Claude: I'll index all conversations for this project...
✓ Indexed 5 conversations with 2,341 messages
✓ Semantic search enabled (embeddings generated)
過去の会話を検索
You: "What did we discuss about the authentication system?"
Claude: Let me search our conversation history...
[Returns relevant messages with context and timestamps]
ファイルを変更する前
You: "Before I change database.ts, what should I know?"
Claude: Let me check the context for database.ts...
[Shows recent changes, related decisions, and past mistakes]
決定を追跡
You: "Why did we choose SQLite over PostgreSQL?"
Claude: Let me check our decision history...
[Returns the decision with rationale and alternatives considered]
ミスから学ぶ
You: "Have we had issues with async/await before?"
Claude: Let me search past mistakes...
[Shows previous errors and how they were fixed]
関連する作業を見つける
You: "Have we worked on similar API endpoints before?"
Claude: Let me find similar sessions...
[Returns past conversations about similar work]
ファイルの履歴を表示
You: "Show me how auth.ts evolved over time"
Claude: Let me trace the file evolution...
[Shows complete timeline with conversations, commits, and decisions]
コンテキストを思い出して適用する
You: "Recall how we implemented authentication, now add OAuth support using that same pattern"
Claude: Let me recall the authentication implementation context...
[Returns relevant conversations, decisions, mistakes, file changes, and commits]
[Provides suggestions for applying this context to OAuth implementation]
その他の例:
- "Remember the bug we fixed in parser.ts, check if similar issue exists in lexer.ts"
- "Recall all decisions about database schema, now design the migration strategy"
- "Find mistakes we made with async/await, avoid them in this new async function"
🔧 高度な使用方法
特定のセッションをインデックス化
You: "Index conversation from session a1172af3-ca62-41be-9b90-701cef39daae"
MCP会話を除外する
デフォルトでは、MCP自体に関する会話は、自己参照ループを防ぐために除外されます。これらを含めるには、以下のようにします。
You: "Index all conversations, including MCP conversations"
インデックス化オプション
会話をインデックス化するとき、いくつかのオプションで保存する内容を制御できます。
思考ブロックを含める
デフォルト: false(思考ブロックは除外されます)
思考ブロックにはClaudeの内部推論プロセスが含まれています。これらは非常に大きく(3 - 5倍のデータ量)、通常は検索には必要ありません。
# デフォルトの動作(推奨)
You: "Index conversations"
# 思考ブロックは除外されます
# 思考ブロックを含める(データベースサイズが大幅に増加します)
You: "Index conversations with thinking blocks"
有効にするタイミング:
- ✅ Claudeの推論プロセスを検索したい場合
- ✅ 意思決定パターンを分析したい場合
- ❌ 表示される会話内容のみを検索したい場合は有効にしないでください
MCP会話を除外する
デフォルト: "self-only"(会話履歴MCPの呼び出しのみ除外)
インデックス化するMCPツールの対話を制御します。
"self-only"(デフォルト): この会話履歴MCPに関するメッセージを除外して、自己参照ループを防ぎます。
false: すべてのサーバーからのすべてのMCPツールの呼び出しをインデックス化します。
"all-mcp" または true: すべてのサーバーからのすべてのMCPツールの呼び出しを除外します。
["server1", "server2"]: 特定のMCPサーバーを除外します。
# デフォルト - 会話履歴MCPのみ除外
You: "Index conversations"
# すべてのMCP会話を含める(この会話も含む)
You: "Index conversations, include all MCP tools"
# すべてのMCPツールの呼び出しを除外
You: "Index conversations, exclude all MCP interactions"
フィルタリングされるもの: MCPツールを呼び出す特定のメッセージのみが除外され、会話全体ではありません。これにより、自己参照ループを防ぎながら会話のコンテキストが保持されます。
Git統合を有効にする
デフォルト: true(gitコミットがリンクされます)
タイムスタンプとファイルの変更に基づいて、gitコミットを会話にリンクします。
# デフォルトの動作
You: "Index conversations"
# Gitコミットが自動的にリンクされます
# Git統合を無効にする
You: "Index conversations without git integration"
インデックス出力
インデックス化後、以下のように表示されます。
📁 Indexed from: /path/to/modern-folder, /path/to/legacy-folder
💾 Database: /path/to/.claude-conversations-memory.db
これは以下のことを示しています。
- インデックス化されたフォルダ: 使用された会話フォルダ(存在する場合はレガシーフォルダも含む)
- データベースの場所: インデックス化されたデータが保存されている場所
日付フィルターで検索
You: "What were we working on last week?"
ドキュメントを生成
You: "Generate project documentation from our conversations"
Claudeは、コード分析と会話履歴を組み合わせた包括的なドキュメントを作成します。
会話履歴を移行する
プロジェクトディレクトリを名前変更または移動した場合、Claude Codeが新しいパスに新しいフォルダを作成するため、会話履歴がアクセスできなくなります。移行ツールを使用して履歴を回復します。
手順1: 古い会話フォルダを検出する
You: "Discover old conversations for this project"
Claudeは~/.claude/projects/をスキャンし、現在のプロジェクトに一致するフォルダを類似度スコアでランク付けして表示します。出力には以下が含まれます。
- フォルダ名とパス
- データベースに保存されている元のプロジェクトパス
- 会話とファイルの数
- 最後のアクティビティタイムスタンプ
- 類似度スコア(数値が高いほど一致度が高い)
手順2: 履歴を移行する
You: "Migrate conversations from /Users/name/.claude/projects/-old-project-name, old path was /Users/name/old-project, new path is /Users/name/new-project"
Claudeは以下を行います。
- すべての会話JSONLファイルを新しい場所にコピーします。
- データベース内の
project_pathを更新します。
- 自動的にバックアップ(
.claude-conversations-memory.db.bak)を作成します。
- すべての元のデータを保存します(移動ではなくコピー)。
例のワークフロー:
# プロジェクトディレクトリを名前変更した場合
# 旧: /Users/alice/code/my-app
# 新: /Users/alice/code/my-awesome-app
You: "Discover old conversations for this project"
Claude: Found 1 potential old conversation folder:
- Folder: -Users-alice-code-my-app
- Original path: /Users/alice/code/my-app
- Conversations: 15
- Files: 47
- Score: 95.3
You: "Migrate from /Users/alice/.claude/projects/-Users-alice-code-my-app, old path /Users/alice/code/my-app, new path /Users/alice/code/my-awesome-app"
Claude: Successfully migrated 47 conversation files.
Now you can index and search your full history!
ドライランモード:
変更を加えずに移行をテストします。
You: "Dry run: migrate from [source] old path [old] new path [new]"
これにより、実際にファイルをコピーせずに移行される内容が表示されます。
異なるプロジェクトの会話をマージする
v0.4.0の新機能: マージモードを使用して、異なるプロジェクトの会話履歴を1つのフォルダに結合します。
使用例: /project-a/drafts/2025-01-05の会話を現在のプロジェクト/project-bにマージしたい場合。
手順1: ソースフォルダを検出する
You: "Discover old conversations for project path /Users/name/project-a/drafts/2025-01-05"
手順2: 現在のプロジェクトにマージする
You: "Merge conversations from /Users/name/.claude/projects/-project-a-drafts-2025-01-05, old path /Users/name/project-a/drafts/2025-01-05, new path /Users/name/project-b, mode merge"
Claudeは以下を行います。
- 新しい会話ファイルのみをコピーします(重複をスキップ)。
- IDが衝突した場合、ターゲットの会話を保持します(データ損失なし)。
- すべてのデータベースエントリをINSERT OR IGNOREを使用してマージします。
- マージ前にターゲットデータベースのバックアップを作成します。
- すべての元のソースデータを保存します。
例のワークフロー:
# シナリオ: 異なるプロジェクトの会話を結合する
現在のプロジェクト: /Users/alice/main-project(すでに20の会話がある)
ソースプロジェクト: /Users/alice/drafts/experiment(10の会話があり、3つはメインと重複)
You: "Discover old conversations for /Users/alice/drafts/experiment"
Claude: Found 1 folder:
- Folder: -Users-alice-drafts-experiment
- Original path: /Users/alice/drafts/experiment
- Conversations: 10
- Files: 10
You: "Merge from /Users/alice/.claude/projects/-Users-alice-drafts-experiment, old path /Users/alice/drafts/experiment, new path /Users/alice/main-project, mode merge"
Claude: Successfully merged 7 new conversation files into /Users/alice/.claude/projects/-Users-alice-main-project
(3 duplicate conversations were skipped to preserve target data)
Backup created at: .claude-conversations-memory.db.bak
# 結果: main-projectには現在27の会話があります(元の20 + experimentからの7つの新しい会話)
移行とマージの主な違い:
| 機能 |
移行モード(デフォルト) |
マージモード |
| ターゲットにデータがある場合 |
❌ 拒否(衝突) |
✅ 許可 |
| 重複するID |
ターゲットを上書き |
ソースをスキップ(ターゲットを保持) |
| 使用例 |
プロジェクトの名前変更 |
異なるプロジェクトを結合 |
| バックアップの場所 |
ソースフォルダ |
ターゲットフォルダ |
📚 詳細情報
- ツールの例 - 各ツールについて50以上の自然言語の例があります。
- クイックリファレンス - 一般的なフレーズのチートシートです。
- 埋め込みに関するFAQ - セマンティック検索の仕組みについて説明しています。
🐛 トラブルシューティング
"No conversations found"
Claude Code CLIで会話を行ったディレクトリでこれを実行していることを確認してください。~/.claude/projects/を確認して、会話ファイルが存在することを検証します。
"Embeddings failed"
埋め込みが失敗した場合、MCPは全文検索にフォールバックします。すべての機能は引き続き動作しますが、セマンティック検索は使用できません。
"MCP not responding"
Claude Code CLIを再起動してMCPサーバーを再読み込みしてください。
📄 ライセンス
MITライセンス - 詳細については、LICENSEファイルを参照してください。
🙏 謝辞
code-graph-rag-mcpに触発されています。
Claude Code CLIコミュニティのために愛を込めて作られました