Skip to main content
Glama

SoftAuto とは

SoftAuto は AI Agent 向けのオープンソース Windows RPA および MCP Server です。Microsoft UI Automation(UIA)でデスクトップソフトウェアの要素を、Chrome DOM で Web ページの要素を特定し、クリック、入力、読み取り、ハイライト、検証などの操作を Model Context Protocol(MCP)ツールとして公開します。ERP 自動化、デスクトップソフトウェア自動化、Web 業務システム自動化、GUI テスト、反復的なオフィス業務に適しています。

これはスクリーンショットと座標に依存するマクロツールではなく、Computer Use の決定的な実行レイヤーです。要素は一度ピックアップして検証するだけで、Agent はその後名前で呼び出すことができ、繰り返しのスクリーンショット、視覚的推論、座標クリックを削減します。

Related MCP server: atomic-computer-mcp

解決する中核的な課題

Computer Use はほぼすべてのソフトウェアを操作できますが、毎ステップ「スクリーンショット → 視覚的推論 → 座標クリック → 再スクリーンショット」を繰り返すと、処理が遅くなり、ウィンドウの移動、解像度、UI の変化の影響を受けやすくなります。

SoftAuto はこの実行チェーンを分解します。最初に人間が RPA のように要素をピックアップ、検証、保存します。その後 Agent は MCP を通じて要素名で直接 Windows UIA またはブラウザ DOM のアクションを呼び出します。エージェントは引き続き理解と意思決定を担当し、反復的なソフトウェア操作は決定的な要素自動化パスで実行されます。

従来の Computer Use

SoftAuto + MCP

特定方法

毎ステップスクリーンショットを見直し、座標を推測

検証済みの UIA/DOM Locator を再利用

実行パス

視覚モデル → 座標操作

Agent → MCP → 要素ネイティブアクション

ウィンドウ移動

座標が無効になる可能性

安定した要素属性を再解析

動的テキスト

再認識が必要

ワイルドカード、プレフィックス、MCP 変数

適用シーン

未知の UI、探索的タスク

ERP、業務システム、高頻度の決定的プロセス

flowchart LR
    A[首次拾取并验证元素] --> B[(项目元素库)]
    B --> C[SoftAuto MCP]
    D[Agent 理解任务并决策] --> C
    C --> E[Windows UIA]
    C --> F[Browser DOM]
    E --> G[桌面软件]
    F --> H[网页系统]

主な機能

  • Ctrl + 左クリックでデスクトップまたは Web ページの要素をピックアップしてハイライトし、プロジェクトとフォルダーで要素ライブラリを管理します。

  • システムが安定した属性を推奨し、属性値、ワイルドカード、${variable} 動的変数も編集できます。

  • ウィンドウを開き直したり移動した後も、ウィンドウアンカー、コントロールパス、ターゲットの特徴に基づいて再特定できます。

  • MCP は検索、ハイライト、クリック、入力、フォーカス、読み取りを含む 19 のクエリ・アクションツールを提供します。

  • Windows UIA とブラウザ DOM のデュアルチャネル。Web 拡張機能はソフトウェア内からワンクリックでインストールフローを開けます。

  • プロジェクトの要素ライブラリはインポート、エクスポート、他の Windows コンピューターへの移行が可能です。

  • 簡体字中国語 / English の即時切り替え。UI は解像度と Windows DPI に適応します。

  • 任意のコマンド実行は提供せず、MCP が要素ライブラリを迂回して座標クリックを行うことも許可しません。

5分で始める

インストーラー版(推奨)

  1. Releases から Lingheyi-SoftAuto-Setup-*.exe をダウンロードします。

  2. SoftAuto をインストールして開き、新しいプロジェクトとフォルダーを作成します。

  3. 「デスクトップ要素をピックアップ」または「Web 要素をピックアップ」をクリックし、ターゲットコントロールに移動して Ctrl + 左クリックで保存します。

  4. 右側で特定属性を調整し、「検証」をクリックします。

  5. 「MCP 設定」をクリックし、コピーした設定を MCP 対応 Agent に貼り付けます。

ソースコードから実行

uv sync --extra dev
uv run softauto-inspector

操作手順:

  1. 上部で現在のプロジェクトを選択します。「新規プロジェクト」をクリックすると、完全に独立した空の要素ライブラリが作成されます。

  2. Web モードを初めて使用するときは「Web 拡張機能をインストール」をクリックします。ソフトウェアが Chrome 拡張機能ページを開き、拡張機能ディレクトリを開いてパスをコピーします。案内に従ってデベロッパーモードを開き、「パッケージ化されていない拡張機能を読み込む」を選択します。

  3. 「新規フォルダー」をクリックして、アプリ、ページ、モジュールなどの階層を作成します。フォルダー内にサブフォルダーも作成できます。

  4. ターゲットフォルダーを選択し、「デスクトップ要素をピックアップ」または「Web 要素をピックアップ」をクリックします。

  5. マウスを移動すると、ターゲット要素にオレンジ色のリアルタイム枠が表示されます。

  6. Ctrl + マウス左クリックを押すと、クリックはインターセプトされ、ターゲットソフトウェアには渡されません。

  7. カスタム名を入力して現在のフォルダーに保存します。

  8. 要素ライブラリで要素を選択した後、右側の「要素詳細」で特定に参加させる属性にチェックを入れます。

  9. システムは ★ 付きの安定した属性を事前選択します。動的テキストはデフォルトで NamePrefix が選択され、業務値を含む完全な Name は選択されません。ユーザーは属性を追加・削除し、「属性を保存」または「検証」をクリックできます。

  10. 要素ライブラリで要素を選択し、「検証」をクリックすると、システムが要素を再特定してハイライトします。

  11. フォルダーと要素はどちらもダブルクリックで名前を変更でき、他のフォルダーに直接ドラッグ&ドロップもできます。空でないフォルダーは誤って削除されません。

  12. 「プロジェクトをエクスポート」をクリックしてポータブル JSON を生成します。別のコンピューターに SoftAuto をインストールした後、「プロジェクトをインポート」をクリックすると、すべてのフォルダー、要素、ロケーターを移行できます。

  13. 「MCP 設定をコピー」をクリックすると、インストール済みの SoftAutoMCP.exe を含む完全な Agent 設定を取得できます。

プロジェクトレジストリは data/projects.json に保存され、各プロジェクトの要素ライブラリは data/projects/<プロジェクトID>/elements.json に個別に保存されます。旧バージョンの data/elements.json は最初に作成された「デフォルトプロジェクト」にコピーされ、元のファイルはそのまま保持されます。MCP はデフォルトでピッカーの現在のプロジェクトに従います。SOFTAUTO_ELEMENT_LIBRARY で「MCP 用にエクスポート」で生成された JSON を指定することもできます。MCP は安定 ID、一意の名前、または完全なパス(例:Training System/登录/账号)で要素を取得できます。

属性値は直接編集でき、以下をサポートします:

  • ワイルドカード:Please take note of your order reference: *

  • 単一文字ワイルドカード:Order ?

  • MCP 変数:Order reference: ${reference}

${reference} を含む Locator は、get_element、validate_saved_element、highlight_element またはアクションツールを呼び出す際に、variables で値を渡します:

{
  "variables": {
    "reference": "842"
  }
}

詳細検査

通常のピックアップで複雑なコントロールを区別できない場合は、「詳細検査」をクリックすると、成熟した FlaUInspect が起動します。

uv run softauto-flauinspect

プロジェクトには SHA-256 で検証済みの FlaUInspect 3.1.0 公式 Release が含まれています。

ダウンロードパッケージのチェックサム:a3e571e783af1cf84661332e5229714b7ac81f908ea44b454e5c1aa0398e20d5。

Windows インストーラーのビルド

PyInstaller と Inno Setup 6 をインストールした後、以下を実行します:

uv sync --extra packaging
.\packaging\build_installer.ps1

ビルド結果は Lingheyi-SoftAuto-Setup-0.5.3.exe です。インストーラー版には以下が含まれます:

  • SoftAuto.exe:要素ピッカーとプロジェクト要素ライブラリの UI。

  • mcp/SoftAutoMCP.exe:Agent が直接接続できる stdio MCP サービス。

  • FlaUInspect:GUI と一緒にインストールされる詳細要素検査ツール。

  • 零禾一智能 Web Connector:GUI と一緒にインストールされる Manifest V3 Chrome 拡張機能ディレクトリ。

インストーラー版のユーザーデータはデフォルトで %LOCALAPPDATA%\SoftAuto\data に保存され、アンインストールや上書きアップグレードでもプロジェクト要素は削除されません。インストールディレクトリ内の 安装与MCP配置.txt に MCP 設定の例が記載されています。

完全な MCP スタックへの同時接続

mcp-stack.json には以下が設定されています:

  • 本プロジェクトの Windows UIA MCP

  • Microsoft Playwright MCP 0.0.79

  • Ui.Vision MCP Bridge 1.1.1

このファイルの mcpServers を Agent の MCP 設定にマージするだけです。Playwright はブラウザの Accessibility Snapshot と操作ツールを Agent に直接提供します。Ui.Vision はブラウザ拡張機能のインストールとローカルペアリングが事前に必要です。

OpenAdapt はユーザー自身の workflow bundle が必要なため、mcp-openadapt.example.json を別途提供しています。bundle ディレクトリを入力してからマージしてください。

Windows UIA MCP を単独で起動

読み取り専用モード:

uv run mcp run src/softauto/server.py:mcp

UI の変更を明示的に許可:

$env:SOFTAUTO_ALLOW_ACTIONS = "1"
uv run mcp run src/softauto/server.py:mcp

MCP クライアント設定:

{
  "mcpServers": {
    "software-automation": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "C:/absolute/path/to/software-automation-mcp",
        "mcp",
        "run",
        "src/softauto/server.py:mcp"
      ]
    }
  }
}

MCP ツール

読み取り専用ツール:

  • automation_status

  • integration_catalog

  • list_saved_elements

  • list_element_tree

  • list_element_projects

  • get_active_element_project

  • get_saved_element

  • validate_saved_element

  • list_windows

  • inspect_point

  • get_element

  • get_children

  • find_elements

  • highlight_element

アクションツール:

  • focus_element

  • click_element

  • invoke_element

  • set_element_value

  • send_element_keys

アクションツールはサーバーを SOFTAUTO_ALLOW_ACTIONS=1 で起動する必要があります。Click、Invoke、SetValue、SendKeys はさらに、毎回の呼び出しで confirm=true を明示的に渡す必要があります。

Locator の例

{
  "backend": "windows-uia",
  "version": 1,
  "window": {
    "name": "业务系统",
    "class_name": "MainWindow",
    "control_type": "WindowControl"
  },
  "path": [
    {
      "automation_id": "orderPanel",
      "control_type": "PaneControl",
      "sibling_index": 0
    },
    {
      "automation_id": "saveButton",
      "name": "保存",
      "control_type": "ButtonControl",
      "sibling_index": 0
    }
  ],
  "target": {
    "automation_id": "saveButton",
    "name": "保存",
    "control_type": "ButtonControl"
  }
}

特定は AutomationId を優先し、名前、ClassName、ControlType、FrameworkId、構造パスを組み合わせます。プロセス ID とウィンドウハンドルは弱いヒントとしてのみ使用します。ソフトウェアを再起動すると変化するためです。

バックエンドルーティングの原則

Agent はこの順序で選択する必要があります:

  1. ブラウザページ:Playwright MCP。

  2. Windows ネイティブソフトウェア:Windows UIA MCP。FlaUInspect は手動調査用。

  3. 要素ツリーが不可視:Ui.Vision OCR/画像特定。

  4. 安定した反復的な業務プロセス:OpenAdapt workflow にコンパイルし、OpenAdapt Agent MCP 経由で呼び出します。

既知の制限

標準の Win32、WPF、WinForms、UWP/Electron のアクセシビリティ品質は通常良好です。以下の UI では意味のある要素ツリーを返せない可能性があります:

  • 自前描画の Canvas、DirectX/OpenGL の UI

  • ゲームおよび一部の産業用ソフトウェア

  • Citrix、RDP、またはビデオストリーム内のリモートアプリケーション

  • Accessibility を実装していない古いコントロール

  • Inspector/MCP プロセスより高い権限を持つソフトウェア

これらのシナリオは接続済みの Ui.Vision/OpenAdapt バックエンドに任せ、本プロジェクトではビジュアルエンジンを重複実装しません。

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI clients to automate Windows desktop applications through window manipulation, image recognition, OCR, keyboard/mouse simulation, and memory operations via the MCP protocol.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables automation of native Windows desktop applications through screen capture, mouse/keyboard control, and waiting for UI changes, exposing them as MCP tools.
    1
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables MCP-compatible AI platforms to see the screen and operate any desktop software through real mouse clicks, text input, key presses, and scripted scenario execution.
    MIT