mcpField
V
VS Code MCP Server

VS Code MCP Server

ローカル
github.com/juehang開発ツール39242 週間前に更新

VS Code MCP Server について

VS Code MCP Server は、ファイル、編集、シンボル、診断、ターミナルの機能を streamable HTTP 経由で Claude などの MCP クライアントに公開する VS Code 拡張機能です。Claude Code などの既存のコーディングエージェントに、VS Code 固有の機能を補う用途を想定しています。

主な機能

  1. 01ワークスペースのファイルの一覧表示、読み取り、移動、名前変更、コピー
  2. 02ファイルの作成と指定行の置換
  3. 03シンボル検索、ドキュメントアウトライン、定義の取得
  4. 04エラーや警告などの診断情報の取得
  5. 05統合ターミナルでのシェルコマンドの実行

活用シーン

  1. 01Claude Code に VS Code のシンボル検索とアウトラインを追加
  2. 02コード編集後のワークスペース診断の確認
  3. 03VS Code 上で MCP クライアントからビルドや git コマンドを実行

MCP 対応

本プロジェクトは MCP サーバーであり、ローカルで streamable HTTP を使い、VS Code のファイル、編集、シンボル、診断、ターミナルのツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"vscode": {
"command": "npx",
"args": [
"-y",
"mcp-remote"
]
}
}
}
起動コマンドnpx -y mcp-remote

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-remote

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

VS Code MCP サーバー

Claude やその他の MCP クライアントが VS Code で直接コーディングできるようにする Visual Studio Code 拡張機能です(Marketplaceで入手できます)。Serenaに着想を得ていますが、VS Code に組み込まれた機能を使用します。Claude Code などの既存のコーディングエージェントに、すでに備わっているツールと重複させることなく、シンボル検索やドキュメントのアウトラインといった VS Code 固有の機能を追加するのに最適です。この拡張機能では SSE API ではなく、ストリーミング可能な HTTP API を使用します。

この拡張機能ではシェルコマンドを実行できます。そのため、潜在的なセキュリティリスクがあります。注意して使用し、利用する MCP クライアントが信頼できること、ポートが外部に公開されていないことを確認してください。認証があれば安全性を高められますが、MCP の認証仕様がまだ流動的なため、現時点では実装されていません。

PR を歓迎します!

デモ動画

https://github.com/user-attachments/assets/20b87dfb-fc39-4710-a910-b9481dde1e90

インストール

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

Claude Desktop の設定

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.

WORKFLOW ESSENTIALS:
1. Always start exploration with list_files_code on root directory (.) first
2. CRITICAL: Run get_diagnostics_code after EVERY set of code changes before completing tasks
3. For small edits (≤10 lines): use replace_lines_code with exact original content
4. For large changes, new files, or uncertain content: use create_file_code with overwrite=true

EXPLORATION STRATEGY:
- Start: list_files_code with path='.' (never recursive on root)
- Understand structure: read key files like package.json, README, main entry points
- Find symbols: use search_symbols_code for functions/classes, get_document_symbols_code for file overviews
- Before editing: read_file_code the target file to understand current content

EDITING BEST PRACTICES:
- Small modifications: replace_lines_code (requires exact original content match)
- If replace_lines_code fails: read_file_code the target lines, then retry with correct content
- Large changes: create_file_code with overwrite=true is more reliable
- After any changes: get_diagnostics_code to check for errors

PLANNING REQUIREMENTS:
Before making code modifications, present a comprehensive plan including:
- Confidence level (1-10) and reasoning
- Specific tools you'll use and why
- Files you'll modify and approach (small edits vs complete rewrites)
- How you'll verify the changes work (diagnostics, testing, etc.)

ERROR HANDLING:
- Let errors happen naturally - don't add unnecessary try/catch blocks
- For tool failures: follow the specific recovery guidance in each tool's description
- If uncertain about file content: use read_file_code to verify before making changes

APPROVAL PROCESS:
IMPORTANT: Only run code modification tools after presenting a plan and receiving explicit approval. Each change requires separate approval.

Do not add tests unless specifically requested. If you believe testing is important, explain why and let the user decide.

コードベースを調べる際のコンテキスト効率を高めるには、これを CLAUDE.md に追加することを検討してください。

## VS Code Symbol Tools for Context Efficiency
Use VS Code symbol tools to reduce context consumption:
- `get_document_symbols_code` for file structure overview instead of reading entire files
- `search_symbols_code` to find symbols by name across the project
- `get_symbol_definition_code` for type info and docs without full file context
- Workflow: get outline → search symbols → get definitions → read implementation only when needed

この拡張機能は Model Context Protocol(MCP)サーバーとして機能し、VS Code のファイルシステムおよび編集機能を MCP クライアントに提供します。

機能

VS Code MCP Server 拡張機能は、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)
  • move_file_code: VS Code の WorkspaceEdit API を使用して、ファイルまたはディレクトリを新しい場所に移動します

    • パラメーター:
      • sourcePath: 移動するファイルまたはディレクトリの現在のパス
      • targetPath: ファイルまたはディレクトリの移動先となる新しいパス
      • overwrite (任意): 移動先にすでに存在する場合に上書きするかどうか(デフォルト: false)
  • rename_file_code: VS Code の WorkspaceEdit API を使用して、ファイルまたはディレクトリの名前を変更します

    • パラメーター:
      • filePath: 名前を変更するファイルまたはディレクトリの現在のパス
      • newName: ファイルまたはディレクトリの新しい名前
      • overwrite (任意): 新しい名前のファイルがすでに存在する場合に上書きするかどうか(デフォルト: false)
  • copy_file_code: VS Code のファイルシステム API を使用して、ファイルを新しい場所にコピーします

    • パラメーター:
      • sourcePath: コピーするファイルのパス
      • targetPath: コピー先のパス
      • overwrite (任意): コピー先にすでに存在する場合に上書きするかどうか(デフォルト: false)
編集ツール
  • create_file_code: VS Code の WorkspaceEdit API を使用して、新しいファイルを作成します

    • パラメーター:
      • path: 作成するファイルのパス
      • content: ファイルに書き込む内容
      • overwrite (任意): ファイルがすでに存在する場合に上書きするかどうか(デフォルト: false)
      • ignoreIfExists (任意): ファイルがすでに存在する場合に無視するかどうか(デフォルト: false)
  • replace_lines_code: ファイル内の特定の行を置き換えます

    • パラメーター:
      • path: 変更するファイルのパス
      • startLine: 開始行番号(1始まり、範囲に含む)
      • endLine: 終了行番号(1始まり、範囲に含む)
      • 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:シンボルがある行の行番号
      • symbol:指定した行で探すシンボル名

    このツールでは次の情報を取得できます:

    • シンボルの型情報、ドキュメント、ソースの詳細
    • シンボルが表示される行を示すコードコンテキスト
    • シンボルの範囲情報

    特に次の用途に便利です:

    • 別の場所に移動せずにシンボルの意味を把握する
    • 関数シグネチャ、型定義、ドキュメントを確認する
    • API やライブラリ関数をすばやく参照する
  • get_document_symbols_code:ファイル内のすべてのシンボルのアウトラインを取得し、階層構造を表示します

    • パラメーター:
      • path:解析するファイルのパス(ワークスペースからの相対パス)
      • maxDepth(任意):表示する最大のネスト深度

    このツールでは次の情報を取得できます:

    • ドキュメントの完全なシンボルツリー(VS Code のアウトラインビューに類似)
    • クラス、関数、メソッド、変数などを示す階層構造
    • 各シンボルの位置情報と種類
    • シンボルの種類別の概要統計

    特に次の用途に便利です:

    • ファイルの構造と構成をひと目で把握する
    • ドキュメント内のすべてのシンボルの概要を確認する
    • コードのアーキテクチャと関係性を分析する
    • ファイル内で特定の種類のシンボルをすべて見つける
シェルツール
  • execute_shell_command_code:シェル統合を使用して、VS Code の統合ターミナルでシェルコマンドを実行します

    • パラメーター:
      • command:実行するシェルコマンド
      • cwd(任意):コマンドの作業ディレクトリ(デフォルト:'.')

    このツールは次の用途に便利です:

    • CLI コマンドやビルド操作を実行する
    • git コマンドを実行する
    • ターミナルへのアクセスが必要なシェル操作を行う
    • 分析や後続処理のためにコマンドの出力を取得する

注意事項/TODO

現在、サポートされているワークスペースは1つだけです。また、接続しているネットワークに VS Code インスタンスが公開されるのを避けるため、この拡張機能はローカルでのみ動作します。

拡張機能の設定

  • vscode-mcp-server.port:MCP サーバーのポート番号(デフォルト:3000)
  • vscode-mcp-server.host:MCP サーバーのホストアドレス(デフォルト:127.0.0.1)
  • vscode-mcp-server.defaultEnabled:VS Code の起動時に MCP サーバーをデフォルトで有効にするかどうか
  • vscode-mcp-server.enabledTools:有効にするツールカテゴリ(file、edit、shell、diagnostics、symbol)を設定します

ツールの選択的な設定:すでに特定の機能を持つコーディングエージェントに便利です。たとえば、Claude Code では file/edit ツールを無効にして symbol ツールのみを有効にすることで、ツールの重複を避けつつ、VS Code 固有のシンボル検索機能を追加できます。

MCP クライアントでの使用

MCP クライアントをこのサーバーに接続するには、次のように設定します:

http://localhost:3000/mcp

または、カスタムホストを設定している場合:

http://[your-host]:3000/mcp

まずステータスバーの項目をクリックして、サーバーを有効にしてください!

コントリビューション

コントリビューションを歓迎します!お気軽に issue や pull request を送信してください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。