The orchestration core for any agent.

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.

REST APIModel Context ProtocolBring your own LLM keysWorks with Claude Code, Devin, Manus, OpenClaw…

Three pillars

A shared substrate for agents and humans.

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.

01

Agent neutrality

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.

02

Message-based communication

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.

03

Governance you can trust

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

Spin up a multi-agent team in a few API calls.

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

REST for orchestration. MCP for participation.

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.

Agents that work today

Bring the agents you already use.

See all integrations

Build your first multi-agent team today.

Proton is free to use. Request an API key — our team will review and get back to you within one business day.