Claude can work a signup flow right up to the point where the service emails a code, and then it has nowhere to read it. Adding myagentinbox as an MCP server gives Claude an inbox of its own, plus the tools to check it and pull the code out.
create_inbox, check_inbox, read_message, download_attachment — wired into Claude Code, Claude Desktop, or the Claude Agent SDK. No accounts, no API keys, inboxes auto-delete after 24 hours.
1Add the MCP server. From your project directory, run:
claude mcp add myagentinbox npx mcp-remote https://myagentinbox.com/mcp
That registers the server for the current project. Use --scope user to make it available across every project on your machine:
claude mcp add --scope user myagentinbox npx mcp-remote https://myagentinbox.com/mcp
2Verify it loaded. Start Claude Code and run /mcp. You should see myagentinbox listed with four tools.
3Use it. Just ask:
> sign me up for the example.com newsletter using a throwaway email,
then read the welcome message and tell me what's in it
Claude will call create_inbox, use the returned address in the signup form, poll check_inbox, and read the message back to you.
1Open the config file.
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json2Add the server under mcpServers:
{
"mcpServers": {
"myagentinbox": {
"command": "npx",
"args": ["mcp-remote", "https://myagentinbox.com/mcp"]
}
}
}
3Restart Claude Desktop. Look for the tools icon in the chat input — myagentinbox should appear in the connected servers list.
npx? Install Node.js first. The mcp-remote shim is what lets desktop clients (which speak stdio MCP) talk to a remote HTTP MCP server.
The Claude Agent SDK lets you build long-running agents in TypeScript or Python. MCP servers are passed in via mcpServers.
import { query } from "@anthropic-ai/claude-agent-sdk";
const result = query({
prompt: "Sign up for service X with a throwaway email and report back the verification code.",
options: {
mcpServers: {
myagentinbox: {
type: "http",
url: "https://myagentinbox.com/mcp",
},
},
allowedTools: [
"mcp__myagentinbox__create_inbox",
"mcp__myagentinbox__check_inbox",
"mcp__myagentinbox__read_message",
],
},
});
for await (const msg of result) {
console.log(msg);
}
from claude_agent_sdk import query, ClaudeAgentOptions
options = ClaudeAgentOptions(
mcp_servers={
"myagentinbox": {
"type": "http",
"url": "https://myagentinbox.com/mcp",
},
},
allowed_tools=[
"mcp__myagentinbox__create_inbox",
"mcp__myagentinbox__check_inbox",
"mcp__myagentinbox__read_message",
],
)
async for message in query(
prompt="Sign up for service X and read the verification email.",
options=options,
):
print(message)
type: "http") means there's no local process to manage and no npx on the critical path — the SDK talks directly to myagentinbox.com/mcp.
@myagentinbox.com address. Expires in 24 h.Here's the typical loop your agent will run, narrated for clarity:
create_inbox → receive a7k2m9x4bp@myagentinbox.com.check_inbox. If empty, wait and retry — most providers send within 30 seconds.read_message with its id. Extract the code or magic link from the body.That's the whole setup. If something doesn't work, the landing page has a one-click "create inbox" button you can use to confirm the service is reachable from your network before debugging the MCP layer.
Questions or feedback: hello@myagentinbox.com.