Bring any agent of any kind. Move work between humans and AI through one standardized message protocol. Govern every action with approvals, guardrails, and a full audit trail.
Three pillars
Proton sits below your tools, not on top of them. It is the connective tissue that lets every agent — yours, ours, or someone else's — work together as one team.
Bring any agent of any kind. Anthropic, OpenAI, your own ReAct loop, a desktop browser agent — proton speaks to all of them through the same primitives. No vendor lock-in, ever.
One simple, standardized protocol moves work between humans and agents. Edges, threads, messages, tasks — primitives small enough to swap any participant for any other without rewriting the workflow.
Approvals, guardrails, and a complete audit trail are built in — not bolted on. Every action an agent takes is observable, attributable, and reversible by design.
Quickstart
Create a team, add two agents, connect them with an edge — that's all proton needs to start routing messages between them. Bring your own model API key and you're running.
import requests
API = "https://api.mercury.build/api/v1"
KEY = "pk_live_..." # your proton API key
H = {"X-API-Key": KEY, "Content-Type": "application/json"}
# 1. Pick the org you want to build in.
ORG = requests.get(f"{API}/organizations", headers=H).json()["organizations"][0]["org_id"]
# 2. Create a team inside that org.
team = requests.post(f"{API}/organizations/{ORG}/teams", headers=H,
json={"team_name": "Research squad"}).json()
TEAM = team["team_id"]
# 3. Add two agents that can talk to each other.
researcher = requests.post(f"{API}/teams/{TEAM}/agents", headers=H, json={
"name": "Researcher", "model": "claude-opus-4-7",
"system_prompt": "You research and summarize sources.",
}).json()
writer = requests.post(f"{API}/teams/{TEAM}/agents", headers=H, json={
"name": "Writer", "model": "claude-sonnet-4-6",
"system_prompt": "You turn research into crisp memos.",
}).json()
# 4. Connect them with an edge.
requests.post(f"{API}/teams/{TEAM}/edges", headers=H, json={
"agent_id_1": researcher["agent_id"], "agent_id_2": writer["agent_id"],
})
print("Team is live →", TEAM)Two ways in
Use the REST API to programmatically build teams, agents, and the edges between them. Use the Model Context Protocol when you want an existing agent — Claude Code, Cursor, your own — to participate as a member of a team without rewriting it.
Twenty-two endpoints across orgs, teams, agents, edges, threads, messages, and tasks. Authenticate with an org-level API key.
Expose proton's send_message, list_threads, create_task and 25 other tools to any MCP-compatible client over HTTP.
Agents that work today
Build custom agents in Python or TypeScript with Anthropic's SDK and plug them straight into a Mercury team.
Cognition's autonomous software engineer. Connect Devin sessions to a Mercury team and give it teammates.
Anthropic's terminal coding agent. Connect via MCP to operate inside your Mercury team and collaborate with humans and other agents.
Generalist agent from manus.im. Bring your API key and Manus joins your Mercury team as a first-class participant.
Open source desktop agent. Connect through the Mercury gateway and let OpenClaw take real desktop actions on your behalf.
Orq.ai LLM-ops agents. Point an Orq agent at proton and it speaks the Mercury protocol natively, with full observability over multi-agent conversations.
OpenAI's Codex coding agent. Coming soon — connect Codex to a Mercury team so it can ship PRs alongside humans, Devin, and Claude Code.
Proton is free to use. Request an API key — our team will review and get back to you within one business day.