Coding Agents TypeScript ★ 373

juehang/vscode-mcp-server

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.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "juehang-vscode-mcp-server": {
      "command": "node",
      "args": [
        "~/.mcp/vscode-mcp-server/index.js"
      ]
    }
  }
}

VS Code MCP Server

Visual Studio Code uzantısı (Marketplace'de mevcuttur), Claude ve diğer MCP istemcilerinin VS Code'da doğrudan kod yazmasını sağlar! Serena'dan esinlenmiş, ancak VS Code'un yerleşik yeteneklerini kullanır. Mevcut kodlama ajanlarını (Claude Code gibi) VS Code'a özgü yeteneklerle (sembol arama, belge ana hatları) genişletmek için idealdir; zaten sahip oldukları araçları tekrarlamadan. Bu uzantının streamable HTTP API'sini kullandığını, SSE API'sini değil.

Bu uzantı kabuk komutlarının yürütülmesine izin verebilir. Bu, potansiyel bir güvenlik riski anlamına gelir, bu nedenle dikkat ile kullanın ve kullandığınız MCP istemcisine güvendiğinizden ve port'un herhangi bir şeye maruz kalmadığından emin olun. Kimlik doğrulama yardımcı olabilir, ancak MCP kimlik doğrulama spec'i hala değişim halinde olduğundan, şu an için bu uygulanmamıştır.

PR'ler hoş geldiniz!

Demo Videosu

https://github.com/user-attachments/assets/20b87dfb-fc39-4710-a910-b9481dde1e90

Kurulum

  1. Uzantıyı Marketplace'den yükleyin veya bu depoyu klonlayın ve npm install ve npm run compile komutlarını çalıştırarak derleyin.

Claude Desktop Konfigürasyonu

Claude Desktop, bu uzantıyı bir MCP sunucusu olarak kullanacak şekilde yapılandırılabilir. Bunu yapmak için claude_desktop_config.json dosyanız şu şekilde görünmelidir:

{
  "mcpServers": {
    "vscode-mcp-server": {
        "command": "npx",
        "args": ["mcp-remote@next", "http://localhost:3000/mcp"]
    }

  }
}

Ayrıca bu uzantıyı bir Claude projesinde kullanmayı da seviyorum, çünkü Claude için ek talimatlar belirtmeme izin veriyor. Aşağıdaki prompt'un iyi çalıştığını buldum:

You are working on an existing codebase, which you can access using your tools. These code tools interact with a VS Code workspace.

WORKFLOW ESSENTIALS:
1. Always start exploration with list_files_code on root directory (.) first
2. CRITICAL: Run get_diagnostics_code after EVERY set of code changes before completing tasks
3. For small edits (≤10 lines): use replace_lines_code with exact original content
4. For large changes, new files, or uncertain content: use create_file_code with overwrite=true

EXPLORATION STRATEGY:
- Start: list_files_code with path='.' (never recursive on root)
- Understand structure: read key files like package.json, README, main entry points
- Find symbols: use search_symbols_code for functions/classes, get_document_symbols_code for file overviews
- Before editing: read_file_code the target file to understand current content

EDITING BEST PRACTICES:
- Small modifications: replace_lines_code (requires exact original content match)
- If replace_lines_code fails: read_file_code the target lines, then retry with correct content
- Large changes: create_file_code with overwrite=true is more reliable
- After any changes: get_diagnostics_code to check for errors

PLANNING REQUIREMENTS:
Before making code modifications, present a comprehensive plan including:
- Confidence level (1-10) and reasoning
- Specific tools you'll use and why
- Files you'll modify and approach (small edits vs complete rewrites)
- How you'll verify the changes work (diagnostics, testing, etc.)

ERROR HANDLING:
- Let errors happen naturally - don't add unnecessary try/catch blocks
- For tool failures: follow the specific recovery guidance in each tool's description
- If uncertain about file content: use read_file_code to verify before making changes

APPROVAL PROCESS:
IMPORTANT: Only run code modification tools after presenting a plan and receiving explicit approval. Each change requires separate approval.

Do not add tests unless specifically requested. If you believe testing is important, explain why and let the user decide.

Kod tabanlarını keşfederken bağlam verimliliği için bunu CLAUDE.md dosyanıza eklemeyi göz önünde bulundurun:

## VS Code Symbol Tools for Context Efficiency
Use VS Code symbol tools to reduce context consumption:
- `get_document_symbols_code` for file structure overview instead of reading entire files
- `search_symbols_code` to find symbols by name across the project
- `get_symbol_definition_code` for type info and docs without full file context
- Workflow: get outline → search symbols → get definitions → read implementation only when needed

Bu uzantı, bir Model Context Protocol (MCP) sunucusu olarak hizmet verir ve VS Code'un dosya sistemi ve düzenleme yeteneklerini MCP istemcilerine açığa çıkarır.

Özellikler

VS Code MCP Server uzantısı, yapay zeka modelleri ve diğer MCP istemcilerinin aşağıdakileri yapmasına olanak tanıyan MCP uyumlu bir sunucu uygular:

  • Dosyaları ve dizinleri listele VS Code çalışma alanınızda
  • Dosya içeriğini oku kodlama desteği ve boyut sınırlamaları ile
  • Dosya ve dizinleri taşı içe aktarımlar için uygun refactoring desteği ile
  • Dosya ve dizinleri yeniden adlandır otomatik referans güncellemeleri ile
  • Dosyaları kopyala yeni konumlara (sadece dosyalar, dizinler değil)
  • Semboller için arama yap çalışma alanınızda
  • Sembol tanımlarını al ve satır ve sembol adına göre hover bilgisi
  • Yeni dosyalar oluştur VS Code'un WorkspaceEdit API'sini kullanarak
  • Satır değişiklikleri yap dosyalarda
  • Tanılamalar için kontrol et (hatalar ve uyarılar) çalışma alanınızda
  • Kabuk komutlarını yürüt entegre terminalde kabuk entegrasyonu ile
  • Sunucuyu aç ve kapat durum çubuğu öğesi aracılığıyla

Bu uzantı, yapay zeka asistanlarının ve diğer araçların standartlaştırılmış MCP protokolü aracılığıyla VS Code çalışma alanınızla etkileşim kurmasını sağlar.

Nasıl Çalışır

Uzantı, aşağıdakileri yapan bir MCP sunucusu oluşturur:

  1. Yapılandırılabilir bir port'ta (etkinleştirildiğinde) yerel olarak çalışır
  2. HTTP aracılığıyla MCP protokol isteklerini işler
  3. VS Code'un işlevselliğini MCP araçları olarak açığa çıkarır
  4. Sunucu durumunu gösteren ve sunucuyu aç/kapat için tıklanabilen bir durum çubuğu göstergesi sağlar

Desteklenen MCP Araçları

Dosya Araçları

  • list_files_code: Çalışma alanınızdaki dosyaları ve dizinleri listeler

    • Parametreler:
      • path: Dosyaları listelemek için yol
      • recursive (isteğe bağlı): Dosyaları özyinelemeli olarak listele
  • read_file_code: Dosya içeriğini okur

    • Parametreler:
      • path: Okunacak dosyanın yolu
      • encoding (isteğe bağlı): Dosya kodlaması (varsayılan: utf-8)
      • maxCharacters (isteğe bağlı): Maksimum karakter sayısı (varsayılan: 100.000)
  • move_file_code: Bir dosya veya dizini VS Code'un WorkspaceEdit API'sini kullanarak yeni bir konuma taşır

    • Parametreler:
      • sourcePath: Taşınacak dosya veya dizinin mevcut yolu
      • targetPath: Dosya veya dizinin taşınacağı yeni yol
      • overwrite (isteğe bağlı): Hedef zaten varsa üzerine yazılsın mı (varsayılan: false)
  • rename_file_code: Bir dosya veya dizini VS Code'un WorkspaceEdit API'sini kullanarak yeniden adlandırır

    • Parametreler:
      • filePath: Yeniden adlandırılacak dosya veya dizinin mevcut yolu
      • newName: Dosya veya dizinin yeni adı
      • overwrite (isteğe bağlı): Aynı ada sahip bir dosya zaten varsa üzerine yazılsın mı (varsayılan: false)
  • copy_file_code: Bir dosyayı VS Code'un dosya sistemi API'sini kullanarak yeni bir konuma kopyalar

    • Parametreler:
      • sourcePath: Kopyalanacak dosyanın yolu
      • targetPath: Kopyanın oluşturulacağı yol
      • overwrite (isteğe bağlı): Hedef zaten varsa üzerine yazılsın mı (varsayılan: false)

Düzenleme Araçları

  • create_file_code: VS Code'un WorkspaceEdit API'sini kullanarak yeni bir dosya oluşturur

    • Parametreler:
      • path: Oluşturulacak dosyanın yolu
      • content: Dosyaya yazılacak içerik
      • overwrite (isteğe bağlı): Dosya zaten varsa üzerine yazılsın mı (varsayılan: false)
      • ignoreIfExists (isteğe bağlı): Dosya zaten varsa yok sayılsın mı (varsayılan: false)
  • replace_lines_code: Bir dosyadaki belirli satırları değiştirir

    • Parametreler:
      • path: Değiştirilecek dosyanın yolu
      • startLine: Başlangıç satırı numarası (1 tabanlı, kapsayıcı)
      • endLine: Bitiş satırı numarası (1 tabanlı, kapsayıcı)
      • content: Satırları değiştirecek yeni içerik
      • originalCode: Doğrulama için orijinal kod

Tanılama Araçları

  • get_diagnostics_code: Çalışma alanınızda uyarıları ve hataları kontrol eder

    • Parametreler:
      • path (isteğe bağlı): Kontrol edilecek dosya yolu (sağlanmadığında tüm çalışma alanını kontrol eder)
      • severities (isteğe bağlı): Eklenecek önem seviyeleri dizisi (0=Hata, 1=Uyarı, 2=Bilgi, 3=İpucu). Varsayılan: [0, 1]
      • format (isteğe bağlı): Çıkış biçimi ('text' veya 'json'). Varsayılan: 'text'
      • includeSource (isteğe bağlı): Tanılama kaynağını ekle. Varsayılan: true

    Bu araç özellikle kullanışlıdır:

    • Kod kalitesi kontrolleri değişiklikleri commit etmeden önce
    • Düzeltmelerin tüm bildirilen sorunları çözdüğünü doğrulama
    • Belirli dosyalarda veya tüm çalışma alanında sorunları tanımlama

Sembol Araçları

  • search_symbols_code: Çalışma alanında semboller arar

    • Parametreler:
      • query: Sembol adları için arama sorgusu
      • maxResults (isteğe bağlı): Döndürülecek maksimum sonuç sayısı (varsayılan: 10)

    Bu araç kullanışlıdır:

    • Kod tabanında sembol tanımlarını (işlevler, sınıflar, değişkenler, vb.) bulma
    • Proje yapısını ve organizasyonunu keşfetme
    • Belirli elemanları ada göre bulma
  • get_symbol_definition_code: Bir dosyadaki sembolün tanım bilgisini alır

    • Parametreler:
      • path: Sembolü içeren dosyanın yolu
      • line: Sembolün satır numarası
      • symbol: Belirtilen satırda aranacak sembol adı

    Bu araç sağlar:

    • Sembol türü bilgisi, belgesi ve kaynak detayları
    • Sembolün göründüğü satırı gösteren kod bağlamı
    • Sembol aralığı bilgisi

    Özellikle kullanışlıdır:

    • Sembolün ne temsil ettiğini başka bir yere gitmeden anlama
    • İşlev imzaları, tür tanımları veya belgeleri kontrol etme
    • API'ler veya kütüphane işlevleri için hızlı referans
  • get_document_symbols_code: Bir dosyadaki tüm semboller için ana hatlar alır, hiyerarşik yapıyı gösterir

    • Parametreler:
      • path: Analiz edilecek dosyanın yolu (çalışma alanına göre)
      • maxDepth (isteğe bağlı): Gösterilecek maksimum iç içe geçme derinliği

    Bu araç sağlar:

    • Bir belge için tam sembol ağacı (VS Code'un Outline görünümüne benzer)
    • Sınıfları, işlevleri, yöntemleri, değişkenleri, vb. gösteren hiyerarşik yapı
    • Her sembol için konum bilgisi ve sembol türleri
    • Sembol türüne göre özet istatistikleri

    Özellikle kullanışlıdır:

    • Dosya yapısını ve organizasyonunu bir bakışta anlama
    • Bir belgedeki tüm sembollere genel bakış elde etme
    • Kod mimarisini ve ilişkilerini analiz etme
    • Bir dosya içindeki belirli türdeki tüm sembolleri bulma

Shell Araçları

  • execute_shell_command_code: VS Code entegre terminalinde kabuk entegrasyonu ile bir kabuk komutu yürütür

    • Parametreler:
      • command: Yürütülecek kabuk komutu
      • cwd (isteğe bağlı): Komut için isteğe bağlı çalışma dizini (varsayılan: '.')

    Bu araç kullanışlıdır:

    • CLI komutlarını ve derleme işlemlerini çalıştırma
    • Git komutlarını yürütme
    • Terminal erişimi gerektiren herhangi bir kabuk işlemi
    • Analiz ve daha fazla işlem için komut çıkışı alma

Uyarılar/TODO

Şu anda yalnızca bir çalışma alanı desteklenmektedir. Uzantı da sadece yerel olarak çalışır, VS Code örneğinizi bağlı olabileceğiniz herhangi bir ağa maruz bırakmaktan kaçınmak için.

Uzantı Ayarları

  • vscode-mcp-server.port: MCP sunucusu için port numarası (varsayılan: 3000)
  • vscode-mcp-server.host: MCP sunucusu için host adresi (varsayılan: 127.0.0.1)
  • vscode-mcp-server.defaultEnabled: MCP sunucusu VS Code başlangıcında varsayılan olarak etkinleştirilsin mi
  • vscode-mcp-server.enabledTools: Hangi araç kategorilerinin etkinleştirildiğini yapılandırın (file, edit, shell, diagnostics, symbol)

Seçmeli Araç Konfigürasyonu: Zaten belirli yeteneklere sahip kodlama ajanları için kullanışlıdır. Örneğin, Claude Code ile dosya/düzenleme araçlarını devre dışı bırakabilir ve araç çoğaltmasından kaçınmak için sadece VS Code'a özgü sembol araması eklemek için sembol araçlarını etkinleştirebilirsiniz.

MCP İstemcileri ile Kullanma

MCP istemcilerini bu sunucuya bağlanmak için yapılandırın:

http://localhost:3000/mcp

Veya özel bir host yapılandırdıysanız:

http://[your-host]:3000/mcp

Sunucuyu ilk olarak durum çubuğu öğesine tıklayarak etkinleştirmeniz gerektiğini unutmayın!

Katkı Yapma

Katkılar hoş geldiniz! Sorun bildir veya çekme istekleri gönder.

Lisans

MIT

Benzer MCP sunucuları

Daha fazla: Coding Agents →