mcpField
C
Computer Control MCP

Computer Control MCP

ローカル
github.com/AB498生産性1724 日前に更新

Computer Control MCP について

Computer Control MCP は、マウス、キーボード、スクリーンショット、OCR による電卓操作を提供する MCP サーバーで、Anthropic の computer-use に類似しています。PyAutoGUI、RapidOCR、ONNXRuntime を基盤とし、デスクトップ操作を自動化したいユーザーを対象としています。

主な機能

  1. 01マウスの移動、クリック、ドラッグ&ドロップ
  2. 02キーボード入力とキーの組み合わせ
  3. 03画面全体または指定ウィンドウのスクリーンショット
  4. 04スクリーンショットからの OCR テキスト抽出
  5. 05ウィンドウの一覧取得と前面化
  6. 06Windows における GPU アクセラレーションウィンドウの WGC キャプチャ

活用シーン

  1. 01アシスタントが画面を読み取り、デスクトップ上で操作を実行する
  2. 02特定のウィンドウを撮影し、そこからテキストを抽出する
  3. 03uvx を使って MCP クライアントに電脳操作機能を追加する

MCP 対応

MCP サーバーとして、マウス、キーボード、スクリーンショット、OCR、ウィンドウ管理の各機能をツールとして MCP クライアントに公開します。

設定

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

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

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

パッケージ
pypicomputer-control-mcp@latest

ツール

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

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

詳細

コンピューター制御 MCP

PyAutoGUI、RapidOCR、ONNXRuntime を使用して、マウス、キーボード、OCR などのコンピューター制御機能を提供する MCP サーバーです。Anthropic の「computer-use」に似ています。外部依存関係はありません。
README の画像 Discord ライセンス:MIT PyPi

MCP コンピューター制御のデモ

クイック使用方法(uvx を使用した MCP のセットアップ)

注: 初めて uvx computer-control-mcp@latest を実行すると、Python の依存関係(約 70MB)がダウンロードされるため、時間がかかる場合があります。MCP として使用する前に、ターミナルで実行しておくことをおすすめします。2 回目以降の実行はすぐに完了します。

{
  "mcpServers": {
    "computer-control-mcp": {
      "command": "uvx",
      "args": ["computer-control-mcp@latest"]
    }
  }
}

または、pip でグローバルにインストールします:

pip install computer-control-mcp

次に、サーバーを実行します:

computer-control-mcp # instead of uvx computer-control-mcp, so you can use the latest version, also you can `uv cache clean` to clear the cache and `uvx` again to use latest version.

機能

  • マウスの移動とクリックを制御します
  • 現在のカーソル位置にテキストを入力します
  • 画面全体または特定のウィンドウのスクリーンショットを撮影し、必要に応じてダウンロードディレクトリに保存します
  • OCR(光学文字認識)を使用してスクリーンショットからテキストを抽出します
  • ウィンドウの一覧表示とアクティブ化を行います
  • キーボードのキーを押します
  • ドラッグ&ドロップ操作を行います
  • GPU アクセラレーションを使用するウィンドウ向けに、スクリーンショットの撮影を強化します(Windows のみ)

GPU アクセラレーションを使用する Windows に関する注意

GDI/PrintWindow などの従来のスクリーンショット方式では、GPU アクセラレーションを使用するウィンドウを撮影できず、画面が黒くなることがあります。これは、ゲーム、メディアプレーヤー、Electron アプリ、GPU アクセラレーションを使用するブラウザー、ストリーミングソフトウェア、CAD ツールに影響します。take_screenshot ツールのフラグまたは ENV 変数を使用して WGC を利用してください。

設定

カスタムスクリーンショットディレクトリ

デフォルトでは、スクリーンショットは OS のダウンロードディレクトリに保存されます。COMPUTER_CONTROL_MCP_SCREENSHOT_DIR 環境変数を設定すると、保存先をカスタマイズできます:

{
  "mcpServers": {
    "computer-control-mcp": {
      "command": "uvx",
      "args": ["computer-control-mcp@latest"],
      "env": {
        "COMPUTER_CONTROL_MCP_SCREENSHOT_DIR": "C:\\Users\\YourName\\Pictures\\Screenshots"
      }
    }
  }
}

または、システム全体に設定します:

# Windows (PowerShell)
$env:COMPUTER_CONTROL_MCP_SCREENSHOT_DIR = "C:\Users\YourName\Pictures\Screenshots"

# macOS/Linux
export COMPUTER_CONTROL_MCP_SCREENSHOT_DIR="/home/yourname/Pictures/Screenshots"

指定したディレクトリが存在しない場合、サーバーはデフォルトのダウンロードディレクトリを使用します。

特定のウィンドウでの WGC の自動使用

COMPUTER_CONTROL_MCP_WGC_PATTERNS 環境変数を設定すると、特定のウィンドウで Windows Graphics Capture(WGC)を自動的に使用するように設定できます。この変数には、ウィンドウタイトルに一致するパターンをカンマ区切りで指定します:

{
  "mcpServers": {
    "computer-control-mcp": {
      "command": "uvx",
      "args": ["computer-control-mcp@latest"],
      "env": {
        "COMPUTER_CONTROL_MCP_WGC_PATTERNS": "obs, discord, game, steam"
      }
    }
  }
}

または、システム全体に設定します:

# Windows (PowerShell)
$env:COMPUTER_CONTROL_MCP_WGC_PATTERNS = "obs, discord, game, steam"

# macOS/Linux
export COMPUTER_CONTROL_MCP_WGC_PATTERNS="obs, discord, game, steam"

この変数を設定すると、タイトルに指定したパターンのいずれかを含むウィンドウでは、スクリーンショットの撮影に WGC が自動的に使用されるため、GPU アクセラレーションを使用するアプリケーションで画面が黒くなる問題を解消できます。

利用可能なツール

マウス制御
  • click_screen(x: int, y: int): 指定した画面座標をクリックします
  • move_mouse(x: int, y: int): マウスカーソルを指定した座標に移動します
  • drag_mouse(from_x: int, from_y: int, to_x: int, to_y: int, duration: float = 0.5): マウスをある位置から別の位置へドラッグします
  • mouse_down(button: str = "left"): マウスボタン('left'、'right'、'middle')を押したままにします
  • mouse_up(button: str = "left"): マウスボタン('left'、'right'、'middle')を離します
キーボード操作
  • type_text(text: str): 現在のカーソル位置に指定したテキストを入力します
  • key_down(key: str): 特定のキーを離すまで押し続けます
  • key_up(key: str): 特定のキーを離します
  • press_keys(keys: Union[str, List[Union[str, List[str]]]]): キーを押します(単一キー、キーの順次入力、キーの組み合わせに対応)
画面とウィンドウの管理
  • take_screenshot(title_pattern: str = None, use_regex: bool = False, threshold: int = 10, scale_percent_for_ocr: int = None, save_to_downloads: bool = False, use_wgc: bool = False): 画面またはウィンドウをキャプチャします
  • take_screenshot_with_ocr(title_pattern: str = None, use_regex: bool = False, threshold: int = 10, scale_percent_for_ocr: int = None, save_to_downloads: bool = False): 画面またはウィンドウから OCR を使用してテキストを抽出し、座標とともに返します
  • get_screen_size(): 現在の画面解像度を取得します
  • list_windows(): 開いているすべてのウィンドウを一覧表示します
  • activate_window(title_pattern: str, use_regex: bool = False, threshold: int = 60): 指定したウィンドウを前面に表示します
  • wait_milliseconds(milliseconds: int): 指定したミリ秒数だけ待機します
mcp-caller を使用した MCP サーバーのテスト

MCP クライアントを使わずに、mcp-caller を使用して MCP サーバーのツールをすばやくテストできます。

# List all available tools
npx mcp-caller --server-json '{"type":"stdio","command":"uvx","args":["computer-control-mcp@latest","server"]}' --list-tools

# Call a specific tool
npx mcp-caller --server-json '{"type":"stdio","command":"uvx","args":["computer-control-mcp@latest","server"]}' --tool list_windows --params-json '{}'

開発

開発環境のセットアップ
# Clone the repository
git clone https://github.com/AB498/computer-control-mcp.git
cd computer-control-mcp

# Build/Run:

# 1. Install in development mode | Meaning that your edits to source code will be reflected in the installed package.
pip install -e .

# Then Start server | This is equivalent to `uvx computer-control-mcp@latest` just the local code is used
computer-control-mcp

# -- OR --

# 2. Build after `pip install hatch` | This needs version increment in orer to reflect code changes
hatch build

# Windows
$latest = Get-ChildItem .\dist\*.whl | Sort-Object LastWriteTime -Descending | Select-Object -First 1
pip install $latest.FullName --upgrade 

# Non-windows
pip install dist/*.whl --upgrade

# Run
computer-control-mcp
テストの実行
python -m pytest

API リファレンス

利用可能な関数とクラスの詳細については、API リファレンスを参照してください。

ライセンス

MIT

詳細情報またはサポートについて

コメント

MCP は初めてですか?

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

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