clipboard-mcp
mcp-clipboard
AIアシスタントがシステムクリップボードに直接アクセスできるようにするMCPサーバーです。コピーした内容を読み取ったり、クリーンなテキストを直接書き込んだりできます。Claude Code、Claude Desktop、Cursor、Windsurfなど、MCP互換のあらゆるクライアントで動作します。
なぜこれが必要なのか
貼り付けによる構造の喪失
GoogleスプレッドシートやExcelからセルをコピーしてチャット入力欄に貼り付けると、表形式の構造(行と列)が失われてしまいます。区切り文字のないフラットな文字列として貼り付けられるため、モデルはどこでセルが終わり、どこで次が始まるかを推測しなければならず、しばしば誤った推測をしてしまいます。
mcp-clipboardは構造を保持します。 貼り付ける代わりに、アシスタントに「クリップボードを読み取って」と伝えてください。サーバーが直接クリップボードを読み取り、スプレッドシートアプリがクリップボードに配置するHTMLから表形式データを検出し、適切にフォーマットされたMarkdownテーブル、JSON、またはCSVとして返します。構造が失われることも、推測に頼ることもありません。
おまけ:Claude Codeからのコピーも修正
Claude Codeのターミナルレンダラーは、すべての出力に2文字のパディング、約80列での強制改行、末尾の空白を追加します。ターミナルからテキストを選択してコピーすると、これらの不要な要素も一緒にコピーされてしまいます:
echo "this is a long command that wraps and
breaks when you paste it because of the hard
newlines and leading spaces"これはclaude-codeリポジトリで繰り返し報告されており(issue #4686, #6827, #7670, #13378, #15199, #25040, #25427, #26016)、多数の賛同を得ていますが、修正はリリースされていません。
mcp-clipboardはこの問題を完全に回避します。 ターミナルからテキストをコピーする代わりに、Claude Codeにクリップボードへ書き込むよう依頼してください:
「そのコマンドをクリップボードにコピーして」
Claude Codeが clipboard_copy を呼び出し、クリーンなテキストを直接システムクリップボードに書き込むため、必要な場所に貼り付けるだけです。パディングも、強制改行も、クリーンアップも不要です。
ヒント: これを自動化するには、プロジェクトまたはグローバルな CLAUDE.md に以下の行を追加してください:
When you produce a shell command for the user to run, also copy it to the clipboard using clipboard_copy.これで、Claude Codeが提案するすべてのコマンドが、依頼しなくても自動的にコピーされるようになります。
ツール
ツール | 説明 |
| 主要ツール。 クリップボードの内容(テーブル、テキスト、コード、JSON、URL、画像)を読み取ります。テーブルはMarkdown/JSON/CSVとしてフォーマットされます。 |
| コンテンツをシステムクリップボードに書き込みます。オプションの |
| 現在クリップボードにあるMIMEタイプを一覧表示します。 |
| 指定されたMIMEタイプのクリップボード内容をそのまま返します。テキスト形式に加え、 |
セットアップ
前提条件
Python 3.11以上 および以下のいずれか:uv(推奨)、pipx、またはpip。
また、プラットフォーム固有のクリップボードツールも必要です:
プラットフォーム | ツール | インストール |
Fedora / RHEL (Wayland) |
|
|
Ubuntu / Debian (Wayland) |
|
|
Linux (X11) |
|
|
macOS | 内蔵 | インストール不要 ( |
Windows | 内蔵 | インストール不要 (PowerShell) |
プラットフォームのステータス: Linux (Wayland) はテスト済みで積極的に使用されています。X11、macOS、Windowsの実装は完了していますが、実機でのテストは行われていません。バグレポートやPRを歓迎します。
Claude Code
claude mcp add clipboard --scope user -- uvx mcp-clipboardClaude Desktop
Claude Desktopの設定に追加してください:
Linux:
~/.config/Claude/claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"clipboard": {
"command": "uvx",
"args": ["mcp-clipboard"]
}
}
}その他のMCPクライアント
MCP stdioサーバーをサポートするクライアントであれば、mcp-clipboardを使用できます。最も簡単な方法は uvx mcp-clipboard です。MCPサーバーの登録方法については、各クライアントのドキュメントを参照してください。
ソースからのインストール
PyPIからインストールする代わりにローカルクローンを使用したい場合:
git clone https://github.com/cmeans/mcp-clipboard.git
cd mcp-clipboard
uv syncその後、クライアントでローカルインストール先を指定してください:
{
"mcpServers": {
"clipboard": {
"command": "uv",
"args": [
"run",
"--directory", "/path/to/mcp-clipboard",
"mcp-clipboard"
]
}
}
}環境変数
環境変数は設定内の "env" キーを介して渡すことができます。
変数 | プラットフォーム | 目的 | デフォルト |
| すべて | デバッグログを有効化 ( | オフ |
| Linux (Wayland) | コンポジタのソケット名または絶対パス | 自動検出 |
| Linux (Wayland) | Waylandソケットを含むディレクトリ |
|
| Linux | セッションタイプのヒント ( | ソケットスキャンにより自動検出 |
ほとんどのLinuxユーザーはこれらを設定する必要はありません。自動検出が失敗する場合(複数のコンポジタ、非標準のソケットパス、コンテナ環境など)にのみ上書きしてください。
使用方法
クリップボードの読み取り
何か(スプレッドシートのセル、コード、テキスト、URL、JSON、画像)をコピーしてから、以下のように伝えます:
「クリップボードを貼り付けて」
「クリップボードを読み取って」
「クリップボードには何が入っている?」
「データをコピーしたから見てみて」
アシスタントが clipboard_paste を呼び出し、構造を保持した状態でコンテンツを返します。
クリップボードへの書き込み
エージェントがコマンド、コードブロック、または他の場所で使用したいテキストを生成したとき:
「それをクリップボードにコピーして」
「そのコマンドをクリップボードに入れて」
「それをHTMLとしてコピーして」(
text/htmlを書き込むため、リッチテキストアプリでフォーマットを保持して貼り付けられます)
エージェントが clipboard_copy を呼び出し、クリーンなテキストが直接システムクリップボードに送られます。ターミナルのレンダリングによる不要な要素はなく、クリーンなテキストのみです。これは特にClaude Codeで役立ちます(上記を参照)。
ヒント: 自動コピー動作。 デフォルトでは、エージェントは依頼されたときのみクリップボードにコピーします。コマンドやコードブロックを自動的にコピーしたい場合は、システムプロンプト(Claude DesktopプロジェクトやClaude Codeの
CLAUDE.mdなど)に以下を追加してください:ユーザーが他の場所に貼り付ける可能性のあるコマンドやコードブロックを出力する場合は、
clipboard_copyを使用してプロアクティブにクリップボードへコピーしてください。
テーブルの出力フォーマット
クリップボードに表形式データが含まれている場合、output_format でフォーマットを制御できます:
フォーマット | 送信先 | 結果 |
| Claude, GitHub, ほとんどのツール | GFMパイプテーブル(デフォルト) |
| Notion | GFMパイプテーブル(Notionはこれをネイティブでレンダリングします) |
| Slack |
|
| Jira |
|
| Confluence |
|
| メール, Web, リッチテキストエディタ |
|
| API, コード | ヘッダー行をキーとするオブジェクトの配列 |
| Excel, データツール | カンマ区切り値 |
例:
「クリップボードをSlack形式で読み取って」 →
output_format=slack「クリップボードをJiraテーブルに変換して」 →
output_format=jira「それをHTMLでちょうだい」 →
output_format=html
テーブルのスキーマ推論
include_schema=true を追加すると、テーブルと一緒に列タイプの概要を取得できます:
「スキーマ付きでクリップボードを読み取って」
推論されるタイプ: integer(整数)、float(浮動小数点)、currency(通貨)、percentage(パーセンテージ)、date(日付)、boolean(真偽値)、text(テキスト)。列ごとに多数決を採用します。空でないセルの半分以上を占めるタイプがない場合、その列は text と判定されます。空のセルはスキップされ、ヘッダー行は推論から除外されます。
これは、SQLの CREATE TABLE 文、Pandasの dtype マッピング、または検証ルールをClaudeに渡す際に役立ちます。Claudeはデータから推測する代わりに、事前にタイプを取得できます。
信頼性の高いトリガーのためのヒント
サーバーには、いつクリップボードツールを使用すべきかをクライアントに伝えるMCP指示が含まれていますが、結果はモデルやクライアントによって異なります。エージェントが意図を汲み取らない場合は、「それをクリップボードにコピーして」や「コピーした内容を読み取って」のように明示的に指示するのが最も確実です。
カスタムシステムプロンプト(Claude Desktopプロジェクトやカスタムエージェントなど)にアクセスできる場合は、動作を強化できます:
ユーザーがコピーを依頼したときは、
clipboard_copyを使用してシステムクリップボードに書き込んでください。ユーザーが会話に含まれていないデータを参照したときは、clipboard_pasteを使用してクリップボードを確認してください。
コンテンツの取り扱い
コンテンツタイプ | 動作 |
スプレッドシートテーブル | HTML/TSVから解析され、選択したフォーマット(Markdown, JSON, CSV, Slack, Jira, HTML, Notion)で返されます |
JSON | JSONコードブロック内で整形して表示 |
コード | フェンス付きコードブロックで返されます |
URL | URLとしてクリーンに返されます |
リッチHTML(テーブルなし) | HTMLタグが削除され、読み取り可能なテキストが返されます |
RTF | フェンス付きコードブロックで返されます(macOS, Windows, およびWayland/X11ではパススルー) |
プレーンテキスト | そのまま返されます |
画像 (PNGなど) | モデルが認識・分析できるMCP画像コンテンツブロックとして返されます |
SVG |
|
オーディオ / ビデオ | サポートされていません。フォーマットを特定するメッセージが返されます |
仕組み
プラットフォーム検出: 起動時に、サーバーはクリップボードのバックエンド(Wayland, X11, macOS, Windows)を検出し、適切なシステムコマンドを選択します。
読み取り (
clipboard_paste): プラットフォームのクリップボード読み取りコマンドを呼び出します。まずtext/htmlを試行し(GoogleスプレッドシートやExcelはクリップボードに<table>マークアップを配置するため)、Pythonの組み込みhtml.parserで解析します。次にtext/plainのタブ区切り値、続いてtext/rtfを試し、最後に画像を確認します。書き込み (
clipboard_copy): テキストをプラットフォームのクリップボード書き込みコマンド(wl-copy,xclip -selection clipboard,pbcopy, またはPowerShellのSet-Clipboard)にパイプします。型付きコンテンツ(text/html,text/rtfなど)を書き込むためのmime_typeパラメータをサポートしています。画像パススルー: クリップボードに画像(PNGなど)が含まれている場合、モデルが認識・分析できるbase64エンコードされたMCP画像コンテンツブロックとして返されます。
コンテンツ分類: 表形式以外のテキストコンテンツは、JSON、URL、コード、またはプレーンテキストとして分類され、適切なフォーマット(整形されたJSON、フェンス付きコードブロックなど)で返されます。
制限事項
オーディオとビデオはサポートされていません。 クリップボードにオーディオやビデオが含まれている場合、サーバーはフォー
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/cmeans/clipboard-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server