Blog

GrowMore now speaks A2A, the agent-to-agent protocol

GrowMore now answers other AI agents over A2A, the open agent-to-agent protocol, version 1.0. Another agent can read GrowMore’s signed Agent Card, call the same skills our MCP tools offer, and follow a task that stays open until a person in the shop approves or rejects the draft. Tasks written as free text come in a second phase.

What changed

Until now an AI agent reached GrowMore one way: through our MCP server, where an assistant such as Claude or ChatGPT calls documented tools for you. MCP is how an assistant uses a tool. A2A is how one agent works with another: it publishes what it can do, accepts a task, and reports how the task ends. GrowMore now speaks both, under the same rules.

What another agent finds

  • A public Agent Card at /.well-known/agent-card.json that names GrowMore’s skills and how to reach them, over JSON-RPC or HTTP+JSON.
  • A signature on the card: a JWS with ES256 over the card’s canonical form (RFC 8785). The public key is published at /.well-known/jwks.json, so a caller can check that nobody altered the card on the way.
  • An extended card, after sign-in, that lists only the skills that connection may use.

A skill is a tool you already know

Each skill is the MCP tool of the same name, run by the same code, behind the same agent token, the same permissions and the same posting keys. There is nothing new to trust and nothing that can do more than an MCP connection could. A message carries a structured request: the skill’s name and its arguments.

A task waits for a person

When an agent calls a propose skill, GrowMore drafts the document and the task stays working. The draft appears in AI drafts with its evidence: the request, what was assumed, what was asked. When a person approves, edits or rejects it in the app, the task moves in the same transaction as that decision, and a finished task never moves again.

A caller can register a webhook for its task. GrowMore tells it of the decision, a cancellation or a failure, with up to three delivery attempts, and never inside the transaction that recorded the decision.

For the people who build agents

The card declares both transports, JSON-RPC at /a2a and HTTP+JSON at /a2a/v1. A caller signs in with the same OAuth 2.1 flow an MCP connection uses and receives the same short-lived agent token, which only narrows the person’s own role. A request that creates something carries an explicit idempotency key, so a retry after a dropped connection never posts twice.

What it does not do yet

In this first phase a message must name a skill and its arguments. A message that is only text is answered with the list of skills and their schemas; it is not interpreted. Free-text tasks, and GrowMore calling other agents as a client, are the second phase. We will write here when they ship.

Why it matters to a shop

Picture your accountant’s agent preparing the month’s adjustments for several clients, connected to your shop through a role you allowed to connect one. With A2A it can hand GrowMore a structured task, wait while you or your accountant decide, and pick up the answer, without anyone copying figures from one system to another. The rule stays the one GrowMore was built on: agents type, a person decides, and the books remember everything.

Read how the agent works, or how to let ChatGPT draft your purchase invoices.

More from the blog

Create your shop. Free, in two minutes.