Zum Inhalt springen
LinkProfit

MCP-Server für KI-Assistenten

Claude Code, Claude Desktop oder Cursor über das Model Context Protocol mit Ihrem Workspace verbinden: fertige Konfigurationen, Werkzeugkatalog, Rechte und Tarifgrenzen.

Aktualisiert 14. August 2026

Der MCP-Server lässt einen KI-Assistenten direkt mit Ihren Links und Ihrer Analytics arbeiten: „kürze diese Landingpage auf unserer Markendomain“, „welche fünf Links haben letzte Woche die meisten Klicks bekommen“, „stell die Alarmregel für die Kampagnendomain bis Montag stumm“. Der Assistent tut das über dieselbe öffentliche API, die Sie auch selbst aufrufen würden, und mit genau den Rechten des Schlüssels, mit dem Sie ihn verbunden haben.

https://api.linkprofit.com/v1/mcp

Der Transport ist JSON-RPC 2.0 über HTTP, nach der Revision 2025-06-18 des Model Context Protocol (Revision 2025-03-26 wird ebenfalls angenommen). Es gibt keinen vom Server ausgehenden Ereignisstrom und keinen Sitzungszustand: GET und DELETE antworten mit 405, es wird keine Mcp-Session-Id ausgestellt, und jede Anfrage trägt allen Kontext, den sie braucht, im Schlüssel selbst. Jeder MCP-Client, der HTTP spricht, funktioniert — für die drei unten liefern wir lediglich Konfigurationen zum Kopieren mit.

1. Einen Schlüssel für den Assistenten anlegen

Öffnen Sie in Ihrem Dashboard Einstellungen → API-Schlüssel und legen Sie einen Workspace-Schlüssel (lp_live_…) an. Geben Sie ihm nur die Berechtigungen, die der Assistent wirklich haben soll — der Werkzeugkatalog unten nennt, was jedes Werkzeug braucht. Ein Schlüssel mit links:read + analytics:read ergibt einen nur lesenden Assistenten, der Fragen beantworten, aber nichts ändern kann.

Der vollständige Wert wird einmalig angezeigt. Behandeln Sie ihn wie ein Passwort: Er landet in einer Konfigurationsdatei auf Ihrem Rechner.

2. Den Server in Ihrem Client eintragen

Claude Code

Ein Befehl, keine Konfigurationsdatei zu bearbeiten:

claude mcp add --transport http linkprofit https://api.linkprofit.com/v1/mcp \
  --header "Authorization: Bearer lp_live_…your key…"

Mit --scope user steht der Server in jedem Projekt auf Ihrem Rechner zur Verfügung statt nur im aktuellen. Prüfen Sie das Ergebnis mit claude mcp list, und entfernen Sie ihn später mit claude mcp remove linkprofit.

Claude Desktop

Bearbeiten Sie die Konfigurationsdatei — unter macOS ~/Library/Application Support/Claude/claude_desktop_config.json, unter Windows %APPDATA%\Claude\claude_desktop_config.json — und tragen Sie den Server ein:

{
  "mcpServers": {
    "linkprofit": {
      "type": "http",
      "url": "https://api.linkprofit.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer lp_live_…your key…"
      }
    }
  }
}

Starten Sie Claude Desktop neu. Die Werkzeuge erscheinen in der Werkzeugauswahl einer neuen Unterhaltung.

Cursor

Legen Sie .cursor/mcp.json im Projekt an (oder ~/.cursor/mcp.json, damit der Server überall gilt):

{
  "mcpServers": {
    "linkprofit": {
      "url": "https://api.linkprofit.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer lp_live_…your key…"
      }
    }
  }
}

Cursor liest die Datei beim Speichern ein und zeigt den Server unter Settings → MCP.

Die Verbindung von Hand prüfen

Die Probleme eines jeden Clients lassen sich auf Protokollebene leichter lesen. Das ist derselbe Handshake, den die Clients ausführen:

curl -s -X POST https://api.linkprofit.com/v1/mcp \
  -H "Authorization: Bearer $LINKPROFIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-06-18",
      "capabilities": {},
      "clientInfo": { "name": "curl", "version": "1.0" }
    }
  }'

Eine gesunde Antwort nennt die Protokollversion, den Server und seine Werkzeug-Fähigkeit. Tauschen Sie die Methode gegen tools/list, um den Katalog zu sehen, und gegen ping, um nichts weiter als die Erreichbarkeit zu prüfen.

Werkzeuge

Zehn Werkzeuge, alle auf den Workspace begrenzt, zu dem der Schlüssel gehört. Die Spalte mit den Berechtigungen nennt, was der Schlüssel tragen muss; ein Werkzeug, für das dem Schlüssel die Berechtigung fehlt, scheitert schlicht beim Aufruf — aus dem Katalog verschwindet es nicht.

| Werkzeug | Was es tut | Nötige Berechtigung | | --- | --- | --- | | list_links | Die Kurzlinks des Workspace auflisten, optional über eine Suchzeichenkette gefiltert | links:read | | get_link | Einen einzelnen Link über seine ID lesen | links:read | | create_link | Einen Kurzlink anlegen; ohne domain_id wird die Standard-Domain des Workspace genutzt | links:write | | update_link | Ziel oder Titel eines bestehenden Links ändern | links:write | | analytics_summary | Klicks, Besucher und QR-Scans für einen Zeitraum, optional für einen einzelnen Link | analytics:read | | analytics_breakdown | Klicks und Besucher, gruppiert nach Land, Stadt, Gerät, Browser, OS, Referer oder UTM | analytics:read | | analytics_top_links | Die meistgeklickten Links des Zeitraums, mit Klicks und Besuchern | analytics:read | | analytics_timeseries | Klicks und Besucher im Zeitverlauf, nach Stunde, Tag oder Woche | analytics:read | | list_alert_rules | Alarmregeln mit ihren Kanälen und ihrem Unterdrückungsfenster auflisten | alerts:read | | update_alert_rule | Eine Alarmregel aktivieren, stummschalten oder ihr Unterdrückungsfenster neu einstellen | alerts:write |

Die Argumentschemata stammen aus denselben Definitionen, die den Aufruf prüfen; was dem Assistenten über ein Werkzeug gesagt wird und was der Server tatsächlich annimmt, kann also nicht auseinanderlaufen. Nur lesende Werkzeuge sind als solche gekennzeichnet, und genau das erlaubt einem Client, nachzufragen, bevor die drei Werkzeuge laufen, die Daten verändern: create_link, update_link und update_alert_rule — dazu alles, was ein künftiges Release dieser Liste hinzufügt.

Jeder verändernde Werkzeugaufruf wird ins Audit-Log des Workspace geschrieben, samt dem Schlüssel, der ihn ausgelöst hat, und dem Vermerk, dass er über MCP kam — Änderungen eines Assistenten sind damit genauso nachvollziehbar wie die eines Menschen.

Rechte und Sicherheit

Der Schlüssel ist die Rechtegrenze. Es gibt keinen privilegierten „Assistenten-Modus“: Ein Werkzeugaufruf läuft mit den Berechtigungen des Schlüssels, innerhalb des Workspace des Schlüssels, unter demselben Rate-Limit und derselben Mandantentrennung wie ein REST-Aufruf. Eine ID aus einem anderen Workspace ist not_found, genau wie über REST.

Drei Gewohnheiten, die sich lohnen:

  • Geben Sie dem Assistenten einen eigenen Schlüssel, nie den, den Ihre Produktionsintegration nutzt. Ihn zu widerrufen kostet dann nichts.
  • Fangen Sie nur lesend an. links:read + analytics:read deckt die Auswertungsfragen ab, die Menschen einem Assistenten tatsächlich stellen. links:write kommt erst dazu, wenn Links aus dem Chat heraus entstehen sollen.
  • Wechseln Sie ihn, sobald er nach außen gerät. Ein Schlüssel in einer Konfigurationsdatei reist mit Backups, Bildschirmfreigaben und Support-Tickets mit. Widerrufen Sie ihn im Dashboard, sobald er durchgesickert ist; die nächste Anfrage antwortet mit 401.

Das Rate-Limit teilt sich mit der REST-API — je Schlüssel, gleitendes Fenster von einer Minute —, ein gesprächiger Assistent und ein Hintergrundjob auf demselben Schlüssel konkurrieren also um dasselbe Budget. Auch das spricht für einen eigenen Schlüssel. Die Header und die Regeln für Wiederholungen stehen unter Rate-Limits.

Voraussetzungen im Tarif

Zwei Tariffunktionen entscheiden über den Endpunkt:

  • api_access — das Recht, die API überhaupt zu nutzen;
  • assistant_tools — das Recht, den Werkzeugkatalog und damit MCP zu nutzen.

Beide werden an dem Tarif gesetzt, auf dem Ihr Workspace liegt. Ein Workspace, dessen Tarif eine der beiden nicht enthält, bekommt 403 mit dem Code plan_restricted und eine Meldung, die die fehlende Fähigkeit nennt. Wenn Sie LinkProfit unter Ihrer eigenen Marke weiterverkaufen, entscheiden Sie, ob diese Funktion zu einem Tarif gehört oder als Upgrade verkauft wird.

Fehlersuche

403 plan_restricted — der Tarif enthält assistant_tools (oder api_access) nicht. Stufen Sie den Tarif hoch; am Schlüssel oder an der Client-Konfiguration lässt sich das nicht beheben.

401 unauthorized — der Header fehlt, ist fehlerhaft, oder der Schlüssel ist unbekannt, widerrufen oder abgelaufen. Die drei Fälle sind mit Absicht nicht zu unterscheiden. Prüfen Sie, dass der Wert der vollständige Schlüssel ist, dass ihm Bearer vorangeht und dass der Client den Header wirklich schickt — der curl-Handshake oben beantwortet das in einer einzigen Anfrage.

403 forbidden — es wurde ein Partner-Schlüssel (lpp_live_…) verwendet. MCP ist eine Workspace-Oberfläche; legen Sie einen Workspace-Schlüssel an.

429 rate_limited — der Schlüssel hat sein Fenster aufgebraucht. Die Antwort trägt Retry-After; Clients, die sofort wiederholen, halten den Schlüssel nur weiter ausgesperrt.

405 auf GET — erwartet, kein Fehler. Der Server bietet keinen Ereignisstrom und hält keine Sitzung; ein Client, der nur den SSE-basierten Transport älterer Revisionen spricht, kann sich nicht verbinden.

Ein Werkzeug antwortet mit einem Fehler statt mit Daten — zwei verschiedene Dinge sehen im Chatverlauf ähnlich aus. Argumente, die die Prüfung nicht bestehen, kommen als Ergebnis des Werkzeugs zurück, das als Fehler markiert ist und die beanstandeten Felder nennt; der Assistent kann sich korrigieren und es erneut versuchen. Eine fehlende Berechtigung kommt als Protokollfehler mit dem Code insufficient_scope zurück und nennt die Berechtigung: Dafür braucht es einen neuen Schlüssel, keinen weiteren Versuch.

Weiterführende Lektüre

  • Authentifizierung — Schlüssel, die vollständige Liste der Berechtigungen, Schlüsselwechsel.
  • Fehler — jeder Fehlercode und der richtige Umgang damit.
  • API-Referenz — die REST-Endpunkte hinter den Werkzeugen.
  • Client-Bibliotheken — dieselben Operationen aus Ihrem eigenen Code.