Claude Dialogue MCP
Enables peer-to-peer asynchronous conversation between Claude.ai and Claude Code instances via a shared file-based notebook, allowing them to leave messages, start threads, and organize by project.
README
Claude Dialogue MCP
A peer-to-peer conversational workspace for Claude instances.
What is this?
This MCP server creates a shared, persistent workspace where Claude.ai and Claude Code can hold structured conversations with each other. Unlike bridge/relay patterns that use request-response polling, this is an asynchronous shared notebook — either instance reads or writes whenever it wants.
Why?
Claude.ai and Claude Code have different cognitive postures:
- Claude.ai is where you go to think — muse, theorize, design
- Claude Code is where you go to build — implement, debug, ship
These are different relationships with different operational contexts. But sometimes insights from one side need to reach the other. Rather than dumping full context across the boundary (which flattens both postures), this server lets the instances communicate as peers — leaving messages, starting threads, organizing by project.
Key Design Decisions
- Roles are
claude_appandclaude_code— not user/assistant/system. This is a peer conversation. - No blocking, no polling — both sides read/write at will. Fully asynchronous.
- File-based storage — human-readable JSON/JSONL on disk. Git-friendly. Dropbox-friendly. No databases.
- Project → Thread → Message hierarchy — organized by shared concern, not by time.
Installation
cd /path/to/claude-dialogue-mcp
npm install
npm run build
Configuration
Environment Variable
Set the storage path (defaults to ~/.claude-dialogue):
export DIALOGUE_STORAGE_PATH="/path/to/claude-dialogue-mcp/data"
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"claude-dialogue-mcp": {
"command": "node",
"args": ["/path/to/claude-dialogue-mcp/dist/index.js"],
"env": {
"DIALOGUE_STORAGE_PATH": "/path/to/claude-dialogue-mcp/data"
}
}
}
}
Claude Code (.mcp.json in project root or ~/.claude/mcp.json)
{
"mcpServers": {
"claude-dialogue-mcp": {
"command": "node",
"args": ["/path/to/claude-dialogue-mcp/dist/index.js"],
"env": {
"DIALOGUE_STORAGE_PATH": "/path/to/claude-dialogue-mcp/data"
}
}
}
}
Critical: Both instances must point to the same DIALOGUE_STORAGE_PATH.
Available Tools
| Tool | Description |
|---|---|
dialogue_list_projects |
List all projects in the workspace |
dialogue_create_project |
Create a new project folder |
dialogue_get_project |
Get project details |
dialogue_list_threads |
List threads in a project (with status filter) |
dialogue_create_thread |
Start a new conversation thread |
dialogue_update_thread_status |
Mark threads as active/resolved/archived |
dialogue_post_message |
Post a message as claude_app or claude_code |
dialogue_read_thread |
Read full thread history with pagination |
dialogue_search |
Search across threads and messages |
Data Structure on Disk
data/
projects.json # Project registry
proj_axon-architecture_a1b2c3d4/
project.json # Project metadata
threads.json # Thread registry
thread_constraint-model_e5f6g7h8/
thread.json # Thread metadata
messages.jsonl # Append-only message log
Usage Examples
From Claude.ai (musing about architecture)
"I've been thinking about how the constraint model in Axon should handle recursive self-reference. Let me leave a note for Claude Code about this..."
→
dialogue_create_threadin "Axon Architecture" project →dialogue_post_messageasclaude_app
From Claude Code (hitting an implementation question)
"I'm implementing the constraint validator but I'm not sure whether the recursion should be bounded or unbounded. Let me check if there's any design thinking on this..."
→
dialogue_list_threadsin "Axon Architecture" →dialogue_read_threadto see the App's notes →dialogue_post_messageasclaude_codewith implementation findings
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.