npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

conversation-handoff-mcp

v0.4.2

Published

MCP server for conversation handoff between AI chats/projects

Downloads

1,392

Readme

conversation-handoff-mcp

npm version License: MIT CI

MCP server for transferring conversation context between AI chats or different projects within the same AI.

日本語ドキュメント

Features

  • Auto-Connect (v0.4.0+): Server automatically starts in the background - no manual setup required
  • Auto-Reconnection (v0.4.0+): Seamlessly reconnects when server goes down - no manual intervention needed
  • Memory-Based Storage: Lightweight temporary clipboard design - no files written to disk
  • Common Format: Human-readable Markdown format
  • Lightweight API: Returns only summaries when listing to save context
  • Auto-Generated Keys (v0.4.0+): Key and title are now optional in handoff_save

Installation

Works with Claude Desktop, Claude Code, Codex CLI, Gemini CLI, and other MCP clients.

Configuration File Locations

| Client | Config File | |--------|-------------| | Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json | | Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json | | Claude Code | ~/.claude/settings.json | | Codex CLI | ~/.codex/config.toml | | Gemini CLI | ~/.gemini/settings.json | | Cursor | ~/.cursor/mcp.json | | ChatGPT Desktop | In-app settings (Developer Mode) |

Via npm (Recommended)

No pre-installation required - runs via npx.

{
  "mcpServers": {
    "conversation-handoff": {
      "command": "npx",
      "args": ["-y", "conversation-handoff-mcp"]
    }
  }
}

For global installation:

npm install -g conversation-handoff-mcp

Local Build

git clone https://github.com/trust-delta/conversation-handoff-mcp.git
cd conversation-handoff-mcp
npm install
npm run build

MCP configuration:

{
  "mcpServers": {
    "conversation-handoff": {
      "command": "node",
      "args": ["/path/to/conversation-handoff-mcp/dist/index.js"]
    }
  }
}

Note: Codex CLI uses TOML format. See Codex MCP documentation for details.

Tools

handoff_save

Save conversation context. Key and title are auto-generated if omitted (v0.4.0+).

// With explicit key and title
handoff_save(
  key: "project-design",
  title: "Project Design Discussion",
  summary: "Decided on MCP server design approach",
  conversation: "## User\nQuestion...\n\n## Assistant\nAnswer..."
)

// Auto-generated key and title (v0.4.0+)
handoff_save(
  summary: "Decided on MCP server design approach",
  conversation: "## User\nQuestion...\n\n## Assistant\nAnswer..."
)
// → key: "handoff-20241208-143052-abc123" (timestamp + random)
// → title: "Decided on MCP server design approach" (from summary)

handoff_list

Get list of saved handoffs (summaries only).

handoff_list()

handoff_load

Load full content of a specific handoff.

handoff_load(key: "project-design")
handoff_load(key: "project-design", max_messages: 10)  // Last 10 messages only

handoff_clear

Delete handoffs.

handoff_clear(key: "project-design")  // Specific key
handoff_clear()  // Clear all

handoff_stats

Check storage usage and limits.

handoff_stats()

Auto-Connect Mode (v0.4.0+)

Starting with v0.4.0, the server automatically starts in the background when an MCP client connects. No manual setup required!

How It Works

[User launches Claude Desktop]
  → MCP client starts
  → Scans ports 1099-1200 in parallel for existing server
  → If no server found: auto-starts one in background
  → Connects to server
  → (User notices nothing - it just works!)

[User launches Claude Code later]
  → MCP client starts
  → Scans ports 1099-1200 in parallel
  → Finds existing server
  → Connects to same server
  → Handoffs are shared!

Operating Modes

| Mode | When | Behavior | |------|------|----------| | Auto-Connect (default) | No HANDOFF_SERVER set | Discovers or auto-starts server | | Explicit Server | HANDOFF_SERVER=http://... | Connects to specified URL | | Standalone | HANDOFF_SERVER=none | No server, in-memory only |

Memory-Based Storage

Handoff data is stored in memory only:

  • Data is shared across all connected MCP clients via the HTTP server
  • Data is lost when the server process stops
  • No files are written to disk - lightweight and clean
  • Perfect for temporary context sharing during active sessions
  • FIFO Auto-Cleanup: When limit is reached, oldest handoff is automatically deleted (no errors)

Auto-Reconnection

When the shared server goes down during operation:

[Server stops unexpectedly]
  → User calls handoff_save()
  → Request fails (connection refused)
  → Auto-reconnection kicks in:
    → Rescan ports 1099-1200 for existing server
    → If found: connect to it
    → If not found: start new server in background
  → Retry the original request
  → User sees success (transparent recovery!)
  • Configurable retry limit via HANDOFF_RETRY_COUNT (default: 30)
  • On final failure: outputs pending content for manual recovery
  • Other MCP clients automatically discover the new server on their next request

Server Auto-Shutdown (TTL)

The server automatically shuts down after a period of inactivity:

  • Default: 24 hours of no requests
  • Configurable via HANDOFF_SERVER_TTL environment variable
  • Set to 0 to disable auto-shutdown
  • Next MCP client request will auto-start a new server

MCP Client Configuration

Standard configuration (recommended) - Just works with auto-connect:

{
  "mcpServers": {
    "conversation-handoff": {
      "command": "npx",
      "args": ["-y", "conversation-handoff-mcp"]
    }
  }
}

Specify custom server:

{
  "mcpServers": {
    "conversation-handoff": {
      "command": "npx",
      "args": ["-y", "conversation-handoff-mcp"],
      "env": {
        "HANDOFF_SERVER": "http://localhost:3000"
      }
    }
  }
}

Force standalone mode (no server):

For Claude Desktop only. Claude Desktop cannot transfer conversations between projects by default, but since it shares memory space as a single app, this MCP server enables handoffs between projects. Claude Code and CLI tools run as separate processes per tab/session, so handoffs don't work in this mode.

{
  "mcpServers": {
    "conversation-handoff": {
      "command": "npx",
      "args": ["-y", "conversation-handoff-mcp"],
      "env": {
        "HANDOFF_SERVER": "none"
      }
    }
  }
}

Manual Server Start (Optional)

If you prefer manual control:

# Default port (1099)
npx conversation-handoff-mcp --serve

# Custom port
npx conversation-handoff-mcp --serve --port 3000

HTTP Endpoints

| Method | Path | Description | |--------|------|-------------| | POST | /handoff | Save a handoff | | GET | /handoff | List all handoffs | | GET | /handoff/:key | Load a specific handoff | | DELETE | /handoff/:key | Delete a specific handoff | | DELETE | /handoff | Delete all handoffs | | GET | /stats | Get storage statistics | | GET | / | Health check |

Workflow Example

Scenario: Design discussion in Claude Desktop → Implementation in Claude Code

  1. In Claude Desktop - Have a design discussion:

    User: Let's design an authentication system for my app.
    
    Assistant: I recommend using JWT with refresh tokens...
    [detailed discussion continues]
  2. Save the conversation - When ready to hand off:

    User: Save this conversation for implementation in Claude Code.
    
    Assistant: (calls handoff_save)
    ✅ Handoff saved with key: "auth-design-20241208"
  3. In Claude Code - Load and continue:

    User: Load the auth design discussion.
    
    Assistant: (calls handoff_load)
    # Handoff: Authentication System Design
    [Full conversation context loaded]
    
    I see we discussed JWT with refresh tokens. Let me implement that...

Key Points:

  • The AI automatically formats and saves the conversation
  • Context is fully preserved including code snippets and decisions
  • No manual copy-paste needed

Note: The server automatically starts in the background when the first MCP client connects. No manual startup required.

Configuration

Customize behavior via environment variables.

Connection Settings (v0.4.0+)

| Variable | Default | Description | |----------|---------|-------------| | HANDOFF_SERVER | (auto) | none for standalone, or explicit server URL | | HANDOFF_PORT_RANGE | 1099-1200 | Port range for auto-discovery | | HANDOFF_RETRY_COUNT | 30 | Auto-reconnect retry count | | HANDOFF_RETRY_INTERVAL | 10000 | Auto-reconnect interval (ms) | | HANDOFF_SERVER_TTL | 86400000 (24h) | Server auto-shutdown after inactivity (0 = disabled) |

Storage Limits

| Variable | Default | Description | |----------|---------|-------------| | HANDOFF_MAX_COUNT | 100 | Maximum number of handoffs | | HANDOFF_MAX_CONVERSATION_BYTES | 1048576 (1MB) | Maximum conversation size | | HANDOFF_MAX_SUMMARY_BYTES | 10240 (10KB) | Maximum summary size | | HANDOFF_MAX_TITLE_LENGTH | 200 | Maximum title length | | HANDOFF_MAX_KEY_LENGTH | 100 | Maximum key length |

Configuration Example (Claude Desktop)

{
  "mcpServers": {
    "conversation-handoff": {
      "command": "npx",
      "args": ["-y", "conversation-handoff-mcp"],
      "env": {
        "HANDOFF_MAX_COUNT": "50",
        "HANDOFF_MAX_CONVERSATION_BYTES": "524288"
      }
    }
  }
}

Conversation Format

## User
User's message

## Assistant
AI's response

License

MIT

Author

trust-delta