オムニMCP
OmniMCPは、モデルコンテキストプロトコル(MCP)とmicrosoft/OmniParserを通じて、AIモデルに豊富なUIコンテキストとインタラクション機能を提供します。視覚的な分析、構造化された計画、そして正確なインタラクション実行を通じて、ユーザーインターフェイスの深い理解を可能にすることに重点を置いています。
コア機能
視覚認識: OmniParser を使用して UI 要素を理解します。
**LLM 計画:**目標、履歴、視覚的な状態に基づいて次のアクションを計画します。
**エージェント エグゼキューター:**認識-計画-行動ループ (
omnimcp/agent_executor.py) を調整します。アクション実行:
pynput(omnimcp/input.py) を介してマウス/キーボードを制御します。**CLI インターフェース:**タスクを実行するためのシンプルなエントリ ポイント (
cli.py)。**自動デプロイメント:**自動シャットダウン付きの AWS EC2 へのオプションの OmniParser サーバー デプロイメント。
**デバッグ:**ステップごとにタイムスタンプ付きのビジュアル ログを生成します。
Related MCP server: Playwright MCP Server
概要
cli.py AgentExecutorを使用して、認識・計画・行動のループを実行します。画面をキャプチャし ( VisualState )、LLM を使用してプランニングを行い ( core.plan_action_for_ui )、アクションを実行します ( InputController )。
デモ
実際のアクション (電卓):
python cli.py電卓を開き、5*9 を計算します。
合成 UI (ログイン):
python demo_synthetic.py生成された画像を使用します (実際の I/O はありません)。 (注: AgentExecutor を使用するためのリファクタリングが保留中です)。
前提条件
Python >=3.10、<3.13
uvがインストールされました(pip install uv)Linux ランタイム要件:
pynputにはアクティブなグラフィカルセッション (X11/Wayland) が必要です。システムライブラリ (libx11-devなど) が必要になる場合があります -pynputドキュメントを参照してください。
(macOS ディスプレイのスケーリング依存関係はインストール中に自動的に処理されます)。
AWS デプロイメント機能について
.envにAWS認証情報が必要です( .env.exampleを参照)。警告: AWSリソース(EC2、Lambdaなど)が作成され、コストが発生します。クリーンアップするには、 python -m omnimcp.omniparser.server stopを使用してください。
インストール
クイックスタート
環境がアクティブ化され、 .envが構成されていることを確認します。
デバッグ出力はruns/<timestamp>/に保存されます。
**MCP サーバーに関する注意:**実験的な MCP サーバー ( omnimcp/mcp_server.pyのOmniMCPクラス) が存在しますが、プライマリcli.py / AgentExecutorワークフローとは別です。
建築
CLI (
cli.py) - エントリ ポイント、セットアップ、Executor の起動。エージェント エグゼキューター(
omnimcp/agent_executor.py) - ループをオーケストレーションし、状態/アーティファクトを管理します。Visual State Manager (
omnimcp/visual_state.py) - 認識 (スクリーンショット、パーサーの呼び出し)。OmniParser クライアント & デプロイ(
omnimcp/omniparser/) - OmniParser サーバーの通信/デプロイメントを管理します。LLM プランナー(
omnimcp/core.py) - アクション プランを生成します。入力コントローラ(
omnimcp/input.py) - アクション (マウス/キーボード) を実行します。(オプション) MCP サーバー(
omnimcp/mcp_server.py) - 実験的な MCP インターフェース。
発達
環境設定とチェック
デバッグサポート
python cli.pyを実行すると、次の内容を含むタイムスタンプ付きの実行がruns/に保存されます。
step_N_state_raw.pngstep_N_state_parsed.png(要素ボックス付き)step_N_action_highlight.png(アクションハイライト付き)final_state.png
詳細なログはlogs/run_YYYY-MM-DD_HH-mm-ss.logにあります ( .envではLOG_LEVEL=DEBUG推奨されます)。
(注: タイミング、カウント、IP、インスタンス ID、特定のプランなどの詳細は異なります)
ロードマップと制限事項
主な制限事項と将来の作業領域:
パフォーマンス: OmniParser のレイテンシを削減し (ローカル モデル、キャッシュなどを探索)、状態管理を最適化します (完全な再解析を回避します)。
堅牢性: LLM 計画の信頼性 (プロンプト、ReAct などのテクニック) を向上させ、アクション検証/エラー回復を追加し、要素のターゲティングを強化します。
**ターゲット API/アーキテクチャ:**より高レベルの宣言型 API (例:
@omni.publishスタイル) に向けて進化し、ループ ロジックを実験的な MCP サーバー (OmniMCPクラス) と統合する可能性があります。一貫性:
AgentExecutor使用するようにdemo_synthetic.pyをリファクタリングします。**機能:**アクション スペースを拡張します (ドラッグ/ドロップ、ホバー)。
テスト: E2E テストを追加し、クロスプラットフォーム検証を拡大し、評価メトリックを定義します。
**調査:**微調整、プロセス グラフ (RAG)、フレームワークの統合を調査します。
プロジェクトのステータス
cli.py / AgentExecutor経由のコアループは基本的なタスクには機能します。パフォーマンスと堅牢性には大幅な改善が必要です。MCP との統合は試験段階です。
貢献
フォークリポジトリ
機能ブランチを作成する
変更を実装し、テストを追加する
チェックが合格したことを確認します (
uv run ruff format .、uv run ruff check . --fix、uv run pytest tests/)プルリクエストを送信する
ライセンス
MITライセンス
接触
問題: GitHub の問題
質問:ディスカッション
セキュリティ: security@openadapt.ai