PluginWorld
Pi

Pixeldrain

MCP

Lets AI agents upload text, images, and files to Pixeldrain and download files back to the local machine, returning shareable file or album URLs. Supports optional API key binding so uploads belong to a user's account.

@jkawamoto · MIT License · updated today

SECURITY

B

SCORE

71

STARS

▲ 73

PLUG IN

git clone https://github.com/jkawamoto/go-pixeldrain.git

See the README to configure this MCP server

README

pd (Pixeldrain CLI & MCP Server)

Go application Go Reference MIT License MCP Ready

pd is a command-line interface, Model Context Protocol (MCP) server, and Go SDK for Pixeldrain.

It provides an easy way to upload, download, and share files or albums directly from your terminal, shell scripts, and AI workflows without needing to open a browser.

pd - Pixeldrain CLI & MCP tool

Features

  • Quick File & Media Sharing: Upload files from the command line and get a shareable Pixeldrain link instantly. Convenient for sharing AI-generated images, screenshots, or outputs in chats and forums.
  • AI & MCP Integration: Built-in MCP server (pd mcp) that lets AI tools (such as Claude Desktop and Cursor) upload and download files on your behalf.
  • Album Support: Combine multiple files into a single Pixeldrain album URL with --album.
  • End-to-End Encryption: Encrypt files client-side using age or SSH public keys before uploading.
  • Unix Pipeline Friendly: Pipe data directly from stdin or stream entire directories with tar.
  • Optional Account Binding: Works anonymously out of the box, or with your Pixeldrain API key to keep files organized in your account.

Quick Start

Upload Files & Media

Upload any file to Pixeldrain and receive a download link:

pd upload artwork.png
# => https://pixeldrain.com/u/xxxxxx

You can optionally specify a custom display name using the path:name syntax:

pd upload output_0042.png:cyberpunk-city.png

Create Albums

Pass multiple files to group them into a single album. This is especially handy for collections of generated images or screenshots:

pd upload --album "Neon Dreams" concept1.png concept2.png concept3.png
# => https://pixeldrain.com/l/xxxxxx

Download Files & Albums

Download files back to your local environment:

# Download a single file (saved to current directory by default)
pd download https://pixeldrain.com/u/xxxxxx

# Download all files from an album without interactive prompts
pd download --all https://pixeldrain.com/l/xxxxxx

# Specify destination directory or filename
pd download -o ./downloads https://pixeldrain.com/u/xxxxxx
pd download --filename custom.png https://pixeldrain.com/u/xxxxxx

MCP Server (AI Integration)

pd includes a built-in Model Context Protocol (MCP) server, allowing AI agents to upload text, images, and files directly to Pixeldrain.

Start the server via:

pd mcp

Configuration (Claude Desktop / Cursor)

Add pixeldrain to your MCP configuration (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "pixeldrain": {
      "command": "pd",
      "args": ["mcp"],
      "env": {
        "PIXELDRAIN_API_KEY": "your_api_key_here"
      }
    }
  }
}

[!NOTE] Setting PIXELDRAIN_API_KEY is optional. If configured, files uploaded by the AI agent will belong to your Pixeldrain account.

Available MCP Tools:

  • upload_files: Upload one or more files (images, audio, archives) and return a file or album URL. Each file uses {name, data}, where data can be a local file path, Base64, or a Base64 data URI.
  • upload_text: Upload plain text or markdown as a file and return a download URL.
  • download_file: Download a file from Pixeldrain to the local machine.

Advanced Usage

Upload from STDIN (Logs, Diffs, Pipelines)

Pass - as the path to upload data from standard input (prepend -- to ensure - is not treated as a flag):

# Upload command output or logs
cat build.log | pd upload -- -:build.log

# Upload a git diff
git diff | pd upload -- -:patch.diff

Upload a Directory

Stream and upload a directory archive directly without creating temporary files on disk:

tar zcf - ~/Projects/my-app | pd upload -- -:my-app.tar.gz

End-to-End Encryption (E2EE)

Encrypt files locally before uploading with age or SSH public keys:

# Encrypt with an age public key or SSH key
pd upload --recipient "age1..." secret.pdf
pd upload --recipient "ssh-ed25519 AAAA..." secret.pdf

# Encrypt for multiple recipients using a file
pd upload --recipient-file recipients.txt secret.pdf

(Uploaded files will automatically have the .age extension).

To decrypt upon download, provide your private key with --identity:

pd download --identity ~/.ssh/id_ed25519 https://pixeldrain.com/u/xxxxxx

Account Authentication

To associate uploads with your Pixeldrain account, provide your API key via the --api-key flag or the PIXELDRAIN_API_KEY environment variable:

export PIXELDRAIN_API_KEY="your-api-key"
pd upload file.zip

# Or via command flag:
pd --api-key "your-api-key" upload file.zip

API keys can be generated at pixeldrain.com/user/api_keys.

Installation

Homebrew (macOS & Linux)

brew tap jkawamoto/pixeldrain
brew install pixeldrain

Go Install

go install github.com/jkawamoto/go-pixeldrain/cmd/pd@latest

Pre-built Binaries

Pre-compiled binaries for macOS, Linux, and Windows are available on GitHub Releases.

Go Library Usage

go-pixeldrain also provides a Go client library for the Pixeldrain REST API.

See the package documentation on pkg.go.dev for API reference and usage examples.

License

This software is released under the MIT License.

SIMILAR PLUGINS