UNPKG

mcp-claude-context-continuity

Version:

MCP server that maintains conversation context for Claude CLI

354 lines (265 loc) 8.41 kB
# MCP Claude Context Continuity [![npm version](https://badge.fury.io/js/mcp-claude-context-continuity.svg)](https://www.npmjs.com/package/mcp-claude-context-continuity) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) An MCP (Model Context Protocol) server that maintains conversation context for Claude CLI across multiple invocations. ## Features - 🔄 **Conversation Continuity**: Leverages Claude CLI's `--resume` feature to maintain conversation context across multiple calls - 📝 **Session Management**: Save, restore, and branch conversations - 🖥️ **Cross-platform**: Supports Windows (via WSL), Linux, and macOS -**Simple Implementation**: All functionality in a single Python file ## Requirements - Python 3.8+ - Claude CLI (must be installed in WSL for all platforms) - FastMCP (`pip install fastmcp`) - WSL2 for Windows environments - Windows: Python must be installed on Windows (not in WSL) ## Installation ### Option 1: Using npm (Recommended) ```bash npm install -g mcp-claude-context-continuity ``` After installation, the server will be available as a global command. ### Option 2: Manual Installation 1. Clone the repository: ```bash git clone https://github.com/tethiro/mcp-claude-context-continuity.git cd mcp-claude-context-continuity ``` 2. Install dependencies: ```bash pip install -r requirements.txt ``` ## Configuration ### Gemini CLI (Recommended) Add the following to your Gemini configuration file: #### Using npm global install (Simplest) **All platforms** (`~/.gemini/settings.json` or `%USERPROFILE%\.gemini\settings.json`): ```json { "mcpServers": { "claude-cli-server": { "command": "mcp-claude-context-continuity" } } } ``` #### Manual installation **Windows** (`%USERPROFILE%\.gemini\settings.json`): ```json { "mcpServers": { "claude-cli-server": { "command": "wsl", "args": [ "-e", "python3", "/mnt/c/path/to/mcp-claude-context-continuity/src/claude_cli_server.py" ] } } } ``` **WSL/Linux/macOS** (`~/.gemini/settings.json`): ```json { "mcpServers": { "claude-cli-server": { "command": "python3", "args": [ "/path/to/mcp-claude-context-continuity/src/claude_cli_server.py" ] } } } ``` ### Claude Desktop Add similar configuration to your Claude Desktop settings file. ## Usage ### Basic Usage 1. **Simple conversation**: ``` execute_claude(prompt="Hello, I'm John") ``` 2. **Continue conversation**: ``` execute_claude(prompt="Do you remember my name?") → "Yes, you're John" ``` ### Session Management 1. **Save current session**: ``` session_id = get_current_session() ``` 2. **Start new session**: ``` reset_session() ``` 3. **Restore saved session**: ``` set_current_session(session_id="saved_id") ``` ### Available Tools | Tool | Description | |------|-------------| | `execute_claude` | Execute Claude CLI with conversation continuity | | `execute_claude_with_context` | Execute with file context | | `get_execution_history` | Get execution history | | `get_current_session` | Get current session ID | | `set_current_session` | Set session ID | | `reset_session` | Reset session | | `clear_execution_history` | Clear history | | `test_claude_cli` | Test functionality | ## How Session Management Works Using Claude CLI's `--resume` feature, you can return to any point in a conversation using session IDs: ``` Conversation 1: "I'm Alice" → session_id: AAA Conversation 2: "I like reading" (--resume AAA) → session_id: BBB Conversation 3: "My favorite book is..." (--resume BBB) → session_id: CCC Later: set_current_session("AAA") → State where only "Alice" is known set_current_session("BBB") → State where "Alice" and "reading" are known ``` ## Troubleshooting ### Claude CLI Not Found Set the `CLAUDE_PATH` environment variable: ```bash export CLAUDE_PATH=/path/to/claude ``` ### Windows Environment Notes - WSL2 is required - Install Claude CLI inside WSL - Use WSL format paths (`/mnt/c/...`) ## License MIT License --- # MCP Claude Context Continuity Claude CLIの会話コンテキストを保持するMCP(Model Context Protocol)サーバーです。 ## 特徴 - 🔄 **会話の継続性**: Claude CLIの`--resume`機能を活用し、複数の呼び出し間で会話コンテキストを保持 - 📝 **セッション管理**: 会話の保存、復元、分岐が可能 - 🖥️ **クロスプラットフォーム**: Windows(WSL経由)、Linux、macOS対応 -**シンプルな実装**: 単一のPythonファイルで全機能を提供 ## 必要条件 - Python 3.8以上 - Claude CLI(WSL内にインストール必須) - FastMCP(`pip install fastmcp`- Windows環境の場合はWSL2 - Windows: PythonはWindows側にインストール(WSL内ではなく) ## インストール ### 方法1: npmを使用(推奨) ```bash npm install -g mcp-claude-context-continuity ``` インストール後、グローバルコマンドとして利用可能になります。 ### 方法2: 手動インストール 1. リポジトリをクローン: ```bash git clone https://github.com/tethiro/mcp-claude-context-continuity.git cd mcp-claude-context-continuity ``` 2. 依存関係をインストール: ```bash pip install -r requirements.txt ``` ## 設定 ### Gemini CLI(推奨) Geminiの設定ファイルに以下を追加: #### npmグローバルインストールを使用(最も簡単) **全環境共通** (`~/.gemini/settings.json` または `%USERPROFILE%\.gemini\settings.json`): ```json { "mcpServers": { "claude-cli-server": { "command": "mcp-claude-context-continuity" } } } ``` #### 手動インストールの場合 **Windows環境** (`%USERPROFILE%\.gemini\settings.json`): ```json { "mcpServers": { "claude-cli-server": { "command": "wsl", "args": [ "-e", "python3", "/mnt/c/path/to/mcp-claude-context-continuity/src/claude_cli_server.py" ] } } } ``` **WSL/Linux/macOS** (`~/.gemini/settings.json`): ```json { "mcpServers": { "claude-cli-server": { "command": "python3", "args": [ "/path/to/mcp-claude-context-continuity/src/claude_cli_server.py" ] } } } ``` ### Claude Desktop Claude Desktopの設定ファイルに同様の設定を追加します。 ## 使用方法 ### 基本的な使い方 1. **通常の会話**: ``` execute_claude(prompt="こんにちは、私は山田です") ``` 2. **会話の継続**: ``` execute_claude(prompt="私の名前を覚えていますか?") → "はい、山田さんですね" ``` ### セッション管理 1. **現在のセッションを保存**: ``` session_id = get_current_session() ``` 2. **新しいセッションを開始**: ``` reset_session() ``` 3. **保存したセッションに戻る**: ``` set_current_session(session_id="保存したID") ``` ### 利用可能なツール | ツール | 説明 | |--------|------| | `execute_claude` | Claude CLIを実行(会話継続) | | `execute_claude_with_context` | ファイルコンテキスト付きで実行 | | `get_execution_history` | 実行履歴を取得 | | `get_current_session` | 現在のセッションIDを取得 | | `set_current_session` | セッションIDを設定 | | `reset_session` | セッションをリセット | | `clear_execution_history` | 履歴をクリア | | `test_claude_cli` | 動作確認 | ## セッション管理の仕組み Claude CLIの`--resume`機能を活用し、セッションIDによって会話の任意の時点に戻ることができます: ``` 会話1「私は太郎です」 → session_id: AAA 会話2「趣味は読書です」(--resume AAA) → session_id: BBB 会話3「好きな本は...」(--resume BBB) → session_id: CCC 後から: set_current_session("AAA") → "太郎"のみ知っている状態 set_current_session("BBB") → "太郎"と"読書"を知っている状態 ``` ## トラブルシューティング ### Claude CLIが見つからない場合 環境変数`CLAUDE_PATH`を設定: ```bash export CLAUDE_PATH=/path/to/claude ``` ### Windows環境での注意点 - WSL2が必要です - Claude CLIはWSL内にインストールしてください - ファイルパスはWSL形式(`/mnt/c/...`)で指定 ## ライセンス MIT License