@dropkit/mcp
v0.2.0
Published
Model Context Protocol server for dropkit. Lets any MCP-aware agent (Claude Desktop, Cursor, Windsurf, ChatGPT) upload, list, sign, and delete files. Falls back to a public demo project with no key.
Maintainers
Readme
@dropkit/mcp
Model Context Protocol server for dropkit. Lets any MCP-aware agent (Claude Desktop, Cursor, Windsurf, ChatGPT desktop, custom MCP clients) upload files and get back permanent CDN URLs.
npx -y @dropkit/mcpThat's it. With no DROPKIT_KEY set, the server falls back to the public demo project so the agent can show the user a working URL on first run.
Why
When an agent produces a file for the user (a screenshot, an exported chart, a generated image, a transcript), the file usually ends up in a tmp dir the user can't see. With dropkit's MCP server, the agent uploads it and replies with a CDN URL that opens directly in the browser.
dropkit's pricing is storage-only: downloads are always free, so an agent reading back its own outputs doesn't run up a bill.
Tools
| tool | what it does |
|---|---|
| dropkit_upload | Upload a local file or inline bytes. Returns a permanent public CDN URL. |
| dropkit_upload_url | Mirror a remote URL into dropkit. The server fetches; you skip the download/re-upload round trip. Real key only. |
| dropkit_list | List files in the project (paginated, newest first). |
| dropkit_get | Get metadata for one file by id. |
| dropkit_sign | Mint a time-limited signed URL (for private files; supports image transforms). |
| dropkit_delete | Delete a file. Server keys (sk_live_*) only on real projects. |
| dropkit_usage | Storage and 30-day bandwidth totals for the current project. |
Install
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"dropkit": {
"command": "npx",
"args": ["-y", "@dropkit/mcp"],
"env": {
"DROPKIT_KEY": "sk_live_..."
}
}
}
}Restart Claude. Ask: "upload this file to dropkit." The dropkit_upload tool will appear in the tool picker.
Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"dropkit": {
"command": "npx",
"args": ["-y", "@dropkit/mcp"],
"env": { "DROPKIT_KEY": "sk_live_..." }
}
}
}Windsurf
Edit ~/.codeium/windsurf/mcp_config.json with the same shape as above.
Any other MCP client
The server is plain stdio JSON-RPC. Point any MCP client at:
- command:
npx - args:
["-y", "@dropkit/mcp"]
Auth
Key resolution, in order:
DROPKIT_KEYenv var~/.config/dropkit/auth.json(set bydropkit loginfrom@dropkit/cli)- The bundled demo key (
pk_demo_dropkit_try_0001) — uploads go to a shared public project, 10 MB cap, 1-hour TTL
Get a real key at dash.dropkit.app. Use a public key (pk_live_*) for upload/sign/list/get. Use a server key (sk_live_*) if the agent should also delete.
Environment
| var | default |
|---|---|
| DROPKIT_KEY | falls back to demo |
| DROPKIT_ENDPOINT | https://api.dropkit.app |
| DROPKIT_TIMEOUT_MS | 60000 |
Limits
| plan | per-file | total | |---|---|---| | demo (no key) | 10 MB | 50 GB shared, 1-hour TTL | | free | 100 MB | 5 GB hard cap | | hobby+ | 5 GiB | metered overage at $0.12/GB/month |
Files over 100 MiB are routed through the sign+PUT+complete flow automatically.
Related
- dropkit — the service
- @dropkit/sdk — JS/TS SDK
- @dropkit/cli — CLI scaffolding tool
- @dropkit/skill — Claude Code skill (for users wiring dropkit into their own apps)
License
MIT
