Les agents de codage écrivent du code contre l'API dont ils se souviennent, et ils se souviennent de celle de l'année dernière. Context7 existe pour combler cet écart : il tient un index de la documentation des bibliothèques et transmet les extraits pertinents à l'agent au moment où il en a besoin. Avec 64 773 étoiles, upstash/context7 est l'un des MCP servers les plus installés qui soient.
Il a aussi changé de forme plusieurs fois. L'outil que décrivent la plupart des guides, get-library-docs, n'existe plus ; il y a désormais un quota gratuit avec une clé ; et les réponses obtenues dépendent de la version de la bibliothèque demandée, d'une manière facile à manquer. Nous avons exécuté @upstash/context7-mcp 4.7.0, publié le 12 novembre 2026, via le CLI de MCP Inspector le 14 novembre 2026, sans clé API, et examiné ce qui en est ressorti.
Installation
Context7 fonctionne de deux manières. Les deux passent par la même API Context7 hébergée.
| Distant | Local | |
|---|---|---|
| Adresse ou commande | https://mcp.context7.com/mcp |
npx -y @upstash/context7-mcp |
| Clé | En-tête Authorization: Bearer, ou OAuth sur /mcp/oauth |
Option --api-key ou CONTEXT7_API_KEY |
| Nécessite Node.js | Non | 20.18.1 ou plus récent |
| Fonctionne hors ligne | Non | Non : il appelle quand même l'API hébergée |
Choisissez le mode distant, sauf si votre client ne gère pas les serveurs HTTP. Le paquet local est un client léger ; le README de Context7 précise clairement que seul le MCP server est open source, tandis que l'index, le parser et le crawler sont privés.
Commencez par obtenir une clé gratuite sur context7.com. Les clés commencent par ctx7sk- et ne sont affichées qu'une seule fois.
Claude Code, en distant :
claude mcp add --scope user --header "Authorization: Bearer YOUR_API_KEY" --transport http context7 https://mcp.context7.com/mcp
Ou le plugin, qui utilise OAuth via /mcp au lieu d'une clé :
/plugin marketplace add upstash/context7
/plugin install context7@context7-marketplace
Cursor, dans ~/.cursor/mcp.json :
{
"mcpServers": {
"context7": {
"url": "https://mcp.context7.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
VS Code utilise servers au lieu de mcpServers, dans .vscode/mcp.json :
{
"servers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Codex :
codex mcp add context7 -- npx -y @upstash/context7-mcp --api-key YOUR_API_KEY
Si Codex expire au démarrage, passez startup_timeout_sec à 40 dans sa configuration, comme le suggère la page Codex de Context7. Claude Desktop l'ajoute comme connecteur personnalisé : Settings, Connectors, Add Custom Connector, URL https://mcp.context7.com/mcp.
Context7 propose aussi npx ctx7 setup, qui vous connecte, crée une clé et installe soit l'entrée MCP, soit un skill pour Claude Code, Cursor, Codex ou OpenCode. npx ctx7 remove annule l'opération. Notre config builder génère les entrées brutes si vous préférez voir ce qui va où.
Les deux outils
tools/list sur la version 4.7.0 renvoyait deux outils, tous deux marqués en lecture seule et idempotents :
| Outil | Paramètres | Ce qu'il fait |
|---|---|---|
resolve-library-id |
libraryName, query |
Trouve l'ID Context7 d'une bibliothèque, classé en fonction de votre question |
query-docs |
libraryId, query, language facultatif |
Renvoie les sections de documentation et les exemples de code de cette bibliothèque |
Les descriptions demandent à l'agent de résoudre d'abord, sauf si l'utilisateur a déjà fourni un ID comme /vercel/next.js, et de ne pas dépasser trois appels de chaque outil par question. Les deux champs query portent le même avertissement : n'y incluez pas de clés API, de mots de passe, de données personnelles ni de code propriétaire, car la requête est envoyée à l'API de Context7.
Si vous suivez un tutoriel plus ancien : get-library-docs a été remplacé par query-docs dans la version 2.0.0, et ses paramètres tokens, topic, page et mode ont disparu. Depuis la version 2.2.5, le serveur corrige discrètement certains noms d'arguments inventés par les agents, comme question à la place de query.
Ce que nous avons obtenu
Nous avons interrogé resolve-library-id avec « next.js » et la question « app router middleware ». La réponse faisait 2 175 octets. Le premier résultat était /vercel/next.js : 7 338 extraits de code, réputation de la source High, score de benchmark 79,96, avec des versions de v12.3.7 à v16.4.5 plus des branches canary. Venait ensuite /websites/nextjs, le site de documentation indexé séparément, avec 9 524 extraits et un score de 76,15. Deux ID pour un même framework, c'est normal dans Context7 ; le dépôt et le site sont indexés comme des bibliothèques distinctes.
Nous avons ensuite appelé query-docs trois fois :
| ID de bibliothèque | Question | Réponse | Blocs de code |
|---|---|---|---|
/vercel/next.js |
proxy qui redirige les utilisateurs non authentifiés | 8 422 octets | 5 |
/vercel/next.js |
server actions revalidatePath | 4 304 octets | 8 |
/vercel/next.js/v16.2.9 |
proxy qui redirige les utilisateurs non authentifiés | 5 512 octets | non comptés |
Les réponses sont compactes : quelques sections, chacune avec un titre, un lien source et un exemple de code, assez petites pour qu'un agent puisse l'appeler plusieurs fois dans une session sans saturer son contexte. Les appels anonymes ont fonctionné sans clé et sans erreur.
Épingler la version
Le détail qui compte le plus se trouvait dans les liens sources. Les réponses non épinglées pointaient vers des fichiers de la branche canary du dépôt Next.js : la documentation d'un code pas encore publié. Pour un framework qui évolue vite, la doc canary peut décrire des API, des noms ou des valeurs par défaut que votre version installée ne possède pas.
L'épinglage corrige cela. Ajoutez la version à l'ID, /vercel/next.js/v16.2.9, et la réponse provient de cette release ; la nôtre était une réponse différente et plus courte à la même question. Les versions que Context7 contient sont listées dans la sortie de resolve-library-id, et vous pouvez aussi nommer la version en clair dans votre prompt.
Une règle permanente évite de retaper. Le conseil de Context7 lui-même est une ligne dans CLAUDE.md ou dans vos règles Cursor indiquant à l'agent d'utiliser Context7 pour la documentation, l'installation et la configuration des bibliothèques sans qu'on le lui demande. Nous ajouterions une clause : « et utilisez la version indiquée dans package.json ».
Forfaits et limites
| Gratuit | Pro | Enterprise | |
|---|---|---|---|
| Prix | 0 $ | 10 $ par siège et par mois | Sur mesure |
| Appels inclus | 1 000 par mois | 2 000 par siège et par mois | 2 000 par siège et par mois |
| Au-delà | 20 appels bonus par jour jusqu'à la réinitialisation du mois | 5 $ par 1 000, jamais bloqué | 5 $ par 1 000 |
| Dépôts privés | Non | Oui, 5 $ par million de tokens analysés | Oui |
| Membres de l'équipe | Vous seul | Jusqu'à 30 | Illimité, avec SSO et auto-hébergement |
Un appel correspond à une recherche ou à une requête de documentation, via le MCP server, le CLI ou la REST API. Sans clé, vous obtenez ce que Context7 appelle des « low rate limits », sans chiffre publié. Une requête limitée renvoie un HTTP 429 avec les en-têtes Retry-After et RateLimit-*.
En pratique, chaque question à laquelle un agent répond avec Context7 coûte deux appels : un resolve et un query, voire plus en cas de nouvelle tentative. Indiquer l'ID dans votre prompt, ou dans une règle, permet de sauter l'étape de resolve et de diviser le coût par deux.
Comment la documentation arrive dans Context7
N'importe qui peut ajouter une bibliothèque publique sur context7.com/add-library en collant une URL GitHub, qu'il soit ou non propriétaire du projet. Context7 accepte aussi les sites web, les fichiers llms.txt et les spécifications OpenAPI. Il indexe le Markdown, le MDX, le reStructuredText, les notebooks et autres textes similaires, convertit les PDF et les DOCX, et ignore les pages qui ne sont majoritairement pas en anglais. Lorsqu'un dépôt contient peu de documentation, Context7 génère des exemples à partir du code source.
Les bibliothèques sont actualisées lorsque quelqu'un en fait la demande et que la copie est obsolète. Le délai d'obsolescence dépend de la popularité : un jour pour le top 100, 15 jours pour le top 1 000, 30 pour le top 5 000 et 45 pour tout le reste, les sources de type site web et llms.txt attendant dix jours de plus. Une bibliothèque moins populaire peut ainsi avoir six semaines de retard sur sa propre documentation.
Si vous maintenez une bibliothèque, un fichier context7.json à la racine du dépôt contrôle ce qui est indexé : les dossiers, la branche, les anciennes versions et les règles ajoutées en préfixe des réponses. "disallow": true retire la bibliothèque. La revendiquer vous donne accès à un panneau d'administration et ouvre la voie au badge vérifié.
Sécurité
Tout ce que renvoie Context7 a été écrit par quelqu'un d'autre, et une partie provient de personnes qui ne sont pas propriétaires du projet. C'est donc le même type d'entrée qu'une page web : des données que le modèle lit, pas des instructions qu'il suit.
Context7 indique qu'il fait passer chaque dépôt et chaque site soumis par un classifieur d'injection de prompt en deux passes et qu'il ignore les fragments signalés. Il note les bibliothèques selon leur fiabilité, à partir de signaux comme l'ancienneté du compte, les stars et l'activité, ainsi que selon un benchmark de questions de développeurs générées ; le score de 79,96 ci-dessus correspond à ce benchmark. Le blog d'Upstash précise que le badge vérifié n'est pour l'instant qu'un indicateur visuel.
Un incident mérite d'être connu. En mai 2026, des utilisateurs ont signalé que les réponses de query-docs se terminaient par un « system notice » demandant à l'assistant de proposer d'exécuter npx ctx7 setup -y (issues 2663 et 2673). Les mainteneurs ont expliqué qu'il s'agissait de leur propre test d'une invite de connexion pour les utilisateurs anonymes, ajouté en 2.3.0, et l'ont désactivé après des objections. Cela venait du serveur de Context7 et non de la documentation d'une bibliothèque, mais cela montre à quel point du texte dans le résultat d'un outil peut facilement demander à un agent d'exécuter une commande. Approuvez vous-même les commandes shell.
Les règles pratiques : gardez les secrets hors des questions, privilégiez les bibliothèques vérifiées ou connues, et sur Pro ou Enterprise, utilisez une politique de teamspace pour restreindre les bibliothèques utilisables. Pour en savoir plus sur ce type de risque, voir Sécurité MCP.
Alternatives
| Serveur | Ce qu'il fait | Clé | Remarques |
|---|---|---|---|
| Context7 | Index préconstruit de la documentation des bibliothèques, avec versions et scores | Clé gratuite | 64 773 étoiles, serveur MIT, index privé |
| DeepWiki MCP | Répond aux questions sur n'importe quel dépôt GitHub public à partir d'un wiki rédigé par une IA | Aucune | Hébergé par Cognition sur mcp.deepwiki.com/mcp, gratuit |
| GitMCP | Transforme le llms.txt ou le README d'un dépôt en point d'accès de documentation |
Aucune | 8 515 étoiles, Apache-2.0, dernier push en mai 2026 |
| Ref | Recherche dans la documentation et lit les pages | Requise | 1 186 étoiles, MIT ; tarification non indiquée sur son site |
Context7 est le meilleur choix lorsque vous voulez retrouver la même bibliothèque à une version connue à chaque fois. DeepWiki est utile pour comprendre un dépôt inconnu dans son ensemble. GitMCP est l'option la plus légère pour un projet qui publie un bon llms.txt. Pour un travail spécifique à un framework, le serveur du framework lui-même peut surpasser tous les autres ; Next.js 16 fournit aux agents une documentation alignée sur la version via next-devtools-mcp, présenté dans notre guide MCP Next.js.
Quand cela ne fonctionne pas
| Ce que vous voyez | Cause | Correction |
|---|---|---|
| HTTP 429 | Limite gratuite ou anonyme atteinte | Ajoutez une clé, attendez le bonus quotidien ou passez à une offre supérieure ; vérifiez votre consommation avec l'endpoint d'usage de l'API |
| Le code utilise une API absente de votre version | Requête non épinglée ayant reçu une réponse issue de docs plus récentes ou canary | Épinglez /org/project/vX ou indiquez la version dans le prompt |
| L'agent n'appelle jamais Context7 | Aucun « use context7 » ni règle permanente | Ajoutez la règle dans CLAUDE.md ou dans les règles Cursor |
Le tutoriel appelle get-library-docs |
Rédigé avant la 2.0.0 | Utilisez resolve-library-id et query-docs |
| Codex échoue au démarrage | Délai de démarrage dépassé | Réglez startup_timeout_sec sur 40 |
| Une bibliothèque est obsolète | L'actualisation est à la demande, jusqu'à 45 jours | Actualisez-la depuis sa page Context7, ou demandez au mainteneur d'ajouter la GitHub Action |
| Le mauvais projet est renvoyé | Plusieurs ID pour un même nom | Lisez la liste de résolution et choisissez selon les snippets, la réputation et le score ; puis nommez l'ID |
Les entrées Context7 de notre catalogue, avec les scores de vérification et les commandes d'installation, se trouvent en haut de cette page.