For Cursor users

Publish HTML from Cursor — live in seconds.

Add htmldrop's hosted MCP server, sign in once in your browser, and ask Cursor to publish — a live shareable URL comes back. No API keys, no build step, no deploy pipeline.

{
  "mcpServers": {
    "htmldrop": {
      "url": "https://htmldrop.app/mcp"
    }
  }
}

Paste the URL into your client's remote-server field (Claude Desktop: Settings → Connectors → Add custom connector). Sign-in happens in your browser on first use — no key is written to any config file.

◆ Smithery ⤓ Add to Claude Desktop ➜ Add to Cursor npm

Install details

Fastest path: click ➜ Add to Cursor above — it's a deep link that opens Cursor and adds the hosted htmldrop server with one click, no config file editing required.

  1. Add the remote server. Open Cursor's MCP settings and add a server pointing at https://htmldrop.app/mcp. Prefer editing config by hand? Put the block above in your project's .cursor/mcp.json, or the global one at ~/.cursor/mcp.json.
  2. Sign in when Cursor asks. The first time it calls a htmldrop tool, Cursor opens a sign-in page in your browser. Approve once and you're done — there's no API key to create, copy, or paste.
  3. Nothing lands in your config. The URL is the only thing in mcp.json, so the file is safe to commit and share with your team.
  4. Ask Cursor to publish. It calls htmldrop_publish and hands back the live slug.htmldrop.app URL.

If Cursor doesn't pick the server up right away, reload the window (Cmd+Shift+P → "Reload Window").

Try it

Open Cursor's chat and try any of these:

BuildBuild me a single-page sales dashboard with three KPI cards and a bar chart for fake Q1 SaaS data, then publish it to htmldrop.
ConvertTake the README.md in this repo and publish it as a clean documentation page on htmldrop.
One-pagerMake me a tasteful HTML landing page for a side project called "Hexamail" and publish it to htmldrop.

Troubleshooting

The browser sign-in never opened

Cursor starts the sign-in on the first tool call, not when you add the server — so ask it to publish something and watch for the new browser tab. If none appears, check whether a pop-up blocker caught it, then try again.

Signed in, but the tools come back unauthorized

The stored session has gone stale. Remove the htmldrop server in Cursor's MCP settings, add it again with the same https://htmldrop.app/mcp URL, and let the sign-in run fresh.

Cursor doesn't see the htmldrop tools

After editing .cursor/mcp.json, fully reload the window — Cursor caches the MCP tool list. Open Cursor's MCP settings panel to confirm htmldrop shows as connected.

"plan_limit" error in the chat

You've hit your plan's site cap (3 active drops on Free). Delete a drop in the dashboard or upgrade.

Want to verify the install worked?

In Cursor chat: "List my htmldrop sites." If the tool is wired up, Cursor calls htmldrop_list and replies with your drops.

CI and automation (fallback)

A headless job can't complete a browser sign-in, so CI pipelines, cron scripts, and anything else running unattended use the stdio package with an API token instead. This is the one path where a static credential exists — everything above is OAuth.

HTMLDROP_API_TOKEN="<your token — from dashboard, store in a secret manager>" \
  npx -y @htmldrop.app/mcp

Create the token at htmldrop.app/dashboard/settings → API tokens; it's shown once. Inject it from your CI's encrypted secrets or your OS keychain — never commit the literal value, since the token carries full access to your account. You can revoke it from that same page the moment one may have leaked.

If a run fails with a "no API token" error, the variable didn't reach the process: confirm your secret store exports HTMLDROP_API_TOKEN, and that the value is the token string itself rather than the friendly name you gave it in the dashboard.

Open your dashboard →