Developer Tools Go ★ 1,554

isaacphi/mcp-language-server

MCP Language Server, MCP destekli istemcilerin get definition, references, rename ve diagnostics gibi semantik araçlara erişim sağlayarak kod tabanlarında daha kolay gezinmesine yardımcı olur.

Claude Desktop config.json'a ekle

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

MCP Language Server

Go Tests Go Report Card GoDoc Go Version

Bu, MCP sunucusu çalıştıran ve LLM'lere bir language server ortaya çıkaran bir sunucudur. MCP için bir language server değildir, o da ne olurdu.

Demo

mcp-language-server, MCP etkin istemcilere definition alma, referanslar, yeniden adlandırma ve diagnostikler gibi semantik araçlara erişim sağlayarak kod tabanlarında daha kolay gezinmelerine yardımcı olur.

Demo

Kurulum

  1. Go'yu yükleyin: https://golang.org/doc/install adresindeki yönergeleri izleyin
  2. Bu sunucuyu yükleyin veya güncelleyin: go install github.com/isaacphi/mcp-language-server@latest
  3. Bir language server yükleyin: aşağıdaki kılavuzlardan birini izleyin
  4. MCP istemcinizi yapılandırın: aşağıdaki kılavuzlardan birini izleyin
Go (gopls)

gopls'i yükleyin: go install golang.org/x/tools/gopls@latest

MCP istemcinizi yapılandırın: Bu her istemci için farklı ama benzer olacaktır. Claude Desktop için, aşağıdakileri ~/Library/Application\ Support/Claude/claude_desktop_config.json dosyasına ekleyin

{
  "mcpServers": {
    "language-server": {
      "command": "mcp-language-server",
      "args": ["--workspace", "/Users/you/dev/yourproject/", "--lsp", "gopls"],
      "env": {
        "PATH": "/opt/homebrew/bin:/Users/you/go/bin",
        "GOPATH": "/users/you/go",
        "GOCACHE": "/users/you/Library/Caches/go-build",
        "GOMODCACHE": "/Users/you/go/pkg/mod"
      }
    }
  }
}

Not: Tüm istemciler bu ortam değişkenlerine ihtiyaç duymayacaktır. Claude Desktop için yukarıdaki ortam değişkenlerini makinenize ve kullanıcı adınıza göre güncellemeniz gerekecektir:

  • PATH, go ve gopls yolunu içermelidir. Bunu echo $(which go):$(which gopls) ile alabilirsiniz
  • GOPATH, GOCACHE ve GOMODCACHE makinenizde farklı olabilir. Bunlar varsayılanlarıdır.
Rust (rust-analyzer)

rust-analyzer'ı yükleyin: rustup component add rust-analyzer

MCP istemcinizi yapılandırın: Bu her istemci için farklı ama benzer olacaktır. Claude Desktop için, aşağıdakileri ~/Library/Application\ Support/Claude/claude_desktop_config.json dosyasına ekleyin

{
  "mcpServers": {
    "language-server": {
      "command": "mcp-language-server",
      "args": [
        "--workspace",
        "/Users/you/dev/yourproject/",
        "--lsp",
        "rust-analyzer"
      ]
    }
  }
}
Python (pyright)

pyright'ı yükleyin: npm install -g pyright

MCP istemcinizi yapılandırın: Bu her istemci için farklı ama benzer olacaktır. Claude Desktop için, aşağıdakileri ~/Library/Application\ Support/Claude/claude_desktop_config.json dosyasına ekleyin

{
  "mcpServers": {
    "language-server": {
      "command": "mcp-language-server",
      "args": [
        "--workspace",
        "/Users/you/dev/yourproject/",
        "--lsp",
        "pyright-langserver",
        "--",
        "--stdio"
      ]
    }
  }
}
Typescript (typescript-language-server)

typescript-language-server'ı yükleyin: npm install -g typescript typescript-language-server

MCP istemcinizi yapılandırın: Bu her istemci için farklı ama benzer olacaktır. Claude Desktop için, aşağıdakileri ~/Library/Application\ Support/Claude/claude_desktop_config.json dosyasına ekleyin

{
  "mcpServers": {
    "language-server": {
      "command": "mcp-language-server",
      "args": [
        "--workspace",
        "/Users/you/dev/yourproject/",
        "--lsp",
        "typescript-language-server",
        "--",
        "--stdio"
      ]
    }
  }
}
C/C++ (clangd)

clangd'yi yükleyin: Önceden derlenmiş ikili dosyaları resmi LLVM yayınlar sayfasından indirin veya sisteminizin paket yöneticisi aracılığıyla yükleyin (örn. apt install clangd, brew install clangd).

MCP istemcinizi yapılandırın: Bu her istemci için farklı ama benzer olacaktır. Claude Desktop için, aşağıdakileri ~/Library/Application\\ Support/Claude/claude_desktop_config.json dosyasına ekleyin

{
  "mcpServers": {
    "language-server": {
      "command": "mcp-language-server",
      "args": [
        "--workspace",
        "/Users/you/dev/yourproject/",
        "--lsp",
        "/path/to/your/clangd_binary",
        "--",
        "--compile-commands-dir=/path/to/yourproject/build_or_compile_commands_dir"
      ]
    }
  }
}
<p><strong>Not</strong>:</p>
<ul>
  <li><code>/path/to/your/clangd_binary</code> yerine clangd yürütülebilir dosyasının gerçek yolunu koyun.</li>
  <li><code>--compile-commands-dir</code>, <code>compile_commands.json</code> dosyanızı içeren dizini göstermelidir (örn. <code>./build</code>, <code>./cmake-build-debug</code>).</li>
  <li>clangd'nin etkili bir şekilde çalışması için projeniz için <code>compile_commands.json</code> oluşturulduğundan emin olun.</li>
</ul>
Diğer

Bu repo'yu yalnızca yukarıdaki sunucularla test ettim ama birçok başkasıyla uyumlu olmalıdır. Unutmayın:

  • Language server stdio üzerinden iletişim kurmalıdır.
  • -- sonrasındaki herhangi bir argüman language server'a argüman olarak gönderilir.
  • Herhangi bir ortam değişkeni language server'a iletilir.

Araçlar

  • definition: Kod tabanınızdan herhangi bir sembolün (function, type, constant, vb.) tam kaynak kodu tanımını alır.
  • references: Sembolün kod tabanı genelinde tüm kullanımlarını ve referanslarını bulur.
  • diagnostics: Uyarılar ve hatalar da dahil olmak üzere belirli bir dosya için tanı bilgileri sağlar.
  • hover: Belirli bir konum için belgeleri, tip ipuçlarını veya diğer hover bilgilerini görüntüle.
  • rename_symbol: Bir sembolü proje genelinde yeniden adlandırın.
  • edit_file: Satır numaralarına göre bir dosyaya birden çok metin düzenlemesi yapılmasına izin verir. Arama ve değiştirme tabanlı düzenleme araçlarına kıyasla dosyaları düzeltmenin daha güvenilir ve bağlam açısından ekonomik bir yolunu sağlar.

Hakkında

Bu kod tabanı, LSP iletişimini işlemek için gopls adresinden düzenlenmiş kodu kullanır. Ayrıntılar için ATTRIBUTION dosyasına bakın. Buradaki her şey izin verici BSD tarzı lisans tarafından kapsanmıştır.

mcp-go, MCP iletişimi için kullanılır. Hizmetiniz için teşekkürler.

Bu beta yazılımdır. Herhangi bir soruna çarptıysanız veya herhangi bir türde öneriniz varsa bir issue oluşturarak lütfen bana bildirin.

Katkıda Bulunma

PR'leri küçük tutun ve önemli herhangi bir şey için önce Issues açın. AI slop sorun değildir, sürece test edilirse, kontrolleri geçerse ve çok kötü kokmazsa.

Kurulum

Repo'yu klonlayın:

git clone https://github.com/isaacphi/mcp-language-server.git
cd mcp-language-server

Kolaylık için bir justfile eklenmiştir:

just -l
Available recipes:
    build    # Build
    check    # Run code audit checks
    fmt      # Format code
    generate # Generate LSP types and methods
    help     # Help
    install  # Install locally
    snapshot # Update snapshot tests
    test     # Run tests

Claude Desktop'u (veya benzerini) yerel binary'yi kullanacak şekilde yapılandırın:

{
  "mcpServers": {
    "language-server": {
      "command": "/full/path/to/your/clone/mcp-language-server/mcp-language-server",
      "args": [
        "--workspace",
        "/path/to/workspace",
        "--lsp",
        "language-server-executable"
      ],
      "env": {
        "LOG_LEVEL": "DEBUG"
      }
    }
  }
}

Değişiklik yaptıktan sonra yeniden derleyin.

Logging

LOG_LEVEL ortam değişkenini DEBUG olarak ayarlamak, language server'a ve language server'ın günlüklerine giden mesajler de dahil olmak üzere tüm bileşenler için stderr'e ayrıntılı logging'i etkinleştirir.

LSP interaction

  • internal/lsp/methods.go bağlı language server'a çağrılar yapmak için oluşturulan kod içerir.
  • internal/protocol/tsprotocol.go LSP türleri için oluşturulan kod içerir. Bunu gopls'in kaynak kodundan ödünç aldım. Hizmetiniz için teşekkürler.
  • LSP, language server'ların aynı methodlar için farklı türler döndürmesine izin verir. Go bunu sevmez, bu yüzden internal/protocol/interfaces.go dosyasında bazı çirkin workaround'lar vardır.

Yerel Geliştirme ve Snapshot Testleri

Araçlardaki değişiklikleri denemeyi çok daha kolay hale getiren bir snapshot test paketi vardır. Bunlar mock workspaces'lerde gerçek language server'ları çalıştırır ve çıktı ve günlükleri yakalar.

Onları çalıştırmak için language server'ları yerel olarak yüklemeniz gerekecektir. Go, rust, python ve typescript için testler vardır.

integrationtests/
├── tests/        # Tests are in this folder
├── snapshots/    # Snapshots of tool outputs
├── test-output/  # Gitignored folder showing the final state of each workspace and logs after each test run
└── workspaces/   # Mock workspaces that the tools run on

Snapshot'ları güncellemek için UPDATE_SNAPSHOTS=true go test ./integrationtests/... komutunu çalıştırın

Benzer MCP sunucuları

eyaltoledano/claude-task-master Developer Tools

AI destekli geliştirme için yapay zeka tabanlı görev yönetim sistemi. PRD ayrıştırma, görev genişletme, çoklu provider desteği (Claude, OpenAI, Gemini, Perplexity, xAI) ve optimize edilmiş context kullanımı için seçmeli tool yükleme özelliklerine sahiptir.

eyaltoledano/claude-task-master ★ 27,664
GLips/Figma-Context-MCP Developer Tools

Kodlama ajanlarına Figma verilerine doğrudan erişim sağlayarak tasarım implementasyonunu tek adımda tamamlamalarını sağlar.

GLips/Figma-Context-MCP ★ 15,186
DeusData/codebase-memory-mcp Developer Tools

Yüksek performanslı kod zekası MCP sunucusu. Codebase'leri kalıcı bir knowledge graph'e indeksler — ortalama repo milisaniyeler içinde. 66 dil desteği, sub-ms sorgular, %99 daha az token. Tek statik binary, hiç bağımlılık yok.

DeusData/codebase-memory-mcp ★ 10,848
idosal/git-mcp Developer Tools

gitmcp.io, herhangi bir GitHub repository veya projeye bağlanıp belgelendirme yapabilen genel amaçlı bir remote MCP server'ıdır.

idosal/git-mcp ★ 8,197
mobile-next/mobile-mcp Developer Tools

Android/iOS uygulamaları ve cihazların otomasyon, geliştirme ile app scraping işlemleri için MCP Server. iPhone, Google Pixel, Samsung gibi simülatör, emülatör ve fiziksel cihazları destekler.

mobile-next/mobile-mcp ★ 5,247
21st-dev/magic-mcp Developer Tools

21st.dev'in en iyi tasarım mühendislerinden ilham alarak özel olarak hazırlanmış UI bileşenleri oluşturun.

21st-dev/magic-mcp ★ 5,202
Daha fazla: Developer Tools →