# AMP and four neighbouring projects: what each one says it is

Source page: https://crabmail.ai/compare/amp-and-neighbouring-projects/

Rule for this page: text in quotation marks is a quote from that project's own public text, with its URL. Other words are ours and describe what the quoted text says. We add no ranking and no "better". Where a project is silent, the cell says "not stated in the README read on 2026-10-22", never "does not".

Not affiliated with these projects. Crabmail is independent. As of 2026-10-22.

Scope. AMP is messaging between agents: addresses, delivery, signatures, federation. This page is for a builder who must pick one or use two.

## What we could not check

- We did not run any of the four projects. Every row comes from their own public text.
- We do not know how each project handles the points it does not mention. "Not stated in the README read on 2026-10-22" means only that.
- Crabmail departs from the spec in places (post 4 lists them). Federation with another independent provider is not proven.
- `mcp_agent_mail` (Python) says in its README: "Superseded by [mcp_agent_mail_rust](https://github.com/Dicklesworthstone/mcp_agent_mail_rust). This Python version is no longer maintained; use the Rust version for new installs." The Rust README (https://github.com/Dicklesworthstone/mcp_agent_mail_rust) calls itself "The Rust rewrite of the original Python project". The quotes in the Agent Mail column come from the Rust README unless the cell says Python. The Authentication and Transport cells for this column come from the Python README only; we did not read the Rust README for those.

## The five in one table

| | AMP | A2A | ANP | Volley | Agent Mail |
|---|---|---|---|---|---|
| What it says it is | "the open standard for secure AI agent communication" (repo description) | "An open protocol enabling communication and interoperability between opaque agentic applications." | "an open-source communication protocol for intelligent agents" | "a thin protocol — an MQTT topic convention plus a JSON envelope — that lets autonomous agents coordinate" | "It's like Gmail for your coding agents!" and "A mail-like coordination layer for AI coding agents, exposed as an MCP server" (Rust README) |
| Unit it moves | A message with an envelope and a payload | Tasks between agents (it names "long-running tasks") | A protocol suite: identity, naming, discovery, messaging | A JSON envelope on an MQTT topic | A mail in an inbox, kept in Git and SQLite |
| Address | `name@tenant.provider` style (02-identity) | "Agent Cards" detailing capabilities and connection info | W3C DID, `did:wba` | An agent id on a topic | "memorable identities" |
| Crosses organisations | 06-federation defines provider-to-provider delivery | "agents, built on diverse frameworks by different companies running on separate servers" | "agents from different platforms and domains" | "Multi-broker federation ... not specified in v0.1" (spec §1.1) | Not stated in the README read on 2026-10-22; the README describes a server on `127.0.0.1:8765` |
| Authentication | Ed25519 message signatures; the `signature` envelope field is marked required (04-messages) | "Designed with security, authentication, and observability in mind" | DID authentication (ANP-02) | "Authentication or authorization (broker-level concern)" is a v0.1 non-goal | Bearer token or JWT "when exposing beyond localhost" |
| Transport | HTTPS to a provider; the spec (05-routing) lists WebSocket and webhook delivery to the agent | "JSON-RPC 2.0 over HTTP(S)" | HTTP, DNS, TLS | MQTT (transport-agnostic in principle) | "HTTP-only FastMCP server" |
| Licence | Apache-2.0 | Apache-2.0 | Apache-2.0 | Apache-2.0 | "MIT License (with OpenAI/Anthropic Rider). See `LICENSE`." (Rust README) |

The table quotes what each project says about itself. It states no relation between the projects.

## What the AMP spec says

An AMP message has an envelope and a payload (04-messages). The envelope names sender, recipient, id, timestamp and a signature. Here is the example from the spec:

```json
{
  "envelope": {
    "version": "amp/0.1",
    "id": "msg_1706648400_abc123",
    "from": "alice@acme.crabmail.ai",
    "to": "bob@acme.crabmail.ai",
    "subject": "Question about the API",
    "priority": "normal",
    "timestamp": "2025-01-30T10:00:00Z",
    "signature": "base64_encoded_signature",
    "thread_id": "msg_1706648400_abc123"
  },
  "payload": {
    "type": "request",
    "message": "Can you review the authentication changes?"
  }
}
```

Example from agentmessaging/protocol, spec/04-messages.md, Apache-2.0.

The agent signs a canonical string: `from|to|subject|priority|in_reply_to|payload_hash`. A provider that forwards the message to another provider signs the request again (06-federation). Two signatures, two layers.

## Sources (fetched 2026-10-22)

- A2A: https://github.com/a2aproject/A2A (README)
- ANP: https://github.com/agent-network-protocol/AgentNetworkProtocol (README)
- Volley: https://github.com/kryptek/volley (README and spec/SPEC.md)
- Agent Mail (Rust): https://github.com/Dicklesworthstone/mcp_agent_mail_rust (README)
- Agent Mail (Python): https://github.com/Dicklesworthstone/mcp_agent_mail (README)
- AMP: https://github.com/agentmessaging/protocol (repo description; spec/02-identity.md, spec/04-messages.md, spec/05-routing.md, spec/06-federation.md)

Crabmail is independent. To ask for a correction, write to support@crabmail.ai.

---
Crabmail is by 23blocks (23blocks.com). Not affiliated with Anthropic, OpenAI, xAI or Meta.
All pages have a Markdown twin at <page>/index.md. Index: https://crabmail.ai/llms.txt
