Klipbord dev

Clipboard Persistent REST API MCP Config
📋
Ctrl+V to paste an image or text, or drag & drop files here
You can also click to browse, or paste text below
Pull to refresh

All Items

Loading clipboard…

Persistent Items

REST API

All endpoints are open — no auth required. Base URL:

Swagger UI (Interactive API Docs) OpenAPI 3.0 Spec (JSON)

GET /api/files List all items
curl /api/files
POST /api/upload Upload a file (simple, <5MB recommended)
curl -F 'file=@screenshot.png' -F 'ttl=7d' /api/upload
POST /api/upload/init Initialize chunked upload (for large files)
curl -X POST -H 'Content-Type: application/json' \ -d '{"filename":"big.zip","size":524288000,"mime_type":"application/zip","ttl":"7d"}' \ /api/upload/init
POST /api/upload/chunk Upload a chunk (multipart: upload_id, chunk_index, chunk)
curl -F 'upload_id=abc123' -F 'chunk_index=0' -F 'chunk=@chunk0.bin' /api/upload/chunk
GET /api/upload/status/{upload_id} Check which chunks have been received (for resume)
curl /api/upload/status/{upload_id}
POST /api/upload/complete Finalize chunked upload (reassembles file)
curl -X POST -H 'Content-Type: application/json' \ -d '{"upload_id":"abc123"}' \ /api/upload/complete
POST /api/text Create a text snippet
curl -X POST -H 'Content-Type: application/json' \ -d '{"content":"hello world","name":"note.txt","ttl":"7d"}' \ /api/text
GET /api/files/{id} Download a file or get text content
curl /api/files/{id} -o file.png
GET /api/text/{id} Get raw text snippet
curl /api/text/{id}
DELETE /api/files/{id} Delete an item
curl -X DELETE /api/files/{id}
PATCH /api/files/{id} Pin/unpin item (persist forever)
curl -X PATCH -H 'Content-Type: application/json' \ -d '{"persistent":true}' \ /api/files/{id}
GET /api/files?persistent=true List persistent items only
curl /api/files?persistent=true
POST /api/analyze/{id}?prompt={name} Trigger vision analysis on an image with optional prompt
curl -X POST /api/analyze/{id}?prompt=terminal
GET /api/config/vision Get vision configuration (presets, active, enabled)
curl /api/config/vision
POST /api/config/vision/test Test connectivity to a vision preset (text-only, no image)
curl -X POST -H 'Content-Type: application/json' -d '{"preset":"lemonade"}' /api/config/vision/test
POST /api/vision/test Run full vision pipeline on a built-in sample image
curl -X POST -H 'Content-Type: application/json' -d '{"image_type":"terminal"}' /api/vision/test
POST /api/vision/compare Run image through ALL presets, compare & rank results
curl -X POST -H 'Content-Type: application/json' -d '{"image_type":"terminal"}' /api/vision/compare
POST /api/vision/compare-prompts Run one image through ALL prompts, compare & rank
curl -X POST -H 'Content-Type: application/json' -d '{"image_type":"terminal"}' /api/vision/compare-prompts
GET /api/prompts List all vision prompts (built-in and custom)
curl /api/prompts
POST /api/prompts Create a custom vision prompt
curl -X POST /api/prompts -H 'Content-Type: application/json' -d '{"name":"my_prompt","description":"...","prompt":"..."}'
PUT /api/prompts/{name} Update a vision prompt (built-in or custom)
curl -X PUT /api/prompts/{name} -H 'Content-Type: application/json' -d '{"prompt":"..."}'
DELETE /api/prompts/{name} Delete a custom vision prompt (built-ins cannot be deleted)
curl -X DELETE /api/prompts/{name}
GET /link/{id} Direct item access (file, image, or text)
/link/{id}
GET /health Health check
curl /health
GET /api/version Get server version
curl /api/version
GET /api/update-check Check whether a newer Klipbord release is available
curl /api/update-check

MCP Server

JSON-RPC 2.0 over HTTP. No auth required.

Endpoint:

Protocol version: 2024-11-05

Hermes Configuration

Add to ~/.hermes/config.yaml under mcp_servers:

Claude Desktop / MCP Client Configuration

Add to your MCP client config:

Available Tools

list_files
List all pasted files and text snippets with metadata (id, name, type, size, created, expires, persistent, url).
Parameters: persistent (boolean, optional) — Filter by persistent state
get_file
Get the content of a file or text snippet by ID. Returns base64-encoded content for files, plain text for text snippets.
Parameters: id (string, required) — The unique ID of the item
get_file_url
Get the public URL for a file or text snippet by ID.
Parameters: id (string, required) — The unique ID of the item
upload_file
Upload a file (base64-encoded content + filename). Returns the item ID and URL.
Parameters: filename (string, required), content (string, required, base64), mime_type (string, optional), ttl (string, optional: 1h, 1d, 7d, 30d, never), persistent (boolean, optional)
create_text
Create a text snippet. Returns the item ID and URL.
Parameters: content (string, required), name (string, optional), ttl (string, optional: 1h, 1d, 7d, 30d, never), persistent (boolean, optional)
get_text
Get the raw text content of a text snippet by ID.
Parameters: id (string, required) — The unique ID of the text snippet
delete_file
Delete a file or text snippet by ID.
Parameters: id (string, required) — The unique ID of the item to delete
persist_file
Pin or unpin an item to keep it forever (persistent items never expire).
Parameters: id (string, required), persistent (boolean, required) — true to pin, false to unpin
describe_image
Get the vision analysis (extracted text and description) for an image item. Optionally specify a prompt name to get a specific analysis.
Parameters: id (string, required), prompt (string, optional) — prompt name; if omitted, returns all analyses
analyze_image
Trigger or re-trigger vision analysis for an image item. Extracts text and generates a description using the configured vision model.
Parameters: id (string, required), prompt (string, optional) — prompt name (default, terminal, code, document, diagram, or custom)
list_prompts
List all available vision prompt templates (built-in and custom).
Parameters: none
create_prompt
Create a new vision prompt template.
Parameters: name (string, required), prompt (string, required), description (string, optional)
update_prompt
Update an existing vision prompt template (built-in or custom).
Parameters: name (string, required), prompt (string, optional), description (string, optional)
delete_prompt
Delete a custom vision prompt template. Built-in prompts cannot be deleted.
Parameters: name (string, required)
list_vision_presets
List all configured vision LLM presets with endpoints, models, and active selection.
Parameters: none
set_vision_preset
Switch the active vision LLM preset. Fails if env vars are overriding config.
Parameters: preset (string, required) — name of the preset to activate
test_vision_preset
Test connectivity to a vision LLM preset by sending a minimal chat request. Returns success, message, and latency.
Parameters: preset (string, optional) — name of the preset to test (omit to test the active preset)
test_vision
Run the full vision pipeline on a built-in sample image. Tests the entire flow: image → model analysis → text extraction.
Parameters: image_type (string, optional) — terminal (default), code, document, or diagram. Uses the matching prompt template.
compare_vision
Run an image through ALL configured vision presets in parallel, compare results, and rank by quality. Uses pairwise LLM judging when possible, with heuristic fallback.
Parameters: image_type (string, optional), item_id (string, optional), prompt (string, optional)
compare_prompts
Run a single image through ALL available vision prompts (default, terminal, code, document, diagram, screenshot, custom) and rank by quality. Tests whether specialized prompts outperform the default.
Parameters: image_type (string, optional), item_id (string, optional)

Vision LLM Configuration

Configure the vision model used for automatic image analysis. Switch between presets or create your own.

Vision Processing

Test Active Preset: all images, active model  |  Test All Models ★: all models × all images × all prompts (matrix)  |  Compare Presets: one image, all presets, ranked  |  Compare Prompts: one image, all prompts, ranked

LLM Presets

Vision Prompts

Prompt templates control how the vision model analyzes images. Built-in prompts can be edited but not deleted.