vscode-mcp-server

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

インストール

  1. Marketplaceから拡張機能をインストールするか、このリポジトリのクローンを作成し、 npm installnpm run compileを実行してビルドします。

クロードデスクトップ構成

Claude Desktop は、この拡張機能を MCP サーバーとして使用するように設定できます。これを行うには、 claude_desktop_config.jsonファイルは以下のようになります。

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

この拡張機能はClaudeプロジェクトでも使用しています。Claudeへの追加指示を指定できるためです。以下のプロンプトがうまく機能していると思います。

You are working on an existing codebase, which you can access using your tools. These code tools interact with a VS Code workspace. Before running code tools that will make any modification to code, always present a comprehensive and detailed plan to the user, including your confidence level (out of 10). When planning, use your tools to explore the codebase so that you understand the context of the project. If you are not confident in your plan because you require more information, use your tools, such as web search, to look for this information or ask the user. IMPORTANT: Only run code tools that will modify code after presenting such a plan to the user, and receiving explicit approval. Approval must be given each time; prior approval for a change does not imply that subsequent changes are approved.

この拡張機能は、モデル コンテキスト プロトコル (MCP) サーバーとして機能し、VS Code のファイルシステムと編集機能を MCP クライアントに公開します。

特徴

VS Code MCP サーバー拡張機能は、AI モデルやその他の MCP クライアントが次のことを実行できるようにする MCP 準拠のサーバーを実装します。

  • VS Code ワークスペース内のファイルとディレクトリを一覧表示する
  • エンコードのサポートとサイズ制限付きでファイルの内容を読み取る
  • ワークスペース全体でシンボルを検索する
  • 行とシンボル名でシンボルの定義とホバー情報を取得します
  • VS Code の WorkspaceEdit API を使用して新しいファイルを作成する
  • ファイル内の行を置換する
  • ワークスペースの診断(エラーと警告)を確認します
  • シェル統合により統合ターミナルでシェルコマンドを実行する
  • ステータスバー項目からサーバーのオン/オフを切り替える

この拡張機能により、AI アシスタントやその他のツールが標準化された MCP プロトコルを通じて VS Code ワークスペースと対話できるようになります。

仕組み

この拡張機能は、次の機能を備えた MCP サーバーを作成します。

  1. 設定可能なポートでローカルに実行(有効な場合)
  2. HTTP経由でMCPプロトコルリクエストを処理する
  3. VS Code の機能を MCP ツールとして公開します
  4. サーバーのステータスを示すステータス バー インジケータを提供し、クリックするとサーバーのオン/オフを切り替えることができます。

サポートされている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 クライアントをこのサーバーに接続するには、以下を使用するように構成します。

http://localhost:3000/mcp

最初にステータス バー項目をクリックしてサーバーを有効にする必要があることに注意してください。

貢献

貢献を歓迎します!お気軽に問題やプルリクエストを送信してください。

ライセンス

マサチューセッツ工科大学

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

vscode-mcp-サーバー

  1. Demo Video
    1. Installation
      1. Claude Desktop Configuration
        1. Features
          1. How It Works
            1. Supported MCP Tools
              1. File Tools
              2. Edit Tools
              3. Diagnostics Tools
              4. Symbol Tools
              5. Shell Tools
            2. Caveats/TODO
              1. Extension Settings
                1. Using with MCP Clients
                  1. Contributing
                    1. License
                      ID: ohvq7n4onu