mcpField
S
Sublime Text MCP

Sublime Text MCP

ローカル
github.com/dpc00開発ツール42 日前に更新

Sublime Text MCP について

Sublime Text MCP は、MCP 対応エージェントを実行中の Sublime Text 4 に接続します。型付きのエディター操作と大規模な機能カタログの検索を備え、専用ツール以外の操作には Python 実行やコマンド実行も使えます。

主な機能

  1. 01ビュー、選択範囲、ファイルの読み取りと編集
  2. 02タブとプロジェクト状態の確認
  3. 03型付き機能の検索と一括実行
  4. 04Sublime コマンドの実行と Python 評価
  5. 05パネル、メニュー、ネイティブダイアログの操作

活用シーン

  1. 01コーディングエージェントによる作業中プロジェクトの確認と編集
  2. 02プロジェクト内検索と対象を絞った置換
  3. 03エージェントから Sublime のパネルやダイアログを操作
  4. 04専用 MCP サーバーなしでインストール済みパッケージを利用

MCP 対応

Sublime Text プラグインは Streamable HTTP と旧式の SSE に加え、同梱プロキシ向けの通常の HTTP ブリッジで MCP サーバーを提供します。MCP クライアントは実行中のインスタンスに接続し、URL に直接接続できない場合はオプションのプロキシを使えます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"dpc00-sublime": {
"command": "uvx",
"args": [
"sublime-mcp"
]
}
}
}
起動コマンドuvx sublime-mcp

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

パッケージ
pypisublime-mcp1.7.5

ツール

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

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

詳細

Sublime-MCP:Sublime Text 用の汎用 AI エージェントコネクター

MCP に対応した AI エージェントなら、実行中の Sublime Text 4 インスタンスを自在に操作できます。登録済みの ST コマンドの実行、ビューや選択範囲の読み書き、タブやプロジェクトの状態の確認に加え、型付きツールでは対応できない操作のために、Sublime のプラグインホスト内で eval_python を実行できます。

インストール済みの別の Sublime パッケージ(デバッガー、言語サーバーなど)を操作するために、専用の MCP サーバーを用意する必要はありません。get_package_mcp_info と eval_python/run_command で直接操作できます。一度の調査内容を小さく再利用可能なスキルファイルにまとめる方法については、skills/package-skill-generator を参照してください。

ツールセット

デフォルトでは、8 つのワークフローツール(discover_tools、batch、get_help、get_active_file、project_search、save_file、str_replace_based_edit_tool、ui_screenshot)が公開されます。discover_tools はカテゴリのツリー(category=)を表示するか、検索(query=)を実行して、型付きの Sublime 機能 381 個を収録した内部カタログ全体を調べます。また、batch は、検出した機能を呼び出す際に、モデルの初期ツールコンテキストが膨らむのを防ぎます。

1.9.0 以降、これらのツールのうち 160 個は、Sublime Text 自身のコマンド名を使った生成ラッパーです(tools/generate_st_command_tools.py、データは tools/st_commands_metadata.json)。Sublime Text 4215 の素の状態で各コマンドがどのように動作するかを確認した結果は tools/st_commands_behavior.json に、手書きツールの動作は tools/st_hand_written_behavior.json にあります。1.10.0 以降、list_native_windows と dismiss_native_window(Windows)は、Sublime のメインスレッドをブロックしているネイティブダイアログやメニューを一覧表示し、閉じられます。AGENT_GUIDE.md を参照してください。

現在できること(1.10~1.13)
  • Sublime 自身のウィンドウを表示して操作できます(Windows のみ、1.13)。 ui_screenshot は、他のウィンドウの背後にあるものを含め、任意の Sublime ウィンドウ、開いているダイアログやメニュー(kind、window_title)、手前にないタブ(tab)の実際の画像を返します。切り抜きや拡大表示も指定できます(region、scale、max_width)。これはデフォルトの 8 つのツールの 1 つで、画像は batch とプロキシ経由でも、クライアントに画像として届きます。ui_press_key、ui_type_text、ui_click、ui_hover を使って、パレット、クイックパネル、メニューを操作できます(言語サーバーのホバーも含め、ポップアップの画像を取得できます)。実際のマウス操作やキー入力は、コンピューターを操作している人が一定時間アイドル状態になるまで待機するため(wait_idle_s)、その人の操作を妨げることはありません。
  • ネイティブダイアログを操作できます(1.10、1.12.4)。 list_native_windows と dismiss_native_window は、Sublime のメインスレッドをブロックしているダイアログやメニューを一覧表示し、閉じられます。discard を指定した close_file は、「変更を保存しますか?」ダイアログを表示せずに、未保存の編集があるタブを閉じます。
  • クイックパネルやメニューを操作できます(1.12)。 get_quick_panel、読み込み中のリストに対応した wait_ms を指定できる pick_quick_panel、および click_menu_item を利用できます。install_package はインストールを保持するようになりました。また、get_view_regions と get_view_phantoms(last、html、max_chars)を使って、プラグインが描画した内容を確認できます。古い Python 3.3 パッケージのパネルは、"install_py33_helper": true を指定すると表示できます(1.16、デフォルトでは無効)。選択後にコールバックがダイアログを開く場合、選択結果は pending になり(1.16.1)、dismiss_native_window でそのダイアログに応答できます。
  • 複数のエージェントで 1 つの Sublime を共有できます(1.12.0)。 claim_resource、release_resource、list_claims を使って、エージェントが入力やコントロールパネルを交代で操作できます。
  • デフォルトで、より安全です。 ブラウザーを発信元とするリクエストは拒否され(1.12.2)、表示中のコンソールを読み取る際は Sublime 自身のウィンドウだけを対象とし、フォーカスとクリップボードを元に戻します(1.12.1)。eval_python が sys.exit() によってプラグインホストを終了させることもできません(1.12.3)。また、Windows 専用ツールは他のプラットフォームでは非表示になります(1.11.2)。
  • ツールツリー(1.11)。 引数なしの discover_tools は、カタログを一括表示する代わりに、12 個のカテゴリをたどって調べます。

エージェント向けの使い方:AGENT_GUIDE.md(get_help からも実行中のガイドを参照できます)。リリース履歴:CHANGELOG.md。

ポート

sublime-mcp は /mcp で MCP ストリーマブル HTTP、/sse でレガシー MCP SSE、および プレーン HTTP ブリッジを提供します。 同梱の Node/Python プロキシが使用するのは、sublime-mcp の HTTP ブリッジのみです。デフォルト値は次のとおりです。

プラグインMCP SSEHTTP ブリッジ設定ファイル
sublime-mcp9502 (Win) / 9503 (macOS/Linux)9500 (Win) / 9501 (macOS/Linux)MCP Commander.sublime-settings

設定ファイルでは "mcp_port" と "http_port" キーを使用します。上記のデフォルト値を変更するには、Packages/User/ にある設定ファイルのコピーを編集します(Preferences > Package Settings)。環境変数は不要です。

SSE URL の形式:http://127.0.0.1:<sse-port>/sse。同梱の Node/Python プロキシは SSE ではなく、sublime-mcp の HTTP ブリッジと通信します。SUBLIME_MCP_BASE で変更できます(例:http://127.0.0.1:9500)。

セキュリティ

どちらのサーバーも、デフォルトでは ループバック(127.0.0.1)のみで待ち受け、認証はありません。公開されるツールの1つである eval_python は、Sublime 自身のプロセス内で任意のコードを実行するため、このサーバーの信頼レベルは、ご自身のログインセッションと同等と考えてください。以下はすべて MCP Commander.sublime-settings のキーです。

  • allow_lan_access(デフォルトは false) — 127.0.0.1 の代わりに 0.0.0.0 で待ち受け、認証なしのまま両方のサーバーをネットワーク上の他のすべてのデバイスからアクセス可能にします。クライアントが 127.0.0.1 に直接接続できない具体的な理由がある場合(例:WSL のネットワークモードで localhost から Windows ホストへの転送が行われない場合に、WSL クライアントを使用する場合)に限り、有効にしてください。
  • auth_token(デフォルトでは未設定) — すべてのリクエストで、一致する Authorization: Bearer <token> ヘッダーを必須にします。バインドアドレスにかかわらず機能する唯一の対策です。ループバックのみの設定では、同じホスト上の別のプロセスや、共有/マルチユーザー環境の別ユーザーが 127.0.0.1 にアクセスするのを防げないためです。推測困難な値を自分で生成してください。短い文字列や推測しやすい文字列は使用しないでください。すべての MCP クライアント UI がカスタムヘッダーに対応しているわけではないため、これに頼る前に、ご利用のクライアントが対応しているか確認してください。SSE/HTTP URL に直接接続するのではなく、同梱の Node/Python プロキシ経由で接続する場合は、プロキシプロセスの環境変数 SUBLIME_MCP_TOKEN に同じ値を設定してください。
  • disabled_tools(デフォルトは []) — 拒否し、検出時にも表示しないツール名のリストです。例:["eval_python", "run_command"] とすると、最も広範な機能を持つ2つのツールを除外しつつ、その他のツールは引き続き使用できます。

ブラウザーからのアクセスは2つの方法で防いでいます。実際のツール呼び出しエンドポイントは Access-Control-Allow-Origin ヘッダーを送信しません。また、CORS ヘッダーがないだけではリクエストの送信自体を阻止できないため、auth_token が設定されておらず、バインド先がデフォルトのループバックである場合は、Origin または Host ヘッダーがループバック以外を示すリクエストも拒否します(Origin: null を含みます)。コマンドラインおよびデスクトップの MCP クライアントは Origin を送信しないため、影響を受けません。同じマシン上の別プロセスからのアクセスは防げないため、その場合は auth_token を設定してください。

インストール

1. Sublime Text プラグインをインストールする

手動(sublime-mcp 自体を開発する場合もこの方法を使用します):

git clone https://github.com/dpc00/sublime-mcp.git
cd sublime-mcp

リポジトリのルートがそのままパッケージです。ST の Packages/ ディレクトリに sublime-mcp としてシンボリックリンクを作成します。

Windows(コマンド プロンプト):

mklink /J "%APPDATA%\Sublime Text\Packages\sublime-mcp" "C:\path\to\sublime-mcp"

macOS:

ln -s "$(pwd)" "$HOME/Library/Application Support/Sublime Text/Packages/sublime-mcp"

Linux:

ln -s "$(pwd)" "$HOME/.config/sublime-text/Packages/sublime-mcp"

リンク作成後、プラグインを読み込むために Sublime Text を再起動してください。

2. エージェントを設定する

エージェントから、Sublime Text 内でプラグインが起動するサーバーに直接接続します。 ヘルパープログラムは不要です。クライアントが対応している場合は、ストリーム可能な HTTP URL を使用します(Codex の例。mcp-remote ラッパーは不要です)。

[mcp_servers.sublime-mcp]
type = "http"
url = "http://127.0.0.1:9502/mcp"

プロキシは任意です。 URL に直接接続できないクライアントに限り、小さな Node または Python のプロキシを間に挟めます。

cd packages/node-proxy && npm install . && npx sublime-mcp      # Node
cd packages/python-proxy && pip install . && sublime-mcp        # Python

MCP 設定を変更した後は、Codex セッションを再起動するか、新しいセッションを開きます。エージェントの動作をデバッグする前に、経路全体を確認してください。

npx sublime-mcp doctor

このレポートでは、HTTP ブリッジ、MCP ハンドシェイク、および選択したツールカタログを確認します。Sublime のコマンドパレットから MCP Commander: Connection Doctor を実行すると、サーバー側の主な状態を確認できます。(デバッガーや言語サーバーの制御には、専用の MCP サーバーや doctor チェックは不要です。「ツールセット」の説明と skills/package-skill-generator を参照してください。)

JSON 設定を使用するその他の MCP クライアント(oh-my-pi、Claude Code、Cursor)でも、同じストリーム可能な HTTP URL を使用します(Windows の例)。

{
  "mcpServers": {
    "sublime-mcp": { "type": "http", "url": "http://127.0.0.1:9502/mcp" }
  }
}

ストリーム可能な HTTP に対応していないクライアントに限り、非推奨の SSE URL "type": "sse" と http://127.0.0.1:9502/sse が必要です。

ST がプラグインを読み込むと、MCP サーバーは自動的に起動します。停止または再起動するには、コマンドパレットから「MCP Commander: Server Status」を実行します。起動を確認するには、View > Show Console を確認してください。

エージェントスキル

sublime-mcp には、2 つのスキルが含まれています。skills/sublime-mcp(エージェントによるツールの使用方法)と、skills/package-skill-generator(言語サーバーやデバッガーなど、使用する任意の Sublime パッケージ用の小さなスキルを生成する方法)です。ディレクトリをエージェントのスキルディレクトリにコピーするか、通常のスキルのワークフローを通じてインストールしてください。個別のパッケージ用スキルは同梱されていません。ジェネレーターを使って独自に生成してください。

コメント

MCP は初めてですか?

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

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