mothermachine

Browse / Support and bookkeeping

HQBase

Shared team inbox that deploys into your own Cloudflare account, with an OAuth-protected MCP server.

AdaptableOperable Business appWeb app Deterministic TypeScript MCP server License: AGPL-3.0

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.

Use it when
  • 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
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

Last activity Sep 1, 2026. Fit: adaptable 2, operable 3.

Editions

Free (self-hosted on Cloudflare) · Free open source

  • Clonegit clone https://github.com/HQBase/hqbase
  • DeployDeploy

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only5 things to edit

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.

Env vars
BETTER_AUTH_SECRET HQBASE_LOCAL_SEED_PASSWORD
Config files
wrangler.jsonc .dev.vars config/product.json
Prompt files
none
Accounts you need
Cloudflare (Workers, D1, R2, Queues, Email Routing)a domain on Cloudflare DNS

Source

Operable: what an agent can drive

Interface

OfficialMCP serverpublished by the builderremote

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
hqbase.io/docs/mcp/
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

Reach

Partial coverage. 4 of 9 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Search and read mail across shared mailboxesReachableread-only profile: list_mailboxes, search_messages, list_conversations, get_message, get_thread, get_attachment
Draft repliesReachable/mcp/full: create_draft, update_draft, add_draft_attachment
Send, reply, and forwardReachable/mcp/full: send_email, reply_to_message, forward_message; docs warn repeated sends can send twice
Organize with labels and conversation stateReachableadd_label, remove_label, update_message, update_conversation
Assign conversations to teammatesUndeterminedupdate_conversation exists; whether it sets assignee is not stated on the MCP docs page
Manage team access to mailboxesNot reachableaccess controls are admin UI per docs; no user or permission tools in the MCP list
Add domains and mailboxesNot reachablemulti-domain setup is an operator flow (docs/specs/multi-domain), not an MCP tool
Install, update, back up, restoreNot reachableoperations run through the deployment and signed-release workflow, not MCP
Review audit historyUndeterminedaudit history is a product feature; no audit tool in the MCP list

Code stack

Languages
TypeScript
Frameworks
Cloudflare WorkersViteBetter Auth
Package manager
pnpm
Database
Cloudflare D1Cloudflare R2
Hosting target
Cloudflare Workers (Deploy to Cloudflare button)
Built
Unknown (recorded, never ranked)

Model stack

Providers
any MCP client
Models
none
Keys you need
none
Prompts live in
none

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: Vite frontend, Wrangler Worker backend, D1 database90%
executionModelno model calls in README or wrangler bindings85%
operabilityhqbase.io/docs/mcp: endpoints /mcp and /mcp/full, OAuth device or PKCE with dynamic client registration, tool list95%
effortREADME develop section names .dev.vars keys; wrangler.jsonc bindings; .env.example says BETTER_AUTH_SECRET is generated at install80%
editionsREADME and hqbase.io: open source, runs in your Cloudflare account; no pricing page found70%
activegh api: pushed 2026-09-01, 317 stars; signed release workflow–
reach85%

Open questions

  • 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