mcp-clipboard
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WAYLAND_DISPLAY | No | Compositor socket name (e.g. wayland-0) or absolute path. Auto-detected from $XDG_RUNTIME_DIR. | |
| XDG_RUNTIME_DIR | No | Directory containing the Wayland socket. Auto-detected as /run/user/<uid>. | |
| XDG_SESSION_TYPE | No | Session type hint (wayland or x11). Not required — socket scan is used as fallback. | |
| MCP_CLIPBOARD_DEBUG | No | Enable debug logging ('1' to enable). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| clipboard_pasteA | Paste clipboard contents. Reads the user's system clipboard and returns the content. This is the primary clipboard tool. WHEN TO CALL THIS TOOL: Call this tool when the user says "paste", "paste it", "paste the data", "what's on my clipboard", "read my clipboard", "read what I copied", "what did I copy", "show clipboard", "from my clipboard", "use what I copied", "I copied something", "check my clipboard", or ANY phrase that implies reading from or pasting from the clipboard. Also call this tool when the user references data that is NOT present in the conversation — for example: "format this list" but no list was given, "clean up this JSON" but no JSON is in the message, "here's a table" but no table was provided, "analyze this data" with nothing attached. In these cases, the data is likely on the clipboard. Check it BEFORE asking the user to provide the data manually. Do NOT ask the user to paste or provide data — just call this tool. Handles any clipboard content: tables (from spreadsheets, HTML), plain text, code, JSON, URLs, rich text, and images. Tables are auto-detected and formatted per output_format. Non-tabular content is returned with smart formatting. Images on the clipboard are returned directly as image content. Args: output_format: Format for table data (case-insensitive). Only applies when the clipboard contains a table. Ignored for non-tabular content. Options: - "markdown" (default): GitHub-flavored Markdown table - "json": Array of objects keyed by header row - "csv": Comma-separated values - "slack": monospace code block with dashed-underline header row (avoids Slack mrkdwn escaping issues) - "jira": ||Header|| / |Cell| wiki markup (also works for Confluence) - "confluence": same as jira - "html": with /// - "notion": GFM pipe table (Notion renders these natively) include_schema: When True and the clipboard contains a table, append a column-type schema table after the data. Inferred types: integer, float, currency, percentage, date, boolean, text. Defaults to False. selection: Which buffer to read. Defaults to "clipboard" (the standard Ctrl-C / Cmd-C clipboard). Pass "primary" to read the X11 PRIMARY selection (middle-click / select-text-to-paste buffer) or the analogous Wayland primary selection. macOS and Windows have no PRIMARY analog and will return an error if "primary" is passed. Returns: The clipboard content, formatted appropriately for the content type. Images are returned as image content (base64-encoded) for visual analysis. |
| clipboard_read_rawA | Read raw clipboard content in a specific MIME format. Diagnostic tool only — use clipboard_paste instead for normal clipboard access. This tool returns the clipboard content as-is without any parsing or restructuring. Use clipboard_list_formats first to see what MIME types are available. Supports any non-binary MIME type. The most common values are text/* types, plus image/svg+xml (text-readable despite the image/ prefix). application/* types pass through as well (application/json, application/xml, application/xhtml+xml, etc.) because the only blocked prefixes are image/, audio/, video/, and the exact type application/octet-stream. Binary MIME types are rejected; use clipboard_paste for images. Args: mime_type: The MIME type to read from the clipboard. Common values: "text/plain", "text/html", "image/svg+xml", "application/json" selection: Which buffer to read. Defaults to "clipboard". Pass "primary" to read the X11/Wayland PRIMARY selection (middle-click buffer). macOS and Windows have no PRIMARY analog and will return an error if "primary" is passed. Returns: The raw clipboard content in the requested format, or an error message. |
| clipboard_list_formatsA | List the MIME types / formats currently on the system clipboard. Diagnostic tool — use clipboard_paste to actually read and return clipboard content. Lists what formats are present. For spreadsheet data, you want to see "text/html" (best) or "text/plain" (fallback with tab-separated values). Args: selection: Which buffer to list. Defaults to "clipboard". Pass "primary" to list formats on the X11/Wayland PRIMARY selection. macOS and Windows have no PRIMARY analog and will return an error if "primary" is passed. Returns: A list of available clipboard formats. |
| clipboard_copyA | Copy text to the user's system clipboard. Replaces whatever is currently on the clipboard with the provided content. WHEN TO CALL THIS TOOL: Call this tool when the user says "copy this", "put this on my clipboard", "copy to clipboard", "send to clipboard", or any phrase that implies writing content to the clipboard. Also call this tool when you have produced formatted output (cleaned-up JSON, a markdown table, reformatted code, an HTML table, etc.) and the user wants to use it outside the conversation — copying to clipboard lets them paste it elsewhere. Args:
content: The text to place on the clipboard. Any string is accepted.
mime_type: MIME type for the clipboard content (default: "text/plain").
Use "text/html" to write HTML that applications can paste as rich
text. Use "text/rtf" to write RTF content. Use "image/svg+xml"
to write an SVG; SVG is XML, so it rides this text-write path
rather than Returns: A confirmation message with the number of characters copied and the MIME type written. |
| clipboard_copy_imageA | Write an image to the user's system clipboard. Replaces whatever is currently on the clipboard with the provided image so it can be pasted into other applications (Slack, Gmail, Figma, image editors, etc.). WHEN TO CALL THIS TOOL: Call this tool when the user says "copy this image", "put this on my clipboard", or any phrase that implies writing an image to the clipboard. Also call it when you have produced or fetched an image (a chart, a
screenshot, a generated image) and the user wants to paste it elsewhere.
For text content, use Args:
image_data: Base64-encoded image bytes. The same encoding that
Returns: A confirmation message with the byte count and the MIME type written. Limits:
The image must not exceed |
| clipboard_copy_markdownA | Render markdown to HTML and place both formats on the system clipboard so the user can paste rich text into apps that prefer formatted content (Slack, Gmail, Notion, Word, Google Docs, Discord) AND plain markdown into apps that prefer source (text editors, terminals). WHEN TO CALL THIS TOOL: Call this tool when the user wants formatted output to paste into a rich-text target — bulleted lists, headings, links, code, bold/italic emphasis. Examples: "summarize these emails as a list and copy it", "copy this as formatted text", "put this on my clipboard so I can paste it into Slack with formatting", "give me a markdown bullet list and copy it." For plain text without formatting intent, use Args:
text: Markdown source. Standard CommonMark syntax (headings, lists,
emphasis, code blocks, links, etc.) is rendered to HTML. Raw
HTML tags in the source are escaped, not passed through — if
you need to write hand-crafted HTML, call Returns: A confirmation message with the input character count and the rendered HTML byte count. Platform behavior:
- macOS and Windows: both |
| clipboard_versionA | Return the version of mcp-clipboard currently running. Use this when you need to record or report which mcp-clipboard build is serving the current MCP session — for example, in test harnesses, diagnostic dumps, or when the user asks which version is installed. The version is read from the package metadata at runtime, so it always matches the wheel actually serving the call. Returns: A dict with keys "name" (always "mcp-clipboard") and "version" (the installed version string, e.g. "2.6.1"). If the package metadata cannot be located (uninstalled source checkout), returns "0.0.0+dev" as the version. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
The read/write split is clear, and copy vs copy_image vs copy_markdown are well distinguished by content type. clipboard_paste vs clipboard_read_raw have the most overlap, but descriptions explicitly frame read_raw as a diagnostic-only escape hatch, reducing confusion.
Nearly all tools follow a clean clipboard_<verb>_<noun> pattern (paste, read_raw, list_formats, copy, copy_image, copy_markdown). clipboard_version is a minor deviation since it drops the verb, but it remains readable and predictable.
Seven tools is a well-scoped set for clipboard operations. Most earn their place, though clipboard_version is borderline trivial and could arguably be folded into diagnostics.
The surface covers the full lifecycle: read (paste/raw/list_formats), write text, write rich text/markdown, write images, plus version introspection. No obvious gaps in clipboard read/write workflows.