mcpField
U
ultranix-mcp

ultranix-mcp

ローカル
github.comその他16 週間前に更新

ultranix-mcp について

ultranix-mcp は、Agent や MCP クライアント向けの Linux デスクトップ操作用 Rust 製 MCP サーバーです。Wayland を中心とした入力・画面検査に、複数のコンポジター用バックエンドや代替プロバイダー、安全制御を組み合わせています。

主な機能

  1. 01マウスとキーボードの入力
  2. 02スクリーンショット、OCR、アイコン検索
  3. 03アクセシビリティツリーの検査
  4. 04ウィンドウとクリップボードの管理
  5. 05画面録画とライブキャプチャ
  6. 06監査ログと暗号化された操作履歴

活用シーン

  1. 01Wayland デスクトップ操作の自動化
  2. 02OCR やアクセシビリティ情報による UI 要素の検索
  3. 03エージェントによるウィンドウとクリップボードの管理
  4. 04デスクトップ操作の録画や監視

MCP 対応

stdio またはストリーミング可能な HTTP 経由で、Linux デスクトップ自動化ツールを MCP クライアントに公開します。ツールカテゴリを指定して利用可能な機能を絞れます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"jxoesneon-ultranix": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ULTRANIX_MCP_API_KEY",
"-e",
"ULTRANIX_MCP_API_KEY_FILE",
"-e",
"ULTRANIX_MCP_API_KEY_EXPIRES",
"-e",
"ULTRANIX_MCP_HISTORY_SECRET",
"-e",
"ULTRANIX_MCP_SENTRY_DSN",
"-e",
"ULTRANIX_MCP_AUDIT_SECRET",
"ghcr.io/jxoesneon/ultranix-mcp:1.4.0"
],
"env": {
"ULTRANIX_MCP_API_KEY": "<ULTRANIX_MCP_API_KEY>",
"ULTRANIX_MCP_API_KEY_FILE": "<ULTRANIX_MCP_API_KEY_FILE>",
"ULTRANIX_MCP_API_KEY_EXPIRES": "<ULTRANIX_MCP_API_KEY_EXPIRES>",
"ULTRANIX_MCP_HISTORY_SECRET": "<ULTRANIX_MCP_HISTORY_SECRET>",
"ULTRANIX_MCP_SENTRY_DSN": "<ULTRANIX_MCP_SENTRY_DSN>",
"ULTRANIX_MCP_AUDIT_SECRET": "<ULTRANIX_MCP_AUDIT_SECRET>"
}
}
}
}
起動コマンドdocker run -i --rm -e ULTRANIX_MCP_API_KEY -e ULTRANIX_MCP_API_KEY_FILE -e ULTRANIX_MCP_API_KEY_EXPIRES -e ULTRANIX_MCP_HISTORY_SECRET -e ULTRANIX_MCP_SENTRY_DSN -e ULTRANIX_MCP_AUDIT_SECRET ghcr.io/jxoesneon/ultranix-mcp:1.4.0
設定が必要な環境変数
ULTRANIX_MCP_API_KEYシークレットAPI key(s) (uxcp_*) for HTTP transport auth - required for --transport http (fail-closed), unused on stdio
ULTRANIX_MCP_API_KEY_FILEシークレットPath to a 0600 file holding uxcp_* keys, one per line
ULTRANIX_MCP_API_KEY_EXPIRESシークレットOptional RFC 3339 expiry for the env-sourced key (self-revoking)
ULTRANIX_MCP_HISTORY_SECRETシークレットAES-256-GCM secret for encrypted action history (per-install generated if unset)
ULTRANIX_MCP_SENTRY_DSNシークレットOptional Sentry DSN for error reporting (unset = disabled)
ULTRANIX_MCP_AUDIT_SECRETシークレットOptional HMAC-SHA256 signing secret for audit.jsonl lines (tamper evidence for SIEM ingestion)

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

パッケージ
ocighcr.io/jxoesneon/ultranix-mcp:1.4.0

ツール

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

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

詳細

ultranix-mcp

Version License: ISC Platform Rust MCP SDK Status

**ultranix-mcp は、AI エージェント向けのエンタープライズグレードで安全な Linux デスクトップ自動化レイヤーです。**Model Context Protocol(MCP)クライアントである Claude Desktop、Claude Code、Cursor、Windsurf、および MCP 対応のあらゆるアシスタントから、Wayland デスクトップを認識し、クリックし、入力し、操作できます。マウス、キーボード、スクリーンショット、OCR、アイコン検索、ウィンドウ管理、アクセシビリティツリーの検査に対応しています。

ultranix-mcp は設計段階から Wayland ネイティブです。コンポジタープロトコルを第一に、uinput/evdevを第二に、XDG デスクトップポータルを最後に利用し、兄弟製品(macOS 向けの ultramac、Windows 向けの ultrawin)と同じガバナンスと信頼の基盤として、監査ログ、レート制限、入力のサニタイズ、AES-256-GCM による暗号化済み操作履歴を備えています。クロスコンポジターのフォールバック階層、完全なガバナンス基盤、3 つの OS にまたがる兄弟製品間の契約を組み合わせた、初の Linux デスクトップ MCP です。これにより、組織は自らの制御を手放すことなく、エージェントに Linux デスクトップを操作させることができます。

ステータス:v1.4.0 を実装済みです。ROADMAP.mdのフェーズ 0~5 に加え、v1.1.0 の機能群(layer-shell オーバーレイ、X11 ネイティブプロバイダー、PipeWire ポータルキャプチャ、オプトインの Sentry、OCR キャッシュ、追加メトリクス)、v1.2.0 の機能拡張(クリップボードツール、プラグイン用ツールマクロ、screen_record、sway/Wayfire/river/KDE/GNOME のセッション検出、バックエンドごとの cargo 機能、フレーム付き履歴 v2)、v1.3.0 のポリシー機能群(キーごとのロールに対応した実行時アクセス制御ポリシー、--readonly/--allow-tools/--deny-tools、バックエンドごとの呼び出しメトリクス、任意の HMAC 署名付き監査行)、そして v1.4.0 の対応範囲拡大(Wayfire/river/GNOME のウィンドウ階層、ライブのscreen_streamキャプチャ、プラグインで公開される動的ツール、OCI イメージと-binパッケージ)をリリースしました。各リリースの詳細はCHANGELOG.mdをご覧ください。検証済みの対象環境は、Rust 1.98.1 上のCachyOS(Arch)+ Wayland 上の Hyprland、PipeWire、xdg-desktop-portal-hyprland、および稼働中の AT-SPI2 バスです。


機能

  • 高精度なマウス制御- zwlr_virtual_pointer_v1 プロトコルを使用して、クリック、ダブルクリック、ドラッグ、スクロール、ボタン状態の制御、位置の取得、滑らかな軌跡での移動を行います。root 権限やヘルパーデーモンは不要です。
  • 高度なキーボード入力- virtual-keyboard-unstable-v1 を通じてテキストを入力し、キー状態を操作します。修飾キーとキーマップを完全に処理します。
  • インテリジェントな視覚機能- プロセス内での wlr-screencopy-unstable-v1 キャプチャ、ONNX Runtime OCR(ort クレート)、OWL-ViT によるアイコン検出に対応します。範囲を指定したスクリーンショット、色のサンプリング(color_at)、セッション単位の空間フォーカス(set_spatial_focus は screenshot/find_text_on_screen/find_icon の範囲を限定します)、および zwlr_layer_shell_v1 による実際の screen_highlight オーバーレイ(半透明、クリック透過。layer-shell のないコンポジター/セッションでは -32010 ProviderUnavailable が返されます。詳しくは docs/TOOLS.md をご覧ください)。
  • ウィンドウ管理- Hyprland の hyprctl IPC ソケット(hyprctl -j JSON:clients、activewindow、dispatch、workspaces)、$SWAYSOCK 上の sway 独自の IPC プロトコル、$WAYFIRE_SOCKET 上の Wayfire の ipc/ipc-rules プラグイン、river 上の固定された riverctl サブプロセスと wlroots の foreign-toplevel 複合機能(riverctl はフォーカス中のビューに対する close と相対的な move/resize の差分を処理し、toplevel プロトコルは列挙とウィンドウごとの focus/close/min/max/fullscreen を提供します)、共通の wlroots フォールバック段階としての wlr-toplevel(未知の wlroots セッションでは唯一の段階)、KDE 上の kdotool、GNOME 上の「Window Calls」Shell 拡張機能(インストールされている場合)、または X11 セッション上の wmctrl を通じて、ウィンドウの一覧表示、フォーカス、移動、サイズ変更、閉じる操作、詳細確認を行います。
  • UI の検査- AT-SPI2(atspi クレート)を通じてアクセシビリティツリーに完全にアクセスできます。UI ツリーのダンプ、フォーカス中の要素の取得、要素の検索、要素が現れるまでの同期に対応します。
  • クリップボードとプラグイン- wl-clipboard(Wayland)または xclip/xsel(X11)を通じて clipboard_get/clipboard_set/clipboard_clear を実行します。書き込みには同意が必要です。また、宣言型のプラグインツールマクロに対応します。~/.ultranix-mcp/plugins/*.json のマニフェストに記述されたカタログツールのステップは plugin_list/plugin_run/plugin_reload を通じて実行され、各ステップはセキュリティ保護されたディスパッチ経路を再度通ります。マニフェストの tool セクション(v1.4.0)は、プラグインを生成された inputSchema を持つ第一級の tools/list エントリとして登録し、同じセキュリティ保護された plugin_run パイプラインを通じてディスパッチします。
  • 画面録画とライブキャプチャ- screen_record は、最大 duration_ms まで interval_ms ごとにフレームをキャプチャし、新しく作成された rec-<ulid> ディレクトリと manifest.json に保存します(上限:600 フレーム、512 MiB)。screen_stream(v1.4.0)は、stream-<ulid> の下で連続した start/status/latest/stop のローリングウィンドウキャプチャを実行します(最大1800フレーム、最大512 MiB、古いフレームから削除)。latest は screenshot と同じ画像形式で最新のフレームを返します。since/wait_ms を指定すると、ビジーポーリングの代わりにロングポーリングが行われ、ウォーターマークより新しいフレームが届くまで最大30秒待機します。
  • エンタープライズセキュリティ- HTTP での uxcp_* API キー認証、毎秒10リクエストのトークンバケット、入力のサニタイズ、コマンド/パスの許可リスト、AES-256-GCM による暗号化済み操作履歴、JSONL 監査ログに対応します。SECURITY.md をご覧ください。

アーキテクチャ

ultranix-mcp は tokio ランタイム上で動作する単一の Rust 2024 バイナリで、公式の Model Context Protocol Rust SDK である rmcp を基盤とし、ネイティブの stdio および streamable-HTTP (:3010)トランスポートを備えています。

デスクトップ自動化レイヤーは、依存性注入を介したプロバイダートレイト(ultrawin の src/traits.rs で実証されたパターン)として構成されています。 各機能は Option<Arc<dyn Trait>> であるため、コンポジター機能の不足、ポータルの不在、ヘッドレス CI でも致命的な失敗をせず、正常に機能を縮退できます。 モックプロバイダーも同じトレイトを実装しているため、Wayland セッションがなくてもツール一式をテストできます。

プロバイダートレイト担当機能主なバックエンド
CaptureProviderスクリーンショット、領域キャプチャー、画面情報wlr-screencopy-unstable-v1(プロセス内)
InputProviderポインター、スクロール、キーボードイベントzwlr_virtual_pointer_v1 + virtual-keyboard-unstable-v1
UIAutomationProviderUI ツリー、フォーカス中の要素、要素検索atspi 経由の AT-SPI2
WindowProviderウィンドウ一覧/フォーカス/移動/閉じるhyprctl IPC ソケット(ultrawin から新規追加)
VisionProviderOCR、アイコン検出ort(ONNX Runtime、CPU、OpenVINO、CUDA、ROCm EP)
BrowserProviderWeb クエリー、DOM アクセス127.0.0.1:9222 の CDP ブリッジ
OverlayProviderscreen_highlight オーバーレイzwlr_layer_shell_v1(Wayland 専用)
ClipboardProviderクリップボードの読み取り/書き込みwl-copy/wl-paste(Wayland)、xclip/xsel(X11/XWayland)
  1. wlroots ネイティブ - プロセス内 Wayland プロトコル(Hyprland、sway、Wayfire、river、および大半の未知の wlroots コンポジター。root 権限は不要)
  2. grim/slurp(キャプチャー)+ uinput/evdev(入力) - 非 wlroots セッション向けの許可リスト登録済みヘルパーバイナリとカーネルレベルの入力
  3. XDG デスクトップポータル - zbus 経由の Screenshot および RemoteDesktop(ポータルの同意が必要な汎用フォールバック。wlr-screencopy も wlr 仮想入力プロトコルも実装していない KDE/GNOME Wayland で唯一の経路)

ウィンドウ管理では、利用可能な場合はコンポジターの IPC を使用します。Hyprland では hyprctl、sway では i3 形式の IPC($SWAYSOCK、v1.2.0 で搭載)、Wayfire では ipc/ipc-rules プラグイン($WAYFIRE_SOCKET、v1.4.0)、river では riverctl + zwlr_foreign_toplevel_manager_v1(riverctl がフォーカス中のビューに対する close と相対差分による move/resize を操作し、foreign-toplevel がウィンドウを列挙して、focus/close/min/max/fullscreen の対象として wlr-toplevel-N 形式で指定します)を使用します。また、wlr-toplevel は wlroots 共通のフォールバック段であり、未知の wlroots セッション(niri、labwc、...)では唯一のウィンドウ管理段です。KDE では kdotool(KWin スクリプティング。Wayland と X11 の両方に対応)、GNOME では D-Bus 経由の「Window Calls」Shell 拡張機能(v1.4.0、拡張機能が必要。org.gnome.Shell.Eval は意図的に使用しません)、その他の X11 セッションでは wmctrl を使用します。

X11 セッションでは、v1.1.0 で搭載された X11 ネイティブの段が代わりに選択されます。scrot によるキャプチャー、xdotool による入力(どちらもポータル/uinput より優先)、および Hyprland 以外の X11 でのウィンドウ管理に使う wmctrl です。

graph TB
    subgraph "Client Layer"
        AI[AI Assistant / Agent]
        MCP[MCP Client]
    end

    subgraph "Transport Layer"
        STDIO[STDIO<br/>never requires auth]
        HTTP[Streamable HTTP :3010<br/>uxcp_* API key]
    end

    subgraph "Security Layer"
        AUTH[API Key Auth]
        RATE[Rate Limiter<br/>10 req/s token bucket]
        SAN[Input Sanitization<br/>command + path whitelists]
    end

    subgraph "Core (rmcp + tokio)"
        SERVER[ultranix-mcp server]
        TOOLS[40 tools - 6 categories]
    end

    subgraph "Providers - Option&lt;Arc&lt;dyn Trait&gt;&gt;"
        CAP[CaptureProvider]
        INP[InputProvider]
        UIA[UIAutomationProvider]
        WIN[WindowProvider]
        VIS[VisionProvider]
        BRW[BrowserProvider]
        CLIP[ClipboardProvider]
    end

    subgraph "Backends - priority order"
        WLR[wlroots-native<br/>screencopy - virtual-pointer - virtual-keyboard]
        UIN[uinput / evdev]
        PORTAL[XDG Desktop Portal<br/>zbus]
        HYPR[hyprctl IPC]
        SWAY[sway IPC - SWAYSOCK]
        WF[Wayfire IPC - WAYFIRE_SOCKET]
        RIV[riverctl + foreign-toplevel - river composite]
        WTOP[wlr-foreign-toplevel - shared wlroots rung]
        GS[gnome-shell - Window Calls ext]
        KDOT[kdotool - KDE]
        ATSPI[AT-SPI2 bus]
        ORT[ONNX Runtime - ort]
        CDP[CDP 127.0.0.1:9222]
        WLC[wl-clipboard - xclip/xsel]
    end

    AI --> MCP
    MCP --> STDIO
    MCP --> HTTP
    STDIO --> SERVER
    HTTP --> AUTH --> RATE --> SAN --> SERVER
    SERVER --> TOOLS
    TOOLS --> CAP
    TOOLS --> INP
    TOOLS --> UIA
    TOOLS --> WIN
    TOOLS --> VIS
    TOOLS --> BRW
    TOOLS --> CLIP
    CAP --> WLR
    INP --> WLR --> UIN --> PORTAL
    WIN --> HYPR
    WIN --> SWAY
    WIN --> WF
    WIN --> RIV
    WIN --> GS
    WIN --> KDOT
    UIA --> ATSPI
    VIS --> ORT
    BRW --> CDP
    CLIP --> WLC

**トークン効率。**ツール定義はコンテキストウィンドウを消費します。ultranix-mcp は --category= によるフィルタリングに対応しているため、必要なツールだけを公開できます。

# Serve only mouse + keyboard tools
# (`--stdio` is an alias for `--transport stdio`)
ultranix-mcp --transport stdio --category=mouse,keyboard

カテゴリ:mouse、keyboard、vision(キャプチャー/OCR/UI ツリー/記録)、automation(その他)、admin(ウィンドウ/履歴/メトリクス/プラグイン)、clipboard。 デフォルト:すべて。


ultranix-mcp を選ぶ理由

機能ultranix-mcphyprusePeekabooxdotool ベースの MCP サーバーDE 固有のアプローチ(GNOME/KDE)
Linux ネイティブの自動化(マウス/キーボード/ウィンドウ)Wayland 優先(Hyprland のみ)-(macOS のみ)X11 のみ単一 DE
コンポジタープロトコルによる入力(root 不要)wlr virtual-pointer + virtual-keyboardwlr プロトコル該当なし-一部対応(portal RemoteDesktop)
バックエンドのシームレスなフォールバック(ネイティブ -> uinput -> portal)-(Hyprland のみ、uinput/portal の段階なし)---
コンポジター IPC によるウィンドウ管理hyprctl - sway IPC - Wayfire IPC - riverctl - GNOME Window Calls - kdotoolhyprctl一部対応(wmctrl)一部対応(KWin スクリプト/Shell)
アクセシビリティツリーAT-SPI2busctl 経由の AT-SPI(click_ui を含む)macOS AX-一部対応
OCR + ビジョン/アイコン検出(ローカル ONNX)一部対応一部対応--
監査ログ(JSONL)----
レート制限----
入力のサニタイズ/パスのホワイトリスト----
AES-256-GCM 暗号化されたアクション履歴----
API キー認証----
単一の静的バイナリ-(Python/uvx)---
オープンソース(ISC)さまざまさまざま

インストール

オプション 1:AUR(パッケージの提供済み、登録申請は保留中)

Arch 系の PKGBUILD(ultranix-mcp、ultranix-mcp-git、およびビルド済みバイナリ版の ultranix-mcp-bin)は packaging/ にあります。AUR への登録申請は ROADMAP.md で追跡しています。クレートの公開後は cargo install ultranix-mcp によるインストールもサポートされます。ビルド時の ort によるネットワーク取得に関する注意事項は docs/PACKAGING.md §2 をご覧ください。

オプション 1b:OCI イメージ(v1.4.0)

ghcr.io/jxoesneon/ultranix-mcp は .github/workflows/oci.yml により、すべての v* タグで公開されます。ヘッドレス環境/CI での使用を想定しています(実際のプロバイダーに接続するには、$XDG_RUNTIME_DIR、セッションバス、/dev/uinput をバインドマウントしてください。docs/HEADLESS.md をご覧ください)。

オプション 2:ソースからビルドする

前提条件:

  • Wayland セッションを使用する Linux ― CachyOS(Arch)+ Hyprlandで動作確認済みです
  • Rust 1.98 以降(2024 エディション。1.98.1 で動作確認済み)
  • 実行時に使用するセッションツール:hyprctl、grim、slurp
  • 任意:xdg-desktop-portal-hyprland(ポータルのフォールバック経路)、AT-SPI2 アクセシビリティバス(UI の検査)、--remote-debugging-port=9222 を指定した Chromium/Chrome(ブラウザツール)、wl-clipboard(wl-copy/wl-paste。Wayland 上のクリップボードツール)、xclip+xsel(X11/XWayland 上のクリップボードツール)、kdotool(KDE のウィンドウツール)、riverctl(river のフォーカス中のビューのジオメトリ。列挙とウィンドウごとの制御には、公開されている場合、wlroots foreign-toplevel を使用)、GNOME の「Window Calls」Shell 拡張機能(GNOME のウィンドウツール)

手順:

  1. リポジトリをクローンします:

    git clone https://github.com/jxoesneon/ultranix-mcp.git
    cd ultranix-mcp
    
  2. プロジェクトをビルドします:

    cargo build --release
    
  3. サーバーを起動します:

    # Stdio トランスポート(ローカル MCP クライアントに推奨)
    # (`--stdio` は `--transport stdio` の別名として使用できます)
    ./target/release/ultranix-mcp --transport stdio
    
    # :3010 で Streamable HTTP トランスポートを使用(ULTRANIX_MCP_API_KEY が必要)
    ./target/release/ultranix-mcp --transport http --bind 127.0.0.1:3010
    
    # ツールカテゴリーを絞り込みます(コンテキストのオーバーヘッドを削減)
    ./target/release/ultranix-mcp --transport stdio --category=mouse,keyboard
    
  4. テストを実行します(モックプロバイダーを使用するため、Wayland セッションは不要です):

    cargo test
    

**Cargo の機能(v1.2.0)。**各バックエンドグループは機能として提供され、すべてデフォルトで有効なため、cargo install の動作は変わりません:

機能デフォルト対象
wayland有効ネイティブ Wayland プロバイダー:wlr-screencopy キャプチャ、virtual-pointer/keyboard 入力、layer-shell オーバーレイ
uinput有効/dev/uinput evdev フォールバック入力プロバイダー
a11y有効AT-SPI2 UI 自動化+D-Bus ポータルプロバイダー
pipewire有効ポータルキャプチャ経路内での PipeWire ストリーム消費(a11y が必要)
vision有効ONNX ビジョンバックエンド(ort+モデル取得+トークナイザー+結果キャッシュ)
browser有効CDP ブラウザブリッジ
sentry有効任意の Sentry エラー報告(ULTRANIX_MCP_SENTRY_DSN)
vision-cuda無効CUDA 実行プロバイダー(ort/load-dynamic を含みます。ORT_DYLIB_PATH に対応する ONNX Runtime ビルドを指定してください)
vision-openvino無効OpenVINO 実行プロバイダー(同じ load-dynamic の注意事項があります)
vision-rocm無効ROCm 実行プロバイダー(同じ load-dynamic の注意事項があります)
オプション 3:Nix flake(未検証)

リポジトリのルートには flake.nix が用意されています。nix build でパッケージを生成し、nix develop で Rust ツールチェーンとネイティブ依存関係(pipewire、libxkbcommon、bindgen 用の libclang、セッションヘルパーバイナリ)を備えた devShell に入り、nix run でサーバーを起動できます。**注記:**この flake はレビューに基づいて作成されており、こちらのツールチェーンでは評価されていません。未検証のものとして扱ってください。修正や確認を歓迎します。

MCP クライアントの設定

stdio 経由でバイナリを使用するよう、MCP クライアントを設定します。Claude Desktop/Cursor 用の例(claude_desktop_config.json/mcp.json):

{
  "mcpServers": {
    "ultranix": {
      "command": "ultranix-mcp",
      "args": ["--transport=stdio"]
    }
  }
}

(--stdio は --transport stdio の省略形として使用できます。)

トークン効率を重視した構成 ― mouse、keyboard、vision カテゴリーのみを公開します:

{
  "mcpServers": {
    "ultranix": {
      "command": "ultranix-mcp",
      "args": ["--transport=stdio", "--category=mouse,keyboard,vision"]
    }
  }
}

設定

ultranix-mcp は、stdio 経由ですぐに使用できます(認証は不要です)。HTTP トランスポートおよび本番環境では、以下の変数をサポートしています。

変数用途デフォルト必須(本番環境)
ULTRANIX_MCP_API_KEYHTTP クライアント認証用の API キー(uxcp_*。X-API-Key ヘッダーが標準で、Authorization: Bearer も使用できます)。**フェイルクローズ:**未設定の場合、HTTP トランスポートは認証リクエストを拒否します。開発用キーは生成されません。未設定 — HTTP はフェイルクローズはい(HTTP)
ULTRANIX_MCP_API_KEY_FILEAPI キーを含むファイルのパス(インラインの環境変数より優先されます。プロセス環境からシークレットを除外できます)。なしいいえ
ULTRANIX_MCP_API_KEY_EXPIRESキーの有効期限に関するオプションのメタデータ。ULTRANIX_MCP_API_KEY と位置順に対応する、RFC 3339 形式の日付をコンマ区切りで指定します(キー ファイルでは各行に expires= サフィックスを指定します)。期限切れのキーは読み込まれたままですが、認証に失敗し、固有の auth.expired_key 監査イベントが記録されます。なし — キーの有効期限なしいいえ
ULTRANIX_MCP_HISTORY_SECREThistory.json の AES-256-GCM 暗号化に使用する秘密鍵。インストールごとに ~/.ultranix-mcp/ 配下に生成(モード 0700)。開発用フォールバックでは警告が表示されますいいえ
ULTRANIX_MCP_DISABLE_AUTH緊急回避手段:HTTP 認証を無効にします(開発専用。stdio は常に認証不要です)。falseいいえ
ULTRANIX_MCP_LOG_LEVELtracing の詳細度(error、warn、info、debug、trace)。infoいいえ
ULTRANIX_MCP_BINDストリーミング可能な HTTP サーバーのバインドアドレス(--bind フラグと同等です)。127.0.0.1:3010いいえ
ULTRANIX_MCP_SENTRY_DSNSentry エラー追跡用の DSN(オプトイン)。DSN の解析に成功した場合にのみ sentry-tracing レイヤーが追加されます(未設定、空、形式不正の場合は無効になり、形式不正の場合は警告が表示されます)。未設定 — 無効いいえ
ULTRANIX_MCP_API_KEY_FILE のどちらも設定されていない場合、サーバーは
~/.ultranix-mcp/api-keys/*.json をスキャンします。キーごとに 1 つのキー レコード ファイル(JSON
レコード形式または行形式。各ファイルにモード 0600 が適用されます)。完全な優先順位ルールについては、
docs/API_KEY_MANAGEMENT.md §3
を参照してください。

**データディレクトリ。**ランタイム状態は ~/.ultranix-mcp/ 配下に保存されます。

パス内容
~/.ultranix-mcp/logs/JSONL 監査ログ。すべてのツール呼び出しを記録(key_id、args_hash(生の引数は記録しません)、所要時間、結果)。prev_hash で連鎖され、30 日ごとにローテーションされます
~/.ultranix-mcp/history.jsonアクション履歴。保存時に AES-256-GCM で暗号化されます

セッションの要件とセキュリティ

Wayland の自動化では、macOS 形式の権限プロンプトの代わりにコンポジターの機能を使用します。ultranix-mcp は、動作するバックエンドのうち最小権限のものを選択します。

  1. wlroots ネイティブ(Hyprland)- zwlr_virtual_pointer_v1、 virtual-keyboard-unstable-v1、wlr-screencopy-unstable-v1 が通常のクライアントに公開されます。root 不要、udev ルール不要、同意ダイアログ不要です。
  2. uinput/evdev- パッケージに含まれる udev ルール(GROUP="ultranix-input"。サービスユーザーのみを所属させる専用グループです。すべての evdev ノードへのキーロガー級の読み取りアクセスを許可する広範な input グループは使用しないでください)を通じて、/dev/uinput への書き込みアクセスが必要です。セットアップは任意で、packaging/README-uinput.md に説明があります。
  3. XDG Desktop Portal- zbus 経由で Screenshot/RemoteDesktop を使用します。ポータルは xdg-desktop-portal-hyprland を通じて、アプリごとの同意ダイアログを仲介します。

**セキュリティに関する注意:**ultranix-mcp には、インジェクション攻撃に対する保護機能が組み込まれています。引数を制限し、絶対パスを固定したコマンドの許可リスト(dispatch exec/exec-once を除く grim、slurp、scrot、hyprctl。X11 セッションのみで xdotool/wmctrl を使用)、パスの許可リスト($XDG_RUNTIME_DIR、/tmp、~/.ultranix-mcp/**)、厳格な入力検証、レート制限、HTTP でのフェイルクローズ型 API キー認証、破壊的なツールに対する同意ゲート(-32015 ConsentRequired -> consent_token を指定して再試行。--allow-destructive で回避)、暗号化されたアクション履歴です。SECURITY.md と脅威モデルの全文をお読みください。


ツールリファレンス

概要のミラーです。docs/TOOLS.md が正式なツールカタログです(完全なスキーマ、ツールごとのエラー、同意に関する仕様を掲載)。

マウス(--category=mouse)

mouse_click、mouse_double_click、mouse_move、mouse_get_position、 mouse_scroll、mouse_drag、mouse_button_control

キーボード(--category=keyboard)

type_text、key_control

ビジョン(--category=vision)

screenshot、screen_info、screen_highlight、color_at、 set_spatial_focus、get_ui_tree、get_focused_element、find_element、 find_text_on_screen、find_icon、wait_for_ui_element、invoke_element、 screen_record、screen_stream

自動化(--category=automation)

sleep、mouse_move_path、system_command、web_query

管理(--category=admin)

window_control、get_windows、get_active_window、metrics、 get_action_history、replay_action、clear_action_history、 plugin_list、plugin_run、plugin_reload

クリップボード(--category=clipboard)

clipboard_get、clipboard_set、clipboard_clear


ロードマップ

提供計画については ROADMAP.md をご覧ください。フェーズ 0〜5(足場の構築 -> Hyprland I/O -> AT-SPI2 -> ビジョン/CDP -> エンタープライズ -> 移植性/パッケージング)は v1.0.0 の時点で完了しています。v1.1.0 では layer-shell の screen_highlight オーバーレイ、X11 ネイティブプロバイダー、PipeWire ポータルキャプチャー、オプトインの Sentry、OCR 結果キャッシュ、Prometheus メトリクス 4 種類が追加されました。v1.2.0 ではクリップボードツール、プラグインのツールマクロ、上限付きの screen_record、sway ウィンドウプロバイダーを備えた sway/Wayfire/river/KDE/GNOME セッション検出、バックエンドごとの cargo 機能、フレーム形式の v2 アクション履歴形式が追加されました。v1.3.0 ではランタイムポリシーレイヤー(TOML ロール、キーごとのスコープ設定、--readonly およびツールの許可/拒否フラグ)、バックエンドごとの呼び出しメトリクス、任意の HMAC 署名付き監査レコードが追加されました。v1.4.0 ではウィンドウプロバイダーの対応範囲を補完し(Wayfire IPC、river riverctl、GNOME Window Calls)、ローリングキャプチャーによるライブ screen_stream と、プラグインで公開される動的ツールを提供しました。また、OCI イメージと ultranix-mcp-bin の配布アーティファクトも追加されました。リリースノートについては CHANGELOG.md をご覧ください。

ドキュメント

設計およびガバナンスに関するドキュメントは docs/ にあります。これには docs/adr/ のアーキテクチャ決定記録も含まれます。開発ワークフローについては、CONTRIBUTING.md からご覧ください。

コントリビューション

コントリビューションを歓迎します!モックプロバイダーのテストパターン、ADR プロセス、プルリクエストの規約についてはCONTRIBUTING.mdを、コミュニティで期待される行動についてはCODE_OF_CONDUCT.mdをお読みください。

ライセンス

このプロジェクトはISC Licenseのライセンスのもとで公開されています。


© 2026 ultranix-mcp authors.

コメント

MCP は初めてですか?

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

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