クリップボードから Supabase MCP ヘルパーへ
システム クリップボードを監視し、コピーされたイメージを Supabase Storage にアップロードし、パブリック (または署名済み) URL をクリップボードに書き戻すローカル エージェント。
特徴
ゼロクリック画像ホスティング: 画像をコピーして、すぐに URL を取得
低レイテンシ: コピーから URL まで 800 ミリ秒未満
クロスプラットフォーム: macOS、Windows、Linuxで動作
MCP 統合: クリップボード画像のアップロードを MCP エンドポイントとして公開します
自動起動: システム起動時に実行するように設定する
効率的な検出: CPU 使用率が低いハッシュベースの重複排除
Related MCP server: Supabase MCP Server
前提条件
Node.js 18歳以上
ストレージが有効になっている Supabase アカウント
プラットフォーム固有の依存関係:
macOS:
pngpaste(brew install pngpaste)Windows/Linux: ネイティブ OS クリップボード アクセス
インストール
リポジトリをクローンします。
git clone https://github.com/martinbowling/clipboard-to-supabase-mcp-helper.git
cd clipboard-to-supabase-mcp-helper依存関係をインストールします:
npm install.env.exampleに基づいて.envファイルを作成します。
SUPABASE_URL=https://<project>.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
BUCKET=media
MCP_PORT=3333Supabase 接続をテストします。
npm run test:supabaseプロジェクトをビルドします。
npm run buildシステム サービスとしてインストールします。
macOSの場合:
npm run install:macosLinuxの場合:
npm run install:linuxWindowsの場合:
npm run install:windows使用法
インストールして実行すると、ヘルパーは次のことを行います。
クリップボードの画像の変更を監視します(300 ミリ秒ごとにポーリング)
コピーした画像をSupabaseバケットにアップロードします。
公開URLをクリップボードに戻し、貼り付けられるようにします
サービスの実行
クリップボード ヘルパーは、次の 2 つのモードで実行できます。
Stdio モード (デフォルト)
npm startこれは、StdioServerTransport を使用して MCP サーバーを実行し、コマンドラインでの使用に最適です。
HTTPモード
npm run start:httpこれにより、適切な REST API エンドポイントを使用して、ポート 3333 (構成可能) で Express HTTP サーバーが実行されます。
MCP統合
ヘルパーは次の MCP エンドポイントを公開します。
クリップボード画像をアップロード
HTTP サーバー モードの場合:
POST http://localhost:3333/mcpリクエスト本文:
{
"id": "1",
"jsonrpc": "2.0",
"method": "tool",
"params": {
"name": "upload_clipboard_image",
"input": {}
}
}応答:
{
"id": "1",
"jsonrpc": "2.0",
"result": {
"content": [
{
"type": "text",
"text": "https://your-project.supabase.co/storage/v1/object/public/media/clips/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.png"
}
]
}
}古いファイルのクリーンアップ
ヘルパーは、古いファイルのクリーンアップを手動でトリガーするための MCP エンドポイントも提供します。
リクエスト本文:
{
"id": "1",
"jsonrpc": "2.0",
"method": "tool",
"params": {
"name": "cleanup_old_files",
"input": {
"days": 30
}
}
}応答:
{
"id": "1",
"jsonrpc": "2.0",
"result": {
"content": [
{
"type": "text",
"text": "Cleanup completed: Deleted 5 files older than 30 days. Failed: 0."
}
]
}
}daysパラメータはオプションです。指定されていない場合は、 RETENTION_DAYS環境変数の値が使用されます。
仕組み
変更検出: 300msごとにクリップボードをポーリングし、画像データのSHA-1ハッシュを計算します。
重複排除: ハッシュ比較に基づいて新しいイメージまたは変更されたイメージのみを処理します
プラットフォーム適応: プラットフォーム固有の方法を使用してクリップボード画像をキャプチャします
Supabase 統合: 一意の UUID を持つ画像を Supabase バケットにアップロードします
MCPエンドポイント:モデルコンテキストプロトコルを介してAIエージェントに機能を公開します
自動クリーンアップ: 設定された保存期間(デフォルト: 30 日)よりも古いイメージを定期的に削除します。
プラットフォーム固有の注意事項
macOS
pngpasteが必要です:brew install pngpasteでインストールしてください自動起動にはLaunchAgentsを使用する
ウィンドウズ
画像キャプチャには PowerShell の System.Windows.Forms.Clipboard を使用します
自動起動にWindowsレジストリを使用する
リナックス
クリップボードへのアクセスには xclip (X11) または wl-paste (Wayland) を使用します
自動起動にはsystemdを使用する
発達
# Run with live reload (stdio mode)
npm run dev
# Run with live reload (HTTP mode)
npm run dev:http
# Build for production
npm run build
# Run stdio version
npm start
# Run HTTP version
npm run start:httpライセンス
マサチューセッツ工科大学