{
  "markdown": "# A2AL — Agent-to-Agent Link Protocol\n\n[![npm](https://img.shields.io/npm/v/a2ald)](https://www.npmjs.com/package/a2ald)\n[![PyPI](https://img.shields.io/pypi/v/a2al)](https://pypi.org/project/a2al/)\n[![Go Reference](https://pkg.go.dev/badge/github.com/a2al/a2al.svg)](https://pkg.go.dev/github.com/a2al/a2al)\n[![License: MPL 2.0](https://img.shields.io/badge/License-MPL_2.0-brightgreen.svg)](LICENSE)\n\n**Official websites:** [a2al.org](https://a2al.org) · [Tangled Network](https://tanglednet.org) · [tngld.net](http://tngld.net)\n\nA2AL is a networking protocol that enables AI agents to publish themselves, discover each other, and establish secure connections — without relying on any central infrastructure.\n\nEach agent receives a globally unique, cryptographic address (AID). Once publsished to the network, any agent worldwide can resolve that AID and initiate an authenticated, encrypted connection — regardless of network topology, NAT boundaries, or IP changes.\n\nA2AL ships as a standalone daemon with a built-in **MCP server** — giving AI assistants like Claude, Cursor, and Windsurf direct networking capabilities without writing any code.\n\n```\nYour Agent  ──publish──▶  A2AL Network  ◀──discover──  Remote Agent\n                                                            │\n                                          direct authenticated connection\n```\n\n## The Problem\n\nAI agent interoperability protocols (MCP, A2A, ANP) define how agents communicate, but assume you already know where the other agent is. In practice:\n\n- No standard, open mechanism exists for agents to announce their availability or discover peers — whether deployed in data centers, on edge infrastructure, or on personal devices\n- Agent connectivity depends on pre-configured endpoints, platform-specific registries, or manual coordination — none of which scale across organizational and network boundaries\n- Agents behind NAT or with dynamic IPs face additional reachability barriers that existing protocols do not address\n\nA2AL addresses the missing infrastructure layer: **agent-level addressing, discovery, and connectivity**.\n\n## What A2AL Does\n\n**Publish** — An agent announces its identity and reachable endpoints to a global peer-to-peer network. Endpoint records update automatically as network conditions change.\n\n**Discover** — Resolve any agent by its AID, or search by capability (e.g. \"translation agents supporting zh-en legal domain\"). Discovery is fully decentralized — no registry to operate or depend on. Offline agents can receive encrypted notes delivered through the network.\n\n**Connect** — Establish a direct, end-to-end encrypted connection with mutual identity verification. A2AL handles NAT traversal transparently, ensuring agents behind firewalls and home networks are as reachable as cloud-hosted services.\n\n## Getting Started\n\n**For agent operators** — Install `a2ald` and open `http://localhost:2121`. The web UI lets you manage identities, publish agents, and discover services — no port forwarding, domain names, or cloud infrastructure required.\n\n**For developers** — A2AL integrates into your existing stack:\n\n| Integration | Audience | How |\n|-------------|----------|-----|\n| **MCP Server** | AI agents | Native tool calls — zero code integration |\n| **`a2ald` + REST API** | Any language | Local HTTP API for publish / discover / fetch / tunnel |\n| **`pip install a2al`** | Python developers | Bundled sidecar binary, zero infrastructure setup |\n| **`npm install -g a2ald`** | Node / JS developers | Install daemon via npm, no Go toolchain required |\n| **Go library** | Go developers | `import \"github.com/a2al/a2al\"` — embed directly |\n\n### MCP Integration\n\nAs an MCP Server, A2AL exposes 25+ tools that any MCP-compatible agent can invoke directly — enabling agents to acquire networking capabilities without code-level integration.\n\n**Claude Desktop / Cursor / Windsurf / Cline** — add to your MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"a2al\": {\n      \"command\": \"a2ald\",\n      \"args\": [\"--mcp-stdio\"]\n    }\n  }\n}\n```\n\nSee [`doc/mcp-setup.md`](doc/mcp-setup.md) for platform-specific paths and full tool list.\n\n### CLI\n\n```bash\na2al status                         # node and agent status\na2al register                       # create and register a new agent\na2al search <service>               # discover agents by capability\na2al info <aid>                     # fetch agent info and card\na2al get  <aid> /path               # HTTP GET to a remote agent (encrypted, NAT-traversing)\na2al post <aid> /path -d '{}'       # HTTP POST to a remote agent\na2al tunnel open <aid>              # open a persistent local port for sustained access\na2al tunnel                         # list active tunnels\na2al tunnel close <id>              # close a tunnel\na2al note send <local> <aid> <b64>  # send an encrypted note to an offline agent\n```\n\n### SDK (Go)\n\n```go\nagent := a2al.New(a2al.Config{...})\nagent.Start()\n\n// Discover and connect to a remote agent\nconn, err := agent.Connect(targetAID)\n```\n\n## Design Principles\n\n**Self-sovereign Identity** — Each agent's address is derived from its own key pair. No registration authority is involved. Identity is verifiable end-to-end: no agent can claim an AID it does not hold the private key for.\n\n**Zero-configuration Discovery** — Agents publish signed endpoint records to a distributed network. Any agent can resolve an AID to a live endpoint. The network operates at any scale — from a handful of nodes to millions.\n\n**Mutual Authentication** — Every connection cryptographically verifies both parties' identities. You always know the agent on the other end is who it claims to be.\n\n**Network-agnostic** — A2AL works across NAT, firewalls, and dynamic IPs. Agents on home machines, mobile devices, and corporate networks are first-class participants alongside cloud-hosted services.\n\n**Direct Communication** — A2AL resolves addresses and brokers the initial connection, then steps aside. Application data flows directly between agents, not through the protocol.\n\n**Web3 Compatible** — Ethereum and Paralism blockchain wallet addresses can serve as AIDs. Cross-key attestation allows an agent to prove ownership of both a native AID and a blockchain identity. Web3 integration is supported, not required.\n\n## Relationship to AI Protocols\n\nA2AL is complementary to existing agent communication standards — it provides the networking foundation they assume but do not include.\n\n| Protocol | Role | How A2AL fits in |\n|----------|------|-----------------|\n| **MCP** | Agent tool-calling interface | A2AL operates as an MCP-installable tool, giving agents networking capability |\n| **A2A** | Agent collaboration semantics | A2AL provides the discovery and connectivity layer A2A relies on |\n| **ANP** | Agent networking vision | A2AL implements the decentralized network layer ANP envisions |\n\n## Try the Demo\n\nEncrypted chat between two machines. On each machine, two terminals:\n\n```\na2ald        # terminal 1: network layer, joins the public Tangled Network\ndemo3-chat   # terminal 2: chat app — download pre-built binary below\n```\n\nBob types Alice's AID → direct encrypted QUIC tunnel → chat.\n\n> **Go developers:** replace `demo3-chat` with `go run ./examples/demo3-chat`.\n\n**Download:** (demos require a2ald v0.1.8+)\n- Pre-built **demo** binaries (demo1-node … demo6-swarm): [**Demo binaries (latest)**](https://github.com/a2al/a2al/releases/tag/demos-latest)\n- The `a2ald` daemon: [Main Releases page](https://github.com/a2al/a2al/releases)\n\n> **Windows users:** the binaries are currently unsigned. When Windows SmartScreen shows a warning, click **\"More info\" → \"Run anyway\"**. This is expected for open-source binaries without a paid code-signing certificate and does not indicate a security risk.\n\nMore scenarios (marketplace, swarm) and single-machine variants: [`doc/examples.md`](doc/examples.md).\n\n## Status\n\nA2AL is under active development. Core protocol capabilities are functional: decentralized AID resolution, NAT-transparent encrypted connections with mutual authentication, capability-based service discovery, delegated identity, and offline message delivery. Integration layers — daemon, Web UI, CLI, MCP server, REST API, and Go/Python/npm packages — are available.\n\nSee [`doc/API.md`](doc/API.md) for the current library API.\n\n## Disclaimer\n\nA2AL is a networking protocol project. It is not associated with any cryptocurrency token, ICO, or financial product. Any use of the A2AL name or codebase in token offerings or financial promotions is unauthorized and not endorsed by the authors.\n\n## Contributing\n\nContributions are welcome. Before your pull request can be merged, you must sign the [Contributor License Agreement](CLA.md). A bot will prompt you automatically when you open a PR.\n\nPlease open an issue before starting significant work.\n\n## Author\n\nXG.Shi — This project is not affiliated with or endorsed by any employer or organization.\n\n## License\n\nCopyright (c) 2026 The A2AL Authors\n\nLicensed under the [Mozilla Public License 2.0](LICENSE).\n",
  "bytes": 9043,
  "sha": "ba9990ac3b734f2a381724a3486a024e3463b8f75082ff6fa4d249a13deedaed",
  "repo_slug": "a2al/a2al",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_a2al_a2ald_ca2e4781/readme"
}