mcpField
C
Clipboard

Clipboard

ローカル
github.com/cmeans生産性41 週間前に更新

Clipboard について

Clipboardは、AIアシスタントがシステムクリップボードを読み書きできるMCPサーバーです。スプレッドシートの表構造を保ち、テキストや画像を扱えるほか、MarkdownをHTMLとプレーンテキストの両形式で保存できます。

主な機能

  1. 01テキスト、表、コード、画像の読み取り
  2. 02検出した表をMarkdown、JSON、CSVに整形
  3. 03プレーンテキストと画像データのコピー
  4. 04MarkdownをHTMLとプレーンテキストでコピー
  5. 05LinuxのPRIMARY選択領域を読み取り
  6. 06クリップボードのMIME形式を確認

活用シーン

  1. 01表構造を保ったまま表計算データを読み取り
  2. 02端末のコマンドを整形した状態でコピー
  3. 03Linuxデスクトップで選択したテキストを質問
  4. 04書式付きMarkdownをリッチテキストアプリに貼り付け

MCP 対応

クリップボードの読み書き、形式一覧、診断操作をMCPツールとして公開します。互換性のあるMCPクライアントからstdioサーバーとして起動できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cmeans-mcp-clipboard": {
"command": "uvx",
"args": [
"mcp-clipboard"
]
}
}
}
起動コマンドuvx mcp-clipboard

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-clipboard2.6.3

ツール

7

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
selectionstringいいえ
output_formatstringいいえ
include_schemabooleanいいえ

詳細

mcp-clipboard ロゴ

mcp-clipboard

PyPI version Python versions License CI Coverage Downloads Glama

pip downloads pipenv downloads pipx downloads uv downloads poetry downloads pdm downloads

linux downloads macos downloads windows downloads

AI アシスタントがシステムのクリップボードに直接アクセスできる MCP サーバーです。コピーした内容を読み取ったり、整形されたテキストをそのまま書き込んだりできます。Claude Code、Claude Desktop、Cursor、Windsurf など、あらゆる MCP 対応クライアントで動作します。

これが作られた理由

貼り付けると構造が失われる

Google Sheets や 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 リポジトリでは、この問題が何度も報告されています(issues #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 は、提案するコマンドを、あなたが頼まなくても毎回コピーするようになります。

おまけ:Ctrl-C を使わずに X11/Wayland の選択内容を読み取る

Linux のデスクトップにはクリップボードが 2 つあります。Ctrl-C/Ctrl-V で使う CLIPBOARD と、PRIMARY 選択です。PRIMARY には現在ハイライトしているテキストが入り、中クリックで貼り付けられます。何かを選択するとすぐに更新されるため、コピーする必要はありません。

mcp-clipboard は PRIMARY も読み取ります。clipboard_paste、clipboard_read_raw、または clipboard_list_formats に selection="primary" を渡すと、サーバーは Ctrl-C のクリップボードではなく選択バッファーを読み取ります。これにより、次のようなワークフローが可能になります。

  • ターミナルでのトラブルシューティング。 エラーメッセージが流れたら、マウスで選択してモデルに意味を尋ねられます。Ctrl-C のバッファーはそのまま保持されるため、保存していた内容が失われません。
  • vim/IDE でのビジュアル選択。 v で関数を選択し、モデルに説明やリファクタリングを依頼できます。
  • ブラウザー/PDF の閲覧。 段落をドラッグして選択し、閲覧の流れを中断せずに「これはどういう意味?」と尋ねられます。
  • 2 つのバッファーを使うワークフロー。 CLIPBOARD(Ctrl-C)にスニペットを残したまま、同じ会話で別のスニペットを PRIMARY 経由で取得できます。

Linux のみで利用できます。macOS と Windows には同等のバッファーがありません。これらのプラットフォームで selection="primary" を渡すと、明確なエラーが返されます。

ツール

ツール説明
clipboard_paste主要なツールです。 テーブル、テキスト、コード、JSON、URL、画像など、クリップボードのあらゆるコンテンツを読み取ります。テーブルは Markdown/JSON/CSV 形式でフォーマットされます。推定された列の型を追加するには、include_schema=true を渡します。画像は、モデルが認識できる画像コンテンツとして返されます。オプションの selection="primary" を指定すると、既定の Ctrl-C クリップボードではなく、X11/Wayland の PRIMARY セレクション(中クリック/選択したテキストを貼り付けるバッファー)を読み取ります。
clipboard_copyテキストコンテンツをシステムクリップボードに書き込みます。オプションの mime_type パラメーターを受け付けます(既定値は text/plain。また、text/html、text/rtf、image/svg+xml、Wayland/X11 では任意の text/* も指定できます)。
clipboard_copy_markdownMarkdown を HTML にレンダリングし、両方の形式をクリップボードに配置します。貼り付け先に応じて適切な形式が選ばれます。Slack/Gmail/Notion/Discord ではリッチテキストになり、vim/ターミナルではソースになります。macOS/Windows では両方の形式をアトミックに書き込みます。Wayland/X11 は単一 MIME に対応しているため、text/html のみを書き込みます。
clipboard_copy_imageBase64 エンコードされたバイト列から、PNG または JPEG 画像をシステムクリップボードに書き込みます。再エンコードせずにそのまま渡し、マジックバイトが宣言された MIME と一致するか検証します。テキストには clipboard_copy を使用してください。
clipboard_list_formats現在クリップボードにある MIME タイプを一覧表示します。X11/Wayland の PRIMARY セレクションには selection="primary" を指定できます。
clipboard_read_raw指定された MIME タイプのクリップボードコンテンツを生データで返します(診断用)。バイナリ以外の型はそのまま渡されます。拒否されるのは image/*、audio/*、video/*、application/octet-stream のみです。画像には clipboard_paste を使用してください。X11/Wayland の PRIMARY セレクションには selection="primary" を指定できます。
clipboard_version実行中の mcp-clipboard パッケージのバージョンを {"name": "mcp-clipboard", "version": "<x.y.z>"} の形式で返します(診断用)。ホストが標準の MCP serverInfo ブロックをモデルに表示しない場合や、特定の実行で使われたビルドを記録する必要があるテストハーネスに役立ちます。

セットアップ

ステップ 1:Python パッケージランナーをインストールする

mcp-clipboard は PyPI 上の Python パッケージです。コンソールスクリプトのエントリーポイントをインストールして起動できる Python ツールであれば、MCP サーバーとして実行できます。最もよく使われるのは pipx と uv の 2 つです。どちらもこの README の先頭にあるインストール数バッジに掲載されており、どちらも現在広く利用されています。お使いのもの、またはお好みのものを選んでください。

  • pipx:プラットフォームごとのインストール手順は、pipx の公式インストールドキュメントにあります。ほとんどのディストリビューションでは、pipx はシステムのパッケージマネージャー(apt、dnf、pacman、brew など)から入手できます。
  • uv:プラットフォームごとのインストール手順は、uv の公式インストールドキュメントにあります。Astral では、パッケージマネージャーを使う方法、署名付きのスタンドアロンバイナリをダウンロードする方法、各プラットフォーム向けのシェルインストーラーが案内されています。

選択したランナーが PATH 上にあることを確認してください。

pipx --version   # if you chose pipx
uv --version     # if you chose uv

このセクションの以降では両方のランナーのコマンドを示します。インストールしたものに置き換えてください。

ステップ 2:プラットフォームのクリップボードツールをインストールする(Linux のみ)

macOS と Windows では必要なものがすべて標準で用意されています。Linux では CLI ユーティリティが 1 つ必要です。

プラットフォームツールインストール
Fedora / RHEL(Wayland)wl-copy / wl-pastesudo dnf install wl-clipboard
Ubuntu / Debian(Wayland)wl-copy / wl-pastesudo apt install wl-clipboard
Linux(X11)xclipsudo dnf install xclip または sudo apt install xclip
macOS標準搭載インストール不要(pbcopy / pbpaste)
Windows標準搭載インストール不要(PowerShell)

プラットフォームの状況: Wayland を搭載した Linux でテスト済みで、現在も使用しています。Windows では QEMU の Windows ゲスト環境でエンドツーエンドのテストを実施しました(Windows 固有のエンコードに関する実際のバグ(#129)が見つかり、v2.5.x でそのテストを通じて修正されました)。X11 と macOS の実装は完了していますが、ユニットテスト以外では未検証です。バグ報告や PR を歓迎します。

ステップ 3:mcp-clipboard がシステム上で動作することを確認する

クライアントに組み込む前に、パッケージがインストールされ、プラットフォームを正しく検出することを確認してください。pipx の場合:

pipx run mcp-clipboard --check

または uv の場合:

uvx mcp-clipboard --check

どちらの方法でも、永続的にインストールすることなく、必要に応じてパッケージを取得して実行します(永続的にインストールする場合は、先に pipx install mcp-clipboard または uv tool install mcp-clipboard を実行してください)。次のような出力が表示されます。

mcp-clipboard 2.5.1
Platform: ...
Backend: ... (detected)
OK: mcp-clipboard should work on this system.

Backend: NOT AVAILABLE と表示された場合は、エラーメッセージにあるプラットフォーム固有のヒント(通常はステップ 2 の Linux 用クリップボードツールのインストール)に従って、再実行してください。

ステップ 4:MCP クライアントにサーバーを登録する

MCP ホストは command と args の組み合わせで mcp-clipboard を起動します。pipx と uv はどちらも、パッケージを取得して実行する一時実行用サブコマンドを提供しているため、これらを使う設定が最も便利です。

Claude Code

pipx の場合:

claude mcp add clipboard --scope user -- pipx run mcp-clipboard

uv の場合:

claude mcp add clipboard --scope user -- uvx mcp-clipboard
Claude Desktop

Claude Desktop の設定ファイルを開きます(パスをファイルマネージャーのアドレスバーに貼り付けると、直接移動できます)。

  • Linux: ~/.config/Claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

以下のいずれかの方法で、mcpServers にエントリーを追加します。pipx の場合:

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

または uv の場合:

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

ファイルを保存し、新しいサーバーを読み込むために、Claude Desktop を完全に終了してから再起動してください。

Windows のヒント: Claude Desktop は、起動時点の環境(PATH を含む)をキャッシュします。Claude Desktop の起動後に pipx/uvx をインストールした場合、再起動するまで Claude Desktop からは認識されません。上記の設定で「Server failed to start」や、MCP ログに「command not found」のようなエラーが表示された場合は、Claude Desktop のトレイアイコンを右クリックし、終了を選択してから、Claude Desktop を再度開いてください。タスクバーの X でウィンドウを閉じても非表示になるだけで、キャッシュされた環境はそのまま残ります。

その他の MCP クライアント

MCP の stdio サーバーに対応しているクライアントであれば、どれでも mcp-clipboard を使用できます。一般的な一時実行形式は pipx run mcp-clipboard と uvx mcp-clipboard です。mcp-clipboard を永続的にインストールしている場合(pipx install mcp-clipboard または uv tool install mcp-clipboard)、PATH 上に作成された mcp-clipboard バイナリも command として使用できます。MCP サーバーの登録方法については、クライアントのドキュメントを参照してください。

ステップ 5:エンドツーエンドで動作を確認する

クライアントで、次のように尋ねます。

クリップボードには何が入っていますか?

クライアントは clipboard_paste を呼び出し、内容を返すはずです。あらかじめスプレッドシートの範囲や URL をコピーしておけば、適切にフォーマットされた状態で表示されます。

何も起きない場合やツールエラーが発生した場合は、--check を再実行して(ステップ 3 で使用した実行方法を使ってください)、パッケージが正常にインストールされていることを確認し、クライアントの MCP サーバーログを確認してください(ログの表示方法は MCP ホストによって異なります。クライアントのドキュメントを参照してください)。

アップグレード

永続的にインストールしたものは自動では更新されず、uvx mcp-clipboard は新しいリリースを取得するのではなく、uv tool install でインストール済みのコピーがあれば、それを実行します。明示的にアップグレードしてください:

uv tool upgrade mcp-clipboard   # if you used uv tool install
pipx upgrade mcp-clipboard      # if you used pipx install

一時実行用のランナーもキャッシュ済みのコピーを再利用することがあります。uvx mcp-clipboard@latest と pipx run --no-cache mcp-clipboard を使うと、必ず新しいバージョンを確認します。--version を実行して現在のバージョンを確認し、新しいバージョンを起動するよう 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" キーで渡せます。

変数プラットフォーム用途デフォルト
MCP_CLIPBOARD_DEBUGすべてデバッグログを有効にします(有効にするには 1 を指定)オフ
WAYLAND_DISPLAYLinux(Wayland)コンポジターのソケット名または絶対パス自動検出
XDG_RUNTIME_DIRLinux(Wayland)Wayland ソケットを含むディレクトリ/run/user/<uid>
XDG_SESSION_TYPELinuxセッションタイプのヒント(wayland または x11)ソケットスキャンで自動検出

ほとんどの Linux ユーザーは、これらを設定する必要はありません。自動検出が失敗する場合(複数のコンポジター、標準外のソケットパス、コンテナー化された環境など)は、値を上書きしてください。

使用方法

クリップボードの読み取り

スプレッドシートのセル、コード、テキスト、URL、JSON、画像などをコピーしてから、次のように指示します:

  • 「クリップボードを貼り付けて」
  • 「クリップボードを読み取って」
  • 「クリップボードには何がある?」
  • 「データをコピーしたので、確認して」

アシスタントが clipboard_paste を呼び出し、構造を保ったまま内容を返します。

クリップボードへの書き込み

エージェントがコマンド、コードブロック、または別の場所で使うテキストを生成したとき:

  • 「それをクリップボードにコピーして」
  • 「そのコマンドをクリップボードに入れて」
  • 「HTML としてコピーして」(text/html として書き込み、リッチテキストアプリに書式付きで貼り付けられるようにします)

エージェントが clipboard_copy を呼び出し、整形済みのテキストがシステムのクリップボードに直接コピーされます。ターミナルの表示によるノイズはなく、きれいなテキストだけがコピーされます。これは Claude Code で特に便利です(上記を参照)。

ヒント:自動コピーの動作。 デフォルトでは、エージェントは依頼された場合にのみクリップボードへコピーします。コマンドやコードブロックを自動的にコピーしたい場合は、システムプロンプトに次の内容を追加してください(例:Claude Desktop のプロジェクトや Claude Code の CLAUDE.md)。

ユーザーが別の場所に貼り付ける可能性が高いコマンドやコードブロックを出力するときは、clipboard_copy を使って積極的にクリップボードへコピーしてください。

テーブルの出力形式

クリップボードに表形式のデータが含まれている場合、output_format で形式を指定します:

形式出力先出力内容
markdownClaude、GitHub、ほとんどのツールGFM パイプテーブル(デフォルト)
notionNotionGFM パイプテーブル(Notion がネイティブに表示します)
slackSlack*bold* の見出しと、等幅コードブロック内にスペースで整列したデータ
jiraJira||Header|| / |Cell| の Wiki マークアップ
confluenceConfluencejira と同じ(共通の Wiki 構文)
htmlメール、ウェブ、リッチテキストエディター<thead>/<th>/<tbody>/<td> を含む <table>
jsonAPI、コード見出し行をキーとするオブジェクトの配列
csvExcel、データツールカンマ区切り値

例:

  • 「クリップボードを Slack 形式で読み取って」→ output_format=slack
  • 「クリップボードを Jira のテーブルに変換して」→ output_format=jira
  • 「それを HTML で出して」→ output_format=html
テーブルスキーマの推論

include_schema=true を追加すると、テーブルとともに列の型の概要を取得できます。

「スキーマ付きでクリップボードを読み取って」

推論される型:整数、浮動小数点数、通貨、パーセンテージ、日付、ブール値、テキスト。列ごとに多数決で決定します。空でないセルの半数を超えるセルに該当する型がない場合、その列は text 型になります。空のセルはスキップされ、ヘッダー行は推論の対象外です。

これは、表形式のデータを Claude に渡して SQL の CREATE TABLE 文、Pandas の dtype マッピング、または検証ルールを作成する際に便利です。Claude はデータから推測するのではなく、あらかじめ型を把握できます。

確実にトリガーするためのヒント

このサーバーには、クリップボードツールを使うタイミングをクライアントに伝える MCP の指示が含まれていますが、結果はモデルやクライアントによって異なります。エージェントが意図を汲み取らない場合は、「それをクリップボードにコピーして」や「コピーした内容を読み取って」のように明示すると、最も確実に動作します。

カスタムのシステムプロンプトを利用できる場合(Claude Desktop のプロジェクトやカスタムエージェントなど)、次のように動作を強化できます。

ユーザーが出力のコピーを求めたら、clipboard_copy を使ってシステムクリップボードに書き込みます。ユーザーが会話内にないデータに言及したら、clipboard_paste を使ってクリップボードを確認します。

コンテンツの処理

コンテンツの種類処理内容
スプレッドシートのテーブルHTML/TSV から解析し、選択した形式(Markdown、JSON、CSV、Slack、Jira、HTML、Notion)で返します
JSONJSON のコードブロック内に整形して返します
コードフェンス付きコードブロックで返します
URLURL としてそのまま返します
リッチ HTML(テーブルなし)HTML タグを削除し、読みやすいテキストを返します
RTFフェンス付きコードブロックで返します(macOS、Windows、Wayland/X11 ではパススルー経由)
プレーンテキストそのまま返します
画像(PNG など)モデルが確認・分析できる MCP 画像コンテンツブロックとして返します
SVGimage/svg+xml を指定した clipboard_read_raw でテキストとして読み取るか、clipboard_paste で画像として返せます。clipboard_copy(mime_type="image/svg+xml") で書き込み可能です。SVG を扱うアプリ(Inkscape、Figma、ブラウザー)では画像として読み込めます。Wayland では wl-copy が自動的に text/plain も提供するため、エディターではソースもそのまま利用できます。X11/macOS/Windows では、SVG のみを書き込む経路は単一 MIME です。複数形式の同時書き込みが実装される(#109)までは、SVG に対応していないアプリにはテキストの代替形式が表示されません。
オーディオ/動画サポートされていません。形式を示すメッセージが返されます

仕組み

  1. プラットフォームの検出: 起動時に、サーバーがクリップボードのバックエンド(Wayland、X11、macOS、Windows)を検出し、適切なシステムコマンドを選択します。
  2. 読み取り(clipboard_paste): プラットフォームのクリップボード読み取りコマンドを呼び出します。最初に text/html を試します(Google Sheets と Excel はクリップボードに <table> マークアップを配置します)。Python 標準の html.parser で解析します。次に text/plain のタブ区切り値、続いて text/rtf を試し、その後画像を確認します。
  3. テキストの書き込み(clipboard_copy): テキストをプラットフォームのクリップボード書き込みコマンド(wl-copy、xclip -selection clipboard、pbcopy、PowerShell の Set-Clipboard)にパイプします。型付きコンテンツ(text/html、text/rtf、image/svg+xml など)を書き込むための mime_type パラメーターをサポートします。
  4. 画像の書き込み(clipboard_copy_image): base64 エンコードされた PNG または JPEG のバイト列をデコードし、wl-copy --type、xclip -target、NSPasteboard の setData:forType:(macOS)、または Clipboard::SetImage(Windows)を使って、プラットフォームのクリップボードに書き込みます。サブプロセスを実行する前に、マジックバイトを宣言された MIME タイプと照合して検証します。
  5. 読み取り時の画像パススルー: クリップボードに画像(PNG など)が含まれている場合、モデルが確認・分析できる base64 エンコード済みの MCP 画像コンテンツブロックとして返します。
  6. コンテンツの分類: 表形式でないテキストコンテンツを JSON、URL、コード、プレーンテキストに分類し、適切な形式(整形済み JSON、フェンス付きコードブロックなど)で返します。

制限事項

  • オーディオとビデオには対応していません。 クリップボードにオーディオまたはビデオが含まれている場合、サーバーは形式を報告しますが、内容は返せません。
  • 画像の書き込みは、clipboard_copy_image 経由の PNG と JPEG のみに対応しています。 そのまま渡し、再エンコードは行いません。その他のバイナリ形式(GIF、WebP、TIFF、BMP)にはまだ書き込みできません。SVG は XML であるため、clipboard_copy(mime_type="image/svg+xml") を使って型付きテキストの経路で渡します。
  • Wayland/X11 では、複数の MIME タイプをまとめて書き込むことには対応していません。 wl-copy と xclip は呼び出しごとに単一の MIME タイプを扱うため、これらのプラットフォームでは clipboard_copy_markdown は text/html のみを書き込みます。Wayland では、wl-copy が UTF-8 コンテンツに対して text/plain を自動で通知しますが、返されるバイト列は(Markdown ソースではなく)レンダリング済みの HTML マークアップです。そのため、ツールの実行後に vim ユーザーが貼り付けると、<h1>... などが表示されます。X11 では、プレーンテキストのターゲットに空のクリップボードが表示されます。Markdown ソースをプレーンテキストとして貼り付けるには、clipboard_copy(markdown_source) を直接呼び出してください。macOS と Windows では、NSPasteboard / DataObject を介した複数形式の一括書き込みに対応しています。
  • モデルのコンテキストウィンドウを圧迫しないよう、テキストコンテンツは 50KB で切り詰められます。
  • プラットフォームによって対応状況に差があります。 Linux の Wayland ではテスト済みで、実際に使用されています。Windows では、v2.5.x の時点で QEMU の Windows ゲスト上でエンドツーエンドのテストを実施済みです(このテストで Windows 固有の UTF-8 標準入力エンコーディングのバグが見つかり、修正されました。#129)。X11 と macOS の実装は完成しており、単体テストもありますが、それ以上の検証は行われていません。バグ報告や PR を歓迎します。特に X11 と macOS に関するものをお待ちしています。

開発

# Install with dev dependencies
uv sync --extra dev

# Run tests
uv run pytest

# Run the server directly (stdio mode)
uv run mcp-clipboard

# Run with debug logging
uv run mcp-clipboard --debug

# Test with MCP Inspector
uv run mcp dev src/mcp_clipboard/server.py

MCP_CLIPBOARD_DEBUG=1 でもデバッグログを有効にできます。これは、サーバーが Claude Desktop または Claude Code によって起動される場合に便利です。

プロジェクト構成

mcp-clipboard/
├── src/mcp_clipboard/
│   ├── __init__.py          # Package version
│   ├── server.py            # MCP server, tool definitions, debug logging
│   ├── clipboard.py         # Platform-agnostic clipboard backend
│   ├── parser.py            # HTML table parser, formatters, content detection
│   ├── instructions/        # Tool and server descriptions (loaded at startup)
│   │   ├── server.md
│   │   ├── clipboard_copy.md
│   │   ├── clipboard_copy_image.md
│   │   ├── clipboard_copy_markdown.md
│   │   ├── clipboard_paste.md
│   │   ├── clipboard_read_raw.md
│   │   ├── clipboard_list_formats.md
│   │   └── clipboard_version.md
│   └── icons/               # SVG icons for MCP client display (light/dark)
│       ├── mcp-clipboard-logo-light.svg
│       └── mcp-clipboard-logo-dark.svg
├── tests/
│   ├── test_parser.py       # Parser and formatter tests
│   └── test_server.py       # Server, backend, and Wayland detection tests
├── .github/
│   ├── workflows/
│   │   ├── publish.yml      # PyPI publish on v* tags (OIDC trusted publisher)
│   │   └── test-publish.yml # TestPyPI publish on test-v* tags
│   └── ISSUE_TEMPLATE/      # Bug report, feature request, platform test forms
├── pyproject.toml
├── CHANGELOG.md
├── CLAUDE.md                # Claude Code project guidance
├── glama.json               # Glama MCP registry metadata
├── LICENSE                  # Apache 2.0
└── README.md

謝辞

このプロジェクトは、 Claude Code(Claude 用の Anthropic の CLI)と協力して設計、開発されました。アーキテクチャ、設計上の決定、リリース管理は人間が主導し、実装、テスト、コードレビュー、ドキュメント作成は対話を通じて委任されました。Claude はコードを記述し、古くなったドキュメントを見つけ、すべてのコミットでテストカバレッジの不足を補いました。

ライセンス

Apache 2.0。LICENSE を参照してください。

README の画像 © 2026 Chris Means

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。