mcpField
U
Uindow

Uindow

ローカル
uindow.comブラウザ自動化87 週間前に更新

Uindow について

Uindowは、実際のマウスやキーボード入力、ネイティブのファイルダイアログで署名済みChromium/Electronブラウザーを操作するローカル自動化アプリです。ノーコードの記録とJavaScriptモジュールに対応し、AIアシスタントからも操作できます。

主な機能

  1. 01実ブラウザーChromium/Electronの自動操作
  2. 02コードを書かずにワークフローを記録
  3. 03JavaScriptモジュールの作成とデバッグ
  4. 04組み込みの補完機能とLint
  5. 05CLIコマンドによるアプリの起動

活用シーン

  1. 01繰り返し使うブラウザーワークフローの記録
  2. 02AIアシスタントによる自動化モジュール作成
  3. 03独自のブラウザー自動化の作成とデバッグ
  4. 04CI/CDパイプラインでのブラウザー自動化

MCP 対応

ローカルMCPサーバーはstdioで通信し、対応クライアントからUindowの自動化モジュールの一覧表示、作成、実行を可能にします。

設定

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

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

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

パッケージ
npm@uindow/cli0.1.12

ツール

38

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
querystringいいえ(任意)大文字と小文字を区別しない検索クエリです。省略すると、このツールは利用可能なドル記号($)オブジェクトのプロパティとメソッドの一覧を返します。ワイルドカードや正規表現は使用できませんが、パイプ文字で区切って一度に最大 10 個の語句を検索できます。例:"navigate|load page|visit url"
maxResultsintegerいいえ(任意)結果の最大件数(1~10 の数値)。この値を増やすと、より多くの結果を取得できますが、コンテキストメモリを多く消費する可能性があります。

詳細

Uindow - プロンプトインジェクションに影響されない AI ブラウザー

README の画像

Uindow は、正規に署名された実際の Chromium/Electron ブラウザーを、本物の OS レベルの入力で操作します。合成されたページイベントではなく、実際のカーソル移動、実際のキー入力、ネイティブのファイルダイアログを使用します。すべてお使いのマシンとネットワーク上で実行され、実行するコードはすべてこのリポジトリで公開されています。

次の 3 つの方法で自動化できます。

  • コード不要 - 統合エディターで自動化を構築し、コードを書かずに複雑なワークフローを記録できます。
  • あらゆる AI アシスタントから - Uindow にはローカルの MCP サーバーが付属しているため、Claude、Cursor、VS Code など、MCP 対応のあらゆるクライアントから自動化モジュールを直接一覧表示、作成、実行できます。 AI アシスタントから Uindow を操作するをご覧ください。
  • 純粋な JavaScript で自動化を作成 - 統合開発環境を使って、自動化を簡単に作成、テスト、デバッグできます。自動補完、コード修復、JavaScript の解析、リンティングがすべて組み込まれています。

Uindow の実行

アプリを使用するには、uindow.comで無料アカウントを作成し、画面の指示に従ってください。

オプション 1 - ビルド済みバイナリ(推奨)

dist ソースから直接、macOS、Windows、Linux 向けの署名済みバイナリをビルドし、GitHub Releases ページ(最新版および旧バージョン)とUindow のインストールページで公開しています。

オプション 2 - npx

1 つのコマンドで CLI を取得し、アプリを起動できます。

npx -y @uindow/cli@latest app:start

その他のライフサイクルコマンド:

npx @uindow/cli app:status  # check whether the app is running
npx @uindow/cli app:stop    # stop the app
オプション 3 - ソースから実行

リポジトリをクローンし、ソースからアプリを直接起動します。

git clone https://github.com/uindow/uindow.git uindow
cd ./uindow/
npm install
npm start

AI アシスタントから Uindow を操作する(MCP)

Uindow はローカルのModel Context Protocol サーバーを公開するため、MCP 対応のあらゆるクライアントからウェブ自動化エージェントを直接操作できます。 サーバーは stdio を介して安全に通信し、AI アシスタントから必要に応じて起動されます。

要件: Node.js 18 以降と、PATH 上の npx。

npx -y @uindow/cli@latest mcp
クイックリファレンス

Uindow は、人気の高い AI アシスタント向けにワンクリックで接続できる機能を提供しています。

Uindow > AI アシスタント > 接続 に移動します

AI アシスタント即時接続ルートキー設定ファイルの場所
Claude Code(CLI + デスクトップ Code)✅ はいmcpServers~/.claude.json
Claude Desktop(Chat / Cowork)✅ はいmcpServersclaude_desktop_config.json
Cursor✅ はいmcpServers~/.cursor/mcp.json
VS Code(Copilot)✅ はいserversmcp.json(MCP: Open User Configuration)
Windsurf✅ はいmcpServers~/.codeium/windsurf/mcp_config.json
Zed✅ はいcontext_serverssettings.json
Codex✅ はいTOML [mcp_servers.*]~/.codex/config.toml
Gemini CLI✅ はいmcpServers~/.gemini/settings.json
Cline✅ はいmcpServerscline_mcp_settings.json
Goose✅ はいYAML extensions~/.config/goose/config.yaml

JetBrains AI Assistant

Settings > Tools > AI Assistant > Model Context Protocol (MCP) に移動して Add をクリックし、JSON を貼り付けます。同じダイアログで、スコープをプロジェクト単位ではなく Global に設定すると、開くすべてのプロジェクトでサーバーを利用できます。その後、Apply をクリックして起動します。

{
    "mcpServers": {
        "uindow": {
            "command": "npx",
            "args": ["-y", "@uindow/cli@latest", "mcp"]
        }
    }
}
その他の AI アシスタント

ほとんどのその他の AI アシスタントでは、同じオブジェクトを mcpServers の下に指定できます。プロジェクトのルートではなく、ホームディレクトリ(~/.<client>/...)にある設定ファイルを探してください。ホームディレクトリにあるファイルがグローバル設定です。

{
    "mcpServers": {
        "uindow": {
            "command": "npx",
            "args": ["-y", "@uindow/cli@latest", "mcp"]
        }
    }
}

AI アシスタントのコマンドに npx を指定し、引数として -y @uindow/cli@latest mcp を指定します。

AI アシスタントでトランスポートフィールドを明示する必要がある場合は、"type": "stdio" を使用してください。

接続の確認

まず、起動コマンドを手動で実行してください。「Uindow が壊れている」のか「AI アシスタントが起動できない」のかを切り分ける最も手早い方法です。

npx -y @uindow/cli@latest mcp

stdio サーバーは何も出力せず、処理を待機します。ターミナルが無音のまま応答しなくなった場合は、正常に起動しています。Ctrl-C を押して、AI アシスタントに戻ってください。ここでスタックトレースが表示された場合、それが AI アシスタントが隠していた実際のエラーです。

次に、設定したディレクトリとは別のディレクトリから AI アシスタントを開き、Uindow のツールが引き続き一覧に表示されることを確認してください。表示されなくなった場合は、エントリーがプロジェクトローカルの設定に追加されています。

トラブルシューティング
  • あるプロジェクトではサーバーが動作するのに、別のプロジェクトでは動作しません。

    • よくあるスコープの問題です。エントリーがプロジェクトローカルになっています。Claude Code では、別のディレクトリから claude mcp list を実行すると何も表示されません。--scope user を付けて再追加してください。Gemini CLI では、-s user を付けて再追加してください。Cursor と VS Code では、エントリーを .cursor/mcp.json または .vscode/mcp.json から ~/.cursor/mcp.json またはユーザープロファイルの mcp.json に移動してください。
  • GUI アプリで spawn npx ENOENT が発生する/サーバーが起動しません。

    • デスクトップアプリはシェルの PATH を引き継ぎません。nvm、asdf、Volta を使っている場合に発生しやすい問題です。which npx(Windows では where npx)を実行し、絶対パスを command に指定してください。
  • 設定を保存したのに、何も起きません。

    • ほとんどのデスクトップ AI アシスタントは、MCP の設定を完全に再起動したときにのみ再読み込みします。ウィンドウを閉じるのではなく、アプリを完全に終了してください(macOS:Cmd+Q、Windows:トレイアイコンから終了)。
  • サーバーを追加した後、ツールが見つかりません。

    • 上の表に照らして、ルートキーを確認してください。VS Code では servers、Zed では context_servers、Codex の TOML では mcp_servers、それ以外では mcpServers です。ほとんどの AI アシスタントでは、誤ったキーは通知なく無視されます。
  • エントリーが重複している、または別のエントリーに優先されています。

    • 複数の AI アシスタントでは、プロジェクト設定がグローバル設定より優先されます。そのため、古いプロジェクトローカルの uindow エントリーが、新しいグローバル設定より通知なく優先されることがあります。両方を編集するのではなく、古いエントリーを削除してください。
  • サーバーには接続されますが、ツールが使われません。

    • Claude Code では、MCP ツールはデフォルトでツール検索の背後に保留され、必要に応じて読み込まれるため、最初からツール一覧に表示されないことがあります。Uindow のツール名を指定して依頼するか、サーバーエントリーに "alwaysLoad": true を設定して、セッション開始時にツールを読み込んでください。
  • 次に確認する場所。

    • claude mcp list と /mcp(Claude Code)、Output パネル > MCP Logs(Cursor)、Output > MCP(VS Code)、~/Library/Logs/Claude/mcp*.log または %APPDATA%\Claude\logs\mcp*.log(Claude Desktop)。

コマンドラインインターフェース

任意の CI/CD パイプラインまたはコマンドラインインターフェースから Uindow を実行できます。

npx -y @uindow/cli@latest --help

より速く応答を得るには、npx @uindow/cli --help の代わりに node dist/bin.js --help を使用することもできます。

  USAGE
    $ npx @uindow/cli <command> [options]

  AVAILABLE COMMANDS
    $ npx @uindow/cli mcp                     Uindow MCP server (stdio) 
    $ npx @uindow/cli app_docs                Query SDK documentation 
    $ npx @uindow/cli app_status              Get application status 
    $ npx @uindow/cli app_start               Start application 
    $ npx @uindow/cli app_stop                Stop application 
    $ npx @uindow/cli agent_list              List agents 
    $ npx @uindow/cli agent_create            Create agent 
    $ npx @uindow/cli agent_update            Update agent 
    $ npx @uindow/cli agent_delete            Delete agent 
    $ npx @uindow/cli agent_status            Get agent status 
    $ npx @uindow/cli agent_start             Start agent 
    $ npx @uindow/cli agent_stop              Stop agent 
    $ npx @uindow/cli agent_screenshot        Grab agent screenshot 
    $ npx @uindow/cli agent_viewport          Scan agent viewport 
    $ npx @uindow/cli agent_execute           Execute code in an agent 
    $ npx @uindow/cli agent_logs              Get agent logs 
    $ npx @uindow/cli agent_settings_get      Get settings 
    $ npx @uindow/cli agent_settings_set      Update settings 
    $ npx @uindow/cli agent_results_get       Get latest results 
    $ npx @uindow/cli src_sample              Module: get sample (yaml) 
    $ npx @uindow/cli src_export              Module: get source (yaml) 
    $ npx @uindow/cli src_code_get            Module: get state or function code 
    $ npx @uindow/cli src_code_set            Module: set state or function code 
    $ npx @uindow/cli src_keys_list           Module: list item keys 
    $ npx @uindow/cli src_keys_reorder        Module: reorder item keys 
    $ npx @uindow/cli src_keys_update         Module: update item key 
    $ npx @uindow/cli src_keys_delete         Module: delete item 
    $ npx @uindow/cli src_input_get           Module: get input 
    $ npx @uindow/cli src_input_set_bool      Module: set boolean input 
    $ npx @uindow/cli src_input_set_int       Module: set integer input 
    $ npx @uindow/cli src_input_set_string    Module: set string input 
    $ npx @uindow/cli src_input_set_files     Module: set files input 
    $ npx @uindow/cli src_input_set_table     Module: set table input 
    $ npx @uindow/cli src_output_get          Module: get output 
    $ npx @uindow/cli src_output_set_bool     Module: set boolean output 
    $ npx @uindow/cli src_output_set_int      Module: set integer output 
    $ npx @uindow/cli src_output_set_string   Module: set string output 
    $ npx @uindow/cli src_output_set_files    Module: set files output 
    $ npx @uindow/cli src_output_set_table    Module: set table output 

  OPTIONS
    --help      Help menu for a specific command 
    --version   Package version 

モジュールの作成

モジュールを作成する方法は3つあります。次の順番で試してください。

  1. 記録する — 学習コストはゼロです。 統合レコーダーを開き、普段どおりにブラウザーを操作します。クリック、スクロール、ファイルのアップロードやダウンロードなどを行ってください。レコーダーは操作を瞬時に JavaScript に変換します。AI は一切使わず、決定論的に変換されます。見たままの結果が得られます。

  2. MCP 経由で AI アシスタントに作成してもらう。 もう少し複雑なことをしたいですか? MCP 経由でローカルの AI アシスタントに制御を渡し、代わりにモジュールを作成してもらいましょう。実現したい結果を説明すれば、コードを生成してくれます。自動化は常にご自身で管理でき、付属の IDE を使ってコードをデバッグできます。

  3. プレーンな JavaScript で自分で記述する。 レコーダーと AI を活用した方法のどちらもうまくいかない場合は、ソースを直接確認してください。

    1. Uindow SDK リファレンスにアクセスします
    2. サンプルモジュールをダウンロードし、Uindow にインポートします
    3. ドル記号のメソッドを試します。統合エディターには、オートコンプリート、コードヒント、フォーマット機能、リンティング機能が備わっています

ほとんどの人にとって、学習コストはゼロです。レコーダーだけを使えば十分です。 プロ向けの機能を使うことにしても、学習のハードルは高くありません。SDK は必要になったときに使えます。それまでは必要ありません。

コメント

MCP は初めてですか?

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

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