Wenn du in den letzten sechs Monaten Zeit mit Claude Desktop oder Cursor verbracht hast, sind dir wahrscheinlich die Tools aufgefallen - eine Liste benannter Aktionen, die der Agent mitten im Gespräch aufrufen kann. Diese Tools stammen von einem MCP-Server. Dieser Beitrag erklärt, was das bedeutet, warum ein URL-Shortener hier perfekt hineinpasst und wie du @elido/mcp-server in beide Clients einbindest, damit der Agent URLs kürzen, QR-Codes generieren und Klick-Aufschlüsselungen abrufen kann, ohne dass du den Editor verlassen musst.
Was MCP ist#
Das Model Context Protocol ist ein kleiner, offener Standard, der es einem KI-Client - Claude Desktop, Cursor oder jedem kompatiblen Agent-Framework - ermöglicht, externe Tools über eine einheitliche JSON-RPC-Schnittstelle zu entdecken und aufzurufen. Der Server-Prozess läuft lokal auf deinem Rechner (oder auf einem Host, den du kontrollierst), stellt eine Liste typisierter Tools bereit und kommuniziert mit dem Client über Standard-Ein-/Ausgabe (stdin/stdout). Der Client sendet eine Tool-Aufrufanfrage, der Server führt die Arbeit aus und das Ergebnis fließt als Kontext zurück in die Konversation. Das Modell sieht deinen API-Key nie; der Server schon. Das gesamte Wire-Protokoll passt in wenige Kilobyte pro Nachricht; es muss kein SDK auf der Client-Seite installiert werden, und der Server kann in jeder Sprache geschrieben werden, die stdin lesen und stdout schreiben kann.
Die Kurzfassung: MCP ist ein standardisierter Weg für einen KI-Client, Code aufzurufen, den du kontrollierst. Der Agent beschreibt die Absicht, das Tool erledigt die Arbeit, der Agent übernimmt das Ergebnis.
Warum ein URL-Shortener hier gut passt#
Der Reibungspunkt bei Kurzlinks in jedem Content-Workflow ist immer derselbe: Du bist gerade dabei, einen E-Mail-Entwurf oder ein Kampagnen-Briefing zu erstellen, benötigst eine gebrandete Kurz-URL für den CTA und musst per Tab zum Dashboard wechseln, den Link erstellen, ihn kopieren, zurücktabben und einfügen. Dieser Kontextwechsel kostet dreißig Sekunden, aber was noch wichtiger ist: Er unterbricht den Schreibfluss.
MCP eliminiert den Kontextwechsel. Wenn @elido/mcp-server verbunden ist, kann der Agent create_link direkt inline aufrufen - die Kurz-URL erscheint in der Konversation und du machst einfach weiter. Dasselbe gilt für weniger offensichtliche Fälle:
- Entwurf einer Produktankündigung, die fünf UTM-Links pro Kanal benötigt: Der Agent kann
create_linkfünfmal nacheinander mit verschiedenen Tags aufrufen und dann alle fünf im Text einbauen. - Den Agenten bitten, einen QR-Code für ein Druckstück zu erstellen:
generate_qrgibt ein SVG-Artefakt zurück, das der Agent direkt im Kontext anzeigt. - Überprüfung der Kampagnen-Performance der letzten Woche:
query_analyticsruft eine Klick-Zeitreihe für einen Link oder den gesamten Workspace ab, korrigiert um die Zeitzone, ohne dass du dich im Dashboard anmelden musst.
Nichts davon erfordert, dass das Modell deine API versteht. Es erfordert lediglich, dass @elido/mcp-server einen typisierten Tool-Aufruf in eine authentifizierte REST-Anfrage übersetzt und das Ergebnis zurückgibt.
Der Elido MCP-Server setzt dieses Modell direkt um. Es handelt sich um einen lokalen Node-Prozess, der zwischen dem KI-Client und der Elido REST API sitzt. Wenn der Agent create_link aufruft, übersetzt der Server diesen Tool-Aufruf in eine authentifizierte POST /v1/workspaces/{id}/links Anfrage, übernimmt die Workspace-Auflösung und gibt das Ergebnis als strukturierten Text zurück, den der Agent lesen kann. Der API-Key verlässt den Server-Prozess nie; der Client sieht nur das Tool-Ergebnis.
Was der Server heute bietet#
@elido/mcp-server ist als @elido/mcp-server auf npm veröffentlicht (Apache-2.0, Version 0.1.x). Der Quellcode befindet sich unter packages/mcp-server/ im Elido Monorepo. Er nutzt den stdio MCP-Transport - zeilenbasiertes JSON-RPC 2.0 über stdin/stdout - und hat außer Node 20+ keine Laufzeitabhängigkeiten. Er verwendet nicht das offizielle @modelcontextprotocol/sdk-Paket; das Protokoll ist händisch implementiert, um das Paket klein zu halten und es einfach auditierbar zu machen, bevor du ihm einen API-Key anvertraust.
Die fünf in 0.1.x verfügbaren Tools:
| Tool | Was es tut |
|---|---|
create_link | Kürzt eine URL mit optionalem Slug, Domain, Titel und Tags. Gibt den vollständigen Link-Datensatz einschließlich der Kurz-URL zurück. |
list_links | Listet die letzten Links im Workspace auf, paginiert. |
query_analytics | Klickzahlen-Zeitreihe für den Workspace oder einen einzelnen Link, gruppiert nach Stunde oder Tag in jeder IANA-Zeitzone. |
generate_qr | Generiert einen QR-Code (SVG oder PNG) für einen bestehenden Link. |
list_workspaces | Listet Workspaces auf, die der API-Key sehen kann. |
Workspace-Admin-Operationen - Mitglieder einladen, API-Keys rotieren, benutzerdefinierte Domains konfigurieren, Abrechnung verwalten - sind absichtlich nicht in der MCP-Oberfläche enthalten. Diese bleiben dem Dashboard vorbehalten. Die Tool-Oberfläche ist auf die Dinge beschränkt, die ein Agent für Content- oder Kampagnenarbeit tatsächlich inline benötigt.
Einen API-Key erhalten#
Bevor du einen der Clients konfigurierst, benötigst du einen API-Key, der für den Workspace berechtigt ist, in dem der Agent agieren soll.
- Öffne Settings → API Keys im Elido Dashboard.
- Klicke auf New key, gib ihm einen Namen, der den Agenten identifiziert (z. B.
claude-desktop-mcp), und wähle die Scopes Link read/write + Analytics read. Erteile keinen Workspace-Admin-Scope, es sei denn, du hast einen spezifischen Grund dafür. - Kopiere den Key - er wird nur einmal angezeigt. Du benötigst außerdem die numerische Workspace-ID, die unter Settings → Workspace → General sichtbar ist.
Halte den Key von der Versionsverwaltung fern. Die unten beschriebenen MCP-Konfigurationsdateien befinden sich in deinem Home-Verzeichnis oder in einem projektlokalen Pfad; checke keine davon in ein gemeinsames Repository ein.
Weitere Informationen zu API-Key-Scopes und dem Audit-Log, das jeden Tool-Aufruf anzeigt, findest du in der API-Key-Dokumentation.
Claude Desktop konfigurieren#
Claude Desktop liest seine MCP-Serverliste aus einer JSON-Datei unter:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Falls die Datei nicht existiert, erstelle sie. Füge den elido Server-Block innerhalb von mcpServers hinzu:
{
"mcpServers": {
"elido": {
"command": "npx",
"args": ["-y", "@elido/mcp-server"],
"env": {
"ELIDO_API_KEY": "elido_pk_your_key_here",
"ELIDO_WORKSPACE_ID": "42"
}
}
}
}
Ersetze elido_pk_your_key_here durch deinen tatsächlichen Key und 42 durch deine Workspace-ID.
ELIDO_WORKSPACE_ID ist optional, wenn der Key Zugriff auf genau einen Workspace hat - der Server löst diesen dann automatisch auf. Setze sie explizit, wenn der Key mehr als einen Workspace sehen kann; ohne diese Angabe muss der Server bei jedem Tool-Aufruf, der einen Workspace benötigt, einen zusätzlichen Roundtrip machen, und das Verhalten ist unvorhersehbar, wenn der Zugriff später auf einen zweiten Workspace erweitert wird.
Nachdem du die Datei gespeichert hast, beende Claude Desktop und starte es neu. Die Elido-Tools erscheinen im Tool-Panel. Falls sie nicht erscheinen, überprüfe die Entwicklerkonsole von Claude Desktop (Help → Show developer tools) auf stderr-Ausgaben des Server-Prozesses - die häufigste Ursache ist ein Tippfehler im Key oder ein command-Pfad, der nicht aufgelöst werden kann.
Wenn du es vorziehst, eine exakte Paketversion festzulegen, anstatt die neueste über npx zu ziehen, installiere das Paket zuerst global:
npm install -g @elido/[email protected]
Ersetze dann das command / args-Paar:
{
"command": "elido-mcp-server",
"args": []
}
Cursor konfigurieren#
Cursor unterstützt projektlokale MCP-Konfiguration über eine .cursor/mcp.json-Datei im Root-Verzeichnis des Projekts. Das Format ist identisch mit dem mcpServers-Block von Claude Desktop:
{
"mcpServers": {
"elido": {
"command": "npx",
"args": ["-y", "@elido/mcp-server"],
"env": {
"ELIDO_API_KEY": "elido_pk_your_key_here",
"ELIDO_WORKSPACE_ID": "42"
}
}
}
}
Erstelle .cursor/mcp.json im Projekt-Root (füge es zu .gitignore hinzu, wenn das Repo geteilt wird - die Datei enthält einen aktiven API-Key). Öffne Cursor Settings → Features → MCP, überprüfe, ob der Server aufgelistet ist und einen grünen Status anzeigt, und starte dann das Agent-Panel neu. Die Elido-Tools erscheinen in der Tool-Liste des Composers.
Du kannst auch eine globale Cursor-MCP-Konfiguration unter ~/.cursor/mcp.json anlegen, wenn du die Tools in allen Projekten verfügbar haben möchtest, ohne pro Projekt Konfigurationsdateien zu erstellen. Die Vorrangregeln folgen demselben Muster wie bei Claude Desktop.
Beispiel-Sitzung: Entwurf einer Kampagnen-E-Mail und Kürzen des CTA#
Hier siehst du, wie eine echte Interaktion aussieht, sobald der Server verbunden ist. Das Agenten-Transkript ist gekürzt, spiegelt aber die tatsächliche Form des Tool-Aufrufs wider.
User: Entwirf eine kurze Kampagnen-E-Mail für unseren Frühlings-Sale. Der CTA soll auf https://shop.example.com/spring-2026 verlinken - kürze ihn mit dem Tag spring-2026 und verwende den Slug spring, falls dieser verfügbar ist.
Claude: Ich werde zuerst die URL kürzen und dann die E-Mail um das Ergebnis herum entwerfen.
[Tool-Aufruf: create_link]
{
"destination_url": "https://shop.example.com/spring-2026",
"slug": "spring",
"title": "Spring 2026 sale CTA",
"tags": ["spring-2026"]
}
[Tool-Ergebnis]
{
"id": 1847,
"short_url": "https://s.elido.me/spring",
"destination_url": "https://shop.example.com/spring-2026",
"slug": "spring",
"tags": ["spring-2026"],
"created_at": "2026-05-11T09:14:22Z"
}
Claude: Der Kurzlink lautet https://s.elido.me/spring. Hier ist der E-Mail-Entwurf:
Betreff: Frühlings-Sale - bis zu 40% Rabatt, nur diese Woche
Hallo [Vorname],
unser Frühlings-Sale ist live. Neue Kollektionen, Auslaufartikel und ein paar Dinge, die wir uns für den richtigen Moment aufgehoben haben.
Zum Sale → https://s.elido.me/spring
Endet am Sonntag. Kein Code erforderlich.
Der Agent hat create_link mit den Parametern aus deinem Prompt aufgerufen, den kanonischen Link-Datensatz zurückerhalten und das Feld short_url im Entwurf verwendet. Wäre der Slug spring bereits vergeben gewesen, hätte die API einen 409-Fehler zurückgegeben und der Agent hätte eine Alternative probiert oder den Konflikt zur Lösung gemeldet.
Beachte, dass domain_id im Tool-Aufruf nicht angegeben wurde. Der Server löst dies automatisch auf: Wenn keine domain_id angegeben ist, ruft er die Domain-Liste des Workspaces ab und wählt die erste verifizierte Domain. Für Workspaces im kostenlosen Tarif ist das f.elido.me; für kostenpflichtige Workspaces ist es s.elido.me oder eine benutzerdefinierte Domain, falls konfiguriert. Wenn du eine bestimmte Domain möchtest, gib deren numerische ID explizit an - du kannst diese mit list_workspaces oder im Dashboard nachschlagen.
Du kannst den Agenten auch bitten, mehrere Links in einem Durchgang zu verarbeiten. "Erstelle UTM-getaggte Links für E-Mail, Twitter und LinkedIn - alle auf die Frühlings-Sale-Seite verweisend" führt zu drei aufeinanderfolgenden create_link-Aufrufen mit unterschiedlichen Tag-Sets, und der Agent präsentiert alle drei Kurz-URLs in einer Tabelle, die du direkt in ein Kampagnen-Briefing kopieren kannst. Dieses Muster ersetzt eine manuelle UTM-Builder-Sitzung im Dashboard für routinemäßige Kampagnen-Setups, auch wenn es noch nicht das UTM-Vorlagensystem auf Workspace-Ebene unterstützt (im Leitfaden zum UTM-Tracking behandelt) - dieses Automatisierungslevel läuft weiterhin über die REST API.
Beispiel-Sitzung: Abfrage von Klick-Aufschlüsselungen#
Das zweite Muster ist das Abrufen von Analysen während einer Kampagnenüberprüfung, ohne das Dashboard zu öffnen.
User: Wie haben die spring-2026 Links letzte Woche performt? Schaltele es nach Tagen in Berliner Zeit auf.
Claude: Ich rufe die Zeitreihe für diesen Link ab.
[Tool-Aufruf: query_analytics]
{
"link_id": 1847,
"from": "2026-05-04",
"to": "2026-05-10",
"interval": "day",
"tz": "Europe/Berlin"
}
[Tool-Ergebnis]
{
"items": [
{ "bucket": "2026-05-04", "clicks": 312 },
{ "bucket": "2026-05-05", "clicks": 489 },
{ "bucket": "2026-05-06", "clicks": 701 },
{ "bucket": "2026-05-07", "clicks": 1204 },
{ "bucket": "2026-05-08", "clicks": 988 },
{ "bucket": "2026-05-09", "clicks": 623 },
{ "bucket": "2026-05-10", "clicks": 417 }
],
"total": 4734,
"tz": "Europe/Berlin"
}
Claude: Der Frühlings-Link erhielt letzte Woche 4.734 Klicks. Mittwoch–Donnerstag war der Höhepunkt (701 → 1.204), was mit den E-Mail-Aussendungen Mitte der Woche übereinstimmt. Über das Wochenende flachte der Traffic ab. Wenn du die Kampagnen-E-Mail Donnerstagmorgen Berliner Zeit verschickt hast, passt der Peak dazu.
Um mehrere Links zu vergleichen, bitte den Agenten, query_analytics einmal pro Link aufzurufen und die Ergebnisse zusammenzustellen. Das sind zwar ein paar Tool-Aufrufe mehr, aber der Agent übernimmt die Schleife; du erhältst eine Side-by-Side-Tabelle, ohne das Dashboard zu öffnen oder ein Skript zu schreiben.
Der tz-Parameter stellt sicher, dass die Tages-Buckets an deiner lokalen Mitternacht ausgerichtet sind, nicht an UTC. Eine Kampagnen-E-Mail, die um 9 Uhr morgens MEZ gesendet wurde und die du in UTC abfragst, hätte ihren Traffic des ersten Tages auf zwei UTC-Tage aufgeteilt - tz: Europe/Berlin vermeidet das. Die Zeitzonenunterstützung stammt aus der Analytics-Arbeit von Phase 6.A, die auf der MCP-Server-Seite beschrieben ist.
Sicherheit - Scope des Keys, was der Server anfragt, das Audit-Log#
Ein paar Dinge, die man wissen sollte, bevor man dies einem Team zur Verfügung stellt.
Grenze den Scope des Keys eng ein. Die Tools create_link und generate_qr benötigen Link-Schreibzugriff. query_analytics benötigt Analytics-Lesezugriff. list_links und list_workspaces benötigen Link-Lesezugriff. Wenn dein Workflow nur aus Lesen besteht - z. B. Metriken während eines Reviews abrufen - erstelle einen Key nur mit Analytics-read + Link-read und übergib ihn dem Server. Der Server wird nur die Endpunkte aufrufen, die der Key erlaubt; alles andere gibt einen 403-Fehler zurück, der als Fehler in der Antwort des Agenten erscheint.
Was der Server sendet. Jeder Tool-Aufruf wird zu einer authentifizierten Anfrage an api.elido.app mit dem Header Authorization: Bearer <key>. Der Server sendet bei jeder Anfrage den Header User-Agent: elido-mcp-server/0.1.0; dieser String ist im Audit-Log sichtbar. Es werden keine Daten vom Server selbst an Anthropic oder einen Drittanbieter-Dienst gesendet - der MCP-Server ist ein lokaler Prozess, der zwischen dem Client und der Elido API vermittelt. Welche Daten der KI-Client an sein eigenes Backend sendet (dein Claude Desktop Prompt, die Tool-Ergebnisse, die als Kontext zurückfließen), unterliegt den Datenschutzbestimmungen von Anthropic oder Cursor, nicht von Elido.
Audit-Log. Jeder API-Aufruf, den der MCP-Server tätigt, erscheint im Dashboard unter Settings → Audit Log, markiert mit dem Namen des Keys und der Ursprungs-IP. Wenn du unerwartete Tool-Aufrufe siehst, rotiere den Key sofort unter Settings → API Keys. Das Audit-Log ist in Pro- und Business-Plänen verfügbar.
Der Key in der Konfigurationsdatei. Der env-Block in claude_desktop_config.json und .cursor/mcp.json speichert den Key im Klartext. Auf einem persönlichen Rechner ist dies akzeptabel; in einer gemeinsam genutzten oder verwalteten Umgebung solltest du den Key lieber über den System-Schlüsselbund oder einen Secrets-Manager injizieren und ihn über eine Umgebungsvariable referenzieren, die die MCP-Konfiguration indirekt liest. Für Team-Setups sollte jedes Mitglied einen eigenen Key haben - geteilte Keys machen die Zuordnung im Audit-Log bedeutungslos.
Ehrliche Einschränkungen#
Ein paar Dinge, die der MCP-Server designbedingt nicht tut.
Keine Workspace-Admin-Operationen. Teammitglieder einladen, benutzerdefinierte Domains konfigurieren, Abrechnungen verwalten, Workspaces erstellen oder löschen - nichts davon ist in der Tool-Oberfläche enthalten. Diese Operationen sind so folgenschwer, dass ein angemeldeter Mensch im Dashboard die richtige Kontrolle darstellt. Die MCP-Oberfläche ist absichtlich auf die Arbeit beschränkt, die ein Content- oder Kampagnen-Agent inline benötigt. Wenn du die Bereitstellung von Workspaces automatisieren musst, sind die REST API und der Terraform-Provider die richtigen Werkzeuge.
Kein Echtzeit-Streaming. Der aktuelle Transport ist stdio mit synchronem Request/Response. Ein SSE-Transport steht auf der Roadmap. Für die meisten Agent-Workflows - Link erstellen, QR-Code abrufen, wöchentliche Zeitreihe ziehen - ist das synchrone Modell völlig ausreichend. Für Anwendungsfälle, die das Streamen einer großen Linkliste oder das Beobachten eines Live-Klick-Zählers erfordern, sind das Dashboard oder die REST API derzeit die besseren Werkzeuge.
Rate-Limits gelten. Die Elido API erzwingt pro Key Rate-Limits, unabhängig davon, ob der Aufrufer ein Mensch, ein Skript oder ein MCP-Server ist. Die Limits nach Plan-Stufe findest du in der API-Referenz. Agent-Workflows, die create_link in engen Schleifen aufrufen - z. B. das massenhafte Erstellen von Hunderten von Links - sollten den REST Bulk-Import-Endpunkt (POST /v1/links/bulk) direkt verwenden, anstatt Hunderte einzelner create_link Tool-Aufrufe abzusetzen. Der MCP-Server ist für die interaktive Inline-Nutzung optimiert; Massenoperationen gehören zur Scripting-Oberfläche.
query_analytics gibt nur Klickzahlen zurück. Die Zeitreihe, die das Tool query_analytics zurückgibt, besteht aus Klickzahlen, gruppiert nach Zeit. Es gibt keine geografischen Aufschlüsselungen, Geräte-Splits, Referrer-Daten oder Conversion-Attributionen zurück. Diese sind im Dashboard und über die vollständige Analytics REST API verfügbar, aber derzeit nicht Teil der MCP-Tool-Oberfläche. Wenn dein Agent-Workflow eine Länderaufschlüsselung pro Link benötigt, rufe die REST API direkt auf.
Wie es weitergeht#
Der Quellcode des Servers und der Issue-Tracker befinden sich unter packages/mcp-server/ im Elido Monorepo. Das Paket wird mit npm-Provenienz veröffentlicht, sodass jeder Release kryptografisch an den Commit gebunden ist, aus dem er erstellt wurde - ein Audit des veröffentlichten Artefakts ist damit unkompliziert.
Die MCP-Integrationsseite enthält die Tool-Referenz, die Scope-Matrix und die Self-Host-Konfiguration, um ELIDO_API_BASE auf eine private Elido Instanz zeigen zu lassen. Wenn du einen Plan nutzt, der die Workspace-MCP-Konfiguration beinhaltet, deckt die Seite auch den Workflow zur Key-Rotation im Team ab.
Zwei Setups, die es wert sind, zuerst ausprobiert zu werden:
-
Richte Claude Desktop wie oben beschrieben ein, öffne eine neue Konversation und tippe "kürze
https://example.com/testmit dem Tagmcp-test". Beobachte, wie der Tool-Aufruf ausgelöst wird und die Kurz-URL in der Antwort erscheint. Die gesamte Einrichtung sollte weniger als fünf Minuten dauern. -
Wenn du bereits Cursor für Content- oder Dokumentationsarbeit verwendest, lege
.cursor/mcp.jsonim Projekt-Root ab und bitte den Composer darum, "die Top-Links der letzten Woche nach Klickzahlen zusammenzufassen". Die Aufrufe vonlist_linksundquery_analyticserfolgen inline und der Agent schreibt die Zusammenfassung direkt in den Chat.
Beide befinden sich in der Beta-Phase (0.1.x) - die Tool-Oberfläche wird wachsen, aber bestehende Tool-Inputs werden innerhalb des 0.1.x-Bereichs nicht verändert. Wenn etwas nicht wie hier beschrieben funktioniert, öffne ein Issue mit dem Label area:mcp und wir werden es als Regression behandeln.
Verwandte Artikel im Blog#
- Hitting p95 < 15ms for redirects from FRA, ASH, and SGP
- Bulk-import short links from a Google Sheet (the real campaign workflow)
- Why we use ClickHouse for click analytics (and not Postgres)
- URL shorteners for SaaS: lifecycle, onboarding, in-product comms
Wenn du Elido nach Kosten bewertest: Der MCP-Server ist in allen Plänen verfügbar - die Tool-Aufrufe zählen gegen dieselben API-Rate-Limits wie jeder andere Client. Die oben beschriebene Sichtbarkeit im Audit-Log erfordert Pro oder höher. Auf der Pricing-Seite findest du den vollständigen Plan-Vergleich.
- Marius
Elido testen
URL einfügen, kurzer Link in Sekunden
Kein Konto nötig. Link bleibt 30 Tage aktiv. Konto erstellen, um ihn dauerhaft zu behalten.
Kostenlos, keine Anmeldung erforderlich · 2 pro Tag