Connecter Cursor à votre outil de suivi de projet via MCP : lire le ticket, l'implémenter, commenter en retour
Ajoutez un serveur MCP distant à Cursor dans .cursor/mcp.json, connectez-vous en OAuth et laissez l'agent lire le ticket et commenter. URL Atrix, Linear et Jira.
Sur cette page
- Ce que la connexion vous apporte vraiment
- Étape 1 : choisir le serveur et son URL
- Étape 2 : l'ajouter dans .cursor/mcp.json
- Étape 3 : s'authentifier en OAuth, pas avec une clé collée
- Étape 4 : laisser l'agent lire le ticket et commenter en retour
- Périmètres, audit et limites côté Atrix
- Dépanner les pannes habituelles
- FAQ
- Prochaine étape
Pour connecter Cursor à votre outil de suivi de projet, ajoutez le serveur MCP distant de l'outil dans .cursor/mcp.json avec une seule entrée url, laissez Cursor ouvrir le navigateur pour OAuth, et dès lors l'agent peut lire le ticket qu'il implémente, charger ses critères d'acceptation dans le contexte, et poster un commentaire ou changer le statut une fois le travail terminé. Aucune clé d'API n'est collée nulle part ; le jeton que Cursor conserve est limité à des périmètres et révocable.
C'est ainsi que nous travaillons chez Atrix, où l'outil de suivi est notre propre espace de travail. Les mêmes étapes valent pour Linear et Jira, dont les endpoints figurent plus bas. Les détails de configuration ont été vérifiés dans la documentation de Cursor en octobre 2026.
Ce que la connexion vous apporte vraiment
Sans MCP, la boucle est la suivante : ouvrir le ticket dans un onglet, copier la description dans le chat, implémenter, puis retourner mettre le ticket à jour à la main. L'étape de copie perd les commentaires, l'exigence liée et les étiquettes, et l'étape de mise à jour saute quand on est fatigué.
Avec un serveur MCP distant connecté, l'agent de Cursor dispose d'outils comme « lire un ticket », « lister les tickets », « commenter un ticket » et « changer le statut ». Vous écrivez « implémente ATR-212 » et l'agent récupère le ticket, lit les critères d'acceptation et le fil, fait le travail, et termine par un commentaire qui dit ce qu'il a changé et dans quels fichiers. Le ticket reste la source de vérité, et l'agent le lit tel quel plutôt qu'une paraphrase.
Ce que la connexion ne donne pas, c'est du jugement. L'agent implémentera volontiers, et mal, un ticket mal écrit. La connexion supprime la copie, pas la réflexion.
Étape 1 : choisir le serveur et son URL
Chaque outil de suivi publie un endpoint MCP distant. En octobre 2026 :
| Outil | URL MCP distante | Authentification | Option lecture seule |
|---|---|---|---|
| Atrix AI | https://atrix.dev/api/mcp | OAuth 2.1, jeton à périmètres | N'accorder que des périmètres *.read |
| Linear | https://mcp.linear.app/mcp | OAuth 2.1 avec enregistrement dynamique du client ; clé d'API acceptée aussi | https://mcp.linear.app/mcp/readonly |
| Jira (Atlassian Rovo MCP) | https://mcp.atlassian.com/v2/mcp | OAuth 2.1 ; jeton d'API facultatif | Pas d'endpoint distinct |
Les trois utilisent Streamable HTTP, que Cursor prend en charge nativement. La documentation de Linear précise que son ancien endpoint SSE est un repli déprécié. Si un outil ne fournit qu'un serveur local (stdio), Cursor l'exécute aussi, mais vous perdez le flux OAuth et vous retrouvez à gérer une clé d'API dans une variable d'environnement.
Étape 2 : l'ajouter dans .cursor/mcp.json
Cursor lit deux fichiers : .cursor/mcp.json à la racine du projet pour les serveurs propres au projet, et ~/.cursor/mcp.json pour les serveurs disponibles partout. Un outil de suivi va dans le fichier du projet si le dépôt correspond à un produit, et dans le fichier global si vous travaillez sur plusieurs.
L'entrée distante est une url sous mcpServers ; headers est facultatif et ne sert qu'aux jetons statiques :
{
"mcpServers": {
"atrix": {
"url": "https://atrix.dev/api/mcp"
}
}
}
Pour Linear, remplacez le nom et l'URL par https://mcp.linear.app/mcp ; pour Jira, https://mcp.atlassian.com/v2/mcp. La documentation de Cursor montre la même forme pour tous les serveurs distants et accepte l'interpolation ${env:NAME} dans url et headers si vous avez un jour besoin d'un en-tête.
Enregistrez le fichier. Cursor le détecte sans redémarrage et liste le serveur sous Customize dans la barre latérale, où un interrupteur l'active ou le désactive. Un serveur désactivé ne se charge pas et ses outils n'apparaissent pas dans le chat.
Étape 3 : s'authentifier en OAuth, pas avec une clé collée
La première fois que l'agent appelle un outil, le serveur répond 401 avec un pointeur vers son serveur d'autorisation, Cursor s'enregistre comme client public (enregistrement dynamique du client) et ouvre votre navigateur. Vous vous connectez, voyez les périmètres demandés, approuvez, et le jeton arrive dans Cursor. Cursor utilise le flux par code d'autorisation avec PKCE, et ses deux URL de redirection sont fixes : https://www.cursor.com/agents/mcp/oauth/callback pour le web et les Cloud Agents, et http://localhost:8787/callback pour l'application de bureau.
Pourquoi c'est mieux qu'une clé dans headers : le jeton est limité à ce que vous avez approuvé, il se renouvelle seul, et le révoquer dans l'outil coupe l'accès de Cursor immédiatement. Un jeton d'accès personnel dans un fichier JSON est un secret de longue durée sur disque que tout agent de ce projet peut lire. Réservez la voie de l'en-tête à la CI, où il n'y a pas de navigateur.
Si un serveur ne gère pas l'enregistrement dynamique, Cursor accepte aussi un objet auth avec CLIENT_ID, CLIENT_SECRET facultatif et scopes sur l'entrée distante.
Étape 4 : laisser l'agent lire le ticket et commenter en retour
Approuvez d'abord les outils de lecture, puis une écriture à la fois. Par défaut, Cursor demande une approbation avant d'utiliser un outil MCP ; les Run Modes qui régissent les commandes de terminal s'appliquent aussi aux outils MCP, donc en mode auto-review les outils de la liste autorisée s'exécutent immédiatement et tout le reste passe par le classifieur.
Un prompt qui fonctionne :
Implémente ATR-212. Lis d'abord le ticket et ses commentaires, suis les
critères d'acceptation et, une fois terminé, commente le ticket avec les
fichiers modifiés et ce que tu n'as pas pu faire.
L'agent appelle work_get_issue (ou get_issue sur Linear, getJiraIssue sur Atlassian), implémente, puis appelle l'outil de commentaire. Nous ne le laissons pas changer le statut seul : un commentaire est du bruit réversible ; un « Terminé » sur un travail à moitié fait est un mensonge dans l'outil de suivi. Les changements de statut restent humains, ou au moins derrière une approbation par appel.
Deux habitudes qui aident :
- Mettez la clé du ticket dans le nom de la branche.
atr-212-booking-reminders. L'agent et vous savez quel ticket est en jeu, et le commentaire part au bon endroit. - Demandez un commentaire, pas un résumé dans le chat. Le chat défile et disparaît ; le ticket est l'endroit où la prochaine personne regarde.
Périmètres, audit et limites côté Atrix
Le serveur MCP d'Atrix AI expose 85 outils sous OAuth 2.1 et figure dans l'Official MCP Registry et sur Glama. Quand Cursor se connecte, vous choisissez des périmètres dans une liste de 49 attribuables (en octobre 2026). Un périmètre d'écriture implique sa lecture (work.write inclut work.read) ; les périmètres nommés comme feed.post ne sont jamais implicites et doivent être accordés volontairement. Un jeton ne peut jamais faire plus que la personne qui l'a créé, et les permissions sont résolues à chaque appel : retirer à quelqu'un l'accès aux montants des affaires le retire aussi de tous les jetons qu'il a émis. Les données de paie ne sont pas attribuables du tout.
Pour une connexion Cursor, nous accordons d'abord work.read et projects.read, puis ajoutons work.write une fois que l'étape de commentaire l'a mérité. Chaque appel est audité avec l'outil, le résultat, le type de sujet et son id, jamais le contenu, et les limites sont de 120 appels et 30 écritures par minute et par jeton. La documentation développeurs liste les outils et les périmètres ; la page d'intégration Cursor propose l'ajout en un clic.
Là où Atrix est plus faible que Linear pour cette tâche : l'endpoint de Linear a une URL dédiée en lecture seule, donc un coéquipier prudent peut se connecter sans voir de sélecteur de périmètres. Dans Atrix, vous obtenez le même résultat en n'accordant que des périmètres de lecture, ce qui coûte une décision de plus. Le serveur de Jira atteint aussi Confluence et Bitbucket, ce qui compte si vos spécifications y vivent.
Dépanner les pannes habituelles
- « Aucun outil » après l'ajout du serveur. Vérifiez l'interrupteur sous Customize et la validité du JSON : une virgule finale casse tout le fichier en silence.
- Boucle OAuth ou « redirection invalide ». Le fournisseur doit accepter les URL de rappel fixes de Cursor. Un SSO d'entreprise qui bloque les redirections vers
localhostcasse le flux bureau. - Les outils s'exécutent mais renvoient 403. Les périmètres. Vous avez accordé la lecture et l'agent a tenté d'écrire. Réautorisez avec le périmètre d'écriture, ou gardez l'écriture pour vous.
- L'agent lit le mauvais ticket. Il a deviné à partir d'un prompt vague. Donnez-lui la clé, pas « le bug des réservations ».
- Trop d'outils embrouillent le modèle. Désactivez les serveurs inutilisés aujourd'hui ; Cursor ne charge que ceux qui sont activés.
FAQ
Cursor prend-il en charge les serveurs MCP distants avec OAuth ?
Oui. En octobre 2026, la documentation de Cursor décrit des serveurs distants configurés avec une entrée url dans mcp.json, OAuth avec le flux par code d'autorisation et PKCE, et l'enregistrement dynamique du client quand le serveur le permet. Cursor s'enregistre comme client public.
Où se trouve le fichier de configuration MCP de Cursor ?
.cursor/mcp.json à la racine du projet pour ce projet, ou ~/.cursor/mcp.json dans votre dossier personnel pour tous les projets. Les deux utilisent un objet mcpServers dont vous choisissez les clés.
Cursor peut-il lire des tickets Linear ou Jira via MCP ?
Oui. Le serveur de Linear est à https://mcp.linear.app/mcp (lecture seule à /mcp/readonly), et le serveur Rovo MCP d'Atlassian pour Jira et Confluence est à https://mcp.atlassian.com/v2/mcp. Les deux documentent Cursor comme client pris en charge et utilisent OAuth 2.1.
L'agent doit-il pouvoir fermer des tickets ?
Nous ne l'autorisons pas par défaut. Les commentaires sont sûrs ; les changements de statut doivent passer par un humain ou une approbation par appel. Cursor demande avant d'exécuter un outil MCP sauf si vous l'avez mis en liste autorisée.
Une clé d'API dans mcp.json est-elle acceptable ?
Pour la CI, où il n'y a pas de navigateur, oui, dans une variable d'environnement interpolée avec ${env:NAME}. Sur un portable, préférez OAuth : le jeton est limité, renouvelable et révocable, et rien de longue durée ne traîne dans un fichier.
Qu'est-ce qu'un serveur MCP distant ?
Un serveur MCP joint en HTTPS plutôt que lancé comme processus local. Il s'authentifie en OAuth et peut être partagé par toute une équipe. Voir l'entrée du glossaire pour la définition et la différence avec les serveurs stdio.
Prochaine étape
Ajoutez aujourd'hui un serveur avec des périmètres de lecture et lancez un seul prompt « implémente ce ticket » ; en une heure vous saurez si l'étape de commentaire mérite d'être activée. Si votre outil est Atrix, la page d'intégration Cursor donne l'entrée exacte à coller, et la page de la fonction MCP indique ce que chaque périmètre débloque.