language-server-mcp MCP Server について
language-server-mcp は TypeScript で実装された MCP サーバーで、コード編集向けにホバー情報、コード補完、診断機能を提供します。README によると TypeScript でのみテストされており、MCP クライアントから言語解析機能を利用したい開発者に向いています。
主な機能
- 01シンボルのホバー情報
- 02コード補完の候補
- 03エラーや警告の診断レポート
- 04MCP ツールとして公開される言語機能
活用シーン
- 01編集中にシンボルのホバー説明を AI アシスタントに読み取らせる
- 02TypeScript ファイルの補完候補と診断結果の取得
MCP 対応
このプロジェクトは MCP サーバーであり、get_hover、get_completions、get_diagnostics などのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
language-server-mcp MCP サーバー
コード編集のための言語サポートを提供する Model Context Protocol (MCP) サーバーです。
これは TypeScript ベースの MCP サーバーで、ホバー情報、コード補完、診断などの機能を提供することで、コード編集体験を向上させるように設計されています。以下の機能を提供することで、MCP の基本概念を示します:
- コード分析と操作のための言語固有のツール
- シームレスな通信のための Model Context Protocol との統合
機能
言語サポート
- コード内のシンボルに関するホバー情報を提供します
- コード補完の候補を提供します
- 診断情報 (エラー、警告) を報告します
- typescript でのみテスト済みで、理論上は Python をサポートするはずです。可能であれば、追加の言語サーバーを追加したり、より汎用的にしたいと考えています。
MCP 統合
- クライアントとの通信用に MCP プロトコルを実装しています
- 言語機能を MCP ツールとして公開します
ツール
get_hover: ドキュメント内の位置のホバー情報を取得します- 必須パラメータとして languageId、filePath、content、line、character を受け取ります
get_completions: ドキュメント内の位置の補完候補を取得します- 必須パラメータとして languageId、filePath、content、line、character を受け取ります
get_diagnostics: ドキュメントの診断情報を取得します- 必須パラメータとして languageId、filePath、content を受け取ります
開発
依存関係をインストールします:
npm install
サーバーをビルドします:
npm run build
自動再ビルドによる開発の場合:
npm run watch
インストール
Claude Desktop で使用するには、サーバー設定を追加します:
MacOS の場合: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows の場合: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"language-server-mcp": {
"command": "/path/to/language-server-mcp/build/index.js"
}
}
}
デバッグ
MCP サーバーは stdio を介して通信するため、デバッグが難しい場合があります。パッケージスクリプトとして利用可能な MCP Inspector の使用をお勧めします:
npm run inspector
Inspector は、ブラウザでデバッグツールにアクセスするための URL を提供します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。