tabkit
Faire lire Jira et Confluence à votre agent IA via l'onglet Chrome où vous êtes connecté
tabkit permet à Claude Code, GitHub Copilot ou Codex de lire vos tickets Jira et vos pages Confluence avec la session que vous avez déjà ouverte dans Chrome. Pas de jeton d'API Atlassian : une petite extension Chrome exécute chaque requête dans un onglet Atlassian.
C'est le frère de pilotkit. pilotkit garde un jeton d'API dans le trousseau du système et fonctionne sans navigateur. tabkit n'a besoin d'aucun jeton, et s'arrête quand Chrome est fermé. Prenez celui que votre entreprise autorise.
Comment ça marche
Deux morceaux tournent sur votre machine : un serveur MCP Node que votre agent lance, et une extension dans Chrome.
- Votre agent appelle un outil, par exemple
jira_get_issue. - Le serveur transmet la requête à l'extension par un WebSocket sur
127.0.0.1. - L'extension exécute un
fetch()dans un onglet de votre site Atlassian, avecchrome.scripting. - La requête part de la même origine, donc Chrome y ajoute votre session lui-même, comme pour les pages de Jira. La réponse revient par le même chemin.
L'extension ne lit jamais vos cookies, et le serveur ne voit que le statut et le corps JSON.
Le point intéressant : s'appairer sans envoyer le secret
Un port sur localhost est ouvert à tous les programmes de la machine. Le serveur n'accepte donc qu'une origine chrome-extension://, et les deux côtés partagent un jeton d'appairage. Chacun prouve qu'il le connaît avec un HMAC-SHA256 sur une valeur aléatoire neuve : le jeton lui-même ne passe jamais par le socket.
L'extension est aussi en lecture seule de son côté. Elle envoie des GET, plus des POST vers les deux endpoints de recherche Jira qui n'existent qu'en POST. Tout le reste est refusé avant d'atteindre l'onglet.
L'installer
Il faut Node.js 20+, Chrome 116+ et un site Atlassian Cloud sur lequel vous êtes connecté dans Chrome.
- Téléchargez le zip de la v0.1.0 ou clonez le dépôt, puis lancez
npm installdans le dossier. - Ouvrez
chrome://extensions, activez le mode développeur, cliquez sur « Charger l'extension non empaquetée » et choisissez le dossierextension/. - Lancez
npm run -s pairing-token. Dans la fenêtre de tabkit, indiquez votre site (https://<nom>.atlassian.net), collez le jeton et cliquez sur Save. - Déclarez le serveur à votre agent :
# Claude Code
claude mcp add tabkit -- node /chemin/vers/tabkit/src/index.js
# GitHub Copilot CLI
copilot mcp add tabkit -- node /chemin/vers/tabkit/src/index.js
Pour VS Code, ajoutez-le dans mcp.json comme serveur stdio avec la même commande. Le README (en anglais) donne cet extrait et celui de Codex.
Demandez ensuite à votre agent « qui suis-je dans Jira ? ».
Quatre outils, tous en lecture seule
atlassian_whoami: le site et le compte qu'utilise l'extension.jira_get_issue: un ticket par sa clé.jira_search_issues: une recherche JQL, une page à la fois.confluence_get_page: une page par son id, avec son contenu.
Ce que j'ai testé, et ce que je n'ai pas testé
Le serveur a 9 tests contre une fausse extension qui parle le vrai protocole. J'ai aussi lancé la vraie extension dans Chrome for Testing 153 sans fenêtre, contre un site Jira Cloud qui autorise la lecture anonyme : l'appairage, l'onglet en arrière-plan, une recherche JQL, la lecture d'un ticket et le message « connectez-vous dans Chrome » sur un 401 ont tous fonctionné.
Pas encore testé : une session connectée sur un site privé, une vraie page Confluence, Windows et Linux, et les clients Copilot. C'est pour ça que c'est une v0.1 en préversion. Si vous essayez l'un de ces cas, ouvrez une issue et dites-moi ce qui casse.
Texte brut: tabkit.md · Tous les projets