Uindow について
Uindowは、実際のマウスやキーボード入力、ネイティブのファイルダイアログで署名済みChromium/Electronブラウザーを操作するローカル自動化アプリです。ノーコードの記録とJavaScriptモジュールに対応し、AIアシスタントからも操作できます。
主な機能
- 01実ブラウザーChromium/Electronの自動操作
- 02コードを書かずにワークフローを記録
- 03JavaScriptモジュールの作成とデバッグ
- 04組み込みの補完機能とLint
- 05CLIコマンドによるアプリの起動
活用シーン
- 01繰り返し使うブラウザーワークフローの記録
- 02AIアシスタントによる自動化モジュール作成
- 03独自のブラウザー自動化の作成とデバッグ
- 04CI/CDパイプラインでのブラウザー自動化
MCP 対応
ローカルMCPサーバーはstdioで通信し、対応クライアントからUindowの自動化モジュールの一覧表示、作成、実行を可能にします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
38掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | いいえ | (任意)大文字と小文字を区別しない検索クエリです。省略すると、このツールは利用可能なドル記号($)オブジェクトのプロパティとメソッドの一覧を返します。ワイルドカードや正規表現は使用できませんが、パイプ文字で区切って一度に最大 10 個の語句を検索できます。例:"navigate|load page|visit url" |
| maxResults | integer | いいえ | (任意)結果の最大件数(1~10 の数値)。この値を増やすと、より多くの結果を取得できますが、コンテキストメモリを多く消費する可能性があります。 |
詳細
Uindow - プロンプトインジェクションに影響されない AI ブラウザー
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) | ✅ はい | mcpServers | claude_desktop_config.json |
| Cursor | ✅ はい | mcpServers | ~/.cursor/mcp.json |
| VS Code(Copilot) | ✅ はい | servers | mcp.json(MCP: Open User Configuration) |
| Windsurf | ✅ はい | mcpServers | ~/.codeium/windsurf/mcp_config.json |
| Zed | ✅ はい | context_servers | settings.json |
| Codex | ✅ はい | TOML [mcp_servers.*] | ~/.codex/config.toml |
| Gemini CLI | ✅ はい | mcpServers | ~/.gemini/settings.json |
| Cline | ✅ はい | mcpServers | cline_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に移動してください。
- よくあるスコープの問題です。エントリーがプロジェクトローカルになっています。Claude Code では、別のディレクトリから
-
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 アシスタントでは、誤ったキーは通知なく無視されます。
- 上の表に照らして、ルートキーを確認してください。VS Code では
-
エントリーが重複している、または別のエントリーに優先されています。
- 複数の AI アシスタントでは、プロジェクト設定がグローバル設定より優先されます。そのため、古いプロジェクトローカルの
uindowエントリーが、新しいグローバル設定より通知なく優先されることがあります。両方を編集するのではなく、古いエントリーを削除してください。
- 複数の AI アシスタントでは、プロジェクト設定がグローバル設定より優先されます。そのため、古いプロジェクトローカルの
-
サーバーには接続されますが、ツールが使われません。
- Claude Code では、MCP ツールはデフォルトでツール検索の背後に保留され、必要に応じて読み込まれるため、最初からツール一覧に表示されないことがあります。Uindow のツール名を指定して依頼するか、サーバーエントリーに
"alwaysLoad": trueを設定して、セッション開始時にツールを読み込んでください。
- Claude Code では、MCP ツールはデフォルトでツール検索の背後に保留され、必要に応じて読み込まれるため、最初からツール一覧に表示されないことがあります。Uindow のツール名を指定して依頼するか、サーバーエントリーに
-
次に確認する場所。
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つあります。次の順番で試してください。
-
記録する — 学習コストはゼロです。 統合レコーダーを開き、普段どおりにブラウザーを操作します。クリック、スクロール、ファイルのアップロードやダウンロードなどを行ってください。レコーダーは操作を瞬時に JavaScript に変換します。AI は一切使わず、決定論的に変換されます。見たままの結果が得られます。
-
MCP 経由で AI アシスタントに作成してもらう。 もう少し複雑なことをしたいですか? MCP 経由でローカルの AI アシスタントに制御を渡し、代わりにモジュールを作成してもらいましょう。実現したい結果を説明すれば、コードを生成してくれます。自動化は常にご自身で管理でき、付属の IDE を使ってコードをデバッグできます。
-
プレーンな JavaScript で自分で記述する。 レコーダーと AI を活用した方法のどちらもうまくいかない場合は、ソースを直接確認してください。
- Uindow SDK リファレンスにアクセスします
- サンプルモジュールをダウンロードし、Uindow にインポートします
- ドル記号のメソッドを試します。統合エディターには、オートコンプリート、コードヒント、フォーマット機能、リンティング機能が備わっています
ほとんどの人にとって、学習コストはゼロです。レコーダーだけを使えば十分です。 プロ向けの機能を使うことにしても、学習のハードルは高くありません。SDK は必要になったときに使えます。それまでは必要ありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。