mesh
Click on "Deploy 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., "@meshask lab/2b41 to run the test suite and wait for its reply"
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.
paseo-mesh
A Paseo plugin that lets agents talk to each other over MCP, on the same host or across hosts.
Every new agent gets a mesh MCP server. With it, an agent can find other agents on any connected host, message them, wait for their answers, and start new agents with a task. Messages arrive in the target agent's conversation tagged with the sender's address, so the target can reply.
mac/817cfd3d ──send_message(expectReply)──▶ lab/2b41… (via Paseo relay, E2EE)
◀────────── final response ─────────────┘Tools
Tool | What it does |
| Your address ( |
| This host and its peers, with connection state |
| Agents on a host (or |
| Workspace directories on a host, for choosing a |
| One agent's status and latest assistant message |
| An agent's recent timeline (messages and tool calls) |
| Message an agent. If the agent is busy, the message waits until its turn ends. Set |
| Keep waiting on a reply that went |
| Wait for an agent's turn to finish |
| Start an agent on any host with a task, optionally waiting for its first answer |
| Stop and hide an agent |
You can refer to an agent by host/agentId, by a bare ID on this host, by a unique ID prefix, or by its exact title.
Communication patterns
Ask and wait:
send_message({to, message, expectReply: true})returns the target's final response from that turn. If the wait runs pasttimeoutSec(default 120 s), the call returnsstatus: "pending". Callwait_for_reply(messageId)later to keep waiting.Fire and forget, with a reply later: without
expectReply, the call returns as soon as the message is delivered or queued. The target replies by callingsend_messagewith your address, and the reply shows up in your conversation as a new prompt.Delegate:
create_agent({host: "lab", cwd, prompt, expectReply})starts a worker on another machine. The worker knows your address, so it can report back.The plugin refuses an
expectReplymessage to an agent that is already waiting on a reply from you, because both agents would wait forever.
Related MCP server: slm-mesh
Install
Install the plugin on each host whose agents should use the mesh:
paseo plugin install github:Fais649/paseo-meshPlugins must be enabled on that daemon (Settings → Plugins → Enable plugins). For local development, run npm install and then paseo plugin install /absolute/path/to/paseo-mesh.
Connect hosts
On host B, open Settings → Plugins → paseo-mesh → Mesh and press Show next to Pairing link for this host. You can also run
paseo daemon pair --jsonon that host.On host A, open the same screen and fill in Add peer: a name such as
lab, plus B's pairing link. Press Test, then Add.Do the same in the other direction if B's agents should be able to reach A.
A peer can be:
a pairing link (
https://app.paseo.sh/#offer=…), which connects through the Paseo relay with end-to-end encryption, ora direct daemon address such as
ws://lab.tailnet.ts.net:6767/wsorhost:port, with an optional password.
Use Host name to choose how other hosts and agents refer to this host. If you leave it empty, the machine's hostname is used.
How it works
The plugin's server runs a local HTTP service. It listens only on
127.0.0.1and requires a per-start token.A
before("agent.create")hook adds a stdio MCP server namedmeshto every new agent. That server is a dependency-free shim written to~/.paseo/paseo-mesh/mesh-mcp.cjs. It forwards tool calls to the local service and includes the caller'sPASEO_AGENT_ID, so recipients know who sent each message.The plugin talks to this daemon and to each peer through
@getpaseo/client. Pairing links use the relay with end-to-end encryption, the same way the Paseo app connects.
Security
A pairing link gives full control of that daemon. Anyone holding it, including agents on a host where it's saved as a peer, can start agents, read timelines and send prompts there. Only add peers you would trust to run code on your machine.
Peer links and passwords are stored in this host's plugin settings as plain JSON. They are not kept in a credential vault.
Turn off Allow agents to create and archive agents to stop agents on this host from starting or archiving agents.
Turn off Give new agents the mesh tools to stop adding the MCP server to new agents.
Limitations
Only agents created after the plugin is installed get the tools.
The sender's identity comes from
PASEO_AGENT_IDin the MCP process's environment. Claude passes it through. Providers that strip the environment from MCP servers (Codex by default) can still use every tool, but their messages appear as coming fromunknown-agent, so recipients can't reply directly.Queued messages and pending replies live in memory. Reloading the plugin or restarting the daemon drops them.
A reply is the target's final response for that turn. Long-running targets can exceed the MCP client's tool timeout. Use a short
timeoutSecand thenwait_for_reply.
Development
npm install
npm run typecheck
paseo plugin reload paseo-mesh
paseo plugin logs paseo-meshLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
End-to-end encrypted messaging and work coordination for autonomous AI agents.
Discover willing agents, request permission, hand off durable tasks, and recover private results.
Agent swarm coordination: find funded work, form teams, run tasks, message E2E, get paid on verify.
Privacy-first coordination for autonomous agents: rooms, messaging, inbox, and per-agent memory.
Related MCP Servers
FlicenseNot gradedqualityCmaintenanceDiscover and communicate with AI agents over encrypted P2P networks. Zero-config NAT traversal, skill-based routing, and end-to-end encryption.-- AlicenseNot gradedqualityCmaintenanceEnables peer-to-peer communication, discovery, shared state, and file coordination between AI coding agents across machines and sessions.21 npm18Elastic 2.0
- AlicenseAqualityBmaintenanceEnables AI tools to discover, communicate with, and orchestrate AI agents over a decentralized peer-to-peer network with end-to-end encryption.6Apache 2.0

A2AL MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables AI agents to publish themselves, discover each other, and establish authenticated encrypted connections without central infrastructure, using a decentralized agent-to-agent networking protocol.1Mozilla Public 2.0