{
  "version": "2",
  "generatedAt": "2026-11-03T22:49:39.280Z",
  "listing": {
    "slug": "hqbase--hqbase",
    "name": "HQBase",
    "tagline": "Shared team inbox that deploys into your own Cloudflare account, with an OAuth-protected MCP server.",
    "shortTagline": "Shared team inbox on Cloudflare",
    "description": "HQBase is an AGPL shared email workspace: shared mailboxes, team access controls, multi-domain, drafts, and audit history, running entirely on Cloudflare Workers, D1, R2, and Queues so mail and credentials stay in the customer's account. The Builder ships a remote MCP server with a read-only profile at /mcp and a mail-actions profile at /mcp/full covering search, threads, labels, drafts, send, reply, and forward.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "support-bookkeeping",
    "alternativeTo": [
      "Front",
      "Help Scout"
    ],
    "shape": "business-app",
    "formFactor": "web-app",
    "executionModel": "deterministic",
    "provenance": "unknown",
    "codeStack": {
      "languages": [
        "TypeScript"
      ],
      "frameworks": [
        "Cloudflare Workers",
        "Vite",
        "Better Auth"
      ],
      "packageManager": "pnpm",
      "database": [
        "Cloudflare D1",
        "Cloudflare R2"
      ],
      "hostingTarget": [
        "Cloudflare Workers (Deploy to Cloudflare button)"
      ]
    },
    "modelStack": {
      "providers": [
        "any MCP client"
      ],
      "models": [],
      "requiredKeys": [],
      "promptLocations": [],
      "tools": [
        "list_mailboxes",
        "list_labels",
        "search_messages",
        "list_conversations",
        "get_message",
        "get_thread",
        "get_attachment",
        "update_message",
        "update_conversation",
        "add_label",
        "remove_label",
        "list_drafts",
        "get_draft",
        "create_draft",
        "update_draft",
        "delete_draft",
        "add_draft_attachment",
        "remove_draft_attachment",
        "send_email",
        "reply_to_message",
        "forward_message"
      ]
    },
    "repos": [
      {
        "url": "https://github.com/HQBase/hqbase",
        "owner": "HQBase",
        "name": "hqbase",
        "license": "AGPL-3.0",
        "stars": 317,
        "lastCommit": "2026-09-01"
      }
    ],
    "interface": {
      "kind": "mcp",
      "url": "https://hqbase.io/docs/mcp/",
      "official": true,
      "hosted": "remote"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Search and read mail across shared mailboxes",
        "reachable": true,
        "evidence": "read-only profile: list_mailboxes, search_messages, list_conversations, get_message, get_thread, get_attachment"
      },
      {
        "job": "Draft replies",
        "reachable": true,
        "evidence": "/mcp/full: create_draft, update_draft, add_draft_attachment"
      },
      {
        "job": "Send, reply, and forward",
        "reachable": true,
        "evidence": "/mcp/full: send_email, reply_to_message, forward_message; docs warn repeated sends can send twice"
      },
      {
        "job": "Organize with labels and conversation state",
        "reachable": true,
        "evidence": "add_label, remove_label, update_message, update_conversation"
      },
      {
        "job": "Assign conversations to teammates",
        "reachable": null,
        "evidence": "update_conversation exists; whether it sets assignee is not stated on the MCP docs page"
      },
      {
        "job": "Manage team access to mailboxes",
        "reachable": false,
        "evidence": "access controls are admin UI per docs; no user or permission tools in the MCP list"
      },
      {
        "job": "Add domains and mailboxes",
        "reachable": false,
        "evidence": "multi-domain setup is an operator flow (docs/specs/multi-domain), not an MCP tool"
      },
      {
        "job": "Install, update, back up, restore",
        "reachable": false,
        "evidence": "operations run through the deployment and signed-release workflow, not MCP"
      },
      {
        "job": "Review audit history",
        "reachable": null,
        "evidence": "audit history is a product feature; no audit tool in the MCP list"
      }
    ],
    "editions": [
      {
        "name": "Free (self-hosted on Cloudflare)",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/HQBase/hqbase"
          },
          {
            "kind": "one-click",
            "url": "https://deploy.workers.cloudflare.com/?url=https%3A%2F%2Fgithub.com%2FHQBase%2Fhqbase%2Ftree%2Fdeploy"
          }
        ]
      }
    ],
    "skills": {
      "kind": "none",
      "paths": [],
      "install": null,
      "note": "No SKILL.md, Claude Code plugin, or skills install target in the repo."
    },
    "customization": {
      "summary": "Adapting HQBase means deploying it into your Cloudflare account: wrangler.jsonc declares the D1, R2 (MAIL_OBJECTS), Queue (HQBASE_JOBS), Durable Object (MAIL_EVENTS), and MAIL_SENDER bindings; BETTER_AUTH_SECRET is generated at install and local values go in .dev.vars. config/product.json carries product settings. Mailboxes, domains, and access are then set in the app. There is no prompt surface; the MCP profile (/mcp versus /mcp/full) is the only agent-facing switch.",
      "envVars": [
        "BETTER_AUTH_SECRET",
        "HQBASE_LOCAL_SEED_PASSWORD"
      ],
      "configFiles": [
        "wrangler.jsonc",
        ".dev.vars",
        "config/product.json"
      ],
      "promptFiles": [],
      "effort": "config-only",
      "editCount": 5
    },
    "useWhen": [
      "we answer support@ and billing@ as a team and want the inbox in our own Cloudflare account with no per-seat fee",
      "we want our agent to search the shared inbox, draft replies for review, and send only from a scoped mail-actions profile"
    ],
    "accounts": [
      "Cloudflare (Workers, D1, R2, Queues, Email Routing)",
      "a domain on Cloudflare DNS"
    ],
    "active": true,
    "lastActivity": "2026-09-01",
    "gotchas": [
      "Cloudflare-only; Queues and Durable Objects may need the Workers Paid plan (confirm)",
      "AGPL-3.0-only license",
      "Send, reply, and forward are not idempotent through MCP; clients must not retry without checking",
      "Young project (Show HN 2026-08-11); Herald macOS client is community-maintained"
    ],
    "fit": {
      "adaptable": 2,
      "operable": 3
    },
    "evidence": {
      "formFactor": "README: Vite frontend, Wrangler Worker backend, D1 database",
      "executionModel": "no model calls in README or wrangler bindings",
      "operability": "hqbase.io/docs/mcp: endpoints /mcp and /mcp/full, OAuth device or PKCE with dynamic client registration, tool list",
      "effort": "README develop section names .dev.vars keys; wrangler.jsonc bindings; .env.example says BETTER_AUTH_SECRET is generated at install",
      "editions": "README and hqbase.io: open source, runs in your Cloudflare account; no pricing page found",
      "active": "gh api: pushed 2026-09-01, 317 stars; signed release workflow"
    },
    "confidence": {
      "formFactor": 0.9,
      "executionModel": 0.85,
      "operability": 0.95,
      "effort": 0.8,
      "reach": 0.85,
      "editions": 0.7
    },
    "openQuestions": [
      "Which Cloudflare plan is required (free versus Workers Paid) for Queues and Durable Objects",
      "Whether update_conversation covers assignment",
      "Any paid support or hosted edition from the Builder"
    ],
    "sources": [
      {
        "url": "https://github.com/HQBase/hqbase",
        "foundBy": "sourcing:support-bookkeeping:community"
      },
      {
        "url": "https://hqbase.io",
        "foundBy": "sourcing:support-bookkeeping:community"
      },
      {
        "url": "https://hqbase.io/docs/mcp/",
        "foundBy": "analysis"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "unverified",
      "reason": "Shared-inbox shape matches the vertical hint; Builder-shipped remote MCP with full mail actions; deployment is config-only but Cloudflare-locked.",
      "disputed": []
    },
    "url": "apps/hqbase--hqbase.html",
    "coverage": "partial",
    "paid": false,
    "source": "research/verified/hqbase--hqbase.json"
  }
}
