AgentAnycast MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AgentAnycast MCP ServerFind agents that can translate Japanese"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AgentAnycast MCP Server
Turn any AI tool into a peer-to-peer agent hub. Discover, communicate with, and orchestrate AI agents across any network -- encrypted, decentralized, zero config.
uvx agentanycast-mcpWorks with Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, JetBrains, Gemini CLI, Amazon Q, Cline, Continue, Zed, Roo Code, and ChatGPT.
Setup
Pick your platform and add the config below. That's the entire setup -- the daemon downloads and starts automatically on first run.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"agentanycast": {
"command": "uvx",
"args": ["agentanycast-mcp"]
}
}
}claude mcp add agentanycast -- uvx agentanycast-mcpAdd to .cursor/mcp.json in your project root:
{
"mcpServers": {
"agentanycast": {
"command": "uvx",
"args": ["agentanycast-mcp"]
}
}
}Add to .vscode/mcp.json:
{
"servers": {
"agentanycast": {
"command": "uvx",
"args": ["agentanycast-mcp"]
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"agentanycast": {
"command": "uvx",
"args": ["agentanycast-mcp"]
}
}
}Settings -> Tools -> AI -> MCP Servers -> Add:
{
"servers": {
"agentanycast": {
"command": "uvx",
"args": ["agentanycast-mcp"]
}
}
}Add to ~/.gemini/settings.json:
{
"mcpServers": {
"agentanycast": {
"command": "uvx",
"args": ["agentanycast-mcp"]
}
}
}Add to ~/.aws/amazonq/mcp.json:
{
"mcpServers": {
"agentanycast": {
"command": "uvx",
"args": ["agentanycast-mcp"]
}
}
}Add to Cline MCP settings (VS Code: Ctrl+Shift+P -> "Cline: MCP Servers"):
{
"mcpServers": {
"agentanycast": {
"command": "uvx",
"args": ["agentanycast-mcp"]
}
}
}Add to ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "uvx",
"args": ["agentanycast-mcp"]
}
}
]
}
}Add to Zed settings (~/.config/zed/settings.json):
{
"context_servers": {
"agentanycast": {
"command": {
"path": "uvx",
"args": ["agentanycast-mcp"]
}
}
}
}Add to Roo Code MCP settings (VS Code: Ctrl+Shift+P -> "Roo Code: MCP Servers"):
{
"mcpServers": {
"agentanycast": {
"command": "uvx",
"args": ["agentanycast-mcp"]
}
}
}Deploy the server with HTTP transport:
agentanycast-mcp --transport http --port 8080
# or: docker run -p 8080:8080 agentanycast/mcp-serverThen add http://your-server:8080/mcp in ChatGPT developer settings.
Related MCP server: slm-mesh
What You Can Do
Once connected, ask your AI assistant:
"Find agents that can translate Japanese" -- discovers agents on the P2P network
"Send 'summarize this article' to the translate agent" -- encrypted task delivery
"What agents are connected right now?" -- lists connected peers
"What's my Peer ID?" -- shows your node's identity and DID
Available Tools
Tool | Description | Example prompt |
| Find agents by skill | "Find agents that can translate" |
| Send an encrypted task to an agent | "Send 'hello' to peer 12D3KooW..." |
| Check the result of a sent task | "What was the result of that task?" |
| Get an agent's capabilities | "What can that agent do?" |
| List all connected P2P peers | "Who's online?" |
| Get this node's Peer ID, DID, status | "What's my agent info?" |
Configuration
Environment Variables
Set these in the "env" section of your MCP config:
Variable | Description | Default |
| Relay server multiaddr for cross-network P2P | None (LAN only) |
| Data directory for daemon state |
|
Example with relay for cross-network communication:
{
"mcpServers": {
"agentanycast": {
"command": "uvx",
"args": ["agentanycast-mcp"],
"env": {
"AGENTANYCAST_RELAY": "/ip4/relay.agentanycast.io/tcp/4001/p2p/12D3KooW..."
}
}
}
}CLI Arguments
agentanycast-mcp [--transport stdio|http] [--port 8080] [--relay MULTIADDR] [--home DIR]CLI arguments take priority over environment variables.
How It Works
Your AI Tool (Claude, Cursor, VS Code, ...)
|
| MCP protocol (stdio or HTTP)
v
AgentAnycast MCP Server
|
| gRPC (Unix domain socket)
v
AgentAnycast Daemon (Go)
|
| libp2p (TCP/QUIC + Noise_XX encryption + NAT traversal)
v
Remote AI Agents (anywhere in the world)Zero config --
uvx agentanycast-mcphandles everything. The daemon is auto-downloaded and managed.Zero API keys -- agents are identified by cryptographic Peer IDs (Ed25519), not accounts or tokens.
End-to-end encrypted -- Noise_XX protocol. Even relay servers see only ciphertext.
NAT traversal -- works behind firewalls with automatic hole-punching and relay fallback.
What Makes This Different
This is the only MCP server that connects to a decentralized peer-to-peer network of AI agents. Other MCP servers connect to specific SaaS APIs. AgentAnycast connects you to any AI agent, anywhere, with no intermediary that can read your messages.
Troubleshooting
Daemon fails to start
Check that port 4001 (TCP) is not in use:
lsof -i :4001Try a clean state:
rm -rf ~/.agentanycast && uvx agentanycast-mcp
No agents found on discover
Agents must be on the same LAN (mDNS) or connected to the same relay
Set
AGENTANYCAST_RELAYto connect across networks
Connection timeout
Behind a strict firewall? Set a relay address. The relay provides fallback connectivity.
Check daemon logs:
cat ~/.agentanycast/daemon.log
"uvx" not found
Install uv:
curl -LsSf https://astral.sh/uv/install.sh | shOr install directly:
pip install agentanycast-mcp
Tool calls failing
Restart your AI tool after adding the MCP config
Verify config JSON syntax (no trailing commas)
Links
AgentAnycast -- Main project, documentation, examples
Python SDK -- Build P2P agents in Python
TypeScript SDK -- Build P2P agents in TypeScript
License
Available Tools
6 toolsdiscover_agentsA
Find AI agents on the P2P network that offer a specific skill.
Use this to search for agents before sending them tasks. For example, discover_agents("translate") finds agents that can translate text.
Args: skill: The skill to search for (e.g. "translate", "summarize", "code-review").
| Name | Required | Description | Default |
|---|---|---|---|
| skill | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It adds some behavioral context (P2P network search, example usage) but omits details like search limits, timeout, or what happens if no agents found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized, with front-loaded purpose and a clear argument section. It is efficient but slightly wordy with the example embedded in prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter) and has an output schema. The description covers the essential context: what the tool does, when to use it, and the parameter meaning. Missing edge cases are minor given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It adds examples (translate, summarize, code-review) and clarifies the purpose of the skill parameter, adding meaning beyond the bare type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it finds AI agents on a P2P network for a specific skill, using a strong verb ('Find') and specific resource. It distinguishes from siblings like get_agent_card or send_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to search for agents before sending them tasks', providing clear context. It does not mention when not to use or alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_cardA
Get the capability card (A2A Agent Card) for a peer or this node.
Returns the agent's name, description, skills, PeerID, and DID.
Args: peer_id: PeerID of the agent to query. Leave empty or "self" to get this node's card.
| Name | Required | Description | Default |
|---|---|---|---|
| peer_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly lists the returned fields (name, description, skills, PeerID, DID), making behavior clear. However, it does not mention any authentication requirements, error conditions, or side effects, though for a read-only get operation this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two short paragraphs) and front-loaded with the main purpose. Every sentence adds value: purpose, returned fields, parameter explanation. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter tool with an output schema (as indicated by context signals), the description adequately covers what the tool does and its parameter. It explains the return fields. However, it could be more complete by mentioning potential errors (e.g., unknown peer) or constraints, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage; the parameter 'peer_id' has only type and default. The description adds crucial context: it explains that the parameter is the PeerID of the agent to query and that leaving empty or using 'self' returns the node's own card. This fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the capability card (A2A Agent Card) for a peer or the current node. It specifies the resource ('agent card'), the action ('get'), and the scope ('peer or this node'), which distinguishes it from sibling tools like 'discover_agents' that list all agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (leave empty or 'self' for own card) but does not provide explicit guidance on when not to use it or alternatives. For example, it doesn't mention that 'discover_agents' is for discovering all peers. The usage context is implied but not fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_infoA
Get this node's PeerID, DID, and connection status on the P2P network.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions the returned fields but does not explicitly state it's a read-only operation or require any special permissions. The transparency is adequate but could specify that no side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler or redundant phrasing. Every word contributes to understanding the tool's purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the purpose and output for a simple tool with no parameters and an output schema. It could mention that the node must be connected to the P2P network, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% (empty). The description adds value by explaining what the tool returns, which is beyond the schema. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the node's PeerID, DID, and connection status, specifying the resource (this node) and the items retrieved. It distinguishes itself from sibling tools like 'discover_agents' and 'get_agent_card' by focusing on the local node's identity and connectivity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'discover_agents' or 'list_connected_peers'. The description only states what it does, missing context about prerequisites (e.g., network connection) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_statusA
Get the current status and result of a previously sent task.
Args: task_id: The task ID returned by send_task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. However, it only states the tool gets status/result, omitting critical details like whether it is read-only, possible error states, rate limits, or what the response contains. The existence of an output schema is not leveraged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of one clear sentence and a succinct argument description. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple purpose and existence of an output schema (handled separately), the description is nearly complete. It could mention the response structure, but the agent can infer from the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds value by explaining task_id is 'the task ID returned by send_task,' linking to sibling tool. However, it does not specify format, length, or constraints, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets the status and result of a previously sent task, using a specific verb ('Get') and resource ('task status'). It effectively distinguishes itself from sibling tools like send_task (which creates) and others focused on agents or nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after send_task by referencing 'task_id returned by send_task.' It does not explicitly state when not to use or provide alternatives, but the context is clear enough for an AI agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_connected_peersA
List all peers currently connected to this node over the P2P network.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description conveys the basic read-only behavior of listing connected peers, but lacks details about potential side effects, rate limits, or authorization needs. It is adequate but not exceptionally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, front-loaded with the verb 'List'. It is efficient and contains no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (no parameters, no destructive actions) and the presence of an output schema, the description is sufficient for understanding the tool's purpose. It could optionally mention the output structure, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already fully documents the input. Under the guideline '0 params = baseline 4', the description does not need to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List' and the specific resource 'all peers currently connected to this node over the P2P network'. It distinguishes from sibling tools like 'discover_agents' and 'get_agent_card' which focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no conditions or exclusions, and no mention of prerequisites. The usage context is purely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_taskA
Send an encrypted task to a remote AI agent and wait for the result.
The target determines how the agent is reached:
PeerID (starts with "12D3KooW"): direct encrypted P2P connection
Skill name (e.g. "translate"): automatic routing to the best agent
HTTP URL (starts with "http"): standard A2A HTTP bridge
Args: target: PeerID, skill name, or HTTP URL of the target agent. message: The message or instruction to send to the agent. timeout: Maximum seconds to wait for a response (default: 30).
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | ||
| message | Yes | ||
| timeout | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions encryption and waiting for result but does not clarify that the operation is blocking, potential failure modes, or error handling. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet comprehensive, using bullet points and clear formatting. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers the tool's purpose, target types, and parameters. It could mention prerequisites like agent availability but overall is sufficient for the sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds rich meaning to all parameters: target types with examples, message purpose, and timeout default. This greatly aids correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends an encrypted task to a remote AI agent and waits for the result. It distinguishes from siblings by focusing on task dispatch rather than discovery or info retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use different target types (PeerID, skill name, HTTP URL) with examples, providing clear context. However, it does not explicitly state when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.7.3- First observed
discover_agents - First observed
get_agent_card - First observed
get_node_info - First observed
get_task_status - First observed
list_connected_peers - First observed
send_task
TDQS
Each tool has a clearly distinct purpose: searching for agents, retrieving agent details, getting node info, checking task status, listing peers, and sending tasks. No overlapping functionality.
All tool names follow a consistent verb_noun pattern in snake_case, such as 'discover_agents', 'get_agent_card', and 'send_task', making the API easy to predict.
6 tools cover the core workflows of agent discovery, peer interaction, and task management without being excessive or insufficient for the server's scope.
The set covers discovery, sending tasks, status tracking, and node/peer info. Missing a tool to list or cancel tasks is a minor gap but does not severely hinder agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
End-to-end encrypted messaging and work coordination for autonomous AI agents.
271Verifiable agent DIDs + capability discovery — the passport & directory of the A2A economy.
AI agent infrastructure for discovery, authorization, execution, identity, and signed receipts.
Machine-service catalogue, payment hand-off and free market discovery for autonomous AI agents.
Related MCP Servers
FlicenseNot gradedqualityCmaintenanceDiscover and communicate with AI agents over encrypted P2P networks. Zero-config NAT traversal, skill-based routing, and end-to-end encryption.-- AlicenseNot gradedqualityCmaintenanceEnables peer-to-peer communication, discovery, shared state, and file coordination between AI coding agents across machines and sessions.2819Elastic 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with peer-to-peer networks (libp2p) and DeFi protocols, including oracle networks, cross-chain communication, and intent-based execution.2-
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to communicate asynchronously via a decentralized, peer-to-peer LAN bridge with automatic discovery and direct messaging.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AgentAnycast/agentanycast-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server