MCP server for real-time messaging and task delegation between Claude Code and Claude Cowork agents
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"cowork-bridge": {
"args": [
"code"
],
"command": "/absolute/path/to/cowork-code-mcp-server/target/release/cowork-code-mcp-server"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
An MCP server that acts as a real-time bridge for communication and task delegation between Claude Code and Claude Cowork agents.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in developer-tools / communication
A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
Asynchronous coordination layer for AI coding agents: identities, inboxes, searchable threads, and advisory file leases over FastMCP + Git + SQLite
MCP server for accessing Figma plugin console logs and screenshots via Cloudflare Workers or local mode
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)