Aller au contenu

Serveur MCP

De quoi il s’agit

Le Model Context Protocol (MCP) est un standard ouvert qui permet à un assistant IA d’appeler des outils d’un autre service. Dotwick exploite un serveur MCP pour qu’un assistant puisse lister vos codes, les créer et les modifier, les étiqueter et lire vos chiffres de scans.

Le serveur est une fine couche au-dessus de cette API. Chacun de ses 11 outils appelle une route de l’API avec le scope de cette route, sous les mêmes limites de débit : un assistant peut faire ce que sa clé ferait à la main, et rien de plus. Rien ne se supprime : retirer des codes, des dossiers ou des étiquettes reste dans l’appli et l’API REST, donc aucune instruction ne peut casser un code imprimé.

Avant de commencer

MCP fait partie de l’accès à l’API (Pro, Business et Enterprise). Dans l’appli, ouvrez Settings → API et créez une clé avec les scopes dont l’assistant a besoin : les scopes de lecture suffisent pour des questions sur vos scans, et codes:write, folders:write ou tags:write lui permettent de modifier.

L’assistant ne voit que les outils que sa clé autorise : une clé en lecture seule ne liste jamais create_code. Chaque appel d’outil compte pour une requête d’API sur la limite de débit et le total mensuel de la clé ; lister les outils ne compte pas.

Le connecter

Le serveur parle Streamable HTTP sur https://api.dotwick.com/mcp. Envoyez la clé comme jeton bearer dans l’en-tête Authorization.

exempleAjouter le serveur
claude mcp add --transport http dotwick https://api.dotwick.com/mcp \  --header "Authorization: Bearer $DOTWICK_API_KEY"

Claude, ChatGPT et autres clients

Claude Code ajoute le serveur avec la commande ci-dessus. Les clients qui lisent un fichier de configuration MCP, comme Cursor et VS Code, prennent le bloc JSON : gardez la clé dans une variable d’environnement et référencez-la, ne l’écrivez jamais dans le fichier.

ChatGPT et les autres applis qui ajoutent un serveur MCP distant par son URL : saisissez l’URL du serveur et envoyez la clé comme jeton bearer là où l’appli demande une clé d’API ou un en-tête. Une appli qui ne sait se connecter qu’avec OAuth ne peut pas encore se connecter. OAuth est prévu ; aujourd’hui, le serveur s’atteint avec des clés d’API.

Outils

Chaque outil correspond à une route de l’API et exige le scope de cette route. Les outils de liste renvoient jusqu’à 50 éléments et un curseur pour la page suivante.

list_codes
Liste les QR codes de l’espace de travail, du plus récent au plus ancien. Filtre par dossier, étiquettes, type, statut ou recherche sur le nom et le lien court.codes:read · GET /v1/codes
get_code
Un QR code avec sa destination, ses règles, ses étiquettes et ses scans cumulés.codes:read · GET /v1/codes/{id}
create_code
Crée un QR code qui ouvre une page web. Dynamique par défaut (la destination peut changer après l’impression). Dossier, étiquettes et paramètres UTM facultatifs.codes:write · POST /v1/codes
update_code
Modifie le nom, l’URL de destination, le dossier, les étiquettes ou la date d’expiration d’un code, ou le met en pause et le reprend.codes:write · PATCH /v1/codes/{id}
list_folders
Les dossiers de l’espace de travail.folders:read · GET /v1/folders
create_folder
Crée un dossier, éventuellement dans un autre.folders:write · POST /v1/folders
list_tags
Les étiquettes de l’espace de travail et le nombre de codes pour chacune.tags:read · GET /v1/tags
create_tag
Crée une étiquette avec un nom et une couleur.tags:write · POST /v1/tags
tag_codes
Ajoute ou retire des étiquettes sur jusqu’à 500 codes à la fois.codes:write · POST /v1/codes/tags
analytics_summary
Scans totaux et uniques sur une période : l’espace de travail, un code, un dossier ou une étiquette.analytics:read · GET /v1/analytics/summary
analytics_breakdown
Principaux pays, villes, appareils, navigateurs, codes ou variantes A/B sur une période.analytics:read · GET /v1/analytics/breakdown

Limites et sécurité

  • La clé garde sa restriction de dossiers, ses plages d’IP et ses limites de débit : via MCP, elle ne voit que ce qu’elle voit via l’API REST.
  • Rien ne peut être supprimé via MCP.
  • Un assistant peut se tromper. Demandez-lui d’annoncer ce qu’il va modifier avant d’écrire, et vérifiez le résultat dans l’appli.