Mailfornet

MCP server for AI agents

Let an AI agent make its own email address, sign up somewhere, and read the verification code back without anyone copying and pasting.

The Mailfornet MCP server is a remote Model Context Protocol server. Any client that speaks MCP can use it, including Claude Desktop, Claude Code, Cursor, Windsurf, VS Code and your own agents. Nothing is installed. You give the client a URL and your API key.

Server URLhttps://api.mailfornet.com/mcp
TransportStreamable HTTP
AuthAuthorization: Bearer mf_live_your_key
BillingEach tool call is one API request, from the same quota as the REST API

What an agent can do with it

A typical run, in the agent's own words: "I'll make an inbox, use it on the signup form, wait for the code, then enter it."

  1. create_inbox returns a fresh address such as ryan.grant688@tikaurasave.site.
  2. The agent fills in the signup form with it, using a browser tool.
  3. wait_for_code holds for up to a minute and returns {"code": "731905", "link": "https://…/verify?…"}. Newsletters and other mail without a code are skipped.
  4. The agent types the code or opens the link.
  5. delete_inbox cleans up. Otherwise the address expires by itself.

Tools

ToolWhat it does
create_inboxNew address. Optional username, domain, ttl_minutes (1–1440).
wait_for_codeWaits for a verification code or confirm link and returns it. Optional timeout_seconds, from, subject.
list_messagesWhat has arrived, newest first. Optional wait_seconds, from, subject.
read_messageOne email as plain text, with its code and every link. HTML is stripped so it doesn't fill the model's context.
delete_inboxDeletes an address and its mail now.
list_domainsDomains addresses can be created on.
get_usageRequests used this month and what is left.

Claude Code

claude mcp add --transport http mailfornet https://api.mailfornet.com/mcp \
  --header "Authorization: Bearer mf_live_your_key"

Claude Desktop

Settings → Developer → Edit config, then add:

{
  "mcpServers": {
    "mailfornet": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://api.mailfornet.com/mcp",
        "--header", "Authorization: Bearer ${MAILFORNET_API_KEY}"
      ],
      "env": { "MAILFORNET_API_KEY": "mf_live_your_key" }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "mailfornet": {
      "url": "https://api.mailfornet.com/mcp",
      "headers": { "Authorization": "Bearer mf_live_your_key" }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "mailfornet": {
      "serverUrl": "https://api.mailfornet.com/mcp",
      "headers": { "Authorization": "Bearer mf_live_your_key" }
    }
  }
}

VS Code

Add to .vscode/mcp.json. VS Code asks for the key once and stores it securely:

{
  "inputs": [
    { "type": "promptString", "id": "mailfornet-key", "description": "Mailfornet API key", "password": true }
  ],
  "servers": {
    "mailfornet": {
      "type": "http",
      "url": "https://api.mailfornet.com/mcp",
      "headers": { "Authorization": "Bearer ${input:mailfornet-key}" }
    }
  }
}

Your own agent

With the official TypeScript SDK:

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const client = new Client({ name: 'my-agent', version: '1.0.0' });
await client.connect(new StreamableHTTPClientTransport(new URL('https://api.mailfornet.com/mcp'), {
  requestInit: { headers: { Authorization: `Bearer ${process.env.MAILFORNET_API_KEY}` } },
}));

const inbox = await client.callTool({ name: 'create_inbox', arguments: {} });
const { address } = inbox.structuredContent;

Keys and safety

Next

The MCP tools sit on top of the REST API, so anything an agent does can also be done from ordinary code. Pricing has a free tier of 100 requests a month, which is enough to try it.

Get an API key