Skip to main content
Glama
standardbeagle

MCP Clipboard Server

MCP Clipboard Server

Go Version License: MIT MCP Compatible

A high-performance, lock-free Model Context Protocol (MCP) server that provides clipboard access for AI assistants. Specifically designed to solve the VSCode + WSL2 image clipboard limitation when using Claude.

๐ŸŽฏ Problem Solved

VSCode + WSL2 + Claude Image Clipboard Issue: When running Claude in VSCode on Windows with WSL2, pasting images from the clipboard doesn't work due to the sandboxed environment. This MCP server provides a bridge to access Windows clipboard content (including images) from within the WSL2 environment.

Related MCP server: MCP Windows Screenshots

โœจ Features

  • ๐Ÿ”’ Lock-free concurrent design - High performance with zero race conditions

  • ๐Ÿ–ผ๏ธ Image clipboard support - PNG, JPEG, GIF, WebP, BMP detection and handling

  • ๐Ÿ›ก๏ธ WSL2 compatibility - Seamless Windows clipboard access from WSL2

  • ๐Ÿ“ Large content handling - Automatic temp file creation for content >25KB

  • ๐Ÿ”„ Background monitoring - Watches the clipboard for changes so the current content is always ready to read

  • ๐Ÿงน Smart cleanup - TTL-based temp file management

  • ๐Ÿš€ Race condition free - Comprehensive atomic operations and CAS loops

  • ๐Ÿ” Rich debugging - Detailed error context and optional debug logging

๐Ÿš€ Quick Start

npm install -g @standardbeagle/mcp-clip

Go Installation

go install github.com/standardbeagle/mcp-clip@latest

Manual Installation

git clone https://github.com/standardbeagle/mcp-clip.git
cd mcp-clip
go build -o mcp-clip
sudo cp mcp-clip /usr/local/bin/

๐Ÿ“‹ Claude Desktop Configuration

Add to your Claude Desktop claude_desktop_config.json:

{
  "mcpServers": {
    "clipboard": {
      "command": "mcp-clip",
      "args": []
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

๐Ÿ”ง VSCode + WSL2 Setup

1. Install in WSL2

# In your WSL2 terminal
npm install -g @standardbeagle/mcp-clip

2. Configure Claude Code Extension

Add to your VSCode settings or workspace .vscode/settings.json:

{
  "claude-dev.mcpServers": {
    "clipboard": {
      "command": "mcp-clip",
      "args": []
    }
  }
}

3. WSL2 PowerShell Access

Ensure PowerShell is accessible from WSL2:

# Test PowerShell access
/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -Command "Get-Clipboard"

๐Ÿ› ๏ธ Available Tools

read_clipboard

Reads current clipboard content with automatic format detection.

Example usage in Claude:

"Read my clipboard and analyze the content"

Supported formats:

  • Plain text

  • Images (PNG, JPEG, GIF, WebP, BMP)

  • Binary data (base64 encoded)

Large content handling:

  • Content over 25KB (the default chunk_size) is returned in numbered chunks, or as a pointer to the mcp-clip://current resource, instead of one oversized response

  • Pass format: "file" or output_path to write the clipboard content to disk directly (images always go through this path on Windows, via PowerShell)

  • File paths are returned in the tool result for external access

๐Ÿ“Š The mcp-clip://current Resource

The server also registers a mcp-clip://current resource that always reflects the current clipboard content, so a client can read it directly instead of calling read_clipboard:

{
  "uri": "mcp-clip://current"
}

The server tracks clipboard changes internally as they happen, but does not yet push notifications/resources/updated events to the client โ€” polling read_clipboard or the resource is still required to see new content.

โš™๏ธ Configuration

Environment Variables

  • MCP_DEBUG=1 - Enable detailed debug logging

  • MCP_CLEANUP_TTL=2h - Set temp file cleanup TTL (default: 1h)

Debug Mode

MCP_DEBUG=1 mcp-clip

Shows detailed information about:

  • Clipboard monitoring status

  • Temp file creation and cleanup

  • WSL2 PowerShell integration

  • Race condition fallbacks (extremely rare)

๐Ÿงช Testing

Test Installation

mcp-clip test

Development Testing

# Run tests with race detector
go test -race -v ./...

# Build with race detector
go build -race .

๐Ÿ—๏ธ Architecture

Lock-Free Design

  • Atomic operations for all shared state

  • Compare-and-swap loops with retry limits

  • Zero mutexes in hot paths

  • Race-condition free under all loads

Concurrency Safety

  • Atomic clipboard state updates

  • Thread-safe session file tracking

  • Graceful shutdown with cleanup

  • TOCTOU-safe temp file creation

Platform Integration

  • WSL2: PowerShell bridge for Windows clipboard

  • Linux: Direct clipboard integration via golang.design/x/clipboard

  • macOS: Native clipboard support

  • Windows: Native clipboard support

๐Ÿ”ง Troubleshooting

WSL2 Issues

PowerShell not found:

# Install Windows PowerShell in WSL2
sudo apt update && sudo apt install powershell

Permission denied:

# Add Windows PowerShell to PATH
echo 'export PATH="/mnt/c/Windows/System32/WindowsPowerShell/v1.0:$PATH"' >> ~/.bashrc
source ~/.bashrc

Clipboard empty in WSL2:

# Test Windows clipboard access
powershell.exe "Get-Clipboard" 

General Issues

MCP connection failed:

  • Verify mcp-clip is in your PATH

  • Check Claude Desktop config JSON syntax

  • Restart Claude Desktop after config changes

Large images not working:

  • Check available disk space in temp directory

  • Verify temp directory permissions

  • Enable debug mode: MCP_DEBUG=1

Performance issues:

  • Monitor with debug mode enabled

  • Check for antivirus interference

  • Verify WSL2 resource allocation

๐Ÿ“ Development

Building from Source

git clone https://github.com/standardbeagle/mcp-clip.git
cd mcp-clip
go mod download
go build -race .

Running Tests

go test -race -v ./...

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Run tests: go test -race -v ./...

  4. Submit a pull request

๐Ÿ“„ License

MIT License - see LICENSE file for details.

๐Ÿ™ Acknowledgments

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    A high-speed MCP server that enables AI assistants like Claude to interact with local filesystems, manage Git repositories, and provide interactive experiences through a standardized JSON-based protocol.
    Last updated
    6
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Enables AI coding agents like Claude to read Windows clipboard contents (text and images) from within WSL environments, providing seamless cross-platform clipboard access through the Model Context Protocol.
    Last updated
    4
  • F
    license
    A
    quality
    D
    maintenance
    A Windows-native MCP server that enables users to paste images, Excel tables, rich text, and plain text directly into Claude via a dedicated popup interface. It supports multi-item management and format conversion to streamline sharing complex clipboard data with the model.
    Last updated
    1

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoโ€ฆ

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

  • Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/standardbeagle/mcp-clip'

If you have feedback or need assistance with the MCP directory API, please join our Discord server