Skip to main content
Glama
martinbowling

Clipboard to Supabase MCP Helper

Zwischenablage zum Supabase MCP Helper

Ein lokaler Agent, der die Zwischenablage des Systems überwacht, alle kopierten Bilder in den Supabase-Speicher hochlädt und dann die öffentliche (oder signierte) URL wieder in die Zwischenablage schreibt.

Merkmale

  • Zero-Click-Bildhosting: Kopieren Sie ein Bild und erhalten Sie sofort eine URL

  • Geringe Latenz: Unter 800 ms vom Kopieren zur URL

  • Plattformübergreifend: Funktioniert unter macOS, Windows und Linux

  • MCP-Integration: Zwischenablage-Bildupload als MCP-Endpunkt verfügbar machen

  • Autostart: Konfigurieren Sie die Ausführung beim Systemstart

  • Effiziente Erkennung: Hash-basierte Deduplizierung mit geringer CPU-Auslastung

Related MCP server: ClipMCP

Voraussetzungen

  • Node.js 18+

  • Supabase-Konto mit aktiviertem Speicher

  • Plattformspezifische Abhängigkeiten:

    • macOS: pngpaste ( brew install pngpaste )

    • Windows/Linux: Nativer Zugriff auf die Zwischenablage des Betriebssystems

Installation

  1. Klonen Sie das Repository:

git clone https://github.com/martinbowling/clipboard-to-supabase-mcp-helper.git
cd clipboard-to-supabase-mcp-helper
  1. Installieren Sie Abhängigkeiten:

npm install
  1. Erstellen Sie eine .env Datei basierend auf .env.example :

SUPABASE_URL=https://<project>.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
BUCKET=media
MCP_PORT=3333
  1. Testen Sie Ihre Supabase-Verbindung:

npm run test:supabase
  1. Erstellen Sie das Projekt:

npm run build
  1. Als Systemdienst installieren:

Für macOS:

npm run install:macos

Für Linux:

npm run install:linux

Für Windows:

npm run install:windows

Verwendung

Sobald der Helfer installiert und ausgeführt wird, führt er Folgendes aus:

  1. Überwachen Sie Ihre Zwischenablage auf Bildänderungen (Abfrage alle 300 ms)

  2. Laden Sie alle kopierten Bilder in Ihren Supabase-Bucket hoch

  3. Legen Sie die öffentliche URL wieder in Ihre Zwischenablage, bereit zum Einfügen

Ausführen des Dienstes

Der Zwischenablage-Helfer kann in zwei Modi ausgeführt werden:

Stdio-Modus (Standard)

npm start

Dadurch wird der MCP-Server mit StdioServerTransport ausgeführt, ideal für die Verwendung über die Befehlszeile.

HTTP-Modus

npm run start:http

Dies führt einen Express-HTTP-Server auf Port 3333 (konfigurierbar) mit einem geeigneten REST-API-Endpunkt aus.

MCP-Integration

Der Helfer stellt die folgenden MCP-Endpunkte bereit:

Zwischenablagebild hochladen

Im HTTP-Servermodus:

POST http://localhost:3333/mcp

Anforderungstext:

{
  "id": "1",
  "jsonrpc": "2.0",
  "method": "tool",
  "params": {
    "name": "upload_clipboard_image",
    "input": {}
  }
}

Antwort:

{
  "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"
      }
    ]
  }
}

Alte Dateien bereinigen

Der Helfer bietet auch einen MCP-Endpunkt, um die Bereinigung alter Dateien manuell auszulösen.

Anforderungstext:

{
  "id": "1",
  "jsonrpc": "2.0",
  "method": "tool",
  "params": {
    "name": "cleanup_old_files",
    "input": {
      "days": 30
    }
  }
}

Antwort:

{
  "id": "1",
  "jsonrpc": "2.0",
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Cleanup completed: Deleted 5 files older than 30 days. Failed: 0."
      }
    ]
  }
}

Der Parameter days ist optional. Wenn er nicht angegeben wird, wird der Wert aus der Umgebungsvariable RETENTION_DAYS verwendet.

Wie es funktioniert

  1. Änderungserkennung : Fragt alle 300 ms die Zwischenablage ab und berechnet den SHA-1-Hash der Bilddaten

  2. Deduplizierung : Verarbeitet nur neue oder geänderte Bilder basierend auf einem Hash-Vergleich

  3. Plattformanpassung : Verwendet plattformspezifische Methoden zum Erfassen von Zwischenablagebildern

  4. Supabase-Integration : Lädt Bilder mit eindeutigen UUIDs in Ihren Supabase-Bucket hoch

  5. MCP-Endpunkt : Stellt KI-Agenten die Funktionalität über das Model Context Protocol zur Verfügung

  6. Automatische Bereinigung : Entfernt regelmäßig Bilder, die älter sind als die konfigurierte Aufbewahrungsfrist (Standard: 30 Tage).

Plattformspezifische Hinweise

macOS

  • Erfordert pngpaste : Installieren Sie mit brew install pngpaste

  • Verwendet LaunchAgents für den Autostart

Windows

  • Verwendet PowerShells System.Windows.Forms.Clipboard zur Bilderfassung

  • Verwendet die Windows-Registrierung für den Autostart

Linux

  • Verwendet xclip (X11) oder wl-paste (Wayland) für den Zugriff auf die Zwischenablage

  • Verwendet systemd für den Autostart

Entwicklung

# 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

Lizenz

MIT

Available Tools

2 tools
cleanup_old_filesD
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_clipboard_imageD
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv1.0.0
    • Changedcleanup_old_files1 field changed
      • addedInput schema / properties
        Added value: +{}
    • Changedupload_clipboard_image1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 2 tool updates
    • First observedcleanup_old_files
    • First observedupload_clipboard_image

TDQS

D1.8/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: cleanup_old_files handles file management, while upload_clipboard_image handles image uploads. There is no overlap in functionality, making them easy to distinguish.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern with snake_case naming: cleanup_old_files and upload_clipboard_image. The naming is predictable and uniform across the set.

Tool Count2/5

With only 2 tools, the server feels thin for a 'Clipboard to Supabase MCP Helper' that might imply broader clipboard or Supabase integration. This minimal set likely leaves gaps in functionality.

Completeness2/5

Inferred domain includes clipboard operations and Supabase integration, but the tools only cover image uploads and file cleanup. Missing obvious functions like handling text/data from clipboard or other Supabase CRUD operations.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers