Search DevTools

Jump to any tool or page

Postfleet

Give an AI agent its own email address: send, reply, read, and wait for mail.

Thestral120 stars0 forksAI & Agents
View source

Install

Terminal

$npx -y @postfleet/mcp

mcp_config.json

{
  "mcpServers": {
    "ai-postfleet-postfleet": {
      "env": {
        "POSTFLEET_API_KEY": "${POSTFLEET_API_KEY}",
        "POSTFLEET_API_URL": "${POSTFLEET_API_URL}"
      },
      "args": [
        "-y",
        "@postfleet/mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

Postfleet MCP

Give an AI agent its own email address. Postfleet is email infrastructure for agents — inbound is parsed, classified, extracted to your schema, and screened for prompt injection before your agent reads a word.

This repo holds the server source and its plugin manifests. It is a mirror — the code is developed in the Postfleet application repo and published to npm as @postfleet/mcp; open issues here, send patches here, and they land upstream. The server ships two ways:

Hosted (no install)https://api.postfleet.ai/api/mcp, streamable HTTP, Authorization: Bearer pf_...
Local (stdio)@postfleet/mcp via npx

Get a pf_ API key at postfleet.ai.

Tools

list_mailboxes, create_mailbox, list_domains, create_domain, verify_domain, send_email, reply_email, list_inbox, read_email, wait_for_email — plus the draft lifecycle (create_draft, list_drafts, get_draft, update_draft, send_draft, delete_draft) for flows where a human approves before mail goes out. A send that lands in that gate returns 202 pending_approval, which is not a failure.

Every tool is thin-over-REST — it calls the same /api/v1/ endpoints your key already reaches (OpenAPI), so auth, scoping, and quotas are enforced once.

Install

Cursor marketplace plugin

The manifests in this repo (mcp.json, .cursor-plugin/plugin.json) declare headers.Authorization = Bearer ${POSTFLEET_API_KEY} for the hosted server and the same variable for local npx @postfleet/mcp. Installing the plugin should prompt for that key and attach it as a real Bearer header — a raw URL add without the header will 401 on initialize until a key is supplied or the hosted connect card finishes OAuth.

Cursor (manual)

{
  "mcpServers": {
    "postfleet": {
      "url": "https://api.postfleet.ai/api/mcp",
      "headers": { "Authorization": "Bearer pf_your_key_here" }
    }
  }
}

Local stdio (npx -y @postfleet/mcp)

npx -y @postfleet/mcp

Any MCP client that speaks stdio can run that command with POSTFLEET_API_KEY set:

{
  "mcpServers": {
    "postfleet": {
      "command": "npx",
      "args": ["-y", "@postfleet/mcp"],
      "env": { "POSTFLEET_API_KEY": "pf_your_key_here" }
    }
  }
}

Claude Code

claude mcp add postfleet --env POSTFLEET_API_KEY=pf_your_key_here -- npx -y @postfleet/mcp

POSTFLEET_API_URL (default https://api.postfleet.ai) overrides the API origin for staging or self-hosted deployments.

Keys

Keys are scoped — bootstrap can only create mailboxes, api covers mail operations, mcp is the one to hand a client. Use a separate key per workload so you can revoke one without breaking the rest. Never commit a key; the manifests in this repo deliberately contain none.

Links

Build from source

npm install && npm run build   # tsup → dist/

MIT licensed.

Sourced from the repository README.

More in AI & Agents