Coding-Agents schreiben Code gegen die API, an die sie sich erinnern, und sie erinnern sich an die von letztem Jahr. Context7 gibt es, um diese Lücke zu schließen: Es hält einen Index der Bibliotheksdokumentation vor und reicht die relevanten Teile dem Agent genau dann, wenn er sie braucht. Mit 64.773 Stars ist upstash/context7 einer der am häufigsten installierten MCP server überhaupt.
Es hat auch mehrfach seine Form geändert. Das Tool, das die meisten Anleitungen beschreiben, get-library-docs, gibt es nicht mehr; inzwischen gibt es ein kostenloses Kontingent mit einem Key; und die Antworten, die du bekommst, hängen davon ab, welche Version einer Bibliothek du anfragst, und zwar auf Arten, die man leicht übersieht. Wir haben @upstash/context7-mcp 4.7.0, veröffentlicht am 12. November 2026, am 14. November 2026 über die CLI von MCP Inspector ohne API key laufen lassen und uns angesehen, was zurückkam.
Installieren
Context7 läuft auf zwei Wegen. Beide sprechen mit derselben gehosteten Context7 API.
| Remote | Lokal | |
|---|---|---|
| Adresse oder Befehl | https://mcp.context7.com/mcp |
npx -y @upstash/context7-mcp |
| Key | Authorization: Bearer-Header oder OAuth unter /mcp/oauth |
--api-key-Flag oder CONTEXT7_API_KEY |
| Braucht Node.js | Nein | 20.18.1 oder neuer |
| Funktioniert offline | Nein | Nein: ruft trotzdem die gehostete API auf |
Nimm Remote, außer dein Client kann keine HTTP-Server. Das lokale Paket ist ein dünner Client; das README von Context7 stellt klar, dass nur der MCP server Open Source ist und Index, Parser und Crawler privat sind.
Hol dir zuerst einen kostenlosen Key auf context7.com. Keys beginnen mit ctx7sk- und werden nur einmal angezeigt.
Claude Code, Remote:
claude mcp add --scope user --header "Authorization: Bearer YOUR_API_KEY" --transport http context7 https://mcp.context7.com/mcp
Oder das Plugin, das OAuth über /mcp statt eines Keys nutzt:
/plugin marketplace add upstash/context7
/plugin install context7@context7-marketplace
Cursor, in ~/.cursor/mcp.json:
{
"mcpServers": {
"context7": {
"url": "https://mcp.context7.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
VS Code nutzt servers statt mcpServers, in .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
Wenn Codex beim Start in ein Timeout läuft, erhöhe startup_timeout_sec in der Config auf 40, wie es die Codex-Seite von Context7 empfiehlt. Claude Desktop fügt es als Custom Connector hinzu: Settings, Connectors, Add Custom Connector, URL https://mcp.context7.com/mcp.
Context7 bietet außerdem npx ctx7 setup, das dich anmeldet, einen Key erstellt und entweder den MCP-Eintrag oder einen Skill für Claude Code, Cursor, Codex oder OpenCode installiert. npx ctx7 remove macht das rückgängig. Unser Config-Builder schreibt die einfachen Einträge, wenn du lieber sehen willst, was wohin gehört.
Die beiden Tools
tools/list auf 4.7.0 gab zwei Tools zurück, beide als read-only und idempotent markiert:
| Tool | Parameter | Was es macht |
|---|---|---|
resolve-library-id |
libraryName, query |
Findet die Context7-ID für eine Library, sortiert nach deiner Frage |
query-docs |
libraryId, query, optional language |
Gibt Doku-Abschnitte und Codebeispiele für diese Library zurück |
Die Beschreibungen weisen den Agent an, zuerst aufzulösen, außer der Nutzer hat bereits eine ID wie /vercel/next.js angegeben, und pro Frage nicht mehr als drei Aufrufe von jedem Tool zu machen. Beide query-Felder tragen dieselbe Warnung: keine API-Keys, Passwörter, persönlichen Daten oder proprietären Code einfügen, weil die Query an die API von Context7 geschickt wird.
Falls du einem älteren Tutorial folgst: get-library-docs wurde in Version 2.0.0 durch query-docs ersetzt, und seine Parameter tokens, topic, page und mode gibt es nicht mehr. Seit 2.2.5 korrigiert der Server stillschweigend einige Argumentnamen, die Agenten erfinden, etwa question für query.
Was wir zurückbekommen haben
Wir haben resolve-library-id für "next.js" mit der Frage "app router middleware" aufgerufen. Die Antwort war 2.175 Bytes groß. Der Top-Treffer war /vercel/next.js: 7.338 Code-Snippets, Source Reputation High, Benchmark-Score 79,96, mit Versionen von v12.3.7 bis v16.4.5 plus Canary-Branches. Danach kam /websites/nextjs, die separat indexierte Doku-Website, mit 9.524 Snippets und einem Score von 76,15. Zwei IDs für ein Framework sind bei Context7 normal; das Repository und die Website werden als separate Libraries indexiert.
Dann haben wir query-docs dreimal aufgerufen:
| Library-ID | Frage | Antwort | Codeblöcke |
|---|---|---|---|
/vercel/next.js |
Proxy, der nicht authentifizierte Nutzer weiterleitet | 8.422 Bytes | 5 |
/vercel/next.js |
server actions revalidatePath | 4.304 Bytes | 8 |
/vercel/next.js/v16.2.9 |
Proxy, der nicht authentifizierte Nutzer weiterleitet | 5.512 Bytes | nicht gezählt |
Die Antworten sind kompakt: ein paar Abschnitte, jeweils mit Überschrift, Quell-Link und einem Codebeispiel, klein genug, dass ein Agent sie in einer Session mehrmals aufrufen kann, ohne seinen Context zu füllen. Die anonymen Aufrufe funktionierten ohne Key und ohne Fehler.
Die Version pinnen
Das wichtigste Detail steckte in den Quelllinks. Die Antworten ohne Pin verwiesen auf Dateien im canary-Branch des Next.js-Repositories: Dokumentation für Code, der noch nicht released ist. Bei einem schnelllebigen Framework können Canary-Docs APIs, Namen oder Defaults beschreiben, die deine installierte Version nicht hat.
Pinning löst das. Häng die Version an die ID, /vercel/next.js/v16.2.9, und die Antwort kommt aus genau diesem Release; unsere war eine andere und kürzere Antwort auf dieselbe Frage. Welche Versionen Context7 vorhält, steht in der Ausgabe von resolve-library-id, und du kannst die Version auch einfach im Prompt nennen.
Eine feste Regel spart Tipparbeit. Context7s eigener Tipp ist eine Zeile in CLAUDE.md oder deinen Cursor-Rules, die den Agenten anweist, Context7 für Library-Dokumentation, Setup und Konfiguration zu nutzen, ohne dass du danach fragen musst. Wir würden einen Zusatz ergänzen: "und nutze die Version aus der package.json".
Pläne und Limits
| Free | Pro | Enterprise | |
|---|---|---|---|
| Preis | $0 | $10 pro Seat und Monat | Individuell |
| Inkludierte Calls | 1.000 pro Monat | 2.000 pro Seat und Monat | 2.000 pro Seat und Monat |
| Danach | 20 Bonus-Calls pro Tag, bis der Monat zurückgesetzt wird | $5 pro 1.000, nie blockiert | $5 pro 1.000 |
| Private Repositories | Nein | Ja, $5 pro Million geparster Tokens | Ja |
| Teammitglieder | Nur du | Bis zu 30 | Unbegrenzt, mit SSO und Self-Hosting |
Ein Call ist eine Suche oder eine Docs-Anfrage, über den MCP server, die CLI oder die REST API. Ohne Key bekommst du das, was Context7 "low rate limits" nennt, ohne veröffentlichte Zahl. Eine limitierte Anfrage gibt HTTP 429 mit Retry-After- und RateLimit-*-Headern zurück.
In der Praxis kostet jede Frage, die ein Agent mit Context7 beantwortet, zwei Calls: einen Resolve und einen Query, oder mehr, wenn er es erneut versucht. Wenn du die ID in deinem Prompt oder in einer Rule nennst, überspringst du den Resolve-Schritt und halbierst die Kosten.
Wie Docs in Context7 landen
Jede und jeder kann unter context7.com/add-library eine öffentliche Library hinzufügen, indem eine GitHub-URL eingefügt wird – egal, ob man das Projekt selbst betreibt oder nicht. Context7 nimmt außerdem Websites, llms.txt-Dateien und OpenAPI-Specs. Indexiert werden Markdown, MDX, reStructuredText, Notebooks und ähnlicher Text, PDF und DOCX werden konvertiert, und Seiten, die überwiegend nicht auf Englisch sind, werden übersprungen. Hat ein Repository wenig Dokumentation, generiert Context7 Beispiele aus dem Quellcode.
Libraries werden aktualisiert, wenn jemand sie anfragt und die Kopie veraltet ist. Wie veraltet, hängt von der Beliebtheit ab: ein Tag für die Top 100, 15 Tage für die Top 1.000, 30 für die Top 5.000 und 45 für alles andere, wobei Websites und llms.txt-Quellen zehn Tage länger warten. Eine weniger beliebte Library kann sechs Wochen hinter ihrer eigenen Doku zurückliegen.
Wenn du eine Library maintainest, steuert eine context7.json-Datei im Repository-Root, was indexiert wird: welche Ordner, welcher Branch, welche älteren Versionen und welche Regeln den Antworten vorangestellt werden. "disallow": true entfernt die Library. Wenn du sie für dich beanspruchst, bekommst du ein Admin-Panel und einen Weg zum Verified-Badge.
Sicherheit
Alles, was Context7 zurückgibt, wurde von jemand anderem geschrieben, und ein Teil davon wurde von Leuten eingereicht, denen das Projekt nicht gehört. Damit ist es dieselbe Art von Input wie eine Webseite: Daten, die das Modell liest, keine Anweisungen, denen es folgt.
Context7 sagt, dass jedes eingereichte Repository und jede Website durch einen zweistufigen Prompt-Injection-Klassifikator läuft und markierte Abschnitte übersprungen werden. Bibliotheken werden nach Vertrauen bewertet, anhand von Signalen wie dem Alter des Accounts, Stars und Aktivität sowie anhand eines Benchmarks aus generierten Entwicklerfragen; die oben genannte Punktzahl von 79.96 ist dieser Benchmark. Im Blog von Upstash heißt es, dass das Verified-Badge bisher nur ein visueller Indikator ist.
Ein Vorfall ist es wert, gekannt zu werden. Im Mai 2026 berichteten Nutzer, dass Antworten von query-docs mit einer "system notice" endeten, die den Assistant aufforderte, anzubieten, npx ctx7 setup -y auszuführen (Issues 2663 und 2673). Die Maintainer erklärten, es sei ihr eigener Test eines Sign-in-Prompts für anonyme Nutzer gewesen, hinzugefügt in 2.3.0, und schalteten ihn nach Einwänden ab. Er kam vom Server von Context7 und nicht aus den Docs einer Bibliothek, aber er zeigt, wie leicht Text in einem Tool-Ergebnis einen Agenten dazu bringen kann, einen Befehl auszuführen. Shell-Befehle genehmigst du selbst.
Die praktischen Regeln: Halte Secrets aus Fragen heraus, bevorzuge verifizierte oder bekannte Bibliotheken und beschränke bei Pro oder Enterprise mit einer Teamspace-Policy, welche Bibliotheken verwendet werden dürfen. Mehr zu dieser Art von Risiko in MCP security.
Alternativen
| Server | Was er macht | Key | Hinweise |
|---|---|---|---|
| Context7 | Vorgefertigter Index von Library-Docs mit Versionen und Scores | Kostenloser Key | 64.773 Stars, MIT-Server, privater Index |
| DeepWiki MCP | Fragen zu jedem öffentlichen GitHub-Repository, beantwortet aus einem KI-generierten Wiki | Keiner | Von Cognition unter mcp.deepwiki.com/mcp gehostet, kostenlos |
| GitMCP | Macht aus der llms.txt oder dem README eines Repositorys einen Docs-Endpoint |
Keiner | 8.515 Stars, Apache-2.0, letzter Push Mai 2026 |
| Ref | Durchsucht Dokumentation und liest Seiten | Erforderlich | 1.186 Stars, MIT; Preise werden auf der Website nicht genannt |
Context7 passt besser, wenn du dieselbe Library jedes Mal in einer bekannten Version willst. DeepWiki eignet sich gut, um ein unbekanntes Repository als Ganzes zu verstehen. GitMCP ist die leichteste Option für ein einzelnes Projekt, das eine gute llms.txt veröffentlicht. Bei Framework-spezifischer Arbeit kann der Server des Frameworks selbst alle anderen schlagen; Next.js 16 liefert versionsgenaue Docs an Agents über next-devtools-mcp, behandelt in unserem Next.js MCP-Leitfaden.
Wenn es nicht funktioniert
| Was du siehst | Ursache | Lösung |
|---|---|---|
| HTTP 429 | Kostenloses oder anonymes Limit erreicht | Füge einen Key hinzu, warte auf den täglichen Bonus oder upgrade; prüfe die Nutzung über den usage-Endpoint der API |
| Code nutzt eine API, die deine Version nicht hat | Unpinned Query wurde aus neueren oder Canary-Docs beantwortet | Pinne /org/project/vX oder nenne die Version im Prompt |
| Agent ruft Context7 nie auf | Kein "use context7" und keine feste Regel | Füge die Regel zu CLAUDE.md oder den Cursor Rules hinzu |
Tutorial ruft get-library-docs auf |
Vor 2.0.0 geschrieben | Nutze resolve-library-id und query-docs |
| Codex schlägt beim Start fehl | Startup-Timeout | Setze startup_timeout_sec auf 40 |
| Eine Library ist veraltet | Refresh erfolgt on demand, bis zu 45 Tage | Aktualisiere sie auf ihrer Context7-Seite oder bitte den Maintainer, die GitHub Action hinzuzufügen |
| Es kommt das falsche Projekt zurück | Mehrere IDs für einen Namen | Lies die Resolve-Liste und wähle anhand von Snippets, Reputation und Score; nenne dann die ID |
Die Context7-Einträge in unserem Katalog mit Check-Scores und Installationsbefehlen findest du oben auf dieser Seite.