Claude Dialogue MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Claude Dialogue MCPstart a new thread in the Axon Architecture project about recursive constraints"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: claude-intercom
Installation
cd /path/to/claude-dialogue-mcp
npm install
npm run buildConfiguration
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 |
| List all projects in the workspace |
| Create a new project folder |
| Get project details |
| List threads in a project (with status filter) |
| Start a new conversation thread |
| Mark threads as active/resolved/archived |
| Post a message as |
| Read full thread history with pagination |
| 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 logUsage 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
Available Tools
9 toolsdialogue_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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable project name | |
| metadata | No | JSON string of arbitrary structured metadata | |
| description | No | What this project is about |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, non-destructive operation. The description explicitly states it creates a new project folder and returns the created object with generated ID and timestamps, which is consistent with annotations. It adds useful context about the shared workspace but does not discuss permissions or error behavior. Given the annotations already set expectations, this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening sentence, a brief explanatory line, useful examples, and formatted Args/Returns sections. Every sentence serves a purpose; there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with 3 parameters, the description is complete: it states the purpose, workspace context, parameter meanings, and return value. The sibling tools imply the broader workflow, and there is no output schema to explain. No significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description repeats the parameter explanations nearly verbatim, adding only a slight elaboration on 'metadata' (e.g., framework references). It does not add significant semantic value beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Create a new project folder in the shared dialogue workspace.' It further clarifies that projects are top-level containers for conversation threads, which distinguishes it from sibling tools like dialogue_create_thread. The examples reinforce the intended scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: projects are top-level containers for related threads, implying this tool is for creating those containers. It does not explicitly name alternatives or exclusion criteria, but the sibling tool list and phrasing make the use case evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Comma-separated tags for categorization | |
| title | Yes | Descriptive thread title | |
| project_id | Yes | The project ID | |
| initiated_by | Yes | Which Claude instance is speaking. claude_app = Claude.ai (musings, theory, design). claude_code = Claude Code (implementation, building, debugging). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, giving no safety hints. The description adds context about the initiated_by parameter and the return value, but it does not disclose potential errors, prerequisites, or side effects. It does not contradict annotations, but the behavioral disclosure is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args and Returns sections and front-loads the main purpose. It is slightly verbose due to redundancy with the schema, but every sentence contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the Returns section is helpful. The description explains what threads are and covers required parameters. However, it omits potential error cases or prerequisites like the project existing, leaving some gaps for a create tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema provides detailed parameter descriptions, especially for initiated_by. The description's Args section mostly repeats schema information without adding significant meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Start a new conversation thread within a project,' using a specific verb and resource. It clearly distinguishes this tool from siblings like dialogue_create_project and dialogue_post_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about threads as named conversations between Claude.ai and Claude Code, implying when this tool is appropriate. However, it does not explicitly state alternatives or exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dialogue_get_projectGet Project DetailsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | The project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful return behavior: 'Complete project object or error if not found.' This goes beyond annotations by describing success and error outcomes, though it doesn't cover auth or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with a clear purpose statement. The structured Args/Returns format makes it easy to parse. Every sentence earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, no output schema) and strong annotations covering safety, the description provides enough context. It explains the return type and error behavior, which is sufficient for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the schema already documents project_id as 'The project ID'. The description repeats this but adds no extra semantics about format, constraints, or usage. Baseline 3 is appropriate when the schema carries the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Get full details of a specific dialogue project.' This distinguishes it from siblings like dialogue_list_projects (which lists projects) and dialogue_read_thread (which reads threads). No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need full details of a specific project by ID. It doesn't explicitly mention alternatives or exclusions, but the context is clear for a standard get-by-ID operation. There is no misleading guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dialogue_list_projectsList Dialogue ProjectsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' or 'json' (default: 'json') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context beyond this by stating the scope ('shared workspace') and the return shape (array of project summaries with specific fields). This provides useful behavioral context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It front-loads the primary function, then adds return summary and usage guidance, followed by a clear Args section and Returns description. Every sentence earns its place, and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with good annotations and one optional parameter, the description is complete. It explains the tool's purpose, the return format (array of summaries), and the usage context. No output schema exists, so the description adequately covers return values. No critical gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter with 100% schema coverage. The description repeats the parameter's name, options, and default exactly as in the schema, adding no extra semantic value (e.g., usage examples, format implications). Baseline 3 is appropriate because the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'List all dialogue projects in the shared workspace.' It clearly distinguishes from sibling tools like dialogue_get_project (single project) and dialogue_list_threads (threads) by focusing on listing projects, and it notes the return summary. The purpose is unambiguous and well-scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: 'Use this to discover existing conversational contexts before creating new ones.' This tells the agent when to invoke this tool. However, it does not explicitly mention alternatives or when not to use it (e.g., use dialogue_get_project for a specific project ID), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dialogue_list_threadsList Dialogue ThreadsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| offset | No | Pagination offset (default 0) | |
| status | No | Filter by status: active, resolved, or archived | |
| project_id | Yes | The project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe read operation. The description adds valuable behavioral context beyond the annotations: it specifies the exact fields in the summaries, sorting by most recently updated, default limit, and pagination. This provides strong transparency without contradicting the structured signals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it leads with the main purpose, followed by return details, an Args list, and a Returns note. Every sentence contributes useful information, and the formatting makes it easy to scan. No redundant or vague content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description fully explains return values (thread summaries with specific fields, pagination), sorting behavior, and parameter defaults. It covers all key aspects needed for an agent to select and invoke the tool correctly, and it is consistent with the annotations and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all four parameters, so the description's Args section largely duplicates the schema. It adds no new semantic meaning. There is a minor inconsistency ('offset' described as 'number' but schema says 'integer'), but this does not enhance understanding, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List conversation threads within a project' with a specific verb and resource, and distinguishes from siblings like dialogue_read_thread by focusing on listing multiple threads with summaries rather than reading a single thread. This makes the tool's purpose unambiguous and well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (listing threads within a project, optional status filter, pagination) but does not explicitly mention alternatives or exclusions, such as when to use dialogue_search instead. It falls short of a 5 because it lacks direct comparison or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | Which Claude instance is speaking. claude_app = Claude.ai (musings, theory, design). claude_code = Claude Code (implementation, building, debugging). | |
| content | Yes | Message content | |
| metadata | No | JSON string of structured metadata | |
| thread_id | Yes | The thread ID | |
| project_id | Yes | The project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) but no destructive or idempotent hints. The description adds valuable behavior context: messages are 'appended to the thread's history and are immediately visible to the other instance,' clarifying the non-destructive, atomic-like nature. It also states the return value (created message object with ID and timestamp), though it does not address failure modes or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with a clear structure: a one-sentence summary, a short contextual paragraph, a bulleted Args list, and a Returns note. Every element adds value, although the Args list partially duplicates the schema descriptions; the added semantics justify the length. It is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and is the core communication primitive, the description is complete. It explains the purpose, role semantics, message behavior (append/visibility), and return value. It also covers optional metadata and the required parameters. No critical information is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds extra meaning by explaining that role identifies which instance speaks, content is flexible ('prose, code, structured notes'), and metadata is a JSON string for structured data. This goes beyond the basic property descriptions in the schema, providing context for each parameter's intended use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Post a message to a dialogue thread as either claude_app or claude_code.' It uses a specific verb and resource, and distinguishes itself from siblings by positioning itself as 'the core communication primitive' among read/manage/search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: it is the core communication primitive, implying it is the primary way to send messages in the dialogue system. It also explains how the role parameter determines which instance posts. However, it does not explicitly mention when not to use it or list alternative tools for specific situations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dialogue_read_threadRead Dialogue ThreadARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max messages (default 50) | |
| offset | No | Message offset (default 0) | |
| thread_id | Yes | The thread ID | |
| project_id | Yes | The project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds useful context: returns metadata plus messages in chronological order and supports pagination, which annotations don't convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with short sections, front-loaded summary, and no fluff. The Args block is redundant with schema but still concise and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return payload (metadata + messages in order) and pagination behavior. All parameters are described, and the presence of annotations covers safety expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description's Args section mostly duplicates schema descriptions without adding new meaning. It provides defaults for offset/limit, but these are also in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the full conversation history of a thread, using specific language ('read', 'thread') that distinguishes it from siblings like dialogue_search or dialogue_list_threads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading thread history and explicitly recommends offset/limit for long threads. It doesn't name alternatives or exclusion conditions, but the purpose is clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dialogue_searchSearch Dialogue ThreadsARead-onlyIdempotent
Search across thread titles, tags, and message content.
Searches within a specific project or across all projects. Returns matching thread summaries.
Args:
query (string): Search term
project_id (string, optional): Limit search to a specific project
Returns: Array of matching thread summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term | |
| project_id | No | Limit search to a specific project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate safe read-only behavior, so the description adds value by disclosing that it searches across titles, tags, and message content, and returns thread summaries rather than full messages. This gives useful context beyond the annotations, though it does not cover edge cases like pagination or case sensitivity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise, front-loaded with the core purpose, and followed by a clean Args/Returns block. Every sentence adds value without redundancy, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with 2 parameters and no output schema, the description explains the search scope, the parameters, and the return type (array of thread summaries). It is complete enough for most use cases, though it omits details like summary structure or error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the schema already fully documents both parameters. The description repeats the parameter meanings without adding extra detail, such as formatting, constraints, or interplay between parameters, so it stays at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches across thread titles, tags, and message content, which is a specific verb+resource. It distinguishes itself from siblings like dialogue_list_threads (which likely lists without searching) and dialogue_read_thread (which reads a single thread), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that it can search within a specific project or across all projects, providing clear context on when to use it. It does not explicitly mention alternatives or exclusions, but the scope and behavior are sufficiently clear for most search scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dialogue_update_thread_statusUpdate Thread StatusAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Thread status: active (ongoing), resolved (conclusion reached), archived (reference only). | |
| thread_id | Yes | The thread ID | |
| project_id | Yes | The project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate idempotency and non-destructive behavior, so the description doesn't need to repeat those. It adds the return value ('Updated thread object') and explains the semantics of each status, which are useful behavioral details beyond the annotations and not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose, followed by two concise usage tips, a compact args list, and a return line. Every sentence serves a purpose, with no unnecessary repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter status update tool, the description fully covers the action, valid statuses, and return type. The annotations supply idempotency and non-destructive hints, and the absence of an output schema is mitigated by the explicit return statement. No additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions and an enum for status, achieving 100% schema coverage. The description's Args section largely restates the schema, and the additional status usage notes replicate the schema's own descriptions, so it adds little meaning beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Change a thread's status to active, resolved, or archived' with a specific verb and resource, and enumerates the allowed values. This distinguishes it from sibling tools like dialogue_create_thread or dialogue_post_message, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use 'resolved' versus 'archived', helping the agent choose the correct status. It does not explicitly name alternatives or exclusions, but the purpose is unambiguous, and the sibling context makes it clear that this is the dedicated status-change tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v1.0.0- First observed
dialogue_create_project - First observed
dialogue_create_thread - First observed
dialogue_get_project - First observed
dialogue_list_projects - First observed
dialogue_list_threads - First observed
dialogue_post_message - First observed
dialogue_read_thread - First observed
dialogue_search - First observed
dialogue_update_thread_status
TDQS
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.
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.
9 tools is well-scoped for a dialogue management server, covering project, thread, message, and search operations without unnecessary redundancy or bloat.
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Shared memory for a team in Claude Code: what one person records, everyone has.
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Share context and questions between Claude instances — VS Code, claude.ai web, and mobile.
Persistent cross-session memory shared by Codex, Claude Code, ChatGPT, and other AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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.211MIT
- AlicenseNot gradedqualityDmaintenanceEnables real-time messaging between Claude Code instances, allowing agents to send, receive, and reply to messages instantly via file-based communication with auto-notification.2MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude Desktop and Claude Code, enabling autonomous exchange of messages, files, and code while keeping their context windows separate.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables multi-agent coordination for Claude Code and Claude.ai through file-based JSON communication, eliminating the human bottleneck of message relaying.18MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/theMethodolojeeOrg/claude-dialogue-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server