# Reported issues for clipboard-mcp-server

Pod holds 19 of 24 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [clipboard-mcp-server](/mcp/clipboard-mcp-server).

## Most discussed

### ux(clipboard_write): HTML plain-text fallback strips tags but not script/style content, and loses word spacing between block elements

`clipboard_write` with `format: "html"` generates a plain-text fallback by stripping HTML tags. The current `stripHtmlTags` implementation has two quality issues: it includes inline content from `<script>` and `<style>` tags in the output, and it drops word boundaries between adjacent block elements.

### Server version

0.1.1

### mcp-ts-core version

0.9.9

### Runtime

Bun

### Runtime version

1.3.11

### Transport

HTTP (StreamableHTTP)

### Description

When writing `<h1>Title</h1><p>Body 

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/3) · 2026-05-25 · closed · 2 comments

### bug(clipboard_read): text format returns empty string on empty clipboard instead of format_unavailable

`clipboard_read` with `format: "text"` returns a successful empty-string response when the clipboard is completely empty, while `clipboard_inspect` correctly reports `primaryFormat: "empty"` and `clipboard_read` with `format: "auto"` correctly returns `format_unavailable`.

### Server version

0.1.1

### mcp-ts-core version

0.9.9

### Runtime

Bun

### Runtime version

1.3.11

### Transport

HTTP (StreamableHTTP)

### Description

On macOS, `pbpaste` returns an empty string when the clipboard i

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/2) · 2026-05-25 · closed · 2 comments

### bug(clipboard_read): RTF read throws internal TypeError instead of format_unavailable when RTF is absent

`clipboard_read` with `format: "rtf"` throws an internal `TypeError` (`-32603 InternalError`) instead of the declared `format_unavailable` contract error when RTF is not on the clipboard.

### Server version

0.1.1

### mcp-ts-core version

0.9.9

### Runtime

Bun

### Runtime version

1.3.11

### Transport

HTTP (StreamableHTTP)

### Description

Requesting `format: "rtf"` when the clipboard contains only text or HTML returns a cryptic internal error. The `image` format correctly returns `forma

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/1) · 2026-05-25 · closed · 2 comments

### bug(clipboard_inspect): avoid buffering Linux payloads for sizes

### Server version

0.1.8

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Not runtime-reproduced during validation

### Transport

stdio

### OS

Linux X11 and Wayland

### Description

`clipboard_inspect` is advertised as metadata-only, but both Linux backends read every recognized representation into a `Buffer` to calculate byte sizes. A large clipboard can be buffered repeatedly through several text aliases before the tool returns only metadata.

### Steps to reproduc

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/26) · 2026-08-31 · open · 1 comment

### bug(macos): file-list pasteboard type is misclassified as an image

### Server version

0.1.7

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

HTTP (Streamable HTTP) (reported; not exercised during this validation)

### OS

macOS 26.1 (source review; no live pasteboard reproduction)

### Description

`utiToFormat()` maps `NSFilenamesPboardType` to semantic `image`. Apple documents that deprecated pasteboard type as an array of filenames, while `JXA_READ_IMAGE` reads only `public.png`, `public.tiff`, and `com.appl

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/14) · 2026-07-10 · closed · 1 comment

### bug(clipboard_write): scope HTML plain-text fallback to supported platforms

### Server version

0.1.7

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Not runtime-reproduced during validation

### Transport

stdio

### OS

Linux X11 and Wayland

### Description

`clipboard_write` promises an auto-generated, tag-stripped plain-text fallback for every HTML write. That promise is true for the macOS and Windows backends, which call `stripHtmlTags()` and publish both representations, but not for the current Linux backends: X11 invokes `xclip` with `-t

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/13) · 2026-07-10 · closed · 1 comment

### bug(linux): align inspected formats with readable output

### Server version

0.1.7

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

stdio

### OS

Linux X11 and Wayland

### Description

`clipboard_inspect` advertises `text` whenever either Linux backend lists a supported text alias, but `read('text')` requests only one primary type. `clipboard_read` uses `availableFormats` to choose `auto`, so a text-only selection can be reported as readable and then fail when the primary type is absent.

`clipboard_

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/12) · 2026-07-10 · closed · 1 comment

### bug(windows): image dimensions are read after the bitmap is disposed

### Server version

0.1.7

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

stdio

### OS

Windows 10/11 (native verification required)

### Description

`PS_READ_IMAGE` saves the clipboard image as PNG, disposes `$img`, then reads `$img.Width` and `$img.Height`. Those property reads occur after `System.Drawing.Image.Dispose()` has released the image's resources, so the script violates the image object's lifetime ordering.

### Steps to reproduce

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/11) · 2026-07-10 · closed · 1 comment

## Most recent

### feat(clipboard_write): make clipboard clearing explicit

## Use case

Clearing sensitive clipboard content is a normal end-to-end clipboard workflow. Today `clipboard_write` accepts `content: ""` and creates a zero-byte text representation, but this destructive behavior is implicit: the tool description does not describe clearing, and `clipboard_inspect` reports `primaryFormat: "text"` rather than `empty` afterward.

## Proposal

Add an explicit clear mode to `clipboard_write` instead of relying on an empty write. Keep this within the existing mutator

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/24) · 2026-08-31 · open · 0 comments

### bug(clipboard_write): decode numeric entities in HTML fallback

### Server version

0.1.8

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

HTTP (Streamable HTTP)

### OS

macOS

### Description

The plain-text fallback generated by `clipboard_write` for HTML decodes a small hard-coded entity set but leaves numeric character references unchanged. Text consumers therefore receive entity syntax instead of the represented character.

Related: #3

### Steps to reproduce

1. Call `clipboard_write` with `{ "format":

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/25) · 2026-08-31 · open · 0 comments

### bug(clipboard_inspect): surface backend and measurement failures

### Server version

0.1.8

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

stdio

### OS

macOS, Linux, and Windows backends

### Description

`clipboard_inspect` converts backend decoding and per-format measurement failures into valid-looking empty or zero-byte results. A caller cannot distinguish a genuinely empty clipboard from malformed native output, or a genuine zero-byte representation from a failed size probe.

### Steps to reproduce

1. 

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/23) · 2026-08-31 · open · 0 comments

### bug(clipboard_read): preserve literal payloads in content output

### Server version

0.1.8

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

HTTP (Streamable HTTP)

### OS

macOS

### Description

`clipboard_read` appends text, HTML, and RTF payloads directly to the Markdown `content[]` block. Clipboard bytes remain intact in `structuredContent.content`, but content-only clients can interpret tags and Markdown metacharacters instead of receiving the literal clipboard representation.

Related: #6

### Steps to r

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/22) · 2026-08-31 · open · 0 comments

### bug(linux-wayland): wait for clipboard write completion

### Server version

0.1.8

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Not runtime-reproduced during validation

### Transport

stdio

### OS

Linux Wayland

### Description

`LinuxWaylandBackend.write()` reports success 50 ms after `wl-copy` emits `spawn`, without waiting for stdin to finish flushing or for clipboard ownership to be established. A slow or backpressured write can therefore return success while bytes are still pending, and later stream errors have no p

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/21) · 2026-08-31 · open · 0 comments

### bug(clipboard_read): populate image dimensions on Linux

### Server version

0.1.8

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Not runtime-reproduced during validation

### Transport

stdio

### OS

Linux X11 and Wayland

### Description

The public `clipboard_read` contract says image reads return PNG data with dimensions, but the X11 and Wayland backends return only `{ format, content }`. `width` and `height` are populated on macOS and Windows and silently absent on Linux.

### Steps to reproduce

1. Put an `image/png` r

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/20) · 2026-08-31 · open · 0 comments

### bug(clipboard_write): HTTP body cap preempts typed size recovery

### Server version

0.1.8

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

HTTP (Streamable HTTP)

### OS

macOS

### Description

`clipboard_write` declares a 1 MiB content limit and a typed `content_too_large` recovery, but the HTTP transport's default 1 MiB request-body limit rejects the JSON-RPC envelope before the handler can run. The advertised tool error is therefore unreachable over HTTP, and content slightly below the tool limit can stil

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/19) · 2026-08-31 · open · 0 comments

### feat(config): default MCP_SESSION_MODE to stateless across env, Docker, and src

`.env.example` carries a commented `# MCP_SESSION_MODE=stateful`, whose comment documents the value set as `stateful | stateless (default: stateful)`. The framework schema is `auto | stateful | stateless` with a default of `auto`, which resolves to `stateful` — so the documented value set is wrong and omits the actual default.

Related: cyanheads/mcp-ts-core#376

## Proposal

Make stateless this server's single, explicit default across every surface, so the mode no longer depends on how the serv

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/18) · 2026-08-22 · open · 0 comments

### docs(changelog): 0.1.7 lists vitest bump as ^4.1.10, package.json has ^4.1.11

### Description

`changelog/0.1.x/0.1.7.md`'s Dependencies section lists the `vitest` version bump as:

```
- `vitest` `^4.1.9` → `^4.1.10`, `tsc-alias` `^1.8.17` → `^1.9.2`, `ignore` `^7.0.5` → `^7.0.6`
```

but `package.json` at that release actually pins:

```json
"vitest": "^4.1.11"
```

### Steps to reproduce

1. Check out tag `v0.1.7`.
2. Compare `vitest` in `package.json` against the arrow shown in `changelog/0.1.x/0.1.7.md`.

### Actual behavior

Changelog states `^4.1.9` → `^4.1.10`.

#

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/16) · 2026-08-21 · open · 0 comments

### bug(windows): preserve text, HTML, and RTF clipboard content

### Server version

0.1.7

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

stdio

### OS

Windows 10/11

### Description

`WindowsBackend.read()` applies `.trim()` to the PowerShell responses for `text`, `html`, and `rtf`. That removes leading and trailing whitespace from otherwise valid content. `PS_READ_TEXT` also emits the same `null` sentinel for an absent text format and an explicitly present empty text string.

The backend must preserve the

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/10) · 2026-07-10 · closed · 1 comment

### bug(windows): detect PowerShell with a Windows-native probe

### Server version

0.1.7

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

stdio

### OS

Windows 10/11

### Description

On `win32`, `detectBackend()` checks `powershell.exe` and `powershell` through `toolAvailable()`. That helper always runs `which`, which is not supplied by native Windows, so startup reports PowerShell missing before `WindowsBackend` can be constructed.

### Steps to reproduce

1. Run the server in a native Windows shell where

[Read the thread](https://github.com/cyanheads/clipboard-mcp-server/issues/9) · 2026-07-10 · closed · 1 comment

The remaining reports are on [the project's issue tracker](https://github.com/cyanheads/clipboard-mcp-server/issues).
