Kira Mcp について
Kira Mcpは、MCP対応ホストを通じてコンピューターを認識・操作するローカルMCPサーバーです。画面解析とマウス、キーボード、クリップボード操作を組み合わせ、Windows向けに調整されています。macOSとLinuxはベストエフォート対応です。
主な機能
- 01画面キャプチャとUI要素検出
- 02ローカルのOmniParser-v2によるアイコン検出
- 03マウス移動、クリック、ドラッグ
- 04キーボード入力とキーの組み合わせ
- 05クリップボードテキストの読み書き
活用シーン
- 01画面上のコントロールを特定してクリック
- 02デスクトップでの入力や移動の自動化
- 03クリップボードテキストの読み取りや設定
MCP 対応
ローカルのstdio JSON-RPC MCPサーバーとして動作し、エージェントホストから起動されます。MCPクライアントは画面、マウス、キーボード、クリップボードのツールを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
██╗ ██╗██╗██████╗ █████╗
██║ ██╔╝██║██╔══██╗██╔══██╗
█████╔╝ ██║██████╔╝███████║
██╔═██╗ ██║██╔══██╗██╔══██║
██║ ██╗██║██║ ██║██║ ██║
╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚═╝ ╚═╝
local · MCP · computer-use
kira-mcp は、MCP 対応のエージェントホスト(Claude Desktop、Claude Code、Cursor、Cline、Continue など)に、ホストマシン上でのコンピューター操作機能を提供するローカルの Model Context Protocol サーバーです。
https://github.com/user-attachments/assets/b9b65987-32b1-43f5-bdf0-006ea71c6d13
Kira が CAPTCHA を最初から最後まで解決します。
perceive_screenを 1 回実行するだけで、クリック可能なピクセル座標を取得でき、人間が介入する必要はありません。
Windows 向けに構築・調整されています。macOS と Linux はベストエフォート対応です。ほとんどのツールは動作しますが、一部の UI の慣習が異なります。
- ビジョン —
perceive_screenは、画面を一度だけ確認するためのエージェント向けツールです。現在の画面をメモリ上に取り込み、ローカルの microsoft/OmniParser-v2 YOLO アイコン検出器で解析し、注釈付き画像と、各要素の{id, bbox, cx, cy, confidence}を含む JSON を返します。座標は画面上の絶対ピクセル値なので、エージェントはcx, cyをそのままmouse_clickに渡せます。API キーもネットワーク呼び出しも不要です。 - デスクトップの自動化 — pyautogui、mss、pyperclip を使用した、ピクセル単位で正確なマウス操作、キーボード入力(キーの組み合わせやキーの長押しを含む)、クリップボードの読み取り・書き込みに対応しています。
このサーバーは stdio JSON-RPC を使用し、エージェントホストによって子プロセスとして起動されます。
クイックスタート
Python 3.10+ と MCP ホストが必要です(以下の例では Claude Desktop を使用します)。お使いの OS を選択してください。
🪟 Windows
1. インストール(PowerShell または Terminal で実行):
pip install kira-mcp
2. Claude Desktop に設定を追加します。 %APPDATA%\Claude\claude_desktop_config.json を開き、以下を追加します:
{
"mcpServers": {
"kira-mcp": { "command": "kira-mcp" }
}
}
3. Claude Desktop を再起動します。 kira-mcp ツールが表示されます。「画面を確認して X をクリックして」と頼むだけです。
🍎 macOS
1. インストール(Terminal で実行):
pip install kira-mcp
2. 権限を付与して、サーバーが画面を確認し、マウスを動かせるようにします。システム設定 → プライバシーとセキュリティで、以下を設定します:
- アクセシビリティ → サーバーを起動するアプリ(Claude Desktop または Terminal)を追加します。
- 画面収録 → 同じアプリを追加します。macOS では、最初のスクリーンショット撮影時にも確認が表示されます。
⚠️ これらの権限を付与した後は、アプリを完全に終了してから再度開いてください。macOS では再起動後にのみ権限が適用されます。
3. Claude Desktop に設定を追加します。 ~/Library/Application Support/Claude/claude_desktop_config.json を開き、以下を追加します:
{
"mcpServers": {
"kira-mcp": { "command": "kira-mcp" }
}
}
kira-mcp が見つからない場合は、フルパス(which kira-mcp)を使用するか、モジュール形式 "command": "python", "args": ["-m", "kira_mcp"] を使用してください。
4. Claude Desktop を再起動します。 kira-mcp ツールが表示されます。
🐧 Linux
sudo apt install python3-tk python3-dev scrot xdotool # or your distro's equivalent
pip install kira-mcp
次に、上記と同じ claude_desktop_config.json のブロックを追加します。X11 のみ対応です。Wayland では画面を直接キャプチャできません(Wayland に関する注意を参照)。
💡 テキスト検索も利用しますか?
pip install "kira-mcp[ocr]"を実行するとfind_element(text="Send")が有効になり、アイコンを目で探す代わりに、ラベルを指定してエージェントがクリックできるようになります。
インストール方法
上記のクイックスタートでは pip を使用します。プロジェクトの site-packages に影響しない、分離されたグローバルインストールを行うには:
pipx install kira-mcp
どちらの方法でも kira-mcp コンソールスクリプトがインストールされ、すべてのツールモジュールが登録されます。
OmniParser-v2 YOLO アイコン検出器の重み(icon_detect/model.pt、約39 MB)は、wheel に同梱されています。別途ダウンロードする必要はありません。サーバーの起動時にディスクから読み込まれ、ウォームアップされます。
kira-mcp 自体を開発していますか?リポジトリをクローンして、編集可能モードでインストールしてください:
git clone https://github.com/Anmol202005/kira-mcp.git && cd kira-mcp && pip install -e .クローンに重みが含まれていない場合(例:浅いチェックアウトの場合や、重みを削除した場合)は、次のコマンドで復元してください:
hf download microsoft/OmniParser-v2.0 \ icon_detect/model.pt \ icon_detect/model.yaml \ --local-dir src/kira_mcp/weightsまたは、環境変数
KIRA_YOLO_WEIGHTSを設定して、ディスク上の別の場所にある model.pt を指定してください。
その他のエージェントホスト
クイックスタートでは Claude Desktop を扱います。それ以外のホストでも設定形式は同じです。kira-mcp コマンドを指定してください:
- Claude Code —
claude mcp add kira-mcp -- kira-mcp - Cursor / Cline / Continue / Windsurf — ホストの MCP 設定に同じ
mcpServersブロックを追加します。
インストール済みスクリプトに依存したくない場合は、コマンドを指定する箇所でモジュール形式を使用できます:
{ "command": "python", "args": ["-m", "kira_mcp"] }
設定を編集したら、ホストを再起動してください。すべてのツールが kira-mcp 名前空間に表示されます。
ツール
ビジョン
| ツール | 目的 |
|---|---|
perceive_screen | 1回の呼び出しで画面を認識するステップです。現在のディスプレイ(または画面上の {x, y, width, height} 領域)のスクリーンショットを撮影し、ローカルの OmniParser-v2 YOLO アイコン検出器で処理して、注釈付き画像をインラインで返すとともに、{width, height, count, elements} 形式の JSON を返します。各要素は {id, bbox, cx, cy, confidence} 形式で、画面上の絶対ピクセル座標です。cx, cy をそのまま mouse_click に渡せます。モデルはサーバーの起動時に読み込まれてウォームアップされるため、呼び出しごとのコールドスタートはありません。GPU での一般的なレイテンシは50~200ms、CPU では300~800msです。API キーは不要で、ネットワーク呼び出しもありません。 |
マウス
| ツール | 目的 |
|---|---|
mouse_move | 絶対座標 (x, y) に移動します。即時に移動するには duration=0 を指定します。 |
mouse_position | カーソルの現在の (x, y) を読み取ります。 |
mouse_click | left / middle / right をクリックします。任意で (x, y) を指定すると、クリック前にその位置へ移動します。複数回クリックするには clicks を指定します。 |
mouse_double_click | ダブルクリックします。(x, y) は任意で指定できます。 |
mouse_press / mouse_release | ボタンを押したままにし、後から離します(ドラッグ&ドロップの基本操作)。 |
mouse_drag | 1回の呼び出しで、移動 → 押下 → 目標位置までドラッグ → リリースを行います。 |
mouse_scroll | N 回のクリック分、up / down / left / right にスクロールします。 |
キーボード
| ツール | 目的 |
|---|---|
keyboard_type | テキストをそのまま入力します。 |
keyboard_tap | キーの組み合わせを押して離します。例:["ctrl", "c"]、["cmd", "shift", "t"]。 |
keyboard_press / keyboard_release | キーを押したままにし、後から離します(修飾キーの状態を操作する基本機能)。 |
keyboard_key_check | デバッグ用ヘルパーです。キー名を pyautogui の正規形式に解決します。 |
キー名には pyautogui.KEYBOARD_KEYS の任意の値に加え、一般的な別名(ctrl、alt、shift、cmd/command、win/windows/super、meta、esc/escape、enter/return、space/spacebar、pgup/pageup、pgdn/pagedown、del、ins)を使用できます。
画面
| ツール | 目的 |
|---|---|
screen_size | メインディスプレイの { width, height } を返します。範囲チェックに便利ですが、perceive_screen の応答にも画面の寸法が含まれています。 |
クリップボード
| ツール | 目的 |
|---|---|
clipboard_get | システムクリップボードのテキストを読み取ります。 |
clipboard_set | システムクリップボードにテキストを書き込みます。 |
一般的なエージェントのループ
perceive_screen() # → annotated JPEG inline + JSON: {width, height, elements: [{id, bbox, cx, cy, confidence}, …]}
# agent picks an element by id, reads its (cx, cy) — already in absolute screen pixels
mouse_click(x=cx, y=cy)
perceive_screen() # verify the action landed
見るためのツールを1つ、操作するためのツールを1つ使い、完了するまで繰り返します。
構成
src/kira_mcp/
├── __main__.py # entry — `python -m kira_mcp` or `kira-mcp`
├── _mcp.py # shared FastMCP instance + system instructions
├── lib/
│ ├── keys.py # key-name normalization for pyautogui
│ ├── cache.py # screenshot + per-element OCR hash cache
│ └── ocr.py # optional OCR backend shim
└── tools/
├── __init__.py # side-effect imports → registers tools
├── parse.py # `perceive_screen` — screenshot + local YOLO icon-detector
├── screen.py # `screen_size` + the `Region` model
├── mouse.py
├── keyboard.py
└── clipboard.py
新しいツールを追加するには、@mcp.tool()(kira_mcp._mcp からインポート)でデコレートした関数を作成し、tools/__init__.py からそのモジュールをインポートします。
ローカル開発
pip install -e .
python -m kira_mcp # stdio server — drive it from your MCP host
安全性
起動時に pyautogui.FAILSAFE が有効になっています。マウスを左上隅に勢いよく移動すると FailSafeException が発生し、エージェントが実行中の処理が中断されます。有効のままにしてください。 サーバーでは、ツール呼び出しからこれを無効にする方法を明示的に提供していません。
Wayland に関する注意
Linux の Wayland セッションでは、X11 の生の画面キャプチャは黒いバッファーを返します。GNOME Wayland ではさらに、権限のない呼び出し元によるプログラムからのスクリーンショット取得がブロックされます。perceive_screen が黒い画像を返す場合(または検出結果がまったくない場合)は、X11 セッションにログインするか、wlr-screencopy を搭載した Wayland コンポジター(Hyprland、Sway、river、Niri)または KDE Plasma セッションに切り替えてください。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。