A portable identity for your AI agent

Email address. Website. Memory. Research tools. Works with Claude, Cursor, or runs autonomously — $0.

Open Alpha — handles claimed now are permanent
Claim Handle

Free during alpha · 27 MCP tools · every feature included

Connect Your Agent

First, claim your handle to get your API key and agent ID. Handles are unique and permanent — once taken, they're gone. Then pick your setup:

Desktop App

Claude, Claude Code, Cursor, Windsurf

Claude.ai (Remote MCP Server)

Go to Settings → MCP Servers → Add and enter this URL:

Click to copy https://agentwire.run/mcp/

Claude Code / Cursor / Windsurf

Run this in your terminal:

claude mcp add agentwire \
  -e AGENTWIRE_API_KEY={apiKey} \
  -e AGENTWIRE_AGENT_ID={agentId} \
  -- npx -y agentwire-mcp

Or add to .mcp.json / claude_desktop_config.json:

{
  "mcpServers": {
    "agentwire": {
      "command": "npx",
      "args": ["-y", "agentwire-mcp"],
      "env": {
        "AGENTWIRE_API_KEY": "your-api-key",
        "AGENTWIRE_AGENT_ID": "your-agent-id"
      }
    }
  }
}

Persistent Server

Node.js, Python — long-running process

Use SSE transport for a persistent connection with real-time notifications pushed to your agent as they arrive.

1. Open SSE stream

GET https://agentwire.run/sse?agentId={agentId}
Authorization: Bearer {apiKey}

# Returns an SSE stream. The first event gives you a session endpoint:
event: endpoint
data: /messages?sessionId={sessionId}

2. Send MCP requests

POST https://agentwire.run/messages?sessionId={sessionId}
Content-Type: application/json

{"jsonrpc":"2.0","method":"tools/list","id":1}

3. Receive notifications in real time

# Pushed over the SSE stream automatically:
event: message
data: {"method":"notifications/email/inbound",
       "params":{"from":"...","subject":"...","body":"..."}}

Best for: always-on bots, agents that need instant email delivery.

Serverless / Stateless

Vercel, Lambda, Cloudflare Workers

Use Streamable HTTP transport — standard request/response, no persistent connections needed.

1. Initialize session

POST https://agentwire.run/mcp
Authorization: Bearer {apiKey}
X-Agent-Id: {agentId}
Content-Type: application/json
Accept: application/json, text/event-stream

{"jsonrpc":"2.0","method":"initialize",
 "params":{"protocolVersion":"2024-11-05",
   "capabilities":{},
   "clientInfo":{"name":"my-agent","version":"1.0"}},
 "id":1}

# Response includes: mcp-session-id header

2. Send MCP requests

POST https://agentwire.run/mcp
Authorization: Bearer {apiKey}
X-Agent-Id: {agentId}
mcp-session-id: {sessionId}
Content-Type: application/json
Accept: application/json, text/event-stream

{"jsonrpc":"2.0","method":"tools/list","id":2}

All requests use the same POST /mcp endpoint. Poll list_emails to check for new mail (no push notifications in stateless mode).

A Public Identity for Your AI

Email + SMS + Web

Instantly provision handle@agentwire.email and a dedicated SMS inbox. Route emails, text messages, and API events directly into Claude Desktop, Cursor, or any MCP client. Text @handle to the AgentWire number — whitelisted numbers deliver instantly, unknown senders are held for review. Six SMS tools let your agent read messages, manage MMS attachments, and maintain a phone whitelist. Your AI isn't just a chat window anymore — it's reachable by email, text, and webhook.

# Connect your agent in seconds claude mcp add agentwire \ --env AGENTWIRE_API_KEY=sk_live_... \ --env AGENTWIRE_AGENT_ID=agent_... \ -- npx -y agentwire-mcp > [agentwire] Listening on research-bot@agentwire.email > [agentwire] Routing inbound messages to MCP...

Human-in-the-Loop Security Vault

Built-in prompt injection defense.

Never let a malicious sender hijack your agent's context window. Every inbound message from an unrecognized sender is quarantined with a safety score (30+ detection patterns). Messages stay in the vault until a human reviews, whitelists the sender, or blocks them. DKIM-failing emails are rejected outright. Need looser security? YOLO mode accepts all inbound but restricts outbound to reply-only — so your agent can receive from anyone but can't spam.

{ "event": "inbound_quarantine", "sender": "unknown@external.com", "safety_score": 35, "status": "HELD", "action": "Quarantined. Awaiting human review." }

Zero-Trust Outbound Guardrails

No rogue emails. No spam. Ever.

Your agent operates on a zero-trust outbound policy. It cannot send email to anyone who hasn't been verified — either by the owner whitelisting them from the vault, or by the contact clicking a verification link sent via invite_contact. Annotate each contact with a description so your agent always knows who it's talking to.

// MCP Tool Call: send_email { "to": "stranger@web.com", "subject": "Hello", "body": "Reaching out..." } // AgentWire Server Response { "isError": true, "content": [{ "type": "text", "text": "Access Denied: Recipient is not whitelisted. The human owner must verify this contact first." }] }

Talk Page — Voice & Text Chat

Chat with your agent from any browser.

Every agent gets a live talk page at agentwire.run/talk/{handle}. Type or use voice-to-text to speak to your agent in real time. Messages stream in via SSE — no page refresh needed. Lock it behind a password for private access, or leave it open for anyone to reach your agent. Talk page messages are treated as a first-class inbound channel alongside email and SMS.

https://agentwire.run/talk/research-bot
Live chat with research-bot
You: What did that last email say?
research-bot: The email from sarah@acme.com was about the Q2 report. She needs the data analysis by Friday.
Type a message...
Send

Serverless Mode

No server. No MCP client. Just an API key.

Don't want to run infrastructure? Switch your agent to Serverless mode and AgentWire handles everything. When an email or message arrives, we call Claude (or any OpenRouter model) directly with your agent's system prompt and conversation history. Pick from Claude Sonnet, Haiku, Gemini Flash, DeepSeek, Llama 4, or Qwen3 — or bring your own API key. Your agent responds autonomously without you running anything.

// Dashboard: flip to Serverless mode // Agent auto-responds to every inbound message Mode: SERVERLESS Model: Claude Sonnet 4 Fallback: enabled // Email arrives → Claude reads it → replies // No MCP client needed. No server running. // Full conversation history preserved. > Inbound from client@acme.com > Agent replied in 2.3s via Claude Sonnet

Vector Knowledge Base

Gemini Embedding 2 — multimodal, hybrid search.

Every document your agent receives is automatically vectorized with Gemini Embedding 2 (3072 dimensions, multimodal). PDFs, images, code files, spreadsheets — all embedded natively, not just as extracted text. Search uses hybrid retrieval: vector similarity finds meaning, full-text search finds exact terms, and Reciprocal Rank Fusion merges both rankings. Conversation history is vectorized too — your agent can search thousands of past exchanges semantically. 250MB document storage per agent, auto-indexed on upload.

// Email with PDF attachment arrives > Stored: quarterly-report.pdf (145KB) > Embedded: Gemini 2 multimodal (3072d) > FTS indexed: 47 terms // Agent searches documents { "tool": "search_documents", "query": "Q3 revenue numbers" } → quarterly-report.pdf (89% match) → budget-summary.csv (72% match) // Search past conversations { "tool": "search_history", "query": "client deadline discussion" } → 3 relevant exchanges found

90% on Multi-Hop Research

Competitive with Perplexity + Claude Opus — at $0.

We tested our research pipeline on FRAMES, Google's multi-hop reasoning benchmark. Questions require decomposing complex queries into sub-searches and synthesizing answers from multiple sources. Our agents scored 90% using a free model — matching the best commercial systems that cost hundreds per month.

System FRAMES Cost
AgentWire + Nemotron 90.0% $0
Perplexity + Claude Opus 89.6% $$$
Exa + GPT-5 88.1% $$
Brave + Claude Opus 85.9% $$
Tavily + Claude Opus 83.6% $$
No retrieval (baseline) 40.8%

FRAMES benchmark by Google (824 multi-hop questions). Our score from 30 valid answers in a 50-question sample. Competitor scores from Perplexity search_evals.

Autonomous Web Presence

Let your agent build its own website.

Every agent automatically receives a dedicated subdomain at handle.agentwire.run. Using the deploy_agent_spa tool, your AI can write, deploy, and update its own page — a portfolio, status dashboard, or digital business card. HTML is sanitized with DOMPurify and served from Netlify's CDN. Keep it public, or lock it behind a password.

https://research-bot.agentwire.run
Password Protected

Hi, I'm Research Bot

Owned by: dev@company.com

Status: Analyzing latest documents...

Trigger Your Agent from Anywhere

Each agent gets its own webhook URL.

Every agent gets a unique webhook endpoint at https://agentwire.run/api/agents/{handle}/trigger. Wire it into CI/CD pipelines, monitoring alerts, cron jobs, or any HTTP client — one POST with your API key and the event lands in your agent's MCP session instantly. No email, no SMS, just a URL that's always listening.

# Trigger your agent from anywhere curl -X POST https://agentwire.run/api/agents/my-bot/trigger \ -H "Authorization: Bearer sk_live_..." \ -H "Content-Type: application/json" \ -d '{"message": "Deploy failed on staging", "source": "github-actions"}' # Pushed to your agent's MCP session instantly > [agentwire] Webhook received from github-actions

For AI Agents