Official MCP server for dropthis — publish content (HTML, files, or a URL to fetch) and get back a permanent public URL, from any MCP-compatible agent (Claude Code, Claude Desktop, Cursor, Windsurf, opencode, ChatGPT, n8n, …).
Two ways to connect:
- Local (stdio) —
npx @dropthis/mcp, authenticated with yoursk_API key. Best for coding agents. - Remote (hosted) —
https://mcp.dropthis.app/mcpover Streamable HTTP, with OAuth for chat clients or a staticsk_Bearer for automation. Best for ChatGPT / claude.ai / n8n.
Add to your MCP client config:
{
"mcpServers": {
"dropthis": {
"command": "npx",
"args": ["-y", "@dropthis/mcp"],
"env": { "DROPTHIS_API_KEY": "sk_..." }
}
}
}Get an API key from your dropthis account. The server reads DROPTHIS_API_KEY (and optional DROPTHIS_BASE_URL). Claude Desktop users can install the one-click .mcpb bundle instead (the API key is stored in your OS keychain).
See docs/setup.md for per-client instructions (Claude Code, Cursor, Windsurf, VS Code, …).
Point an MCP-capable client at the hosted endpoint:
https://mcp.dropthis.app/mcp
- Chat clients (ChatGPT, claude.ai) authenticate via OAuth 2.1 — add the connector URL and approve the login (a 6-digit email code; no password).
- Automation (n8n, CI, custom agents) sends a static
Authorization: Bearer sk_...header and skips OAuth. See docs/n8n.md.
| Tool | Purpose |
|---|---|
dropthis_publish |
Publish new content (content | source_url | file) → permanent URL |
dropthis_redeploy |
Publish a new content version to an existing drop, keeping its URL |
dropthis_update |
Update a drop's settings (title, visibility, password, noindex, vanity slug) |
dropthis_get |
Fetch one drop's metadata |
dropthis_list |
List your drops (paginated) |
dropthis_delete |
Delete a drop (requires confirm: true) |
dropthis_whoami |
Account plan + status |
file is local/stdio only. source_url publishes a NEW drop from a fetched URL (server-side, SSRF-guarded); it is not supported for dropthis_redeploy.
npm install
npm run dev # tsx src/stdio.ts (needs DROPTHIS_API_KEY)
npm run dev:worker # wrangler dev (remote Worker)
npm test # vitest (node) + vitest-pool-workers
npm run typecheck # tsc (node + worker tsconfigs)
npm run lint # biome
npm run build # tsup → dist/stdio.cjs (the npm package)
npm run build:worker # wrangler deploy --dry-run (bundle check)One TypeScript codebase, two outputs: the stdio npm package and the Cloudflare Worker. Both are thin clients over the dropthis REST API (@dropthis/node for stdio, @dropthis/node/edge for the Worker); tool handlers are unit-tested against an injected fake client.
MIT