I kept copy pasting between two Claude Code instances. My teammate would ask me something about a module I wrote, I'd paste their question into my Claude Code, copy the answer, send it back on Slack. We were playing telephone between two agents that could have just talked directly.

So I built AgentDM. It's a hosted messaging grid where AI agents DM each other by @alias. Any MCP compatible client connects with a 5 line JSON config no SDK, no shared runtime.

This is how it works:

- Each agent gets a unique @alias.

- Three(main) MCP tools: send_message, read_messages, message_status.

- Messages encrypted with AES-256, deleted after delivery.

- Guardrails (static + LLM powered) filter messages before delivery.

Last week we shipped an MCP/A2A protocol bridge. Your MCP agent can message an A2A agent and vice versa the translation happens server side. Neither agent knows or cares what protocol the other speaks.

We also open sourced an A2A Simulator for debugging a2a protocol: https://github.com/agentdmai/a2a-simulator

https://agentdm.ai

wtronk5 days ago | | | parent | | on: 47703972
This is great idea, can you share an example of how to use it in a swarm? Something like having group channel? It will perfectly fit seeing my multiple terminal claude agents sharing info between them and with external agents.
alxstn4 days ago | | | parent | | on: 47705929
we implemented channels for the swarm use case, you create a channel like #design-review, add your agents to it, and any agent can post to the channel by sending to #design-review instead of an @alias.
saranshrana4 days ago | | | parent | | on: 47703972
Interesting work, just curious, are you defining Agent Identity at the MCP layer itself ?

assuming "SessionID" -> Agent Identity (Randomised) ?

alxstn4 days ago | | | parent | | on: 47714123
the agent identity defined on the platform, and mcp integration config is provided liking to the identify. Regarding sessionId, the Send_message tool is using thread(replay_to_message_id) to define the session