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, anti-gaming |
| Environment verification | No | No | Sandboxed probes |
| Capability delivery | No | No | Double-signed |
| Content scanning | No | No | At publish time |
| Intent matching | No | Tags only | Semantic (TF-IDF) |
| Revocation | No | No | Real-time |
| Audit trail | No | No | Hash-chained |
| MCP compatibility | - | No | Ingests tools |
| A2A compatibility | No | - | Ingests cards |
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. Source code will be published when there's real demand for it.
8 message types. Ed25519 identity. Bayesian trust scoring. PoW anti-sybil. Content scanner. Hash-chained audit log. 32 tests passing.
Ingest MCP tools and A2A Agent Cards directly. Bridge adapters preserve original protocol communication. Imported trust scoring.
Real-time bidirectional communication. Live trust updates. Streaming capability delivery. Connection multiplexing.
Agents declare what they need. Protocol verifies environment compatibility before delivery. No more runtime surprises.
Native JavaScript and TypeScript client. npm package. Framework adapters for LangChain, CrewAI, AutoGen.
Multiple ASPL nodes that share trust data. Decentralized registry. Cross-node capability discovery. No single point of failure.