Warm Inbox

org.warminboxPublished by warminbox.orgOfficial publisherv0.1.0Updated Nov 1, 2026

Email warm-up for AI builders: check deliverability, connect mailboxes, pause or tune warm-ups.

VerifiedStreamable HTTPWeb executableCommunication & CollaborationBusiness & Commerce

Overview

AI-generated overview

Hosted Warm Inbox server that lets an assistant check email warm-up health and spam rates, create mailbox connect links, and pause, resume or tune daily…

What you can do
  • Read account and warm-up data: get the account/plan, list warm-ups, fetch one warm-up and its health metrics.
  • Create a one-time hosted connect link so a human can add an SMTP or Gmail mailbox.
  • Control sending: pause or resume a warm-up and set emails per day.
  • Return API results as structured content and readable errors, with a setup_warmup prompt to guide the flow.
When to use it
Useful when you run Warm Inbox email warm-ups and want an assistant to report deliverability and spam rates, start a new mailbox connection, or adjust sending volume without opening the dashboard.
Requirements
Remote Streamable HTTP endpoint at mcp.warminbox.org/mcp. Requires a Warm Inbox API key sent as an Authorization bearer header, created in the Warm Inbox account. The client must support custom bearer headers; OAuth-only or no-auth connector UIs cannot connect.
Before you install
The bearer key grants access to your Warm Inbox account; keep it out of URLs, install links, shared configs and shell history. Creating a connect link is non-idempotent and yields a one-time URL valid 30 minutes that a human must open to enter mailbox credentials. Pause, resume and volume changes alter live sending settings, though they are reversible. Dashboard-created campaigns are read-only.

Installation

In SourceWeft

  1. Open Warm Inbox in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/org.warminbox%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "warm-inbox": {
      "type": "http",
      "url": "https://mcp.warminbox.org/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

Warm Inbox MCP server

[Warm Inbox logo]

Hosted Model Context Protocol server for Warm Inbox, an email warm-up and deliverability service. It lets AI assistants and app builders (Cursor, Claude Code, Lovable, Bolt, Replit, v0, Windsurf, Base44 and others) check warm-up health and spam rates, connect a mailbox through a secure hosted link, and pause, resume or tune daily sending volume.

Safety

  • The AI never handles mailbox passwords. New warm-ups are only created via create_connect_link: the AI shows a one-time URL (valid 30 minutes), and you enter SMTP/IMAP or Gmail credentials on Warm Inbox's hosted page. Tool schemas are strict and reject unknown fields such as passwords.
  • The server stores nothing: no keys, sessions, database or request logs. Each request's bearer key is forwarded to the Warm Inbox REST API and discarded. Keys are redacted from upstream output.
  • Requests without a valid-looking key get 401 with WWW-Authenticate: Bearer.
  • Campaigns created in the Warm Inbox dashboard are visible but read-only.

Tools

ToolREST operationInputs
get_accountGET /menone
list_warmupsGET /warmupsnone
get_warmupGET /warmups/{id}id
get_warmup_healthGET /warmups/{id}/healthid
create_connect_linkPOST /connect-linkstype (smtp/gmail), email, first_name, last_name, emails_per_day (integer 0–200), response_rate (integer 0–100); all required
pause_warmupPOST /warmups/{id}/pauseid
resume_warmupPOST /warmups/{id}/resumeid
set_emails_per_dayPATCH /warmups/{id}id, emails_per_day (integer 0–200)

Successful JSON objects are returned unchanged in structuredContent and serialized text (apart from key redaction). This preserves {data:[...]} on lists, account/plan fields, warm-up source/read_only flags, nullable health metrics, and {url,expires_at} connect links. API {error:{code,message,...}} failures become isError:true with readable status/code/message text and structured error details. Network/timeout/invalid-JSON errors become generic tool errors. Timeout is 15 seconds; no automatic retries, since a write may have succeeded before the connection failed. Dashboard campaigns are read-only and writes return 404 or 403. Pause, resume and volume changes are reversible, non-destructive and idempotent; connect link creation is non-idempotent.

Optional prompt setup_warmup guides account confirmation, collecting non-secret fields, displaying the connect URL, waiting for the human, listing warm-ups and checking health.

Every tool has a human-readable title and full annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint).

Client setup

Use endpoint https://mcp.warminbox.org/mcp and header Authorization: Bearer <your-own-wi_live_key>. Obtain a key at Warm Inbox API keys. Examples below contain placeholders only. Configure credentials privately in each app, never commit populated configuration or embed real keys in install links.

Documentation reviewed 2026-10-31. UI labels and plan availability can vary; items marked verify in-app could not be confirmed from accessible current official documentation.

Lovable

Add a custom MCP chat connector, name Warm Inbox, enter the endpoint, and choose bearer-token/API-key authentication. Set the token to your wi_live_... key; if the UI offers raw headers, use Authorization: Bearer .... Ask “Use Warm Inbox to list my warm-ups.” Custom MCP is builder context; it does not automatically install a runtime backend integration into the generated app. Official setup and authentication choices.

Bolt.new

Open Connectors, add a custom Connector, set URL to the endpoint and transport to HTTP. Select API-key authentication and supply your key so the outgoing header is Authorization: Bearer ... (exact field/prefix behavior: verify in-app). Bolt's official announcement confirms remote custom connectors and API-key/OAuth credentials. If this UI cannot emit a bearer header, this server cannot connect through that UI until OAuth is added.

Replit Agent

In Integrations → MCP Servers → Add MCP server, name Warm Inbox and enter the endpoint. Under Advanced settings add Authorization with value Bearer <your-own-wi_live_key>, then Test & save. Official custom-server guide.

Official Add to Replit link format: https://replit.com/integrations?mcp=<URL-encoded-base64-JSON>. Payload:

json
{"displayName":"Warm Inbox","baseUrl":"https://mcp.warminbox.org/mcp","headers":[{"key":"Authorization","value":"Bearer <your-own-wi_live_key>"}]}

For a public install link omit headers and ask the human to add the key privately after installation. Generate a key-free link locally:

js
const payload = { displayName: 'Warm Inbox', baseUrl: 'https://mcp.warminbox.org/mcp' };console.log('https://replit.com/integrations?mcp=' + encodeURIComponent(Buffer.from(JSON.stringify(payload)).toString('base64')));

v0

Open MCP Connections (or the prompt form's MCP entry), add Warm Inbox and the endpoint. Set the Authorization bearer header if custom-header controls are available (verify in-app). Official MCP integrations page confirms both entrypoints; arbitrary bearer-header support was not confirmed. OAuth-only connection screens cannot use this server yet.

Windsurf

In ~/.codeium/windsurf/mcp_config.json:

json
{"mcpServers":{"warminbox":{"serverUrl":"https://mcp.warminbox.org/mcp","headers":{"Authorization":"Bearer <your-own-wi_live_key>"}}}}

Reload MCP servers in Cascade. Windsurf is now Devin Desktop; there, add the same url + headers block to .devin/config.json or ~/.config/devin/config.json.

Cursor

In .cursor/mcp.json (prefer private user configuration for real keys):

json
{"mcpServers":{"warminbox":{"url":"https://mcp.warminbox.org/mcp","headers":{"Authorization":"Bearer <your-own-wi_live_key>"}}}}

Enable the server in MCP settings. Official configuration. Official install deeplink:

text
cursor://anysphere.cursor-deeplink/mcp/install?name=warminbox&config=<URL-encoded-base64-JSON-config>

Use the official generator with the single-server config, or generate a link without credentials:

js
const config = { url: 'https://mcp.warminbox.org/mcp' };console.log('cursor://anysphere.cursor-deeplink/mcp/install?name=warminbox&config=' + encodeURIComponent(Buffer.from(JSON.stringify(config)).toString('base64')));

After installation, add Authorization privately. Do not distribute bearer keys inside deeplinks.

Claude Code

bash
claude mcp add --transport http warminbox https://mcp.warminbox.org/mcp \  --header 'Authorization: Bearer <your-own-wi_live_key>'

Use /mcp to inspect the connection. Official HTTP transport/header documentation. Populate the key privately; shell history and local client settings may retain entered credentials.

Claude.ai / Claude Desktop custom connectors

Settings → Connectors → Add custom connector → endpoint URL. Official remote connector guide. Limitation: some connector UIs support OAuth or no-auth only and do not expose arbitrary bearer headers. This server rejects no-auth and does not implement OAuth, so those UIs cannot connect directly. Availability of a bearer-header field is verify in-app; use Claude Code in the meantime. Do not put the key in the URL.

Develop / self-host

Node 20+.

bash
npm cinpm test               # mocked fetch, never calls productionnpm run buildnpm run typecheck:workernpm start              # Node entry on :3100 (PORT, WARMINBOX_API_BASE env)npx wrangler deploy    # or deploy src/worker.ts to Cloudflare Workers (wrangler.jsonc)

src/core/ holds the shared API client, tools and server card; src/node.ts (Express) and src/worker.ts (Workers) are thin entrypoints. ecosystem.config.cjs is a PM2 example for running the Node entry behind a reverse proxy.

Listing files

server.json (MCP Registry), .well-known/mcp/server-card.json (snapshot of the live card), glama.json (Glama ownership), .mcp.json / mcp.json / .cursor-plugin/plugin.json (Cursor plugin and cursor.directory).

License

MIT. See LICENSE.

Source: README.md at commit 4778e17

Tools

0
This server asks for a credential such as an API key, so SourceWeft could not read its tools without one and has not indexed them.

Version history

1
  1. v0.1.0LatestNov 1, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts