16 min de lectureFonctionnalités
Pilier

Connecter Elido à Claude et Cursor via MCP - un guide pratique

Comment brancher @elido/mcp-server dans Claude Desktop et Cursor pour que votre agent IA puisse raccourcir des URL, générer des QR codes et interroger l'analytique des clics directement dans votre flux de travail - sans le quitter.

Marius Voß
DevRel · edge infra
Diagram showing Claude Desktop and Cursor connecting through the MCP stdio transport to the Elido MCP server, which sits in front of the Elido REST API

Si vous avez passé un peu de temps avec Claude Desktop ou Cursor au cours des six derniers mois, vous avez probablement remarqué le panneau d'outils - une liste d'actions nommées que l'agent peut invoquer en pleine conversation. Ces outils proviennent d'un serveur MCP. Ce billet explique ce que cela signifie, pourquoi un raccourcisseur d'URL s'y prête naturellement, et comment brancher @elido/mcp-server dans les deux clients afin que l'agent puisse raccourcir des URL, générer des QR codes et extraire des répartitions de clics sans que vous ayez à quitter l'éditeur.

Ce qu'est MCP#

Le Model Context Protocol est un petit standard ouvert qui permet à un client IA - Claude Desktop, Cursor ou tout framework d'agent compatible - de découvrir et d'appeler des outils externes via une interface JSON-RPC uniforme. Le processus serveur tourne localement sur votre machine (ou sur un hôte que vous contrôlez), expose une liste d'outils typés et communique avec le client via l'entrée/sortie standard. Le client envoie une requête d'appel d'outil, le serveur exécute le travail, et le résultat remonte dans la conversation en tant que contexte. Le modèle ne voit jamais votre clé API ; le serveur, si. L'ensemble du protocole filaire tient en quelques kilo-octets par message ; il n'y a aucun SDK à installer côté client, et le serveur peut être écrit dans n'importe quel langage capable de lire stdin et d'écrire sur stdout.

En version courte : MCP est une manière standardisée pour un client IA d'appeler du code que vous contrôlez. L'agent décrit l'intention, l'outil fait le travail, l'agent intègre le résultat.

Diagramme d'architecture : Claude Desktop et Cursor se connectent via le transport stdio JSON-RPC au serveur MCP Elido local, qui effectue des requetes Bearer authentifiees vers l'API REST Elido sur api.elido.app, la cle API restant dans le serveur sans jamais etre vue par le modele

Pourquoi un raccourcisseur d'URL s'y prête bien#

Le point de friction des liens courts dans n'importe quel flux de contenu est le même : vous êtes en train de rédiger un email ou un brief de campagne, vous avez besoin d'une URL courte brandée pour le CTA, et vous devez basculer vers le dashboard, créer le lien, le copier, revenir, puis le coller. Ce changement de contexte coûte trente secondes mais, surtout, casse le flux de rédaction.

MCP élimine ce changement de contexte. Lorsque @elido/mcp-server est connecté, l'agent peut appeler create_link en ligne - l'URL courte apparaît dans la conversation et vous poursuivez. Le même principe s'applique à des cas moins évidents :

  • Rédaction d'une annonce de lancement produit qui nécessite cinq liens UTM par canal : l'agent peut appeler create_link cinq fois de suite avec des tags différents, puis insérer les cinq dans le texte.
  • Demander à l'agent de produire un QR code pour un support imprimé : generate_qr retourne un artefact SVG que l'agent expose dans le contexte.
  • Passer en revue les performances de la campagne de la semaine dernière : query_analytics extrait une série chronologique de clics pour n'importe quel lien ou pour l'ensemble du workspace, corrigée du fuseau horaire, sans que vous ayez à vous connecter au dashboard.

Aucun de ces cas n'exige que le modèle comprenne votre API. Ils exigent que @elido/mcp-server traduise un appel d'outil typé en une requête REST authentifiée, et restitue le résultat.

Le serveur MCP Elido s'inscrit naturellement dans ce modèle. C'est un processus Node local qui se place entre le client IA et l'API REST Elido. Lorsque l'agent appelle create_link, le serveur traduit cet appel en une requête authentifiée POST /v1/workspaces/{id}/links, gère la résolution du workspace et retourne le résultat sous forme de texte structuré que l'agent peut lire. La clé API ne quitte jamais le processus serveur ; le client ne voit que le résultat de l'outil.

Ce que le serveur propose aujourd'hui#

@elido/mcp-server est publié sous le nom @elido/mcp-server sur npm (Apache-2.0, version 0.1.x). Les sources se trouvent à packages/mcp-server/ dans le monorepo Elido. Il utilise le transport MCP stdio - JSON-RPC 2.0 délimité par lignes sur stdin/stdout - et n'a aucune dépendance d'exécution au-delà de Node 20+. Il n'utilise pas le paquet officiel @modelcontextprotocol/sdk ; la couche filaire est écrite à la main pour garder le paquet petit et facile à auditer avant de lui confier une clé API.

Les cinq outils disponibles en 0.1.x :

OutilCe qu'il fait
create_linkRaccourcit une URL avec slug, domaine, titre et tags optionnels. Retourne l'enregistrement complet du lien y compris l'URL courte.
list_linksListe les liens récents du workspace, paginé.
query_analyticsSérie chronologique du nombre de clics pour le workspace ou un lien unique, regroupée par heure ou par jour dans n'importe quel fuseau IANA.
generate_qrGénère un QR code (SVG ou PNG) pour un lien existant.
list_workspacesÉnumère les workspaces auxquels la clé API a accès.

Les opérations d'administration de workspace - invitation de membres, rotation des clés API, configuration des domaines personnalisés, gestion de la facturation - sont volontairement absentes de la surface MCP. Elles restent dans le dashboard. La surface des outils est limitée aux choses dont un agent de travail sur du contenu ou des campagnes a réellement besoin en ligne.

Les cinq outils MCP qu'Elido expose en version 0.1.x : create_link et generate_qr necessitent l'acces en ecriture aux liens, list_links et list_workspaces necessitent l'acces en lecture aux liens, et query_analytics necessite l'acces en lecture a l'analytique, tandis que les operations d'administration comme l'invitation de membres et la gestion de la facturation sont volontairement exclues et restent dans le dashboard

Obtenir une clé API#

Avant de configurer l'un ou l'autre client, vous avez besoin d'une clé API scopée au workspace dans lequel l'agent doit opérer.

  1. Ouvrez Paramètres → Clés API dans le dashboard Elido.
  2. Cliquez sur Nouvelle clé, donnez-lui un nom qui identifie l'agent (par ex. claude-desktop-mcp), et sélectionnez le scope Link read/write + Analytics read. N'accordez pas de scope admin de workspace sauf raison spécifique.
  3. Copiez la clé - elle n'est affichée qu'une seule fois. Vous aurez aussi besoin de l'identifiant numérique du workspace, visible dans Paramètres → Workspace → Général.

Gardez la clé hors du contrôle de version. Les fichiers de configuration MCP décrits ci-dessous se trouvent dans votre répertoire utilisateur ou dans un chemin local au projet ; ne committez ni l'un ni l'autre dans un dépôt partagé.

Pour en savoir plus sur les scopes de clés API et le journal d'audit qui trace chaque appel d'outil, voir la documentation des clés API.

Configurer Claude Desktop#

Claude Desktop lit sa liste de serveurs MCP depuis un fichier JSON situé à :

  • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows : %APPDATA%\Claude\claude_desktop_config.json

Si le fichier n'existe pas, créez-le. Ajoutez le bloc serveur elido à l'intérieur de mcpServers :

{
  "mcpServers": {
    "elido": {
      "command": "npx",
      "args": ["-y", "@elido/mcp-server"],
      "env": {
        "ELIDO_API_KEY": "elido_pk_your_key_here",
        "ELIDO_WORKSPACE_ID": "42"
      }
    }
  }
}

Remplacez elido_pk_your_key_here par votre clé réelle et 42 par votre identifiant de workspace.

ELIDO_WORKSPACE_ID est optionnel si la clé a accès à exactement un workspace - le serveur le résoudra automatiquement. Définissez-le explicitement lorsque la clé peut voir plus d'un workspace ; sans cela, le serveur doit faire un aller-retour supplémentaire à chaque appel d'outil nécessitant un workspace, et le comportement est imprévisible si l'accès s'étend plus tard à un second workspace.

Après avoir enregistré le fichier, quittez et relancez Claude Desktop. Les outils Elido apparaissent dans le panneau d'outils. S'ils n'apparaissent pas, vérifiez la console développeur de Claude Desktop (Aide → Afficher les outils développeur) pour la sortie stderr du processus serveur - la cause la plus fréquente est une faute de frappe dans la clé ou un chemin command qui ne résout pas.

Si vous préférez épingler la version exacte du paquet plutôt que de tirer la dernière via npx, installez-le globalement d'abord :

npm install -g @elido/[email protected]

Puis remplacez la paire command / args :

{
  "command": "elido-mcp-server",
  "args": []
}

Configurer Cursor#

Cursor prend en charge une configuration MCP locale au projet via un fichier .cursor/mcp.json à la racine du workspace. Le format est identique au bloc mcpServers de Claude Desktop :

{
  "mcpServers": {
    "elido": {
      "command": "npx",
      "args": ["-y", "@elido/mcp-server"],
      "env": {
        "ELIDO_API_KEY": "elido_pk_your_key_here",
        "ELIDO_WORKSPACE_ID": "42"
      }
    }
  }
}

Créez .cursor/mcp.json à la racine du projet (ajoutez-le à .gitignore si le dépôt est partagé - le fichier contient une clé API active). Ouvrez Cursor Settings → Features → MCP, vérifiez que le serveur est listé et affiche un indicateur de statut vert, puis redémarrez le panneau de l'agent. Les outils Elido apparaîtront dans la liste d'outils du Composer.

Vous pouvez aussi configurer un fichier MCP global Cursor à ~/.cursor/mcp.json si vous voulez les outils disponibles sur tous les projets sans fichier de configuration par projet. Les règles de précédence suivent le même schéma que Claude Desktop.

Exemple de session : rédiger un email de campagne et raccourcir le CTA#

Voici à quoi ressemble une vraie interaction une fois le serveur connecté. La transcription de l'agent est condensée mais reflète la forme réelle de l'appel d'outil.

Un aller-retour create_link : l'agent LLM demande create_link avec une URL, un slug et des tags, l'outil MCP traduit l'appel et resout le workspace, l'API traite le POST et persiste l'enregistrement du lien, et l'enregistrement du lien court est retourne pour que l'agent insere l'URL courte dans le chat

Utilisateur : Rédige un court email de campagne pour notre vente de printemps. Le CTA doit pointer vers https://shop.example.com/spring-2026 - raccourcis-le avec le tag spring-2026 et utilise le slug spring s'il est disponible.

Claude : Je vais d'abord raccourcir l'URL, puis rédiger l'email autour du résultat.

[Appel d'outil : create_link]

{
  "destination_url": "https://shop.example.com/spring-2026",
  "slug": "spring",
  "title": "Spring 2026 sale CTA",
  "tags": ["spring-2026"]
}

[Résultat de l'outil]

{
  "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 : Le lien court est https://s.elido.me/spring. Voici le brouillon d'email :

Objet : Vente de printemps - jusqu'à 40 % de réduction, cette semaine uniquement

Bonjour [Prénom],

Notre vente de printemps est lancée. Nouveautés, lignes en déstockage, et quelques pièces que nous gardions pour le bon moment.

Découvrir la vente → https://s.elido.me/spring

Se termine dimanche. Pas de code nécessaire.


L'agent a appelé create_link avec les paramètres de votre prompt, a reçu en retour l'enregistrement canonique du lien et a utilisé le champ short_url dans le brouillon. Si le slug spring avait été pris, l'API aurait retourné un 409 et l'agent aurait essayé une alternative ou exposé le conflit pour que vous le résolviez.

Notez que domain_id n'a pas été fourni dans l'appel d'outil. Le serveur le résout automatiquement : si aucun domain_id n'est donné, il récupère la liste des domaines du workspace et choisit le premier domaine vérifié. Pour les workspaces du plan gratuit, c'est f.elido.me ; pour les workspaces payants, c'est s.elido.me ou un domaine personnalisé si un est configuré. Si vous voulez un domaine spécifique, passez son identifiant numérique explicitement - vous pouvez le retrouver avec list_workspaces ou depuis le dashboard.

Vous pouvez aussi demander à l'agent de gérer plusieurs liens en un seul tour. « Crée des liens taggés UTM pour email, Twitter et LinkedIn - tous pointant vers la page de la vente de printemps » se traduira par trois appels séquentiels à create_link avec des jeux de tags différents, et l'agent présentera les trois URL courtes dans un tableau que vous pouvez coller directement dans un brief de campagne. Ce schéma remplace une session manuelle dans le constructeur d'UTM du dashboard pour la mise en place de campagnes routinières, mais il ne prend pas encore en charge le système de templates UTM au niveau workspace (couvert dans le guide UTM tracking) - ce niveau d'automatisation passe toujours par l'API REST.

Exemple de session : interroger des répartitions de clics#

Le second schéma est l'extraction d'analytique pendant une revue de campagne sans ouvrir le dashboard.


Utilisateur : Comment les liens spring-2026 ont-ils performé la semaine dernière ? Détaille par jour, heure de Berlin.

Claude : Laisse-moi extraire la série chronologique pour ce lien.

[Appel d'outil : query_analytics]

{
  "link_id": 1847,
  "from": "2026-05-04",
  "to": "2026-05-10",
  "interval": "day",
  "tz": "Europe/Berlin"
}

[Résultat de l'outil]

{
  "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 : Le lien de printemps a reçu 4 734 clics la semaine dernière. Mercredi-jeudi était le pic (701 → 1 204), ce qui correspond aux envois d'email de milieu de semaine. Le trafic a chuté pendant le week-end. Si vous avez envoyé l'email de campagne jeudi matin heure de Berlin, le pic suit.

Pour comparer plusieurs liens, demandez à l'agent d'appeler query_analytics une fois par lien et de compiler les résultats. Cela fait quelques appels d'outil de plus mais l'agent gère la boucle ; vous obtenez un tableau côte-à-côte sans ouvrir le dashboard ni écrire un script.


Le paramètre tz garantit que les buckets quotidiens s'alignent sur votre minuit local, et non sur UTC. Un email de campagne envoyé à 9h CET que vous interrogez en UTC verra le trafic de son premier jour réparti sur deux jours UTC - tz: Europe/Berlin évite cela. Le support des fuseaux horaires provient du travail d'analytique de la Phase 6.A décrit sur la page du serveur MCP.

Sécurité - scoper la clé, ce que le serveur demande, le journal d'audit#

Quelques points à connaître avant de mettre cela entre les mains d'une équipe.

Scopez la clé étroitement. Les outils create_link et generate_qr ont besoin de l'accès en écriture aux liens. query_analytics nécessite l'accès en lecture à l'analytique. list_links et list_workspaces nécessitent l'accès en lecture aux liens. Si votre flux est en lecture seule - extraire des métriques pendant une revue - créez une clé avec analytics read + link read uniquement et passez-la au serveur. Le serveur n'appellera que les endpoints que la clé permet ; tout le reste renvoie un 403 qui apparaît comme erreur dans la réponse de l'agent.

Ce que le serveur envoie. Chaque appel d'outil devient une requête authentifiée vers api.elido.app avec Authorization: Bearer <key>. Le serveur envoie l'en-tête User-Agent: elido-mcp-server/0.1.0 sur chaque requête ; cette chaîne est visible dans le journal d'audit. Aucune donnée n'est envoyée à Anthropic ni à un service tiers par le serveur lui-même - le serveur MCP est un processus local qui sert d'intermédiaire entre le client et l'API Elido. Les données que le client IA envoie à son propre backend (votre prompt Claude Desktop, les résultats d'outils qui reviennent dans le contexte) sont régies par les politiques de données d'Anthropic ou de Cursor, pas par Elido.

Journal d'audit. Chaque appel d'API que le serveur MCP effectue apparaît dans Paramètres → Journal d'audit dans le dashboard, étiqueté avec le nom de la clé et l'IP d'origine. Si vous voyez des appels d'outil inattendus, faites tourner la clé immédiatement depuis Paramètres → Clés API. Le journal d'audit est disponible sur les plans Pro et Business.

La clé dans le fichier de configuration. Le bloc env dans claude_desktop_config.json et .cursor/mcp.json stocke la clé en clair. Sur une machine personnelle c'est acceptable ; dans un environnement partagé ou géré, préférez injecter la clé via le trousseau système ou un gestionnaire de secrets et la référencer via une variable d'environnement que la configuration MCP lit indirectement. Pour les configurations d'équipe, chaque membre doit avoir sa propre clé - les clés partagées rendent l'attribution dans le journal d'audit dénuée de sens.

Limites assumées#

Quelques choses que le serveur MCP ne fait pas, par conception.

Pas d'opérations d'administration de workspace. Inviter des membres, configurer des domaines personnalisés, gérer la facturation du plan, créer ou supprimer des workspaces - rien de cela n'est dans la surface des outils. Ces opérations sont assez lourdes de conséquences pour qu'exiger un humain connecté dans le dashboard soit le bon contrôle. La surface MCP est volontairement limitée au travail dont un agent de contenu ou de campagne a besoin en ligne. Si vous devez automatiser le provisionnement de workspaces, l'API REST et le provider Terraform sont les bons outils.

Pas de streaming temps réel. Le transport actuel est stdio avec requête/réponse synchrone. Le transport SSE est sur la roadmap. Pour la plupart des flux d'agent - créer un lien, obtenir un QR code, extraire une série chronologique hebdomadaire - le modèle synchrone convient. Pour un cas d'usage qui nécessite de streamer une grande liste de liens ou de surveiller un compteur de clics en direct, le dashboard ou l'API REST est le bon outil aujourd'hui.

Les limites de débit s'appliquent. L'API Elido applique des limites de débit par clé indépendamment du fait que l'appelant soit un humain, un script ou un serveur MCP. Les limites par tier de plan sont dans la référence de l'API. Les flux d'agent qui appellent create_link en boucle serrée - création massive de centaines de liens par programmation - devraient utiliser l'endpoint d'import en masse REST (POST /v1/links/bulk) directement, plutôt que de lancer des centaines d'appels d'outil create_link individuels. Le serveur MCP est optimisé pour un usage interactif en ligne ; les opérations en masse relèvent de la surface de scripting.

query_analytics ne retourne que des nombres de clics. La série chronologique que l'outil query_analytics retourne est un nombre de clics regroupé par temps. Elle ne retourne pas de répartition géographique, de découpe par appareil, de données de referrer ni d'attribution de conversion. Celles-ci sont disponibles dans le dashboard et via l'API REST d'analytique complète mais ne font pas partie de la surface d'outils MCP actuelle. Si votre flux d'agent nécessite une répartition par pays par lien, appelez directement l'API REST.

Pour aller plus loin#

Les sources du serveur et le suivi des tickets sont à packages/mcp-server/ dans le monorepo Elido. Le paquet est publié avec npm provenance, de sorte que chaque release est cryptographiquement liée au commit à partir duquel elle a été construite - auditer l'artefact publié est simple.

La page d'intégration MCP contient la référence des outils, la matrice de scopes et la configuration self-host pour pointer ELIDO_API_BASE vers une instance Elido privée. Si vous êtes sur un plan qui inclut la configuration MCP de workspace, la page couvre aussi le flux de rotation des clés d'équipe.

Les deux configurations qui valent le plus la peine d'être essayées en premier :

  1. Branchez Claude Desktop comme décrit ci-dessus, ouvrez une nouvelle conversation et tapez « raccourcis https://example.com/test avec le tag mcp-test ». Regardez l'appel d'outil se déclencher et l'URL courte apparaître dans la réponse. La configuration complète devrait prendre moins de cinq minutes.

  2. Si vous utilisez déjà Cursor pour du travail de contenu ou de docs, déposez .cursor/mcp.json à la racine du projet et demandez au Composer de « résumer les liens les plus performants de la semaine dernière par nombre de clics ». Les appels list_links et query_analytics se font en ligne et l'agent écrit le résumé directement dans le chat.

Les deux sont en bêta (0.1.x) - la surface d'outils va grandir, mais les entrées d'outil existantes ne casseront pas dans la plage 0.1.x. Si quelque chose ne fonctionne pas comme décrit ici, ouvrez un ticket avec le label area:mcp et nous le traiterons comme une régression.

Articles associés sur le blog#

Si vous évaluez Elido sur le coût, le serveur MCP est disponible sur tous les plans - les appels d'outil comptent dans les mêmes limites de débit d'API que n'importe quel autre client. La visibilité du journal d'audit décrite plus haut requiert Pro ou supérieur. Voir la page de tarifs pour la comparaison complète des plans.

  • Marius

Essayer Elido

Collez une URL, obtenez un lien court

Sans inscription. Lien actif 30 jours. Inscrivez-vous pour le garder pour toujours.

Gratuit, sans inscription · 2 par jour

Essayer Elido

Raccourcisseur d'URL hébergé en UE : domaines personnalisés, analyses approfondies et API ouverte. Forfait gratuit - sans carte bancaire.

Tags
mcp
model context protocol
claude
cursor
ai integration
url shortener
developer experience
automation

Lire la suite