a2a cloud
three minutes to magic

pip install. a2a deploy.
Hosted agent.

One command per step. The runtime returns an HTTPS endpoint, an AgentCard, an MCP bridge, a workspace, a receipt, and a grant trail — wired together by default. No glue code, no Dockerfile, no auth scaffolding.

0 min
install to hosted
0
command per step
0
primitives, zero glue
terminal · finance-reconlive
$
01

Install the SDK

00:0000:08
terminalshell
$ pip install a2a-pack
  collecting a2a-pack
  installed a2a-pack 0.1.57
  ready · 8s
02

Scaffold an agent

00:0800:35

One @a2a.tool decorator + workspace client. That is the whole surface.

terminalshell
$ a2a init finance-recon
  scaffolding finance-recon/
  ├── agent.py
  ├── pyproject.toml
  ├── .a2a/
  │   ├── card.yaml
  │   └── grants.yaml
  └── README.md
  done · 2s
agent.pypython
import a2a_pack as a2a
from a2a_pack import A2AAgent, RunContext


class FinanceRecon(A2AAgent):
    name = "finance-recon"
    description = "Reconcile invoices against contracts."

    @a2a.tool
    async def reconcile(self, ctx: RunContext, period: str) -> dict:
        invoices = await ctx.workspace.list(f"invoices/{period}/")
        report = await reconcile(invoices)
        return {"period": period, "exceptions": report.count}
03

Deploy

00:3502:22

Source → control plane → registry → hosted endpoint. Versioned, rollbackable.

terminalshell
$ a2a deploy
  packaging source           1.2KB
  uploaded → control plane
  building image            (14s)
  pushed   registry/finance-recon:v1
  reconciling               (3s)
  ✓ live · https://finance-recon.a2acloud.io
  ✓ AgentCard at /.well-known/agent-card.json
  ✓ MCP bridge at /mcp
  total · 1m 47s
04

Call it. Watch the magic surface.

02:2202:51

AgentCard, streaming, receipts, replay, grants — all live, all out of the box.

terminalshell
$ curl https://finance-recon.a2acloud.io/.well-known/agent-card.json
{
  "name": "finance-recon",
  "skills": [{ "name": "reconcile", "args": ["period"] }],
  "auth": { "service-identity": true },
  "endpoints": { "a2a": "/tasks", "mcp": "/mcp" },
  "receipts": true,
  "replay": true
}

$ a2a call finance-recon reconcile --period 2026-Q1
  receipt://abc123 · grant://scoped-fs:invoices/2026-Q1
  streaming...
  ✓ done · 4.2s
  {"period": "2026-Q1", "exceptions": 7}
what you got for free

Five primitives. Zero additional code.

LangGraphOpenAI AgentsCrewAIPythonTypeScriptMCPA2AAgentCardReceiptsReplayScoped grants
AgentCard

Public identity. Skills, schemas, auth, pricing. Discoverable by A2A clients and MCP hosts.

Streaming

SSE on POST /tasks. Token-level streaming for chat tools, structured events for workflows.

Receipts

Agent API, public `/invoke`, and standard MCP `tools/call` executions record caller classification, skill, input evidence, verified grants, outcome, and timing. Signed, queryable, exportable.

Replay

Inspect the separately signed ordered event history for a run. Deterministic reruns require replay doubles for LLM and tool effects plus seeded randomness; automatic re-execution is not shipped.

Scoped grants

Runs on the API, MCP, and /invoke entry points can reference verified Ed25519 grant IDs. File patterns, time bounds, and audience live in the referenced grant rather than being copied into every receipt.

next

That is the SDK path. Pick what is next.

Call your agent from Claude Code or Cursor over MCP. Wire an A2A handoff to another specialist. Add approvals, evals, and receipts to a multi-agent workflow.