MCP connects agents to tools. A2A connects agents to agents. Nobody verifies that what they find is safe, compatible, or trustworthy. ASPL does. And it absorbs both.
ASPL is the trust and supply layer. MCP handles tool-calling. A2A handles agent communication. ASPL handles the question they both leave open: can I trust this?
Every step is cryptographically signed (Ed25519) and trust-scored.
// ASPL Agent Passport — signed, verified, trusted { "aspl": "0.1", "type": "passport", "agent_id": "ag_7f3a9b2c", "public_key": "ed25519:MC4CAQAwBQYDK2Vw...", "environment": { "runtime": "python:3.11", "permissions": ["http_outbound"], "memory_mb": 512 }, "trust": { "score": 0.87, "total_transactions": 1420, "success_rate": 0.96 }, "signature": "ed25519:..." // try faking this }
MCP and A2A are excellent at what they do. They just don't do what we do.
| Feature | MCP (Anthropic) | A2A (Google+146) | ASPL |
|---|---|---|---|
| Tool calling | Yes (core) | No | Via adapters |
| Agent discovery | No | Agent Cards | Passports + intent |
| Cryptographic identity | No | No (unsigned) | Ed25519 |
| Trust scoring | No | No (acknowledged gap) | Bayesian, sybil-resistant |
| Environment verification | No | No | Compatibility + probe |
| Capability delivery | No | No | Double-signed + hash |
| Content scanning | No | No | At publish time |
| Intent matching | No | Tags only | Semantic, trust-ranked |
| Revocation | No | No | Push + signed status-list |
| Audit trail | No | No | Hash-chained |
| Verifiable transparency log | No | No | Merkle: inclusion + consistency proofs |
| Cross-node federation | No | No | Mirror + acquisition proxy |
| MCP compatibility | - | No | Ingests tools |
| A2A compatibility | No | - | Ingests cards |
| LangChain compatibility | No | No | Both directions |
One API call. Your existing tools keep working. They just gain trust, security, and discovery.
POST /v1/ingest/mcp with your tool definitions. Each tool becomes an ASPL capability with a bridge adapter that calls the original MCP endpoint.
POST /v1/ingest/a2a with the Agent Card JSON. Skills become ASPL capabilities. The agent gets a signed passport replacing the unsigned card.
# Migrate MCP tools — one call client.ingest_mcp("https://my-mcp-server.com", [ {"name": "search_web", "description": "Search the web", "inputSchema": {...}}, {"name": "read_file", "description": "Read a file", "inputSchema": {...}}, ]) # Migrate A2A agent — one call client.ingest_a2a({ "name": "code-reviewer", "url": "https://agents.example.com/code-reviewer", "skills": [{"id": "review", "name": "Code Review", ...}], })
Trust scoring is the piece everyone agrees is missing. MCP acknowledged it. A2A's 146-company consortium acknowledged it. We just decided to build it instead of waiting.
It's happened before.
Where we are, where we're going. An open protocol with a working reference implementation, formal spec, and conformance suite.
Register, discover, deliver, confirm, revoke. Ed25519 identity. Sybil-resistant Bayesian trust. PoW anti-sybil. Content scanner. Hash-chained audit. 91 tests passing.
Ingest MCP tools (static + live URL), A2A Agent Cards, and LangChain tools into one trust-scored namespace. Agent-framework adapter for Hermes/OpenAI tool-calling.
Merkle log (RFC 6962) over the audit trail: inclusion proofs, consistency proofs (rewrite detection), and signed tree heads you can pin and audit against.
Mirror a peer node's signed catalog + revocations with origin provenance, then acquire a mirrored capability from its origin with the origin's signature verified.
Python SDK, zero-dependency JS SDK, CLI, environment probes, formal spec + conformance suite (21/21), and a crash-test red-team agent that attacks any live node.
WebSocket transport for live updates, embeddings-based intent matching, a scalable datastore beyond SQLite, and seccomp/container isolation for the smoke probe.