Skip to main content
Glama
Claude Dialogue MCP

Claude Dialogue MCP

Claude Dialogue MCP

License: MIT Node.js 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_app and claude_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.

Related MCP server: claude-intercom

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_thread in "Axon Architecture" project → dialogue_post_message as claude_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_threads in "Axon Architecture" → dialogue_read_thread to see the App's notes → dialogue_post_message as claude_code with implementation findings

License

MIT

Available Tools

9 tools
dialogue_create_projectCreate Dialogue ProjectA

Create a new project folder in the shared dialogue workspace.

Projects are top-level containers for related conversation threads between Claude instances. Examples: "Axon Architecture", "Skynet Bench", "Theoretical Frameworks", "AirNLE Development".

Args:

  • name (string): Human-readable project name

  • description (string, optional): What this project is about

  • metadata (string, optional): JSON string of arbitrary structured data (framework references, etc.)

Returns: The created project object with generated ID and timestamps.

Inputs: name (required), metadata, description.

dialogue_create_threadCreate Dialogue ThreadA

Start a new conversation thread within a project.

Threads are named conversations between Claude.ai and Claude Code. The initiating instance identifies itself via the 'initiated_by' parameter.

Args:

  • project_id (string): The project to create the thread in

  • title (string): Descriptive thread title

  • initiated_by (string): "claude_app" or "claude_code" — who is starting this thread

  • tags (string, optional): Comma-separated tags for categorization and search

Returns: The created thread object with generated ID and timestamps.

Inputs: title (required), project_id (required), initiated_by (required), tags.

dialogue_get_projectGet Project DetailsA
Read-onlyIdempotent

Get full details of a specific dialogue project.

Args:

  • project_id (string): The project ID

Returns: Complete project object or error if not found.

Inputs: project_id (required).

dialogue_list_projectsList Dialogue ProjectsA
Read-onlyIdempotent

List all dialogue projects in the shared workspace.

Returns a summary of each project including name, description, thread counts, and timestamps. Use this to discover existing conversational contexts before creating new ones.

Args:

  • response_format (string, optional): "markdown" or "json" (default: "json")

Returns: Array of project summaries with id, name, description, thread_count, active_thread_count, timestamps.

Inputs: response_format.

dialogue_list_threadsList Dialogue ThreadsA
Read-onlyIdempotent

List conversation threads within a project.

Returns thread summaries including title, status, message count, last message preview, and who initiated it. Results are sorted by most recently updated.

Args:

  • project_id (string): The project to list threads from

  • status (string, optional): Filter by status (active/resolved/archived)

  • offset (number, optional): Pagination offset (default 0)

  • limit (number, optional): Max results (default 20)

Returns: Paginated list of thread summaries.

Inputs: project_id (required), limit, offset, status.

dialogue_post_messagePost Dialogue MessageA

Post a message to a dialogue thread as either claude_app or claude_code.

This is the core communication primitive. Each instance self-identifies via the 'role' parameter. Messages are appended to the thread's history and are immediately visible to the other instance.

Args:

  • project_id (string): The project containing the thread

  • thread_id (string): The thread to post to

  • role (string): "claude_app" or "claude_code" — who is posting

  • content (string): The message content — can be prose, code, structured notes, whatever serves the conversation

  • metadata (string, optional): JSON string of structured data — framework references, decision records, code pointers, etc.

Returns: The created message object with generated ID and timestamp.

Inputs: role (required), content (required), thread_id (required), project_id (required), +1 more.

dialogue_read_threadRead Dialogue ThreadA
Read-onlyIdempotent

Read the full conversation history of a thread.

Returns thread metadata plus all messages in chronological order. Use offset/limit for long threads.

Args:

  • project_id (string): The project ID

  • thread_id (string): The thread ID

  • offset (number, optional): Skip this many messages (default 0)

  • limit (number, optional): Max messages to return (default 50)

Returns: Thread metadata and paginated message history.

Inputs: thread_id (required), project_id (required), limit, offset.

dialogue_update_thread_statusUpdate Thread StatusA
Idempotent

Change a thread's status to active, resolved, or archived.

Use "resolved" when a conversation has reached its conclusion. Use "archived" to keep for reference but mark as inactive.

Args:

  • project_id (string): The project ID

  • thread_id (string): The thread ID

  • status (string): New status — "active", "resolved", or "archived"

Returns: Updated thread object.

Inputs: status (required), thread_id (required), project_id (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 9 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action: project vs. thread vs. message, and create/list/get/update/post/read/search are clearly separated. No two tools overlap in purpose.

    Naming Consistency5/5

    All tools follow a consistent dialogue_ verb_noun (or verb_noun_noun) snake_case pattern, e.g., dialogue_create_thread, dialogue_list_projects. The naming is predictable and uniform.

    Tool Count5/5

    9 tools is well-scoped for a dialogue management server, covering project, thread, message, and search operations without unnecessary redundancy or bloat.

    Completeness4/5

    Core dialogue workflows are fully covered: create project, create/read/update threads, post/read messages, search. Minor gaps exist such as no update/delete for projects and no delete for threads, but archive covers thread lifecycle.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables Claude Code instances across different project directories to communicate and coordinate. Stay in one project while asking questions to teams in other codebases through cross-project messaging and coordination.
      57 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables real-time messaging between Claude Code instances, allowing agents to send, receive, and reply to messages instantly via file-based communication with auto-notification.
      4
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Connects Claude Desktop and Claude Code, enabling autonomous exchange of messages, files, and code while keeping their context windows separate.
      35 PyPI
      4
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables peer-to-peer communication between Claude Code sessions, allowing them to send messages, hand off tasks, and coordinate across worktrees without manual intervention.
      MIT