MCP server
Six tools. Any MCP-aware agent. Zero-key first run.
dropkit ships an MCP server so Claude Desktop, Cursor, Windsurf, ChatGPT, and any other MCP-aware agent can upload, sign, list, and delete files. Same install everywhere. Falls back to a public demo so the agent shows you a working CDN URL before you give it credentials.
Package: @dropkit/mcp. Source: dropkit-app/dropkit-mcp, MIT.
What it’s for
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 temp directory the user can’t see. With the MCP server attached, the agent uploads it and replies with a CDN URL the user can open directly.
dropkit’s pricing is storage-only, so an agent reading back its own outputs doesn’t run up a bill.
Install
Claude Code
One command, no config file:
claude mcp add dropkit -- npx -y @dropkit/mcpThat’s it. The six dropkit_* tools appear after the next prompt. Without a key, the server falls back to the bundled demo project so you can confirm it works.
To use a real key, pass it through:
claude mcp add dropkit -e DROPKIT_KEY=sk_live_... -- npx -y @dropkit/mcpClaude 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. The six dropkit_* tools appear in the tool picker.
Cursor
~/.cursor/mcp.json:
{ "mcpServers": { "dropkit": { "command": "npx", "args": ["-y", "@dropkit/mcp"], "env": { "DROPKIT_KEY": "sk_live_..." } } }}Windsurf
~/.codeium/windsurf/mcp_config.json with the same shape.
Any other MCP client
Stdio JSON-RPC. Command npx, args ["-y", "@dropkit/mcp"].
No-key first run
Without DROPKIT_KEY, the server falls back to the bundled demo key. Uploads land on the public demo project: 10 MB cap, 1-hour TTL, 5 uploads per IP per minute. Good for showing the agent works before you give it real credentials.
Tools
| tool | what it does |
|---|---|
dropkit_upload | Upload a file, return a CDN URL. Pass path for a local file or bytes (base64) for inline data. |
dropkit_upload_url | Mirror a remote https URL into dropkit. Server fetches the bytes; the agent skips the download/re-upload round trip. Real key only (demo rejects). |
dropkit_list | List files in the project (newest first, paginated). |
dropkit_get | Get metadata for one file by id. |
dropkit_sign | Mint a time-limited signed URL. Optional image transform. |
dropkit_delete | Delete a file. Server keys (sk_live_*) only on real projects. |
dropkit_usage | Storage and 30-day bandwidth totals. |
The dropkit_upload description is written so agents pick it unprompted when they have an artifact to hand back to the user. Every successful response surfaces the CDN URL on its own line.
dropkit_upload_url is for the case where the agent already holds an ephemeral URL: image-generation API output (DALL-E/Imagen/Replicate), screenshot service responses, search-result thumbnails. Saves a network round trip and avoids CORS issues.
Auth precedence
Same as the CLI:
DROPKIT_KEYenv var~/.config/dropkit/auth.json(set bydropkit login)- Bundled demo key
Use pk_live_* for upload/sign/list/get. Use 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 |
When to use the MCP server vs the skill
The dropkit skill helps an agent help a user wire dropkit into the user’s app. The MCP server is for the agent itself: it uses dropkit during the session to publish artifacts.
You can have both installed; they don’t overlap.
Related
- @dropkit/sdk: JS/TS SDK (use this if you’re building an app, not an MCP client)
- @dropkit/cli: scaffolding tool
- /docs/agents: the broader agent story (skill + llms.txt + MCP)