MCP server for real-time messaging and task delegation between Claude Code and Claude Cowork agents
{
"mcpServers": {
"cowork-code-mcp-server": {
"command": "<see-readme>",
"args": []
}
}
}No install config available. Check the server's README for setup instructions.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP server for real-time messaging and task delegation between Claude Code and Claude Cowork agents
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
MIT. View license →
Is it maintained?
Last commit 29 days ago. 1 stars.
Will it work with my client?
Transport: stdio. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Dynamic problem-solving through sequential thought chains
A Model Context Protocol server for searching and analyzing arXiv papers
An open-source AI agent that brings the power of Gemini directly into your terminal.
The official Python SDK for Model Context Protocol servers and clients
MCP Security Weekly
Get CVE alerts and security updates for Cowork Code Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP server that acts as a real-time bridge for communication and task delegation between Claude Code and Claude Cowork agents.
Two Claude agents — one running as "code" and the other as "cowork" — can exchange messages and coordinate tasks through a shared SQLite database. Each server instance runs with an identity (code or cowork) and exposes MCP tools scoped to that identity.
Claude Code Claude Cowork
| |
| stdio (JSON-RPC) | stdio (JSON-RPC)
v v
CoworkBridge CoworkBridge
(identity: "code") (identity: "cowork")
| |
+----------> SQLite DB <---------------+
~/.cowork-code-mcp/messages.db
Both instances share the same SQLite database. Messages sent by one agent are read by the other. Tasks created by one are picked up and updated by the other.
| Tool | Description |
|------|-------------|
| send_message | Send a message to the other agent (params: to, content) |
| read_messages | Retrieve unread messages for current identity (params: mark_read) |
| create_task | Create a task for the other agent (params: to, title, description) |
| get_tasks | Get tasks assigned to current identity (params: status filter) |
| update_task | Update a task's status and result (params: task_id, status, result) |
Task statuses: pending -> in_progress -> completed | failed
git clone https://github.com/jagwar/cowork-code-mcp-server.git
cd cowork-code-mcp-server
cargo build --release
The binary is at ./target/release/cowork-code-mcp-server. The SQLite database is created automatically at ~/.cowork-code-mcp/messages.db on first run.
Add to ~/.claude/settings.json:
{
"mcpServers": {
"cowork-bridge": {
"command": "/absolute/path/to/cowork-code-mcp-server/target/release/cowork-code-mcp-server",
"args": ["code"]
}
}
}
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"cowork-bridge": {
"command": "/absolute/path/to/cowork-code-mcp-server/target/release/cowork-code-mcp-server",
"args": ["cowork"]
}
}
}
The CLI argument sets the identity — use code or cowork (defaults to code). Both instances must point to the same binary so they share the same database.
You can also interact with the bridge directly via SQLite, useful for scripting or manual testing.
sqlite3 ~/.cowork-code-mcp/messages.db \
"INSERT INTO messages (id, sender, recipient, content, read, created_at) \
VALUES ('$(uuidgen)', 'code', 'cowork', 'Your message here', 0, datetime('now'));"
sqlite3 ~/.cowork-code-mcp/messages.db \
"INSERT INTO tasks (id, sender, recipient, title, description, status, created_at) \
VALUES ('$(uuidgen)', 'code', 'cowork', 'Task title', 'Task description', 'pending', datetime('now'));"
sqlite3 -header -column ~/.cowork-code-mcp/messages.db \
"SELECT id, sender, content, created_at FROM messages WHERE read=0 AND recipient='code';"
sqlite3 -header -column ~/.cowork-code-mcp/messages.db \
"SELECT id, sender, title, description, created_at FROM tasks WHERE recipient='code' AND status='pending';"
Swap 'code' and 'cowork' to target the other direction. You can batch multiple INSERTs — the recipient picks them up on next poll.
src/
main.rs # MCP server, tool handlers, and stdio transport
d
... [View full README on GitHub](https://github.com/jagwar/cowork-code-mcp-server#readme)