MCP Server
Pixelflare has a built-in MCP server, so an AI assistant like Claude Code, Cursor or VS Code can browse, upload and organise your images for you.
The endpoint is https://pixelflare.cc/api/v1/mcp. On a self-hosted instance, swap in your own domain. If your API runs on its own subdomain instead of behind the gateway, drop the /api, as in https://api.example.com/v1/mcp.
Setup
- Create an API key in Settings → API Keys. The assistant only gets the tools that the key's scopes allow, so a read-only key is a good place to start.
- Put the key in an environment variable called
PIXELFLARE_API_KEY, rather than pasting it into config files. The upload command reads it from there too. - Add the server to your client, using one of the snippets below.
The key stays in your client's config, so the model never sees it.
Claude Code
Add this to .mcp.json in your project. Claude Code fills in ${PIXELFLARE_API_KEY} when it starts.
{
"mcpServers": {
"pixelflare": {
"type": "http",
"url": "https://pixelflare.cc/api/v1/mcp",
"headers": { "Authorization": "Bearer ${PIXELFLARE_API_KEY}" }
}
}
}Cursor
Add this to ~/.cursor/mcp.json, or .cursor/mcp.json for a single project.
{
"mcpServers": {
"pixelflare": {
"url": "https://pixelflare.cc/api/v1/mcp",
"headers": { "Authorization": "Bearer ${env:PIXELFLARE_API_KEY}" }
}
}
}VS Code
Add this to .vscode/mcp.json.
{
"servers": {
"pixelflare": {
"type": "http",
"url": "https://pixelflare.cc/api/v1/mcp",
"headers": { "Authorization": "Bearer ${env:PIXELFLARE_API_KEY}" }
}
}
}Claude Desktop and other clients
Clients that can only launch local servers can connect through mcp-remote, which needs Node.js installed.
{
"mcpServers": {
"pixelflare": {
"command": "npx",
"args": [
"mcp-remote",
"https://pixelflare.cc/api/v1/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": { "AUTH_HEADER": "Bearer pxf_your_key_here" }
}
}
}ChatGPT and most claude.ai connectors can't connect yet. They only sign in with OAuth, and Pixelflare doesn't support that for MCP so far.
Tools
| Tool | What it does | Scope |
|---|---|---|
list_images | Search and filter images by album, tag or date, a page at a time | read |
get_image | Get one image, with its CDN, variant and short URLs | read |
list_albums | List your albums | read |
list_tags | List your tags, most used first | read |
get_usage | Show how many images you have against your plan's limit | read |
create_image | Create an image and get back a command to upload the file | write |
update_image | Change alt text, tags, album, filename, license, visibility, expiry | write |
restore_image | Bring back a deleted image | write |
create_album | Create a new album | write |
delete_image | Delete an image. It's a soft delete, so restore_image can undo it | delete |
Every tool call goes through the normal REST API. It gets the same validation, rate limits and ownership checks, and changes show up in your audit log like any other API request.
Uploading images
Uploads take two steps. create_image creates the image and returns a signed upload URL, along with a ready-made command.
curl -T photo.jpg -H "Authorization: Bearer $PIXELFLARE_API_KEY" "https://pixelflare.cc/api/v1/upload/abc123?token=..."Assistants that can run shell commands, such as Claude Code, Cursor and VS Code, will run it for you. The upload URL expires after an hour.
Chat-only clients can manage your existing images, but they can't upload files yet.