Local stdio server @pixeldrive-dev/mcp. An agent can upload, replace, or delete a file, list the key’s project, and fetch a file. It wraps the SDK, same HTTP as the API. Create a Write key in project settings.
Point the host at npx -y @pixeldrive-dev/mcp. Cursor: .cursor/mcp.json. Claude Desktop: the app’s MCP config. Same JSON either way.
mcp.json{
"mcpServers": {
"pixeldrive": {
"command": "npx",
"args": ["-y", "@pixeldrive-dev/mcp"],
"env": {
"PIXELDRIVE_API_KEY": "pd_live_…"
}
}
}
}| Env | Required | What |
|---|---|---|
| PIXELDRIVE_API_KEY | yes | Project key (pd_live_…). Write to upload; a read key can still list and get. |
| PIXELDRIVE_API_URL | no | Default https://api.pixeldrive.dev |
| Tool | Does |
|---|---|
| upload | Upload a file (path or base64). Optional name, tags, folder, contentType. upsert defaults to true — replaces a ready file at that path. |
| replace | Replace a ready file’s bytes (publicId + path or base64). Folder and tags stay; name becomes the new basename. |
| delete_file | Delete a file by publicId. Purges retained versions. |
| list_project | List the key’s project root, or a folder if you pass folder (publicId). |
| get_file | One file by publicId or path. Tokened URL if the project is private; optional ttl in seconds. |
name can be a path (selects/hero.jpg) — folders are find-or-created. Optional folder is an existing folder publicId; the path is relative to it. The project’s Upload rules apply the same as the dashboard.
| upload arg | Required | Notes |
|---|---|---|
| path | one of | Filesystem path to the file |
| base64 | one of | File bytes as base64, if path is omitted |
| name | if base64 | Defaults to the path basename. Required when using base64. |
| contentType | no | Guessed from the extension when omitted |
| tags | no | String array |
| folder | no | Existing folder publicId |
Rename, move, and tags stay on the dashboard. Remote hosted MCP is not available yet — this server runs on the machine that has the key.