{
  "data": {
    "a": {
      "slug": "clawpost",
      "name": "Clawpost",
      "vendor": "Frank Harris",
      "vendorUrl": "https://github.com/hirefrank/clawpost",
      "kind": "mcp",
      "category": "agent-inboxes",
      "summary": "Clawpost is an open-source Cloudflare Worker you deploy yourself to give an AI agent its own email address, with an MCP server, a REST API and a CLI for sending, receiving, searching, drafts and sender approval.",
      "url": "https://www.anchorterminal.com/tools/clawpost",
      "markdownUrl": "https://www.anchorterminal.com/tools/clawpost.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/clawpost.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/clawpost.json",
      "dns": "clawpost.grade.anchorterminal.com",
      "repo": "https://github.com/hirefrank/clawpost",
      "license": "MIT",
      "transports": [
        "streamable-http",
        "http"
      ],
      "packages": [],
      "auth": "api-key",
      "authNotes": "One shared secret, `CLAWPOST_API_KEY`, set as a Worker secret and sent as `Authorization: Bearer` to both the REST API and the MCP endpoint, compared in constant time. No scopes, users or per-client keys. Inbox and alias management also needs a Cloudflare API token on the Worker.",
      "pricing": "free",
      "pricingNotes": "Free, MIT-licensed software. Running it needs the Cloudflare Workers Paid plan ($5 a month) for Durable Objects and outbound Email Service; the README puts a typical agent at about $5 a month. Resend can be used for outbound instead.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the source or README (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 21,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://github.com/hirefrank/clawpost#readme",
      "capabilities": [
        "email.inbox",
        "email.send",
        "email.inbound",
        "email.threads",
        "email.domains"
      ],
      "tags": [
        "self-hosted",
        "open-source",
        "mcp",
        "remote-mcp",
        "api-key",
        "cloudflare",
        "webhooks",
        "approvals",
        "typescript",
        "cli",
        "pre-1.0"
      ],
      "lastRelease": "2026-04-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 36.8,
        "grade": "F",
        "agentReady": false,
        "rank": 1361,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 12,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 53,
          "maintenance": 2,
          "payments": 60,
          "reliability": 8,
          "schema": 54,
          "security": 42,
          "transparency": 32
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "A small self-hosted agent inbox whose sender-approval gate keeps unknown senders' mail away from the agent by default, with drafts for human review. It is one developer's project, unchanged since 1 April 2026, with one all-powerful key, no releases, tests or CI.",
        "bestFor": "A developer who wants an agent inbox on their own domain and Cloudflare account with a default approval gate.",
        "strengths": [
          "Mail from unapproved senders is stored but hidden from every query tool until a sender is approved",
          "Drafts let a person review mail before an agent's message goes out",
          "Self-hosted on the deployer's own Cloudflare account, so mail stays in their D1 and R2",
          "21 MCP tools with typed zod inputs, plus a REST API and a CLI with `--json` output",
          "Free software; running costs are the Cloudflare Workers Paid plan at $5 a month"
        ],
        "weaknesses": [
          "One shared API key grants every REST and MCP operation; no scopes or read-only key",
          "No commits since 1 April 2026, no tags or releases, no CI and no tests",
          "No idempotency on sends and no MCP tool annotations",
          "Tool descriptions are one line, such as `Send an email`, with no when-not-to-use guidance",
          "README says MIT but no LICENSE file is in the repository"
        ],
        "agentNotes": [
          "Expect unknown senders' mail to be invisible until `approve_sender` runs; check `list_pending` for metadata first",
          "Use `create_draft` instead of `send_email` when a person should review the message",
          "Send to one address per call or comma-separate recipients in `to`; a retried send isn't deduplicated",
          "Treat the deployer's Worker URL and `CLAWPOST_API_KEY` as full access to the mailbox"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 36.8
          }
        ],
        "editorialScores": {
          "ergonomics": 53,
          "maintenance": 2,
          "payments": 60,
          "reliability": 8,
          "schema": 54,
          "security": 42,
          "transparency": 50
        },
        "provenanceScore": 13,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "git clone https://github.com/hirefrank/clawpost \u0026\u0026 cd clawpost \u0026\u0026 bun install \u0026\u0026 bun run db:migrate \u0026\u0026 bun run deploy",
        "config": {
          "mcpServers": {
            "clawpost": {
              "headers": {
                "Authorization": "Bearer YOUR_CLAWPOST_API_KEY"
              },
              "type": "streamable-http",
              "url": "https://\u003cyour-worker\u003e.workers.dev/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/email.inbox",
        "tool": "https://letme.dev/clawpost"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "",
        "domain": "github.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "A personal repository under the GitHub account hirefrank; every commit but one merged pull request is by Frank Harris. No company, terms or privacy policy, as expected for self-hosted software.",
          "The README's licence section says MIT and SKILL.md declares MIT, but no LICENSE file is committed.",
          "The endpoint is whatever Worker URL the deployer chooses, usually on workers.dev.",
          "GitHub's API refused our requests for its rate limit on 6 November 2026, so stars and open issues weren't read; the code and history come from a shallow clone."
        ],
        "score": 13
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/clawpost.json",
      "live": {
        "slug": "clawpost",
        "githubStars": 6,
        "securityTxt": {
          "url": "https://github.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2026-12-07T16:01:24z",
          "checkedAt": "2026-11-07T16:01:24.824706262Z"
        },
        "updatedAt": "2026-11-07T16:01:24.824706262Z"
      }
    },
    "answer": "Postfleet scores 57.4 (C) on agent readiness against Clawpost's 36.8 (F), and leads in 6 of 7 scored categories. Clawpost leads on payments \u0026 pricing.",
    "b": {
      "slug": "postfleet",
      "name": "Postfleet",
      "vendor": "Postfleet",
      "vendorUrl": "https://postfleet.ai",
      "kind": "http-api",
      "category": "agent-inboxes",
      "summary": "Postfleet gives AI agents their own email mailboxes over a REST API, webhooks and an MCP server. Inbound mail is sanitised, screened for prompt injection and can be extracted to a JSON schema before the agent reads it.",
      "url": "https://www.anchorterminal.com/tools/postfleet",
      "markdownUrl": "https://www.anchorterminal.com/tools/postfleet.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/postfleet.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/postfleet.json",
      "dns": "postfleet.grade.anchorterminal.com",
      "repo": "https://github.com/Thestral12/postfleet-mcp",
      "license": "Proprietary hosted service under Postfleet's terms (effective 6 October 2026), which name no company or governing law. The MCP server package @postfleet/mcp and the TypeScript SDK postfleet are MIT on npm; the GitHub repository is a mirror of the MCP server only",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.postfleet.ai/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@postfleet/mcp"
        },
        {
          "registry": "npm",
          "name": "postfleet"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer `pf_` keys, created and revoked by a person in the dashboard and stored as SHA-256 hashes. Each key has one scope (`bootstrap` creates mailboxes only, `api` and `mcp` work the data plane), may be bound to one mailbox, and carries `can_read` and `can_send` flags, both true unless set false. Send lists, approval settings, webhooks and keys are dashboard-only. The MCP endpoint takes the same key in the `Authorization` header; its OAuth metadata (authorisation code with PKCE S256, dynamic registration) ends with the authorise page attaching an existing `pf_` key as the token (https://postfleet.ai/docs/auth, https://postfleet.ai/docs/mcp).",
      "pricing": "freemium",
      "pricingNotes": "Free is $0 with no card, 100 comprehended messages a month (model injection scan plus schema extraction), 3 mailboxes, 3,000 sends a month and at most 100 a day. Starter $7 a month (250 comprehended, 5 mailboxes, 5,000 sends), Pro $20 (1,500, 10 mailboxes, 10,000 sends, custom domains), Scale $200 (25,000 or more, 150 mailboxes, 150,000 sends). Sanitisation and the deterministic injection check are unmetered on every plan; past the monthly limit the model scan and extraction pause (https://postfleet.ai/pricing).",
      "priceSummary": "$7 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, llms-full.txt or the OpenAPI file. Plans are bought from the dashboard, and over-quota sends answer 402 with `monthly_send_limit`, a quota error rather than a payment challenge (checked 2026-10-27).",
        "endpoints": []
      },
      "toolCount": 16,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-27"
      },
      "docsUrl": "https://postfleet.ai/docs",
      "llmsTxt": "https://postfleet.ai/llms.txt",
      "openapi": "https://postfleet.ai/openapi.json",
      "registryName": "ai.postfleet/postfleet",
      "capabilities": [
        "email.inbox",
        "email.inbound",
        "email.send",
        "email.threads",
        "email.domains",
        "guard.injection"
      ],
      "tags": [
        "official",
        "hosted",
        "closed-source",
        "freemium",
        "free-tier",
        "no-card",
        "api-key",
        "mcp",
        "mcp-registry",
        "llms-txt",
        "openapi",
        "webhooks",
        "typescript",
        "idempotency",
        "approvals",
        "no-status-page",
        "new"
      ],
      "lastRelease": "2026-09-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.4,
        "grade": "C",
        "agentReady": false,
        "rank": 792,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 75,
          "payments": 30,
          "reliability": 35,
          "schema": 83,
          "security": 68,
          "transparency": 34
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "Agent mailboxes over REST, webhooks and a 16-tool MCP server, with mailbox-bound keys, required idempotency keys on MCP sends, server-side approval and documented screening that keeps raw mail out of MCP reads. The screening is the vendor's claim, untested by us. Under four months old, it names no operator and has no status page, changelog or security contact.",
        "bestFor": "A developer whose agent reads mail from strangers and should only see screened text, with server-side approval before sends.",
        "strengths": [
          "Keys can be bound to one mailbox and stripped of `can_send`, and an agent's key can't change send lists, approvals or webhooks",
          "MCP sends require a `client_id`, with a published replay table for every retry outcome",
          "Server-enforced approval returns 202 `pending_approval` and binds the person's approval to the text they saw",
          "MCP reads never return the pre-sanitisation body, and every message carries SPF, DKIM and DMARC verdicts",
          "Free plan with no card, 3 mailboxes, 3,000 sends and 100 model-screened messages a month"
        ],
        "weaknesses": [
          "No operator, address or governing law named in the terms or privacy policy",
          "No status page, changelog, SLA, security.txt or disclosure policy found",
          "Message listing has only a `limit` of up to 100, with no cursor, date filter or search",
          "Single recipient and plain text only on sends, and `message.received` is the only webhook event",
          "The injection catch rate is measured by the vendor on a private corpus and wasn't tested by us"
        ],
        "agentNotes": [
          "Check `comprehension.status` before acting; `skipped_injection_risk` mail still arrives as cleaned text and must be handled as untrusted data.",
          "Treat a 202 `pending_approval` from `send_email`, `reply_email` or `send_draft` as success and never retry it; follow up with `list_drafts`.",
          "Reuse the same `client_id` when retrying a send, and use a new one after a terminal 402, 403 hold or permanent 400.",
          "Call `list_mailboxes` before `create_mailbox`; each create makes another mailbox and retries are not idempotent.",
          "Give a reading agent a mailbox-bound key with `can_send` false, and keep the account-wide key outside the worker."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.4
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 75,
          "payments": 30,
          "reliability": 35,
          "schema": 83,
          "security": 68,
          "transparency": 36
        },
        "provenanceScore": 31,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-10-30",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install postfleet",
        "http": "curl -sS https://api.postfleet.ai/api/v1/comprehend -H \"Authorization: Bearer pf_...\" -H \"Content-Type: application/json\" -d '{\"subject\":\"Re: Invoice #1844\",\"text\":\"Thanks for the update, looks good.\"}'",
        "claudeCode": "claude mcp add --transport http postfleet https://api.postfleet.ai/api/mcp --header \"Authorization: Bearer $POSTFLEET_KEY\"",
        "config": {
          "mcpServers": {
            "postfleet": {
              "headers": {
                "Authorization": "Bearer pf_..."
              },
              "url": "https://api.postfleet.ai/api/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/email.inbox",
        "tool": "https://letme.dev/postfleet"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 7,
          "note": "250 comprehended messages, 5 mailboxes, 5,000 sends a month"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 20,
          "note": "1,500 comprehended messages, 10 mailboxes, 10,000 sends a month, custom domains"
        },
        {
          "item": "Scale plan",
          "unit": "month",
          "usd": 200,
          "note": "25,000 or more comprehended messages, 150 mailboxes, 150,000 sends a month, multiple custom domains"
        }
      ],
      "provenance": {
        "legalEntity": "",
        "domain": "postfleet.ai",
        "domainRegistered": "2026-07-04",
        "domainNote": "RDAP gives a registration date of 2026-07-04 through Cloudflare, Inc., with the registrant redacted apart from the country, US. No page on postfleet.ai names a company.",
        "endpointOnVendorDomain": true,
        "terms": "https://postfleet.ai/terms",
        "privacy": "https://postfleet.ai/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-27",
        "notes": [
          "The terms (effective 6 October 2026) name no company, address or governing law, cap liability at one month's fees and let the operator change them by updating the page. The privacy policy has the same date and also names no controller.",
          "The MCP registry namespace `ai.postfleet` shows the publisher controls postfleet.ai. The npm packages and the GitHub mirror belong to the account `thestral12` (GitHub `Thestral12`); nothing public ties that account to a named company.",
          "postfleet.ai/.well-known/security.txt and /security.txt answer 404, and api.postfleet.ai/.well-known/security.txt redirects to the same 404. /status and /changelog answer 404 and status.postfleet.ai doesn't resolve.",
          "The site answers with a Vercel server header. The privacy policy says the processors are named only in a DPA available on request within 60 days."
        ],
        "score": 31
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/postfleet.json",
      "live": {
        "slug": "postfleet",
        "probe": {
          "target": "https://api.postfleet.ai/api/v1",
          "method": "get",
          "lastAt": "2026-11-07T18:20:47.941394502Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 1037,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 824,
          "p95ms24h": 1045,
          "samples24h": 239,
          "samples30d": 2697,
          "days": [
            {
              "date": "2026-10-27",
              "probes": 92,
              "ok": 92
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "ai.postfleet/postfleet",
            "version": "0.1.4",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@postfleet/mcp",
            "version": "0.1.4",
            "seenAt": "2026-11-06T23:57:29.009520715Z"
          },
          {
            "registry": "npm",
            "name": "postfleet",
            "version": "0.1.0",
            "seenAt": "2026-11-06T23:57:30.071544245Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 82,
        "securityTxt": {
          "url": "https://postfleet.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:48.904412132Z"
        },
        "llmsTxt": {
          "url": "https://postfleet.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:40.032550785Z"
        },
        "domain": {
          "domain": "postfleet.ai",
          "registered": "2026-07-04",
          "source": "https://rdap.identitydigital.services/rdap/domain/postfleet.ai",
          "checkedAt": "2026-11-01T14:12:18.65891293Z"
        },
        "pages": [
          {
            "url": "https://postfleet.ai/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:17:07.181008561Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f11778d63cf2"
          },
          {
            "url": "https://postfleet.ai/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:17:09.485894141Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "01b149959eb0"
          },
          {
            "url": "https://postfleet.ai/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:17:11.272622993Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2a42705792a2"
          }
        ],
        "mcpTools": {
          "url": "https://api.postfleet.ai/api/mcp",
          "checkedAt": "2026-11-07T01:46:53.779782792Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-10-01T22:01:26.362748198Z"
        },
        "github": {
          "repo": "thestral12/postfleet-mcp",
          "checkedAt": "2026-11-02T08:23:59.972416794Z",
          "stars": 0,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-09-28T03:45:33Z",
          "openIssues": 2,
          "openPRs": 0,
          "issuesOpened90d": 2,
          "issuesClosed90d": 0,
          "prsMerged90d": 3,
          "replies": {
            "sampled": 2,
            "unanswered": 2
          }
        },
        "updatedAt": "2026-11-07T18:20:47.941394502Z"
      }
    },
    "edges": [
      {
        "by": 73,
        "category": "maintenance",
        "leads": "postfleet",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "The last commit was on 1 April 2026, 219 days before this check (0). No releases or commits in the 90 days from 8 August (0). Issue and pull request activity couldn't be read through GitHub's API that day (0, unchecked). Not in the official MCP registry and no published package (0). Dependencies such as `agents` ^0.0.74 and the MCP SDK ^1.12.1 date from early 2026, and there's no CI (2 of 10). Total 2.",
          "b": "Read for a closed service. The security page's record of 25 October 2026 says the scan moved to claude-haiku-5-5, a model released on 7 October, and the sending docs were updated on 13 October with account-wide sending holds (30, 10 days before 4 November). Dated changes in the 90 days to 4 November include @postfleet/mcp 0.1.2 and 0.1.3 on 24 August and 0.1.4 on 2 September, the SDK 0.1.0 on 8 September, docs updates on 12 and 18 September and 13 October, and the terms of 6 October (20). No public changelog (/changelog still 404) or issue activity we could read. The GitHub mirror's last commits, on 19 and 27 September, carry no version or tag and don't count as releases; GitHub pages beyond the repository front page were refused to our reader. Support is by email to a mailbox the site says an agent reads, untested (5 of 15). Listed in the official MCP registry as `ai.postfleet/postfleet`, a domain-verified namespace (15). The MCP package has two current dependencies (`@modelcontextprotocol/sdk` ^1.26.0, `zod` ^4.4.3) and a publish workflow with npm trusted publishing, but no tests or CI build, and 0.1.4 was published by hand without provenance (5 of 10)."
        },
        "scores": {
          "a": 2,
          "b": 75
        }
      },
      {
        "by": 30,
        "category": "payments",
        "leads": "clawpost",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Free self-hosted software with nothing to buy from the author, which the rubric scores 20 + 20 + 20. Running it needs the deployer's own Cloudflare Workers Paid plan at $5 a month, which isn't Clawpost's charge. No payment protocol (0 of 40). Total 60.",
          "b": "No x402, MPP or L402 in the docs or the OpenAPI file (0 of 40). Four plans with public prices and limits, but no per-message metered price (10). Free has no card, with 100 comprehended messages, 3 mailboxes and 3,000 sends a month (20). A person has to sign up and create keys in the dashboard. The homepage says the agent provisions its own address with no account page, which is true of mailboxes once a key exists, but not of the key. The demo inbox needs no signup but is a demo under /api/demo, not API access (0 of 20)."
        },
        "scores": {
          "a": 60,
          "b": 30
        }
      },
      {
        "by": 29,
        "category": "schema",
        "leads": "postfleet",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "All 21 MCP tools take typed zod inputs, which the MCP SDK publishes as JSON Schema (25). SKILL.md and AGENTS.md give agent-readable setup in Markdown; no llms.txt (5 of 10). Descriptions are one line each, such as `Send an email`, with parameter descriptions but no when-not-to-use (8 of 20). Inputs are typed with defaults for limit and offset, but recipients are a comma-separated string and direction isn't an enum in the schema read (9 of 15). The README has request examples and a REST route table; error responses aren't documented (7 of 15). No versioning or changelog (0). Total 54.",
          "b": "OpenAPI 3.1 at postfleet.ai/openapi.json with 10 paths and 15 operations, closed request and response schemas, enums for statuses and authentication verdicts and a typed schema per error code. `comprehension` and `attachments` on a message are open objects, and the `servers` entry is a relative path with an example origin (22 of 25). llms.txt, llms-full.txt and every docs page as Markdown at /docs/\u003cslug\u003e/raw (10). The 16 MCP tool descriptions in the published package say when to use each, when to use another tool instead and what not to retry, and the docs pages each end with a current limitations section (18 of 20). Inputs are typed with UUID and email formats, length limits, a `client_id` pattern and bounded `limit` and `timeout_seconds`; a few strings are free text (13 of 15). curl, TypeScript and Node examples, a replay table and named error codes with their status (`key_scope`, `send_blocked_by_list`, `idempotency_conflict`, `sending_held`, `delivery_outcome_unknown`) (15). The API is at /api/v1 and docs pages carry `updatedAt` dates, but there's no changelog; /changelog answers 404 (5 of 15). Most curl examples in the docs point at https://your-app.example.com rather than api.postfleet.ai."
        },
        "scores": {
          "a": 54,
          "b": 83
        }
      },
      {
        "by": 27,
        "category": "reliability",
        "leads": "postfleet",
        "name": "Reliability",
        "reasons": {
          "a": "Graded with the lines for self-hosted software, since each deployer runs their own Worker. No published package; it deploys from the repository with a Deploy to Cloudflare button, Bun and Wrangler, and states the Cloudflare products it needs (8 of 20). No CI workflow or test suite in the repository (0). Open issues couldn't be read, because GitHub's API refused our requests for its rate limit, so the line scores absent (0, unchecked). No tags, releases or changelog; package.json says 0.1.0 (0). Pre-1.0 (0). Total 8.",
          "b": "Graded with the hosted lines, on the REST API with the MCP server noted. No status page found. /status still answered 404 on 4 November and none is linked (0). No readable incident history (5). Sending limits are published with numbers (holds at 20 attempts a minute and 100 an hour, Free at 100 sends a day and 3,000 a month, monthly quotas per plan), but read limits aren't, Free's new-recipient limit has no number and the comprehend route's hourly cap is unstated (10 of 15). Sends take a `client_id` with a full replay table, errors carry `retryable`, and the docs say which outcomes to retry with the same key and which need a new one. API 429s document no `Retry-After` or reset time (10 of 15). No SLA found on any plan (0). Nothing on the site calls the API or MCP server beta or preview, though both packages are 0.x (10)."
        },
        "scores": {
          "a": 8,
          "b": 35
        }
      },
      {
        "by": 26,
        "category": "security",
        "leads": "postfleet",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "One shared secret for REST and MCP, compared in constant time, with no scopes, expiry or per-client keys (10 of 30). Sender approval, drafts, and an optional allowlist of domains for routing changes limit what an agent can see and change; the key can still send to anyone (14 of 20). Mail from unapproved senders is hidden from all query tools by default, and `list_pending` returns metadata without bodies, documented as a prompt-injection guard (15). No log of API or tool calls beyond the stored messages (3 of 15). No security policy, advisories or disclosure route for this personal project (0). Total 42.",
          "b": "Bearer `pf_` keys stored hashed, each with one scope (`bootstrap`, `api` or `mcp`), optional binding to one mailbox and `can_read` and `can_send` flags, revocable in the dashboard and sent in the header only. No rotation flow is described beyond issuing a new key, and the MCP OAuth flow attaches an existing key rather than issuing a scoped token (25 of 30). A key can be read-only and bound to one mailbox, cross-scope IDs return 404, send lists and approval settings are dashboard-only, and `require_approval` holds sends for a person who approves a hash of the exact text (20). For the prompt-injection check the docs set out sanitisation with a removal report, a deterministic pre-scan and a model scan that fails closed, SPF, DKIM and DMARC verdicts on every message, and MCP reads without the raw body. We haven't tested any of it, and the 99.1% catch rate is the vendor's claim on a private corpus. REST message reads still include `body_raw` for seven days, and flagged mail reaches the agent as cleaned text with a flag (14 of 15). Approvals and rejections are audited, draft create, edit and delete aren't (the docs say so), and no per-call log was found (6 of 15). No security.txt on postfleet.ai (404 on 4 November) or api.postfleet.ai, no disclosure policy or bug bounty, and the privacy policy says it doesn't claim SOC 2. The published red-team record and npm trusted publishing on two of five package versions earn a little (3 of 20)."
        },
        "scores": {
          "a": 42,
          "b": 68
        }
      },
      {
        "by": 19,
        "category": "ergonomics",
        "leads": "postfleet",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "21 tools, the 11 to 30 band (15 of 25). List and search tools take limit, offset and filters by direction, sender, label and archive state (20). Error shapes aren't documented; the code returns JSON errors (8 of 20). No idempotency key for sends and no readOnlyHint or destructiveHint annotations; drafts give a review step (3 of 20). Archived mail is excluded by default and the CLI has a `--json` mode, but there's no SDK beyond the CLI (7 of 15). Total 53.",
          "b": "Graded on the REST API and the MCP server together. Sixteen MCP tools with descriptions of two to four sentences, and no toolsets or dynamic loading; the vendor's tutorials show client-side allowlists of three read tools. Message lists return metadata and comprehension status without bodies (17 of 25). Listing takes only `limit` (1 to 100), with no cursor, date filter, thread filter or search; `wait_for_email` filters by sender and subject substrings (8 of 20). Errors carry a stable `code`, `retryable` and, on MCP, a recovery hint per code and status (19 of 20). `client_id` is required on MCP sends and optional on REST, replays are specified per state, and every tool carries readOnly, destructive and idempotent annotations in the package source (20). Few required fields; one official SDK, TypeScript 0.1.0, and no Python SDK, which the vendor confirms (8 of 15)."
        },
        "scores": {
          "a": 53,
          "b": 72
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Frank Harris",
        "b": "Postfleet",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.postfleet.ai/api/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP, HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary hosted service under Postfleet's terms (effective 6 October 2026), which name no company or governing law. The MCP server package @postfleet/mcp and the TypeScript SDK postfleet are MIT on npm; the GitHub repository is a mirror of the MCP server only",
        "name": "Licence"
      },
      {
        "a": "21",
        "b": "16",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "ai.postfleet/postfleet",
        "name": "MCP registry"
      },
      {
        "a": "2026-04-01",
        "b": "2026-09-08",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-10-06",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-10-06",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "0 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Postfleet scores 57.4 (C) on agent readiness against Clawpost's 36.8 (F), and leads in 6 of 7 scored categories. Clawpost leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Clawpost or Postfleet?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Clawpost and Postfleet need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Clawpost. Postfleet has a hosted endpoint at https://api.postfleet.ai/api/v1.",
        "question": "Can an agent call Clawpost and Postfleet without installing anything?"
      },
      {
        "answer": "Clawpost is open source (MIT). No open-source release is listed for Postfleet.",
        "question": "Are Clawpost and Postfleet open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 60 against 30"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "A developer who wants an agent inbox on their own domain and Cloudflare account with a default approval gate.",
        "slug": "clawpost",
        "watchFor": "One shared API key grants every REST and MCP operation; no scopes or read-only key"
      },
      {
        "aheadOn": [
          "Reliability, 35 against 8",
          "Schema \u0026 documentation, 83 against 54",
          "Agent ergonomics, 72 against 53",
          "Security \u0026 auth, 68 against 42",
          "Maintenance \u0026 community, 75 against 2"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "A developer whose agent reads mail from strangers and should only see screened text, with server-side approval before sends.",
        "slug": "postfleet",
        "watchFor": "No operator, address or governing law named in the terms or privacy policy"
      }
    ],
    "history": {
      "clawpost": null,
      "postfleet": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-30",
          "delta": -0.2,
          "from": 57.6,
          "fromGrade": "C",
          "to": 57.4,
          "toGrade": "C"
        },
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-27",
          "delta": 0,
          "from": 57.6,
          "fromGrade": "C",
          "to": 57.6,
          "toGrade": "C"
        }
      ]
    },
    "job": {
      "capability": "email.inbox",
      "name": "Agent inboxes"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentmail-vs-clawpost.json",
        "title": "AgentMail API + MCP vs Clawpost",
        "url": "https://www.anchorterminal.com/compare/agentmail-vs-clawpost"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentmail-vs-postfleet.json",
        "title": "AgentMail API + MCP vs Postfleet",
        "url": "https://www.anchorterminal.com/compare/agentmail-vs-postfleet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cherami-vs-clawpost.json",
        "title": "Cherami vs Clawpost",
        "url": "https://www.anchorterminal.com/compare/cherami-vs-clawpost"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cherami-vs-postfleet.json",
        "title": "Cherami vs Postfleet",
        "url": "https://www.anchorterminal.com/compare/cherami-vs-postfleet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawpost-vs-hostinger-agentic-mail.json",
        "title": "Clawpost vs Hostinger Agentic Mail",
        "url": "https://www.anchorterminal.com/compare/clawpost-vs-hostinger-agentic-mail"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawpost-vs-inbound.json",
        "title": "Clawpost vs Inbound",
        "url": "https://www.anchorterminal.com/compare/clawpost-vs-inbound"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawpost-vs-inboxapi.json",
        "title": "Clawpost vs InboxAPI",
        "url": "https://www.anchorterminal.com/compare/clawpost-vs-inboxapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawpost-vs-lumbox.json",
        "title": "Clawpost vs Lumbox",
        "url": "https://www.anchorterminal.com/compare/clawpost-vs-lumbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawpost-vs-mailows.json",
        "title": "Clawpost vs Mailows",
        "url": "https://www.anchorterminal.com/compare/clawpost-vs-mailows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawpost-vs-mails-ai.json",
        "title": "Clawpost vs mails.ai Agent Email",
        "url": "https://www.anchorterminal.com/compare/clawpost-vs-mails-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawpost-vs-mailslurp.json",
        "title": "Clawpost vs MailSlurp",
        "url": "https://www.anchorterminal.com/compare/clawpost-vs-mailslurp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawpost-vs-robotomail.json",
        "title": "Clawpost vs Robotomail",
        "url": "https://www.anchorterminal.com/compare/clawpost-vs-robotomail"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hostinger-agentic-mail-vs-postfleet.json",
        "title": "Hostinger Agentic Mail vs Postfleet",
        "url": "https://www.anchorterminal.com/compare/hostinger-agentic-mail-vs-postfleet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/inbound-vs-postfleet.json",
        "title": "Inbound vs Postfleet",
        "url": "https://www.anchorterminal.com/compare/inbound-vs-postfleet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/inboxapi-vs-postfleet.json",
        "title": "InboxAPI vs Postfleet",
        "url": "https://www.anchorterminal.com/compare/inboxapi-vs-postfleet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lumbox-vs-postfleet.json",
        "title": "Lumbox vs Postfleet",
        "url": "https://www.anchorterminal.com/compare/lumbox-vs-postfleet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mailows-vs-postfleet.json",
        "title": "Mailows vs Postfleet",
        "url": "https://www.anchorterminal.com/compare/mailows-vs-postfleet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mails-ai-vs-postfleet.json",
        "title": "mails.ai Agent Email vs Postfleet",
        "url": "https://www.anchorterminal.com/compare/mails-ai-vs-postfleet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mailslurp-vs-postfleet.json",
        "title": "MailSlurp vs Postfleet",
        "url": "https://www.anchorterminal.com/compare/mailslurp-vs-postfleet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postfleet-vs-robotomail.json",
        "title": "Postfleet vs Robotomail",
        "url": "https://www.anchorterminal.com/compare/postfleet-vs-robotomail"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 27,
        "clawpost": 8,
        "edge": "postfleet",
        "key": "reliability",
        "name": "Reliability",
        "postfleet": 35,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 29,
        "clawpost": 54,
        "edge": "postfleet",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "postfleet": 83,
        "weight": 13
      },
      {
        "by": 19,
        "clawpost": 53,
        "edge": "postfleet",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "postfleet": 72,
        "weight": 13
      },
      {
        "by": 26,
        "clawpost": 42,
        "edge": "postfleet",
        "key": "security",
        "name": "Security \u0026 auth",
        "postfleet": 68,
        "weight": 14
      },
      {
        "by": 30,
        "clawpost": 60,
        "edge": "clawpost",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "postfleet": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 73,
        "clawpost": 2,
        "edge": "postfleet",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "postfleet": 75,
        "weight": 7
      },
      {
        "by": 2,
        "clawpost": 32,
        "edge": "postfleet",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "postfleet": 34,
        "weight": 7
      }
    ],
    "summary": "Postfleet scores 57.4 (C) on agent readiness against Clawpost's 36.8 (F), and leads in 6 of 7 scored categories. Clawpost leads on payments \u0026 pricing. Both do agent inboxes.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "clawpost": "A small self-hosted agent inbox whose sender-approval gate keeps unknown senders' mail away from the agent by default, with drafts for human review. It is one developer's project, unchanged since 1 April 2026, with one all-powerful key, no releases, tests or CI.",
      "postfleet": "Agent mailboxes over REST, webhooks and a 16-tool MCP server, with mailbox-bound keys, required idempotency keys on MCP sends, server-side approval and documented screening that keeps raw mail out of MCP reads. The screening is the vendor's claim, untested by us. Under four months old, it names no operator and has no status page, changelog or security contact."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/clawpost-vs-postfleet",
    "json": "https://www.anchorterminal.com/compare/clawpost-vs-postfleet.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/clawpost-vs-postfleet.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/clawpost-vs-postfleet.min.md"
  },
  "markdown": "Postfleet scores 57.4 (C) on agent readiness against Clawpost's 36.8 (F), and leads in 6 of 7 scored categories. Clawpost leads on payments \u0026 pricing. Both do agent inboxes.\n\n- Clawpost: grade F, 36.8/100, rank #1361 of 1486. Markdown https://www.anchorterminal.com/tools/clawpost.md · JSON https://www.anchorterminal.com/api/v1/tools/clawpost.json\n- Postfleet: grade C, 57.4/100, rank #792 of 1486. Markdown https://www.anchorterminal.com/tools/postfleet.md · JSON https://www.anchorterminal.com/api/v1/tools/postfleet.json\n- Best email inbox APIs for AI agents: https://www.anchorterminal.com/best/agent-inboxes/index.md\n- All 66 inboxes comparisons: https://www.anchorterminal.com/compare/agent-inboxes/index.md\n\n## Which one, for what\n\n### Clawpost (F)\n\nGood for: A developer who wants an agent inbox on their own domain and Cloudflare account with a default approval gate.\n\nAhead on:\n- Payments \u0026 pricing, 60 against 30\n\nAlso in its favour:\n- Open source\n\nWatch for: One shared API key grants every REST and MCP operation; no scopes or read-only key\n\n### Postfleet (C)\n\nGood for: A developer whose agent reads mail from strangers and should only see screened text, with server-side approval before sends.\n\nAhead on:\n- Reliability, 35 against 8\n- Schema \u0026 documentation, 83 against 54\n- Agent ergonomics, 72 against 53\n- Security \u0026 auth, 68 against 42\n- Maintenance \u0026 community, 75 against 2\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: No operator, address or governing law named in the terms or privacy policy\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Postfleet +73\n\n- Clawpost (2): The last commit was on 1 April 2026, 219 days before this check (0). No releases or commits in the 90 days from 8 August (0). Issue and pull request activity couldn't be read through GitHub's API that day (0, unchecked). Not in the official MCP registry and no published package (0). Dependencies such as `agents` ^0.0.74 and the MCP SDK ^1.12.1 date from early 2026, and there's no CI (2 of 10). Total 2.\n- Postfleet (75): Read for a closed service. The security page's record of 25 October 2026 says the scan moved to claude-haiku-5-5, a model released on 7 October, and the sending docs were updated on 13 October with account-wide sending holds (30, 10 days before 4 November). Dated changes in the 90 days to 4 November include @postfleet/mcp 0.1.2 and 0.1.3 on 24 August and 0.1.4 on 2 September, the SDK 0.1.0 on 8 September, docs updates on 12 and 18 September and 13 October, and the terms of 6 October (20). No public changelog (/changelog still 404) or issue activity we could read. The GitHub mirror's last commits, on 19 and 27 September, carry no version or tag and don't count as releases; GitHub pages beyond the repository front page were refused to our reader. Support is by email to a mailbox the site says an agent reads, untested (5 of 15). Listed in the official MCP registry as `ai.postfleet/postfleet`, a domain-verified namespace (15). The MCP package has two current dependencies (`@modelcontextprotocol/sdk` ^1.26.0, `zod` ^4.4.3) and a publish workflow with npm trusted publishing, but no tests or CI build, and 0.1.4 was published by hand without provenance (5 of 10).\n\n### Payments \u0026 pricing: Clawpost +30\n\n- Clawpost (60): Free self-hosted software with nothing to buy from the author, which the rubric scores 20 + 20 + 20. Running it needs the deployer's own Cloudflare Workers Paid plan at $5 a month, which isn't Clawpost's charge. No payment protocol (0 of 40). Total 60.\n- Postfleet (30): No x402, MPP or L402 in the docs or the OpenAPI file (0 of 40). Four plans with public prices and limits, but no per-message metered price (10). Free has no card, with 100 comprehended messages, 3 mailboxes and 3,000 sends a month (20). A person has to sign up and create keys in the dashboard. The homepage says the agent provisions its own address with no account page, which is true of mailboxes once a key exists, but not of the key. The demo inbox needs no signup but is a demo under /api/demo, not API access (0 of 20).\n\n### Schema \u0026 documentation: Postfleet +29\n\n- Clawpost (54): All 21 MCP tools take typed zod inputs, which the MCP SDK publishes as JSON Schema (25). SKILL.md and AGENTS.md give agent-readable setup in Markdown; no llms.txt (5 of 10). Descriptions are one line each, such as `Send an email`, with parameter descriptions but no when-not-to-use (8 of 20). Inputs are typed with defaults for limit and offset, but recipients are a comma-separated string and direction isn't an enum in the schema read (9 of 15). The README has request examples and a REST route table; error responses aren't documented (7 of 15). No versioning or changelog (0). Total 54.\n- Postfleet (83): OpenAPI 3.1 at postfleet.ai/openapi.json with 10 paths and 15 operations, closed request and response schemas, enums for statuses and authentication verdicts and a typed schema per error code. `comprehension` and `attachments` on a message are open objects, and the `servers` entry is a relative path with an example origin (22 of 25). llms.txt, llms-full.txt and every docs page as Markdown at /docs/\u003cslug\u003e/raw (10). The 16 MCP tool descriptions in the published package say when to use each, when to use another tool instead and what not to retry, and the docs pages each end with a current limitations section (18 of 20). Inputs are typed with UUID and email formats, length limits, a `client_id` pattern and bounded `limit` and `timeout_seconds`; a few strings are free text (13 of 15). curl, TypeScript and Node examples, a replay table and named error codes with their status (`key_scope`, `send_blocked_by_list`, `idempotency_conflict`, `sending_held`, `delivery_outcome_unknown`) (15). The API is at /api/v1 and docs pages carry `updatedAt` dates, but there's no changelog; /changelog answers 404 (5 of 15). Most curl examples in the docs point at https://your-app.example.com rather than api.postfleet.ai.\n\n### Reliability: Postfleet +27\n\n- Clawpost (8): Graded with the lines for self-hosted software, since each deployer runs their own Worker. No published package; it deploys from the repository with a Deploy to Cloudflare button, Bun and Wrangler, and states the Cloudflare products it needs (8 of 20). No CI workflow or test suite in the repository (0). Open issues couldn't be read, because GitHub's API refused our requests for its rate limit, so the line scores absent (0, unchecked). No tags, releases or changelog; package.json says 0.1.0 (0). Pre-1.0 (0). Total 8.\n- Postfleet (35): Graded with the hosted lines, on the REST API with the MCP server noted. No status page found. /status still answered 404 on 4 November and none is linked (0). No readable incident history (5). Sending limits are published with numbers (holds at 20 attempts a minute and 100 an hour, Free at 100 sends a day and 3,000 a month, monthly quotas per plan), but read limits aren't, Free's new-recipient limit has no number and the comprehend route's hourly cap is unstated (10 of 15). Sends take a `client_id` with a full replay table, errors carry `retryable`, and the docs say which outcomes to retry with the same key and which need a new one. API 429s document no `Retry-After` or reset time (10 of 15). No SLA found on any plan (0). Nothing on the site calls the API or MCP server beta or preview, though both packages are 0.x (10).\n\n### Security \u0026 auth: Postfleet +26\n\n- Clawpost (42): One shared secret for REST and MCP, compared in constant time, with no scopes, expiry or per-client keys (10 of 30). Sender approval, drafts, and an optional allowlist of domains for routing changes limit what an agent can see and change; the key can still send to anyone (14 of 20). Mail from unapproved senders is hidden from all query tools by default, and `list_pending` returns metadata without bodies, documented as a prompt-injection guard (15). No log of API or tool calls beyond the stored messages (3 of 15). No security policy, advisories or disclosure route for this personal project (0). Total 42.\n- Postfleet (68): Bearer `pf_` keys stored hashed, each with one scope (`bootstrap`, `api` or `mcp`), optional binding to one mailbox and `can_read` and `can_send` flags, revocable in the dashboard and sent in the header only. No rotation flow is described beyond issuing a new key, and the MCP OAuth flow attaches an existing key rather than issuing a scoped token (25 of 30). A key can be read-only and bound to one mailbox, cross-scope IDs return 404, send lists and approval settings are dashboard-only, and `require_approval` holds sends for a person who approves a hash of the exact text (20). For the prompt-injection check the docs set out sanitisation with a removal report, a deterministic pre-scan and a model scan that fails closed, SPF, DKIM and DMARC verdicts on every message, and MCP reads without the raw body. We haven't tested any of it, and the 99.1% catch rate is the vendor's claim on a private corpus. REST message reads still include `body_raw` for seven days, and flagged mail reaches the agent as cleaned text with a flag (14 of 15). Approvals and rejections are audited, draft create, edit and delete aren't (the docs say so), and no per-call log was found (6 of 15). No security.txt on postfleet.ai (404 on 4 November) or api.postfleet.ai, no disclosure policy or bug bounty, and the privacy policy says it doesn't claim SOC 2. The published red-team record and npm trusted publishing on two of five package versions earn a little (3 of 20).\n\n### Agent ergonomics: Postfleet +19\n\n- Clawpost (53): 21 tools, the 11 to 30 band (15 of 25). List and search tools take limit, offset and filters by direction, sender, label and archive state (20). Error shapes aren't documented; the code returns JSON errors (8 of 20). No idempotency key for sends and no readOnlyHint or destructiveHint annotations; drafts give a review step (3 of 20). Archived mail is excluded by default and the CLI has a `--json` mode, but there's no SDK beyond the CLI (7 of 15). Total 53.\n- Postfleet (72): Graded on the REST API and the MCP server together. Sixteen MCP tools with descriptions of two to four sentences, and no toolsets or dynamic loading; the vendor's tutorials show client-side allowlists of three read tools. Message lists return metadata and comprehension status without bodies (17 of 25). Listing takes only `limit` (1 to 100), with no cursor, date filter, thread filter or search; `wait_for_email` filters by sender and subject substrings (8 of 20). Errors carry a stable `code`, `retryable` and, on MCP, a recovery hint per code and status (19 of 20). `client_id` is required on MCP sends and optional on REST, replays are specified per state, and every tool carries readOnly, destructive and idempotent annotations in the package source (20). Few required fields; one official SDK, TypeScript 0.1.0, and no Python SDK, which the vendor confirms (8 of 15).\n\n## Score by category\n\n| Category | Weight | Clawpost | Postfleet | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 8 | 35 | Postfleet +27 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 54 | 83 | Postfleet +29 |\n| Agent ergonomics | 13% (16.2 this run) | 53 | 72 | Postfleet +19 |\n| Security \u0026 auth | 14% (17.5 this run) | 42 | 68 | Postfleet +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 30 | Clawpost +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 2 | 75 | Postfleet +73 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 32 | 34 | Postfleet +2 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **36.8 · F** | **57.4 · C** | |\n\n## Facts side by side\n\n| Fact | Clawpost | Postfleet |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | Frank Harris | Postfleet |\n| Hosted endpoint | no (local only) | `https://api.postfleet.ai/api/v1` |\n| Transports | Streamable HTTP, HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | API key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | MIT | Proprietary hosted service under Postfleet's terms (effective 6 October 2026), which name no company or governing law. The MCP server package @postfleet/mcp and the TypeScript SDK postfleet are MIT on npm; the GitHub repository is a mirror of the MCP server only |\n| Tools exposed | 21 | 16 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `ai.postfleet/postfleet` |\n| Last release | 2026-04-01 | 2026-09-08 |\n| Terms last updated | no document linked | 2026-10-06 |\n| Privacy policy last updated | no document linked | 2026-10-06 |\n| Customer content may train models | not read yet | not found in the text |\n| Terms restrict automated access | not read yet | not found in the text |\n| Terms restrict benchmarking | not read yet | not found in the text |\n| Terms or service can change without notice | not read yet | not found in the text |\n| Arbitration or class-action waiver | not read yet | not found in the text |\n| Popularity | none | 0 stars |\n\n## How the scores have moved\n\n### Clawpost\n\nNo score change since it was listed.\n\n### Postfleet\n\n- -0.2 on 30 October 2026: checklist\n- no change on 27 October 2026: new evidence\n\n## Verdicts\n\n**Clawpost.** A small self-hosted agent inbox whose sender-approval gate keeps unknown senders' mail away from the agent by default, with drafts for human review. It is one developer's project, unchanged since 1 April 2026, with one all-powerful key, no releases, tests or CI.\n\n**Postfleet.** Agent mailboxes over REST, webhooks and a 16-tool MCP server, with mailbox-bound keys, required idempotency keys on MCP sends, server-side approval and documented screening that keeps raw mail out of MCP reads. The screening is the vendor's claim, untested by us. Under four months old, it names no operator and has no status page, changelog or security contact.\n\n## Before you call either\n\n### Clawpost\n\n1. Expect unknown senders' mail to be invisible until `approve_sender` runs; check `list_pending` for metadata first\n2. Use `create_draft` instead of `send_email` when a person should review the message\n3. Send to one address per call or comma-separate recipients in `to`; a retried send isn't deduplicated\n4. Treat the deployer's Worker URL and `CLAWPOST_API_KEY` as full access to the mailbox\n\n### Postfleet\n\n1. Check `comprehension.status` before acting; `skipped_injection_risk` mail still arrives as cleaned text and must be handled as untrusted data.\n2. Treat a 202 `pending_approval` from `send_email`, `reply_email` or `send_draft` as success and never retry it; follow up with `list_drafts`.\n3. Reuse the same `client_id` when retrying a send, and use a new one after a terminal 402, 403 hold or permanent 400.\n4. Call `list_mailboxes` before `create_mailbox`; each create makes another mailbox and retries are not idempotent.\n5. Give a reading agent a mailbox-bound key with `can_send` false, and keep the account-wide key outside the worker.\n\n## Questions\n\n### Which is better for AI agents, Clawpost or Postfleet?\n\nPostfleet scores 57.4 (C) on agent readiness against Clawpost's 36.8 (F), and leads in 6 of 7 scored categories. Clawpost leads on payments \u0026 pricing.\n\n### Do Clawpost and Postfleet need an API key?\n\nBoth need an API key.\n\n### Can an agent call Clawpost and Postfleet without installing anything?\n\nNo hosted endpoint is listed for Clawpost. Postfleet has a hosted endpoint at https://api.postfleet.ai/api/v1.\n\n### Are Clawpost and Postfleet open source?\n\nClawpost is open source (MIT). No open-source release is listed for Postfleet.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/clawpost-vs-postfleet.json, and with the fewest tokens: https://www.anchorterminal.com/compare/clawpost-vs-postfleet.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"clawpost\", \"b\": \"postfleet\"}`. From a terminal: `anchor compare clawpost postfleet`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/clawpost.json and https://www.anchorterminal.com/api/v1/tools/postfleet.json\n\n## Other comparisons with Clawpost or Postfleet\n\n- [AgentMail API + MCP vs Clawpost](https://www.anchorterminal.com/compare/agentmail-vs-clawpost.md)\n- [AgentMail API + MCP vs Postfleet](https://www.anchorterminal.com/compare/agentmail-vs-postfleet.md)\n- [Cherami vs Clawpost](https://www.anchorterminal.com/compare/cherami-vs-clawpost.md)\n- [Cherami vs Postfleet](https://www.anchorterminal.com/compare/cherami-vs-postfleet.md)\n- [Clawpost vs Hostinger Agentic Mail](https://www.anchorterminal.com/compare/clawpost-vs-hostinger-agentic-mail.md)\n- [Clawpost vs Inbound](https://www.anchorterminal.com/compare/clawpost-vs-inbound.md)\n- [Clawpost vs InboxAPI](https://www.anchorterminal.com/compare/clawpost-vs-inboxapi.md)\n- [Clawpost vs Lumbox](https://www.anchorterminal.com/compare/clawpost-vs-lumbox.md)\n- [Clawpost vs Mailows](https://www.anchorterminal.com/compare/clawpost-vs-mailows.md)\n- [Clawpost vs mails.ai Agent Email](https://www.anchorterminal.com/compare/clawpost-vs-mails-ai.md)\n- [Clawpost vs MailSlurp](https://www.anchorterminal.com/compare/clawpost-vs-mailslurp.md)\n- [Clawpost vs Robotomail](https://www.anchorterminal.com/compare/clawpost-vs-robotomail.md)\n- [Hostinger Agentic Mail vs Postfleet](https://www.anchorterminal.com/compare/hostinger-agentic-mail-vs-postfleet.md)\n- [Inbound vs Postfleet](https://www.anchorterminal.com/compare/inbound-vs-postfleet.md)\n- [InboxAPI vs Postfleet](https://www.anchorterminal.com/compare/inboxapi-vs-postfleet.md)\n- [Lumbox vs Postfleet](https://www.anchorterminal.com/compare/lumbox-vs-postfleet.md)\n- [Mailows vs Postfleet](https://www.anchorterminal.com/compare/mailows-vs-postfleet.md)\n- [mails.ai Agent Email vs Postfleet](https://www.anchorterminal.com/compare/mails-ai-vs-postfleet.md)\n- [MailSlurp vs Postfleet](https://www.anchorterminal.com/compare/mailslurp-vs-postfleet.md)\n- [Postfleet vs Robotomail](https://www.anchorterminal.com/compare/postfleet-vs-robotomail.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Clawpost vs Postfleet",
        "url": ""
      }
    ],
    "description": "Postfleet scores 57.4 (C) to Clawpost's 36.8 (F) for agent inboxes. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Clawpost F 36.8",
      "Postfleet C 57.4",
      "scores"
    ],
    "h1": "Clawpost vs Postfleet",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/clawpost-vs-postfleet",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Clawpost vs Postfleet for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/clawpost-vs-postfleet"
  },
  "tokens": {
    "markdown": 4750,
    "slim": 3130
  },
  "version": 1
}
