MCP 言語サーバー
これは、言語サーバーを実行し、LLMに公開するMCPサーバーです。MCP用の言語サーバーではありません。MCP用の言語サーバーが何であれ。
デモ
mcp-language-server
定義の取得、参照、名前の変更、診断などのセマンティック ツールへのアクセスを提供することで、MCP 対応クライアントがコードベースをより簡単にナビゲートできるようにします。
設定
- Go をインストールします: https://golang.org/doc/installの指示に従ってください
- このサーバーをインストールまたは更新します:
go install github.com/isaacphi/mcp-language-server@latest
- 言語サーバーをインストールする:以下のいずれかのガイドに従ってください
- MCPクライアントを構成する:以下のいずれかのガイドに従ってください
ツール
definition
: コードベースから任意のシンボル (関数、型、定数など) の完全なソース コード定義を取得します。references
: コードベース全体でシンボルのすべての使用箇所と参照を見つけます。diagnostics
: 警告やエラーなど、特定のファイルの診断情報を提供します。hover
: 特定の場所のドキュメント、入力ヒント、その他のホバー情報を表示します。rename_symbol
: プロジェクト全体のシンボルの名前を変更します。edit_file
: 行番号に基づいてファイル内の複数のテキストを編集できます。検索・置換ベースの編集ツールと比較して、より信頼性が高く、コンテキストに基づいたファイル編集方法を提供します。
について
このコードベースは、LSP通信を処理するためにgoplsのコードを編集して使用しています。詳細は帰属を参照してください。ここに掲載されているすべてのものは、寛容なBSDスタイルのライセンスで保護されています。
MCP通信にはmcp-goを利用しております。ご利用ありがとうございます。
これはベータ版ソフトウェアです。何か問題が発生した場合や、ご意見・ご提案がございましたら、問題を作成してお知らせください。
貢献
PR は小規模にとどめ、実質的な問題の場合はまず Issue をオープンにしてください。テスト済みでチェックに合格し、問題がない限り、AI の雑多な内容でも問題ありません。
設定
リポジトリをクローンします:
便宜上、 justfileが含まれています。
ローカルバイナリを使用するように Claude Desktop (または同様のもの) を構成します。
変更後に再構築します。
ログ記録
LOG_LEVEL
環境変数を DEBUG に設定すると、言語サーバーとの間のメッセージや言語サーバーのログを含むすべてのコンポーネントの stderr への詳細なログ記録が有効になります。
LSPインタラクション
internal/lsp/methods.go
には、接続された言語サーバーへの呼び出しを行うために生成されたコードが含まれています。internal/protocol/tsprotocol.go
には、LSPタイプ用の生成コードが含まれています。これはgopls
のソースコードから拝借したものです。ご協力ありがとうございます。- LSPでは、言語サーバーが同じメソッドに対して異なる型を返すことができます。Goではこれが好ましくないため、
internal/protocol/interfaces.go
にいくつかの厄介な回避策が用意されています。
ローカル開発とスナップショットテスト
ツールの変更を簡単にテストできるスナップショットテストスイートがあります。これらのテストスイートでは、模擬ワークスペース上で実際の言語サーバーを実行し、出力とログをキャプチャします。
実行するには、ローカルに言語サーバーをインストールする必要があります。Go、Rust、Python、TypeScriptのテストがあります。
スナップショットを更新するには、 UPDATE_SNAPSHOTS=true go test ./integrationtests/...
実行します。
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
言語サーバーを実行し、サーバーと通信するためのツールを提供します。言語サーバーは、型の正確な理解、関係の理解、正確なシンボル参照の提供など、LLMがしばしば困難に感じるタスクに優れています。
Related Resources
Related MCP Servers
- -securityAlicense-qualityThis is a server that lets your LLMs (like Claude) talk directly to your BigQuery data! Think of it as a friendly translator that sits between your AI assistant and your database, making sure they can chat securely and efficiently.Last updated -124181JavaScriptMIT License
- AsecurityAlicenseAqualityThis server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.Last updated -154,491JavaScriptMIT License
- -securityFlicense-qualityA TypeScript-based server that provides a memory system for Large Language Models (LLMs), allowing users to interact with multiple LLM providers while maintaining conversation history and offering tools for managing providers and model configurations.Last updated -20JavaScript
- -securityFlicense-qualityThis server provides an API to query Large Language Models using context from local files, supporting various models and file types for context-aware responses.Last updated -1TypeScript