VS Code MCP サーバー
Claude 氏をはじめとする MCP クライアントが VS Code で直接コーディングできるようにする Visual Studio Code 拡張機能( Marketplaceで入手可能)です。Serenaに着想を得ていますが、VS Code の組み込み機能を使用しています。現時点では Serena よりもはるかにシンプルですが、問題なく動作します。この拡張機能は SSE API ではなく、ストリーミング可能な HTTP API を使用していることに注意してください。
この拡張機能はシェルコマンドの実行を可能にします。これは潜在的なセキュリティリスクを意味しますので、慎重に使用し、使用しているMCPクライアントが信頼できること、およびポートが他のものに公開されていないことを確認してください。認証が役立つ場合もありますが、MCP認証仕様はまだ流動的であるため、現時点では実装されていません。
PR大歓迎です!
デモビデオ
https://github.com/user-attachments/assets/20b87dfb-fc39-4710-a910-b9481dde1e90
インストール
- Marketplaceから拡張機能をインストールするか、このリポジトリのクローンを作成し、
npm install
とnpm run compile
を実行してビルドします。
クロードデスクトップ構成
Claude Desktop は、この拡張機能を MCP サーバーとして使用するように設定できます。これを行うには、 claude_desktop_config.json
ファイルは以下のようになります。
この拡張機能はClaudeプロジェクトでも使用しています。Claudeへの追加指示を指定できるためです。以下のプロンプトがうまく機能していると思います。
この拡張機能は、モデル コンテキスト プロトコル (MCP) サーバーとして機能し、VS Code のファイルシステムと編集機能を MCP クライアントに公開します。
特徴
VS Code MCP サーバー拡張機能は、AI モデルやその他の MCP クライアントが次のことを実行できるようにする MCP 準拠のサーバーを実装します。
- VS Code ワークスペース内のファイルとディレクトリを一覧表示する
- エンコードのサポートとサイズ制限付きでファイルの内容を読み取る
- ワークスペース全体でシンボルを検索する
- 行とシンボル名でシンボルの定義とホバー情報を取得します
- VS Code の WorkspaceEdit API を使用して新しいファイルを作成する
- ファイル内の行を置換する
- ワークスペースの診断(エラーと警告)を確認します
- シェル統合により統合ターミナルでシェルコマンドを実行する
- ステータスバー項目からサーバーのオン/オフを切り替える
この拡張機能により、AI アシスタントやその他のツールが標準化された MCP プロトコルを通じて VS Code ワークスペースと対話できるようになります。
仕組み
この拡張機能は、次の機能を備えた MCP サーバーを作成します。
- 設定可能なポートでローカルに実行(有効な場合)
- HTTP経由でMCPプロトコルリクエストを処理する
- VS Code の機能を MCP ツールとして公開します
- サーバーのステータスを示すステータス バー インジケータを提供し、クリックするとサーバーのオン/オフを切り替えることができます。
サポートされているMCPツール
ファイルツール
- list_files_code : ワークスペース内のファイルとディレクトリを一覧表示します
- パラメータ:
path
: ファイルを一覧表示するパスrecursive
(オプション): ファイルを再帰的にリストするかどうか
- パラメータ:
- read_file_code : ファイルの内容を読み取る
- パラメータ:
path
: 読み取るファイルへのパスencoding
(オプション): ファイルのエンコーディング(デフォルト: utf-8)maxCharacters
(オプション):最大文字数(デフォルト:100,000)
- パラメータ:
編集ツール
- create_file_code : VS Code の WorkspaceEdit API を使用して新しいファイルを作成します。
- パラメータ:
path
: 作成するファイルへのパスcontent
: ファイルに書き込むコンテンツoverwrite
(オプション):ファイルが存在する場合に上書きするかどうか(デフォルト:false)ignoreIfExists
(オプション): ファイルが存在する場合に無視するかどうか (デフォルト: false)
- パラメータ:
- replace_lines_code : ファイル内の特定の行を置き換えます
- パラメータ:
path
: 変更するファイルへのパスstartLine
: 開始行番号(0から始まる、含む)endLine
: 終了行番号(0から始まる、含む)content
: 行を置き換える新しいコンテンツoriginalCode
: 検証の元のコード
- パラメータ:
診断ツール
- get_diagnostics_code : ワークスペース内の警告とエラーをチェックします
- パラメータ:
path
(オプション):チェックするファイルパス(指定しない場合はワークスペース全体をチェックします)severities
(オプション):含める重大度の配列(0=エラー、1=警告、2=情報、3=ヒント)。デフォルト:[0, 1]format
(オプション): 出力形式 ('text' または 'json')。デフォルト: 'text'includeSource
(オプション): 診断ソースを含めるかどうか。デフォルト: true
このツールは特に次の場合に役立ちます。
- 変更をコミットする前にコード品質をチェックする
- 修正を確認すると、報告された問題はすべて解決されました
- 特定のファイルまたはワークスペース全体の問題を特定する
- パラメータ:
シンボルツール
- search_symbols_code : ワークスペース全体でシンボルを検索します
- パラメータ:
query
: シンボル名の検索クエリmaxResults
(オプション): 返される結果の最大数 (デフォルト: 10) このツールは次の場合に役立ちます:
- コードベース全体でシンボル(関数、クラス、変数など)の定義を見つける
- プロジェクトの構造と組織の探究
- 名前で特定の要素を検索する
- パラメータ:
- get_symbol_definition_code : ファイル内のシンボルの定義情報を取得します
- パラメータ:
path
: シンボルを含むファイルへのパスline
: シンボルの行番号(0から始まる)symbol
: 指定された行で検索するシンボル名 このツールは以下を提供します:
- シンボルの型情報、ドキュメント、ソースの詳細
- シンボルが出現する行を示すコードコンテキスト
- シンボル範囲情報 特に次の場合に役立ちます:
- シンボルが何を表しているかを、別の場所に移動せずに理解する
- 関数のシグネチャ、型定義、ドキュメントの確認
- APIまたはライブラリ関数のクイックリファレンス
- パラメータ:
シェルツール
- execute_shell_command_code : シェル統合機能を備えた VS Code 統合ターミナルでシェルコマンドを実行します。
- パラメータ:
command
: 実行するシェルコマンドcwd
(オプション): コマンドのオプションの作業ディレクトリ (デフォルト: '.')
このツールは次の場合に役立ちます:
- CLIコマンドとビルド操作の実行
- gitコマンドの実行
- 端末アクセスを必要とするシェル操作を実行する
- 分析とさらなる処理のためにコマンド出力を取得する
- パラメータ:
注意事項/TODO
現在、サポートされているワークスペースは1つだけです。また、この拡張機能はローカルでのみ動作するため、接続しているネットワークにVS Codeインスタンスが公開されるのを防ぎます。
拡張機能の設定
この拡張機能は次の設定を提供します。
vscode-mcp-server.port
: MCP サーバーのポート番号 (デフォルト: 3000)
MCPクライアントでの使用
MCP クライアントをこのサーバーに接続するには、以下を使用するように構成します。
最初にステータス バー項目をクリックしてサーバーを有効にする必要があることに注意してください。
貢献
貢献を歓迎します!お気軽に問題やプルリクエストを送信してください。
ライセンス
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
vscode-mcp-サーバー