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:readdeckt die Auswertungsfragen ab, die Menschen einem Assistenten tatsächlich stellen.links:writekommt 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.