Skip to content
plugmcp
DirectorySkillsCategoriesBlog
EN/δΈ­ζ–‡
Sign inSign up
Home/Servers/AgentAnycast

AgentAnycast

I
by io.github.AgentAnycast

P2P runtime for A2A protocol. Encrypted agent communication with zero-config NAT traversal.

Power your agent

Add this server

The publisher's own command. Not a PlugMCP endpoint.

Local command
npx -y [email protected]
Provider
Claude Code
claude mcp add io.github.agentanycast-agentanycast -- npx -y [email protected]

Run in a terminal.

Claude Desktop
{
  "mcpServers": {
    "io.github.agentanycast-agentanycast": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}

claude_desktop_config.json

Step-by-step: add this in Claude

Remote URL or a command on your machine? How the two installs differ

Run on PlugMCP

Host a copy with our keys and logs.

A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.

Launch

Related MCP

View more
  • FirecrawlπŸ”₯ Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
  • N
    NotionToken-auth Notion MCP: pages, databases, blocks, comments, files. Runs headless in CI and agents.
  • Context7Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

Related skills

View all
  • reaReverse engineer anything with agents, from app behavior down to native binaries.
  • rea-changelog-updatePrepare or rewrite REA release changelogs and GitHub release notes from pinned Git history, with verified contributor thanks and Release Please synchronization.
  • rea-tool-designDesign or change REA investigation tools, CLI/MCP contracts, provider capabilities, and Evidence semantics.

P2P runtime for A2A protocol. Encrypted agent communication with zero-config NAT traversal.

AgentAnycast Node

The core daemon powering AgentAnycast's P2P agent network.

AgentAnycast Node (agentanycastd) is a sidecar daemon that runs on each machine, providing P2P networking, end-to-end encryption, and A2A protocol routing. Language SDKs (Python, TypeScript) communicate with it over gRPC.

Fully decentralized. On a local network, agents discover each other via mDNS with zero configuration. For cross-network communication, deploy your own relay with a single command.

Features

CategoryCapabilities
Networkinglibp2p (TCP, QUIC, WebTransport), NATS transport, mDNS auto-discovery, NAT traversal (AutoNAT + DCUtR + Circuit Relay v2)
SecurityE2E NaCl box encryption (X25519 + XSalsa20-Poly1305), W3C DID identity (did:key, did:web, did:dns), skill-based ACL, per-peer rate limiting
A2A ProtocolTask state machine, 3 addressing modes (direct / anycast / HTTP bridge), streaming artifacts, offline message queue
InteropHTTP Bridge (P2P ↔ HTTP A2A), ANP Bridge (Agent Network Protocol), MCP Server (stdio + Streamable HTTP)
EnterpriseAudit logging (JSON Lines), Prometheus metrics, OpenTelemetry tracing (W3C Trace Context, OTLP)
AI ToolsMCP Server for 13+ AI platforms, MCP Remote Proxy to wrap any MCP Server as a P2P agent

Quick Start

Standalone -- local network (zero configuration)

go build -o agentanycastd ./cmd/agentanycastd
./agentanycastd
# Agents on the same LAN discover each other automatically via mDNS

With Python SDK

pip install agentanycast
from agentanycast import Node

async with Node(skills=["translate"]) as node:
    # The daemon starts automatically β€” no manual setup needed
    result = await node.send_task("summarize", "Hello world")

MCP mode -- use as an AI tool

# stdio mode (Claude Desktop, Cursor, VS Code, Gemini CLI)
./agentanycastd -mcp

# Streamable HTTP mode (ChatGPT, remote clients)
./agentanycastd -mcp-listen :3000

Cross-network -- deploy your own relay

# On any VPS with a public IP
git clone https://github.com/AgentAnycast/agentanycast-relay && cd agentanycast-relay
docker-compose up -d

# Note the RELAY_ADDR from the logs, then:
./agentanycastd -bootstrap-peers "/ip4/<RELAY_IP>/tcp/4001/p2p/12D3KooW..."

Configuration

Priority: CLI flags > environment variables > config file > defaults

CLI Flags

FlagDescription
-keyPath to identity key file
-grpc-listengRPC listen address (unix:// or tcp://)
-log-levelLog level (debug, info, warn, error)
-bootstrap-peersComma-separated bootstrap multiaddrs
-bridge-listenHTTP bridge listen address (e.g., :8080)
-enable-webtransportEnable WebTransport (QUIC-based, browser-compatible)
-mcpRun as MCP server over stdio
-mcp-listenMCP Streamable HTTP listen address (e.g., :3000)
-mcp-proxyWrap an MCP Server command as a P2P-accessible agent
-anp-listenANP bridge listen address (e.g., :8090)
-nats-brokerNATS broker URL (e.g., nats://broker.example.com:4222)
-otlp-endpointOTLP collector endpoint for distributed tracing
-metrics-listenPrometheus metrics listen address (e.g., :9090)
-configPath to TOML config file
-versionPrint version and exit

Environment Variables

VariableDefault
AGENTANYCAST_KEY_PATH~/.agentanycast/key
AGENTANYCAST_GRPC_LISTENunix://~/.agentanycast/daemon.sock
AGENTANYCAST_LOG_LEVELinfo
AGENTANYCAST_STORE_PATH~/.agentanycast/data
AGENTANYCAST_BOOTSTRAP_PEERS(none)
AGENTANYCAST_ENABLE_MDNStrue
AGENTANYCAST_REGISTRY_ADDRS(none)
AGENTANYCAST_MCP_LISTEN(none)

Config File

Default location: ~/.agentanycast/config.toml

key_path = "~/.agentanycast/key"
grpc_listen = "unix://~/.agentanycast/daemon.sock"
log_level = "info"
log_format = "json"
store_path = "~/.agentanycast/data"
enable_mdns = true
enable_quic = true
enable_webtransport = false
enable_relay_client = true
enable_hole_punching = true
offline_queue_ttl = "24h"
bootstrap_peers = ["/ip4/203.0.113.50/tcp/4001/p2p/12D3KooW..."]

[bridge]
enabled = false
listen = ":8080"
# tls_cert = "/path/to/cert.pem"
# tls_key = "/path/to/key.pem"
# cors_origins = ["*"]

[anycast]
routing_strategy = "random"
cache_ttl = "30s"
auto_register = true
# registry_addr = "relay.example.com:50052"
# registry_addrs = ["relay1:50052", "relay2:50052"]  # federation
enable_dht = false
dht_mode = "auto"   # "auto", "server", or "client"

[metrics]
enabled = false
listen = ":9090"

[mcp]
enabled = false
listen = ":3000"

[anp]
enabled = false
listen = ":8090"

# NATS Transport
[transport.nats]
enabled = true
broker = "nats://broker.example.com:4222"
subject_prefix = "agent."

# Enterprise Policy
[policy]
acl_rules = [
  { source = "*", skill = "*", allow = true },
]

[policy.rate_limits]
default_rps = 100

audit_log_path = "/var/log/agentanycast-audit.jsonl"

# OpenTelemetry
[otel]
enabled = false
otlp_endpoint = "localhost:4317"

[identity]
# did_web = "did:web:example.com:agents:myagent"
# did_dns_domain = "example.com"

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           agentanycastd                              β”‚
β”‚                                                                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚  Engine   β”‚  β”‚  Router  β”‚  β”‚ Offline  β”‚  β”‚ Anycast Router   β”‚     β”‚
β”‚  β”‚(task FSM) β”‚  β”‚(A2A msg) β”‚  β”‚  Queue   β”‚  β”‚(skill discovery) β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚       β”‚              β”‚             β”‚              β”‚                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚         Envelope Layer (E2E NaCl box encryption)              β”‚   β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€   β”‚
β”‚  β”‚                    Transport Adapters                         β”‚   β”‚
β”‚  β”‚  libp2p (mDNS Β· TCP Β· QUIC Β· WebTransport Β· DHT)             β”‚   β”‚
β”‚  β”‚  NATS Β· HTTP Bridge Β· Circuit Relay v2 Β· DCUtR                β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                         β”‚                                            β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚                gRPC Server (16 RPCs for SDKs)               β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚                                                                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚ HTTP Bridgeβ”‚ β”‚ MCP Server β”‚ β”‚ANP Bridgeβ”‚ β”‚  OTel  β”‚ β”‚MCP Proxy β”‚ β”‚
β”‚  β”‚ (A2A↔P2P) β”‚ β”‚(stdio/HTTP)β”‚ β”‚(ANP↔A2A) β”‚ β”‚(trace) β”‚ β”‚(wrap cmd)β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                                                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”               β”‚
β”‚  β”‚Metrics β”‚ β”‚BoltDBβ”‚ β”‚  ACL /  β”‚ β”‚   Audit Logger   β”‚               β”‚
β”‚  β”‚(Prom.) β”‚ β”‚(stor)β”‚ β”‚RateLimitβ”‚ β”‚   (JSON Lines)   β”‚               β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Internal Packages

PackageResponsibility
internal/a2a/A2A protocol engine -- task state machine, envelope routing, offline queue, streaming
internal/node/libp2p host -- peer connections, mDNS, DHT, TCP/QUIC/WebTransport
internal/crypto/Ed25519 keys, DID conversion (did:key, did:web, did:dns), Verifiable Credentials
internal/nat/AutoNAT, DCUtR hole punching, Circuit Relay v2 client
internal/store/BoltDB persistence -- tasks, agent cards, offline queue
internal/config/TOML config, environment variables, CLI flags
internal/envelope/Protocol-neutral message routing, E2E NaCl box encryption
internal/transport/Pluggable transport adapters -- libp2p, NATS, HTTP bridge
internal/bridge/HTTP Bridge -- translates HTTP JSON-RPC ↔ P2P A2A envelopes
internal/anycast/Anycast router -- skill-based addressing, multi-registry federation, DHT discovery
internal/mcp/MCP Server -- P2P capabilities as MCP tools (stdio + Streamable HTTP)
internal/mcpproxy/MCP Remote Proxy -- wraps external MCP commands as P2P agents
internal/anp/ANP Bridge -- translates ANP HTTP ↔ A2A P2P (JSON-RPC 2.0 + JSON-LD)
internal/policy/Enterprise policy -- skill-based ACL, per-peer rate limiting, audit logging
internal/metrics/Prometheus metrics -- connections, tasks, routing, bridge, streaming, MCP
internal/otel/OpenTelemetry -- distributed tracing, W3C Trace Context, OTLP exporter
pkg/grpcserver/gRPC server -- 16 RPC methods for SDKs

gRPC API

GroupMethods
NodeGetNodeInfo, SetAgentCard
PeersConnectPeer, ListPeers, GetPeerCard
Task ClientSendTask (peer_id / skill_id / url), GetTask, CancelTask, SubscribeTaskUpdates
Task ServerSubscribeIncomingTasks, UpdateTaskStatus, CompleteTask, FailTask
StreamingSubscribeTaskStream, SendStreamingArtifact
DiscoveryDiscover

MCP Server

The daemon can run as an MCP (Model Context Protocol) server, exposing P2P capabilities as tools for AI assistants.

ToolDescription
toolGetNodeInfoGet local node information
toolListConnectedPeersList connected peers
toolGetAgentCardGet local or remote agent card
toolDiscoverAgentsDiscover agents by skill
toolSendTaskSend task to peer by ID
toolSendTaskBySkillSend task by skill (anycast)
toolGetTaskStatusGet task status

Transport modes:

  • stdio -- for local AI tool integration (Claude Desktop, Cursor, VS Code, Gemini CLI, JetBrains)
  • Streamable HTTP -- for remote clients (ChatGPT)

MCP Remote Proxy

Wrap any MCP Server as a P2P-accessible agent with a single flag:

./agentanycastd --mcp-proxy "npx -y @modelcontextprotocol/server-filesystem /home/user"

The proxy auto-generates an Agent Card from the MCP server's tool list, registers skills with the relay, and bridges incoming A2A tasks to MCP tool calls.

HTTP Bridge

Exposes an A2A-compatible HTTP endpoint for P2P ↔ HTTP interop:

  • GET /.well-known/a2a-agent-card -- Agent Card discovery
  • POST / -- JSON-RPC endpoint for task operations
  • Optional TLS and CORS support

ANP Bridge

Exposes an ANP-compatible HTTP endpoint for Agent Network Protocol interop:

  • GET /agent/ad.json -- Agent Description (JSON-LD)
  • GET /agent/interface.json -- OpenRPC specification
  • POST /agent/rpc -- JSON-RPC 2.0 endpoint

Observability

Prometheus Metrics

Available on a configurable HTTP port (default :9090):

MetricTypeDescription
agentanycast_connected_peersGaugeCurrent peer count
agentanycast_connections_totalCounterConnection events by direction
agentanycast_connections_by_transportCounterConnections by transport (tcp/quic/webtransport)
agentanycast_tasks_totalCounterTasks by direction and status
agentanycast_task_duration_secondsHistogramTask latency
agentanycast_route_resolutions_totalCounterAnycast resolution by result
agentanycast_bridge_requests_totalCounterHTTP bridge requests
agentanycast_stream_chunks_totalCounterStreaming chunks by direction
agentanycast_messages_totalCounterA2A messages by envelope type
agentanycast_offline_queue_sizeGaugeQueued offline messages
agentanycast_mcp_tool_calls_totalCounterMCP tool calls by tool and status
agentanycast_acl_decisions_totalCounterACL allow/deny decisions
agentanycast_rate_limit_rejections_totalCounterRate-limited requests

OpenTelemetry

Distributed tracing with W3C Trace Context propagation. Spans cover task lifecycle, transport hops, and envelope encryption.

./agentanycastd --otlp-endpoint localhost:4317

Building

make build              # Build agentanycastd binary -> bin/
make test               # Run all tests (unit + integration, -race)
make test-unit          # Unit tests only (-short)
make test-integration   # Integration tests only
make lint               # golangci-lint
make cross-compile      # Build for darwin/linux x amd64/arm64 + windows/amd64

Disclaimer

This software is provided "as is", without warranty of any kind. This software uses cryptography and may be subject to export controls in certain jurisdictions.

License

FSL-1.1-ALv2 -- Functional Source License, Version 1.1, with Apache License, Version 2.0 as the future license. Each release converts to Apache 2.0 two years after its publication date.

How do I install AgentAnycast?
Copy the stdio config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does AgentAnycast need an API key?
No required environment variable is listed on this record.
What transport does AgentAnycast use?
AgentAnycast runs locally over stdio.
When was AgentAnycast last checked?
Last checked 2026-10-16. P2P runtime for A2A protocol. Encrypted agent communication with zero-config NAT traversal.

No tool list yet. Remote servers get one after the first health check.

plugmcp

Plug any tool into any agent. MCP servers for people who do not write servers. Gateway for volume, n8n for apps.

  • github.com/TODO
  • x.com/TODO
  • linkedin.com/company/TODO

PlugMCP, 2026

Product
  • Browse
  • Install
  • Host your own
  • Voice mode
  • Browser
Directory
  • All MCP servers
  • Agent skills
  • Categories
  • New
  • Voice
  • Submit a server
Developers
  • Docs
  • Blog
  • What is MCP
  • What is WebMCP
  • Status
Company
  • About
  • Contact
  • Terms
  • Privacy
  • DPA