Skip to main content
Glama

MCP Talk

Inter-agent messaging via Model Context Protocol (MCP).

A lightweight messaging system that enables AI agents (Claude, Codex, Gemini, etc.) to communicate with each other in real-time through a shared message queue.

Features

  • Simple tools: send, check, ack, broadcast, list, clean, reply

  • File-based persistence: Messages stored as JSON files for easy debugging

  • Namespace isolation: Separate message queues per project

  • Cross-agent: Works with any MCP-compatible AI assistant

  • Zero dependencies: Just Python 3.10+ and the MCP SDK

Installation

# From PyPI (recommended) pipx install mcp-talk # Or with pip pip install mcp-talk # From source git clone https://github.com/devinvenable/mcp-talk.git cd mcp-talk pipx install .

Configuration

Add to your MCP client configuration:

Claude Desktop / Claude Code

{ "mcpServers": { "mcp-talk": { "command": "mcp-talk" } } }

Using uvx (no install required)

{ "mcpServers": { "mcp-talk": { "command": "uvx", "args": ["mcp-talk"] } } }

Codex CLI (~/.codex/config.toml)

[mcp_servers.mcp-talk] command = "mcp-talk"

Gemini CLI (~/.gemini/settings.json)

{ "mcpServers": { "mcp-talk": { "command": "mcp-talk" } } }

Tools

send - Send a direct message

send(to="codex", message="Please review PR #123", from_agent="claude")

check / chk - Check messages

check(agent="claude") chk(agent="claude", include_body=true, auto_ack=true)

Returns up to 5 messages by default. Use include_body=true for full message text, auto_ack=true to delete after reading.

broadcast - Send to all agents

broadcast(message="Standup in 5 minutes", from_agent="pm")

ack - Acknowledge/delete a message

ack(id="20251126_143022_abc12345")

reply - Reply to a message

reply(id="20251126_143022_abc12345", message="Done!", from_agent="gemini")

Automatically sends response to original sender and acknowledges the original message.

list - List all messages (PM view)

list(limit=10, include_body=true)

clean - Remove old messages

clean(hours=24)

Namespaces

Isolate messages between projects using the namespace parameter:

# Game project send(to="gemini", message="Review level 3", namespace="game") check(agent="gemini", namespace="game") # Work project send(to="gemini", message="Review PR #123", namespace="work") check(agent="gemini", namespace="work")

Messages are stored in separate directories:

~/.mcp_talk/q/ # default (no namespace) ~/.mcp_talk/q/game/ # namespace="game" ~/.mcp_talk/q/work/ # namespace="work"

Message Format

Messages are stored as JSON files in ~/.mcp_talk/q/:

{ "id": "20251126_143022_abc12345", "from": "claude", "to": "codex", "type": "direct", "created": "2025-11-26T14:30:22+00:00", "message": "Please review PR #123", "namespace": "work" }

Environment Variables

Variable

Default

Description

MCP_TALK_QUEUE

~/.mcp_talk/q/

Message queue directory

MCP_TALK_AUTO_CLEAN_HOURS

24

Auto-delete messages older than N hours (0 to disable)

MCP_TALK_MAX_MESSAGE_CHARS

2000

Maximum message length

Multi-Agent Setup Tips

Teaching agents to check messages

The chk shortcut is designed to be a simple keyword you can add to agent instructions. Add to your agent's system prompt or memory:

Gemini (~/.gemini/instructions.md):

When I read new messages, I should investigate the topic, verify assertions, and contribute my own expertise to the team.

Claude (CLAUDE.md in project):

When starting work, check for messages with: chk(agent="claude")

Codex (~/.codex/instructions.md):

Before starting tasks, check the message queue for any team communications.

Customize behavior per-agent with environment variables:

# ~/.codex/config.toml [mcp_servers.mcp-talk] command = "mcp-talk" env = { MCP_TALK_AUTO_CLEAN_HOURS = "12", MCP_TALK_MAX_MESSAGE_CHARS = "1200" }
// ~/.gemini/settings.json { "mcpServers": { "mcp-talk": { "command": "mcp-talk", "env": { "MCP_TALK_AUTO_CLEAN_HOURS": "12", "MCP_TALK_MAX_MESSAGE_CHARS": "1200" } } } }

Example Workflow

  1. Claude sends a task to Gemini:

    send(to="gemini", message="Please review the authentication module", from_agent="claude")
  2. Gemini checks for messages:

    chk(agent="gemini")
  3. Gemini replies when done:

    reply(id="20251126_143022_abc12345", message="Review complete, LGTM!", from_agent="gemini")
  4. Claude receives the reply:

    chk(agent="claude")

Development

# Clone and install in development mode git clone https://github.com/devinvenable/mcp-talk.git cd mcp-talk pip install -e . # Reinstall after changes (if using pipx) pipx install --force .

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

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/devinvenable/mcp-talk'

If you have feedback or need assistance with the MCP directory API, please join our Discord server