LeetCode'nin programlama problemleri, çözümleri, submissions ve genel verilerine otomatik erişim sağlayan MCP sunucusu; kullanıcıya özel özellikleri (örneğin notlar) için isteğe bağlı kimlik doğrulaması desteği ve leetcode.com (global) ile leetcode.cn (Çin) sitelerine uyumluluk sunuyor.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"jinzcdev-leetcode-mcp-server": {
"command": "node",
"args": [
"~/.mcp/leetcode-mcp-server/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/jinzcdev/leetcode-mcp-server.git ~/.mcp/leetcode-mcp-server
cd ~/.mcp/leetcode-mcp-server LeetCode MCP Server, Model Context Protocol (MCP) sunucusu olup LeetCode API'leri ile kusursuz entegrasyon sağlayarak LeetCode'un programlama problemleri, yarışmaları, çözümleri ve kullanıcı verileri ile gelişmiş otomasyon ve akıllı etkileşim imkanı sunar.
leetcode-mcp-server'ı Claude Desktop için otomatik olarak Smithery üzerinden kurmak için:
npx -y @smithery/cli install @jinzcdev/leetcode-mcp-server --client claude
# npm'den kur
npm install @jinzcdev/leetcode-mcp-server -g
# Veya Global site konfigürasyonu ile çalıştır
npx -y @jinzcdev/leetcode-mcp-server --site global
# Kimlik doğrulama ile çalıştır (özel verilere erişim için)
npx -y @jinzcdev/leetcode-mcp-server --site global --session <YOUR_LEETCODE_SESSION_COOKIE>
Alternatif olarak, repository'yi clone edip yerel olarak çalıştırabilirsiniz:
# Repository'yi clone et
git clone https://github.com/jinzcdev/leetcode-mcp-server.git
# Proje dizinine git
cd leetcode-mcp-server
# Projeyi derle
npm install && npm run build
# Sunucuyu çalıştır
node build/index.js --site global
Aşağıdaki JSON konfigürasyonunu User Settings (JSON) dosyanıza ekleyin. Ctrl/Cmd + Shift + P tuşlarına basıp Preferences: Open User Settings (JSON) arayarak erişebilirsiniz.
{
"mcp": {
"servers": {
"leetcode": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@jinzcdev/leetcode-mcp-server"],
"env": {
"LEETCODE_SITE": "global",
"LEETCODE_SESSION": "<YOUR_LEETCODE_SESSION_COOKIE>"
}
}
}
}
}
{
"mcp": {
"servers": {
"leetcode": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@jinzcdev/leetcode-mcp-server",
"--site",
"global",
"--session",
"<YOUR_LEETCODE_SESSION_COOKIE>"
]
}
}
}
}
LeetCode Çin sitesi için --site parametresini cn olarak değiştirin.
[!TIP]
Sunucu aşağıdaki isteğe bağlı ortam değişkenlerini destekler:
LEETCODE_SITE: LeetCode API endpoint ('global' veya 'cn', varsayılan: 'global')LEETCODE_SESSION: Kimliği doğrulanmış API erişimi için LeetCode session cookie (varsayılan: boş)Öncelik Notu: Her iki parametre de belirtildiğinde komut satırı argümanları ortam değişkenlerine göre öncelik alır. Örneğin:
- Eğer
LEETCODE_SITE=cnayarlanmış fakatleetcode-mcp-server --site globalkomutunu çalıştırırsanız, sunucuglobalkullanacaktır.- Eğer
LEETCODE_SESSIONvar fakat--session "new_cookie"sağlarsanız, komut satırı session değeri kullanılacaktır.
| Araç | Global | CN | Kimlik Doğrulama Gerekli | Açıklama |
|---|---|---|---|---|
| get_daily_challenge | ✅ | ✅ | ❌ | Bugünün LeetCode Günlük Sorusunu alır |
| get_problem | ✅ | ✅ | ❌ | Belirli bir LeetCode probleminin detaylarını alır |
| search_problems | ✅ | ✅ | ❌ | Çoklu filtre kriterleri ile LeetCode problemlerini arar |
| Araç | Global | CN | Kimlik Doğrulama Gerekli | Açıklama |
|---|---|---|---|---|
| get_user_profile | ✅ | ✅ | ❌ | LeetCode kullanıcısının profil bilgilerini alır |
| get_user_contest_ranking | ✅ | ✅ | ❌ | Kullanıcının yarışma sıralama istatistiklerini alır |
| get_recent_ac_submissions | ✅ | ✅ | ❌ | Kullanıcının son kabul edilen gönderimlerini alır |
| get_recent_submissions | ✅ | ❌ | ❌ | Kullanıcının son gönderim geçmişini alır |
| get_user_status | ✅ | ✅ | ✅ | Mevcut kullanıcının durumunu alır |
| get_problem_submission_report | ✅ | ✅ | ✅ | Belirli bir sorun için detaylı gönderim analizi sağlar |
| get_problem_progress | ✅ | ✅ | ✅ | Mevcut kullanıcının problem çözme ilerleme durumunu alır |
| get_all_submissions | ✅ | ✅ | ✅ | Mevcut kullanıcının gönderim geçmişini alır |
| Araç | Global | CN | Kimlik Doğrulama Gerekli | Açıklama |
|---|---|---|---|---|
| run_code | ✅ | ✅ | ✅ | Problem için kod çalıştırır ve /check/ bitene kadar bekler |
| submit_solution | ✅ | ✅ | ✅ | Problem için kod gönderir ve /check/ bitene kadar bekler |
| Araç | Global | CN | Kimlik Doğrulama Gerekli | Açıklama |
|---|---|---|---|---|
| search_notes | ❌ | ✅ | ✅ | Filtreleme seçenekleri ile kullanıcı notlarını arar |
| get_note | ❌ | ✅ | ✅ | Soru ID'sine göre belirli bir sorun için notları alır |
| create_note | ❌ | ✅ | ✅ | Belirli bir sorun için yeni not oluşturur |
| update_note | ❌ | ✅ | ✅ | Mevcut notu yeni içerik ile günceller |
| Araç | Global | CN | Kimlik Doğrulama Gerekli | Açıklama |
|---|---|---|---|---|
| list_problem_solutions | ✅ | ✅ | ❌ | Belirli bir sorun için topluluk çözümlerinin listesini alır |
| get_problem_solution | ✅ | ✅ | ❌ | Belirli bir çözümün tam içeriğini alır |
get_daily_challenge - Bugünün LeetCode Günlük Sorusunu tam detaylar ile alır
get_problem - Belirli bir LeetCode probleminin detaylarını alır
titleSlug: Problemin URL slug/tanımlayıcısı (string, zorunlu)search_problems - Çoklu filtre kriterine göre LeetCode problemlerini arar
category: Problem kategori filtresi (string, isteğe bağlı, varsayılan: "all-code-essentials")tags: Problemleri filtrelemek için konu etiketleri listesi (string[], isteğe bağlı)difficulty: Problem zorluk seviyesi filtresi (enum: "EASY", "MEDIUM", "HARD", isteğe bağlı)searchKeywords: Problem başlıkları ve açıklamalarında aranacak anahtar kelimeler (string, isteğe bağlı)limit: Döndürülecek maksimum problem sayısı (number, isteğe bağlı, varsayılan: 10)offset: Atlanacak problem sayısı (number, isteğe bağlı)get_user_profile - LeetCode kullanıcısı hakkında profil bilgilerini alır
username: LeetCode kullanıcı adı (string, zorunlu)get_user_contest_ranking - Kullanıcının yarışma sıralama bilgilerini alır
username: LeetCode kullanıcı adı (string, zorunlu)attended: Yalnızca kullanıcının katıldığı yarışmaları dahil etmek isteyip istemediğinizi belirtir (boolean, isteğe bağlı, varsayılan: true)get_recent_submissions - Kullanıcının LeetCode Global'deki son gönderimlerini alır
username: LeetCode kullanıcı adı (string, zorunlu)limit: Döndürülecek maksimum gönderim sayısı (number, isteğe bağlı, varsayılan: 10)get_recent_ac_submissions - Kullanıcının son kabul edilen gönderimlerini alır
username: LeetCode kullanıcı adı (string, zorunlu)limit: Döndürülecek maksimum gönderim sayısı (number, isteğe bağlı, varsayılan: 10)get_user_status - Mevcut kullanıcının durumunu alır
get_problem_submission_report - Belirli bir gönderim hakkında detaylı bilgi alır
id: Sayısal gönderim ID'si (number, zorunlu)get_problem_progress - Mevcut kullanıcının problem çözme ilerleme durumunu alır
offset: Atlanacak soru sayısı (number, isteğe bağlı, varsayılan: 0)limit: Döndürülecek maksimum soru sayısı (number, isteğe bağlı, varsayılan: 100)questionStatus: Soru durumuna göre filtrele (enum: "ATTEMPTED", "SOLVED", isteğe bağlı)difficulty: Zorluk seviyelerine göre filtrele (string[], isteğe bağlı)get_all_submissions - Kullanıcının gönderimlerinin sayfalı listesini alır
limit: Döndürülecek maksimum gönderim sayısı (number, varsayılan: 20)offset: Atlanacak gönderim sayısı (number, varsayılan: 0)questionSlug: İsteğe bağlı problem tanımlayıcı (string, isteğe bağlı)lang: Programlama dili filtresi (string, isteğe bağlı, yalnızca CN)status: Gönderim durumu filtresi (enum: "AC", "WA", isteğe bağlı, yalnızca CN)lastKey: Sonraki sayfa için pagination tokeni (string, isteğe bağlı, yalnızca CN)run_code - Belirli bir problem için kod çalıştırır ve bitene kadar bekler (kimlik doğrulama gereklidir)
titleSlug: Problemin URL slug/tanımlayıcısı (string, zorunlu)lang: Programlama dili (string enum, zorunlu)typedCode: Çalıştırılacak kaynak kod (string, zorunlu)dataInput: Çalıştırmak için özel input (string, isteğe bağlı)timeoutMs: Polling timeout milisaniye cinsinden (number, isteğe bağlı, varsayılan: 120000)pollIntervalMs: Polling aralığı milisaniye cinsinden (number, isteğe bağlı, varsayılan: 1500)submit_solution - Belirli bir problem için kod gönderir ve bitene kadar bekler (kimlik doğrulama gereklidir)
titleSlug: Problemin URL slug/tanımlayıcısı (string, zorunlu)lang: Programlama dili (string enum, zorunlu)typedCode: Gönderilecek kaynak kod (string, zorunlu)timeoutMs: Polling timeout milisaniye cinsinden (number, isteğe bağlı, varsayılan: 120000)pollIntervalMs: Polling aralığı milisaniye cinsinden (number, isteğe bağlı, varsayılan: 1500)search_notes - LeetCode Çin'de kullanıcı notlarını arar
keyword: Notları filtrelemek için arama terimi (string, isteğe bağlı)limit: Döndürülecek maksimum not sayısı (number, isteğe bağlı, varsayılan: 10)skip: Atlanacak not sayısı (number, isteğe bağlı, varsayılan: 0)orderBy: Döndürülen notlar için sıralama düzeni (enum: "ASCENDING", "DESCENDING", isteğe bağlı, varsayılan: "DESCENDING")get_note - Belirli bir LeetCode problemi için kullanıcı notlarını alır
questionId: LeetCode probleminin soru ID'si (string, zorunlu)limit: Döndürülecek maksimum not sayısı (number, isteğe bağlı, varsayılan: 10)skip: Atlanacak not sayısı (number, isteğe bağlı, varsayılan: 0)create_note - Belirli bir LeetCode problemi için yeni not oluşturur
questionId: LeetCode probleminin soru ID'si (string, zorunlu)content: Notun içeriği, markdown formatını destekler (string, zorunlu)summary: Not için isteğe bağlı kısa özet veya başlık (string, isteğe bağlı)update_note - Mevcut notu yeni içerik veya özet ile günceller
noteId: Güncellenecek notun ID'si (string, zorunlu)content: Not için yeni içerik, markdown formatını destekler (string, zorunlu)summary: Not için isteğe bağlı yeni kısa özet veya başlık (string, isteğe bağlı)list_problem_solutions - Belirli bir problem için topluluk çözümlerinin listesini alır
questionSlug: Problemin URL slug/tanımlayıcısı (string, zorunlu)limit: Döndürülecek maksimum çözüm sayısı (number, isteğe bağlı, varsayılan: 10)skip: Atlanacak çözüm sayısı (number, isteğe bağlı)userInput: Çözümleri filtrelemek için arama terimi (string, isteğe bağlı)tagSlugs: Çözümleri filtrelemek için etiket tanımlayıcılarının dizisi (string[], isteğe bağlı, varsayılan: [])orderBy: Döndürülen çözümler için sıralama kriterleri
get_problem_solution - Belirli bir çözümün tam içeriğini alır
topicId: Çözümün benzersiz topic ID'si (string, zorunlu, yalnızca Global)slug: Çözümün benzersiz slug/tanımlayıcısı (string, zorunlu, yalnızca CN)| Kaynak Adı | Global | CN | Kimlik Doğrulama Gerekli | Açıklama |
|---|---|---|---|---|
| problem-categories | ✅ | ✅ | ❌ | Tüm problem sınıflandırma kategorilerinin listesi |
| problem-tags | ✅ | ✅ | ❌ | Algoritmik ve veri yapı etiketlerinin detaylı koleksiyonu |
| problem-langs | ✅ | ✅ | ❌ | Desteklenen tüm programlama dillerinin tam listesi |
| problem-detail | ✅ | ✅ | ❌ | Belirli bir problem hakkında detay sağlar |
| problem-solution | ✅ | ✅ | ❌ | Belirli bir çözümün tam içeriğini sağlar |
problem-categories - Tüm problem sınıflandırma kategorilerinin listesi
categories://problems/allproblem-tags - Algoritmik ve veri yapı etiketlerinin detaylı koleksiyonu
tags://problems/allproblem-langs - LeetCode tarafından desteklenen tüm programlama dillerinin tam listesi
langs://problems/allproblem-detail - Belirli bir LeetCode probleminin detaylarını sağlar
problem://{titleSlug}titleSlug: LeetCode URL'sinde göründüğü şekildeki problem tanımlayıcısıproblem-solution - Belirli bir çözümün tam içeriğini sağlar
solution://{topicId}
topicId: Çözümün benzersiz topic ID'sisolution://{slug}
slug: Çözümün benzersiz slug/tanımlayıcısıKullanıcıya özgü veri erişimi LeetCode session kimlik doğrulama gerektirir:
LEETCODE_SESSION cookie'sini çıkartın--session bayrağı veya LEETCODE_SESSION ortam değişkeni ile yapılandırınTüm araçlar aşağıdaki yapıya sahip JSON formatında yanıtlar döndürür:
{
"content": [
{
"type": "text",
"text": "JSON_DATA_STRING"
}
]
}
JSON_DATA_STRING, istenen verileri veya başarısız istekler için bir hata mesajını içerir.
Bu proje MIT Lisansı altında lisanslanmıştır.
Dil sunucularını kullanarak sembolik kod işlemleri gerçekleştiren, tam özellikli bir kodlama ajanı.
Yerel kodu bir graf veritabanına indeksleyen ve AI asistanlarına bağlam sağlayan, insanlar için grafik kod görselleştirmeleri sunan bir MCP sunucusu.
Temel okuma, yazma ve komut satırı araçlarıyla donatılmış bir kodlama ajanı.
Erişilebilirlik API'lerini kullanarak masaüstü GUI otomasyonu. Vision modelleri veya ekran görüntüleri olmadan Windows, macOS ve Linux uygulamalarını kontrol edin. İş akışı kaydı, yapılandırılmış veri çıkarma ve tarayıcı DOM incelemesini destekler.
MCP kullanarak çoklu ajan sistemleri oluşturmak için bir framework'tür. Koordine edilmiş AI işbirliğini sağlayan görev yönetimi, paylaşılan context ve RAG yetenekleriyle gelir.
Claude gibi yapay zeka sistemlerinin VS Code çalışma alanındaki dizin yapısını okuymasını, linter ve language server tarafından tespit edilen sorunları görmesini, kod dosyalarını okumasını ve düzenlemeler yapmasını sağlayan bir MCP Server.