Kodlama ajanları, hatırladıkları API'ye göre kod yazar ve hatırladıkları da geçen yılın API'sidir. Context7 tam da bu boşluğu kapatmak için var: kütüphane dokümantasyonunun bir dizinini tutar ve ilgili parçaları ajanın ihtiyaç duyduğu anda ona verir. 64.773 yıldızla upstash/context7, mevcut en çok kurulan MCP server'lardan biridir.
Ayrıca birkaç kez şekil değiştirdi. Çoğu rehberin anlattığı get-library-docs aracı artık yok; artık anahtarla çalışan ücretsiz bir kota var ve aldığınız yanıtlar, bir kütüphanenin hangi sürümünü istediğinize göre kolayca gözden kaçabilecek biçimlerde değişiyor. 12 Kasım 2026'da yayımlanan @upstash/context7-mcp 4.7.0 sürümünü 14 Kasım 2026'da MCP Inspector'ın CLI'ı üzerinden API anahtarı olmadan çalıştırdık ve dönen sonuçlara baktık.
Kurulum
Context7 iki şekilde çalışır. İkisi de aynı barındırılan Context7 API'siyle konuşur.
| Uzak | Yerel | |
|---|---|---|
| Adres veya komut | https://mcp.context7.com/mcp |
npx -y @upstash/context7-mcp |
| Anahtar | Authorization: Bearer başlığı ya da /mcp/oauth üzerinden OAuth |
--api-key bayrağı ya da CONTEXT7_API_KEY |
| Node.js gerekir | Hayır | 20.18.1 veya daha yenisi |
| Çevrimdışı çalışır | Hayır | Hayır: yine de barındırılan API'yi çağırır |
İstemciniz HTTP sunucularını desteklemiyorsa yerel sürümü seçin; aksi halde uzak sürümü tercih edin. Yerel paket ince bir istemcidir; Context7'nin README dosyası yalnızca MCP server'ın açık kaynak olduğunu, dizin, ayrıştırıcı ve tarayıcının ise kapalı olduğunu açıkça belirtir.
Önce context7.com adresinden ücretsiz bir anahtar alın. Anahtarlar ctx7sk- ile başlar ve yalnızca bir kez gösterilir.
Claude Code, uzak:
claude mcp add --scope user --header "Authorization: Bearer YOUR_API_KEY" --transport http context7 https://mcp.context7.com/mcp
Ya da anahtar yerine /mcp üzerinden OAuth kullanan eklenti:
/plugin marketplace add upstash/context7
/plugin install context7@context7-marketplace
Cursor, ~/.cursor/mcp.json içinde:
{
"mcpServers": {
"context7": {
"url": "https://mcp.context7.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
VS Code, .vscode/mcp.json içinde mcpServers yerine servers kullanır:
{
"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
Codex başlangıçta zaman aşımına uğrarsa, Context7'nin Codex sayfasının önerdiği gibi yapılandırmasında startup_timeout_sec değerini 40'a çıkarın. Claude Desktop bunu özel bir bağlayıcı olarak ekler: Settings, Connectors, Add Custom Connector, URL https://mcp.context7.com/mcp.
Context7 ayrıca npx ctx7 setup komutunu sunar; bu komut sizi oturum açar, bir anahtar oluşturur ve Claude Code, Cursor, Codex veya OpenCode için MCP girdisini ya da bir skill'i kurar. npx ctx7 remove bunu geri alır. Neyin nereye gittiğini görmeyi tercih ederseniz config builder düz girdileri yazar.
İki araç
4.7.0 sürümünde tools/list iki araç döndürdü; her ikisi de salt okunur ve idempotent olarak işaretliydi:
| Araç | Parametreler | Ne yapar |
|---|---|---|
resolve-library-id |
libraryName, query |
Bir kütüphanenin Context7 ID'sini bulur, sorunuzla ilişkisine göre sıralar |
query-docs |
libraryId, query, isteğe bağlı language |
O kütüphanenin dokümantasyon bölümlerini ve kod örneklerini döndürür |
Açıklamalar, agent'a kullanıcı /vercel/next.js gibi bir ID vermediyse önce resolve çağrısı yapmasını ve her soru için her birinden en fazla üç çağrı yapmasını söylüyor. Her iki query alanı da aynı uyarıyı taşıyor: API anahtarları, parolalar, kişisel veriler veya tescilli kod eklemeyin, çünkü sorgu Context7'nin API'sine gönderilir.
Daha eski bir eğitimi takip ediyorsanız: get-library-docs, 2.0.0 sürümünde query-docs ile değiştirildi ve tokens, topic, page ile mode parametreleri kaldırıldı. 2.2.5 sürümünden beri sunucu, agent'ların uydurduğu bazı argüman adlarını (örneğin query yerine question) sessizce düzeltiyor.
Ne aldık
resolve-library-id aracını "next.js" için "app router middleware" sorusuyla çağırdık. Yanıt 2.175 bayttı. En üstteki sonuç /vercel/next.js oldu: 7.338 kod snippet'i, kaynak itibarı High, benchmark puanı 79.96 ve v12.3.7'den v16.4.5'e kadar sürümler ile canary dalları. Ardından ayrı olarak indekslenen dokümantasyon sitesi /websites/nextjs geldi: 9.524 snippet ve 76.15 puan. Tek bir framework için iki ID olması Context7'de normaldir; depo ve web sitesi ayrı kütüphaneler olarak indekslenir.
Sonra query-docs aracını üç kez çağırdık:
| Kütüphane ID | Soru | Yanıt | Kod blokları |
|---|---|---|---|
/vercel/next.js |
kimliği doğrulanmamış kullanıcıları yönlendiren proxy | 8.422 bayt | 5 |
/vercel/next.js |
server actions revalidatePath | 4.304 bayt | 8 |
/vercel/next.js/v16.2.9 |
kimliği doğrulanmamış kullanıcıları yönlendiren proxy | 5.512 bayt | sayılmadı |
Yanıtlar derli toplu: her biri bir başlık, bir kaynak bağlantısı ve bir kod örneği içeren birkaç bölüm; bir agent'ın oturum boyunca bağlamını doldurmadan birkaç kez çağırabileceği kadar küçük. Anonim çağrılar anahtar olmadan ve hatasız çalıştı.
Sürümü sabitleyin
En çok önem taşıyan ayrıntı kaynak bağlantılarındaydı. Sürümü sabitlenmemiş yanıtlar, Next.js deposunun canary dalındaki dosyalara işaret ediyordu: henüz yayımlanmamış kodun belgelerine. Hızlı değişen bir framework için canary belgeleri, kurulu sürümünüzde bulunmayan API'leri, adları veya varsayılanları anlatabilir.
Sürümü sabitlemek bunu çözer. Kimliğe sürümü ekleyin, /vercel/next.js/v16.2.9, ve yanıt o sürümden gelir; bizimki aynı soruya verilmiş farklı ve daha kısa bir yanıttı. Context7'nin tuttuğu sürümler resolve-library-id çıktısında listelenir; sürümü isteminizde düz sözcüklerle de belirtebilirsiniz.
Kalıcı bir kural yazma zahmetinden kurtarır. Context7'nin kendi ipucu, CLAUDE.md dosyanıza veya Cursor kurallarınıza ajanın kütüphane belgeleri, kurulum ve yapılandırma için sorulmadan Context7'yi kullanmasını söyleyen bir satır eklemektir. Biz bir madde daha eklerdik: "ve package.json içindeki sürümü kullan".
Planlar ve limitler
| Free | Pro | Enterprise | |
|---|---|---|---|
| Fiyat | $0 | Ayda koltuk başına $10 | Özel |
| Dahil çağrılar | Ayda 1.000 | Ayda koltuk başına 2.000 | Ayda koltuk başına 2.000 |
| Sonrasında | Ay sıfırlanana kadar günde 20 bonus çağrı | 1.000 çağrı başına $5, asla engellenmez | 1.000 çağrı başına $5 |
| Özel depolar | Hayır | Evet, ayrıştırılan milyon token başına $5 | Evet |
| Ekip üyeleri | Yalnızca siz | 30'a kadar | SSO ve self-hosting ile sınırsız |
Bir çağrı; MCP server, CLI veya REST API üzerinden yapılan tek bir arama ya da tek bir docs isteğidir. Anahtar olmadan Context7'nin "low rate limits" dediği sınırlarla karşılaşırsınız; yayımlanmış bir sayı yok. Sınırlanan bir istek, Retry-After ve RateLimit-* başlıklarıyla birlikte HTTP 429 döndürür.
Pratikte bir agent'ın Context7 ile yanıtladığı her soru iki çağrıya mal olur: bir resolve ve bir query; yeniden denerse daha fazlası. ID'yi prompt'unuzda veya bir kuralda belirtmek resolve adımını atlar ve maliyeti yarıya indirir.
Dokümanlar Context7'ye nasıl giriyor
Herkes, projenin sahibi olsun olmasın, bir GitHub URL'si yapıştırarak context7.com/add-library adresinden herkese açık bir kütüphane ekleyebilir. Context7 ayrıca web sitelerini, llms.txt dosyalarını ve OpenAPI spesifikasyonlarını da alır. Markdown, MDX, reStructuredText, notebook ve benzeri metinleri indeksler, PDF ve DOCX dosyalarını dönüştürür ve ağırlıklı olarak İngilizce olmayan sayfaları atlar. Bir depoda çok az dokümantasyon varsa Context7 kaynak koddan örnekler üretir.
Kütüphaneler, biri talep ettiğinde ve kopya eskimişse yenilenir. Ne kadar eskimiş olması gerektiği popülerliğe bağlıdır: ilk 100 için bir gün, ilk 1.000 için 15 gün, ilk 5.000 için 30 gün, geri kalan her şey için 45 gün; web siteleri ve llms.txt kaynakları ise on gün daha fazla bekler. Daha az popüler bir kütüphane kendi dokümanlarının altı hafta gerisinde kalabilir.
Bir kütüphaneyi siz yönetiyorsanız, depo kökündeki context7.json dosyası nelerin indeksleneceğini kontrol eder: hangi klasörler, hangi dal, hangi eski sürümler ve yanıtların başına eklenen kurallar. "disallow": true kütüphaneyi kaldırır. Kütüphaneyi sahiplenmek size bir yönetim paneli ve doğrulanmış rozete giden bir yol sağlar.
Güvenlik
Context7'nin döndürdüğü her şey başka biri tarafından yazıldı ve bunların bir kısmı projenin sahibi olmayan kişilerce gönderildi. Bu da onu bir web sayfasıyla aynı türden bir girdi yapar: modelin okuyacağı veri, uyacağı talimatlar değil.
Context7, gönderilen her depoyu ve siteyi iki aşamalı bir prompt-injection sınıflandırıcısından geçirdiğini ve işaretlenen parçaları atladığını söylüyor. Kütüphaneleri güven açısından; hesabın yaşı, yıldızlar ve etkinlik gibi sinyallere ve üretilen geliştirici sorularından oluşan bir benchmark'a göre puanlıyor; yukarıdaki 79.96 puanı bu benchmark'a ait. Upstash'in blogu, doğrulanmış rozetinin şu an için yalnızca görsel bir gösterge olduğunu söylüyor.
Bilinmeye değer bir olay var. Mayıs 2026'da kullanıcılar, query-docs yanıtlarının sonunda asistanın npx ctx7 setup -y komutunu çalıştırmayı önermesini isteyen bir "sistem bildirimi" ile bittiğini bildirdi (2663 ve 2673 numaralı issue'lar). Bakımcılar bunun, 2.3.0'da eklenen ve anonim kullanıcılar için oturum açma istemine yönelik kendi testleri olduğunu açıkladı ve itirazlar üzerine kapatıldı. Bu, bir kütüphanenin dokümanlarından değil Context7'nin sunucusundan geldi, ancak bir araç sonucundaki metnin bir ajandan ne kadar kolay bir komut çalıştırmasını isteyebileceğini gösteriyor. Kabuk komutlarını kendiniz onaylayın.
Pratik kurallar: sorulardan sırları uzak tutun, doğrulanmış veya iyi bilinen kütüphaneleri tercih edin ve Pro ya da Enterprise kullanıyorsanız hangi kütüphanelerin kullanılabileceğini kısıtlamak için bir teamspace politikası kullanın. Bu risk sınıfı hakkında daha fazlası için MCP güvenliği sayfasına bakın.
Alternatifler
| Sunucu | Ne yapar | Anahtar | Notlar |
|---|---|---|---|
| Context7 | Kitaplık belgelerinin sürümleri ve puanlarıyla önceden oluşturulmuş dizini | Ücretsiz anahtar | 64.773 yıldız, MIT sunucusu, özel dizin |
| DeepWiki MCP | Herhangi bir herkese açık GitHub deposu hakkındaki soruları, yapay zekâ tarafından yazılmış bir wiki'den yanıtlar | Yok | Cognition tarafından mcp.deepwiki.com/mcp adresinde barındırılır, ücretsiz |
| GitMCP | Bir deponun llms.txt veya README dosyasını belge uç noktasına dönüştürür |
Yok | 8.515 yıldız, Apache-2.0, son push Mayıs 2026 |
| Ref | Belgelerde arama yapar ve sayfaları okur | Gerekli | 1.186 yıldız, MIT; fiyatlandırma sitesinde belirtilmemiş |
Aynı kitaplığı her seferinde bilinen bir sürümde istediğinizde Context7 daha uygun bir seçimdir. DeepWiki, tanımadığınız bir depoyu bir bütün olarak anlamak için iyidir. GitMCP, iyi bir llms.txt yayımlayan tek bir proje için en hafif seçenektir. Çerçeveye özgü işlerde çerçevenin kendi sunucusu hepsini geçebilir; Next.js 16, sürümle eşleşen belgeleri next-devtools-mcp aracılığıyla ajanlara sunar; bu konu Next.js MCP rehberimizde ele alınmıştır.
Çalışmadığı durumlar
| Gördüğünüz | Nedeni | Çözümü |
|---|---|---|
| HTTP 429 | Ücretsiz veya anonim limit doldu | Bir anahtar ekleyin, günlük bonusu bekleyin ya da planı yükseltin; kullanımı API'nin usage endpoint'i ile kontrol edin |
| Kod, sürümünüzde olmayan bir API kullanıyor | Sabitlenmemiş sorgu, daha yeni veya canary dokümanlarından yanıtlandı | /org/project/vX şeklinde sabitleyin veya sürümü prompt'ta belirtin |
| Agent Context7'yi hiç çağırmıyor | "use context7" yok ve kalıcı bir kural da yok | Kuralı CLAUDE.md dosyasına veya Cursor kurallarına ekleyin |
Eğitim get-library-docs çağırıyor |
2.0.0 öncesinde yazılmış | resolve-library-id ve query-docs kullanın |
| Codex başlangıçta başarısız oluyor | Başlangıç zaman aşımı | startup_timeout_sec değerini 40 yapın |
| Bir kütüphane güncel değil | Yenileme isteğe bağlı, en fazla 45 gün | Context7 sayfasından yenileyin veya bakımcıdan GitHub Action eklemesini isteyin |
| Yanlış proje dönüyor | Tek bir ad için birden fazla ID | Resolve listesini okuyup snippet, itibar ve puana göre seçin; ardından ID'yi belirtin |
Kataloğumuzdaki Context7 girdileri, kontrol puanları ve kurulum komutlarıyla birlikte bu sayfanın en üstünde yer alıyor.