uMouse MCP

io.github.SonicloudTech由 GitHub 帳號 SonicloudTech 發布v0.1.1更新於 Oct 26, 2026

USB HID mouse control and voice dictation for Windows x64. Requires compatible uMouse hardware.

已驗證STDIO僅桌面瀏覽器自動化媒體與設計

概覽

AI 產生的概覽

適用於 Windows x64 的 MCP 伺服器,讓 AI 助理透過真實的 uMouse USB HID 滑鼠執行移動、點擊、捲動、拖曳,並支援語音聽寫。

可以做什麼
  • 以桌面實體像素座標移動、點擊、捲動與拖曳系統游標,支援多螢幕與可選的高精度模式
  • 開始與結束獨占控制任務,同一時間只允許一個任務驅動滑鼠與鍵盤
  • 以唯讀方式讀取游標位置、即時按鍵狀態與前景視窗資訊
  • 在操作前檢查 SDK 狀態、裝置清單與回報的能力
  • 擷取麥克風音訊,經可替換的語音辨識供應者產生預覽與最終轉錄文字
適用情境
適合需要助理以真實硬體輸入操作 Windows 桌面的情境,例如驅動瀏覽器或應用程式介面,或把口述內容輸入目前取得焦點的視窗。只有已擁有相容 uMouse 硬體時才值得安裝。
執行需求
僅支援 Windows x64,需要相容的 uMouse 硬體與韌體(一般 USB 或藍牙滑鼠不可用)。須另行安裝 Node.js 22 x64;發行版 ZIP 或 MCPB 套件需解壓縮或匯入,用戶端設定指向解壓縮資料夾。語音聽寫需設定語音供應者,MCPB 套件預設關閉或使用本機 windows-speech。
安裝前請注意
伺服器會控制真實滑鼠與鍵盤,助理操作會影響目前取得焦點的視窗,應確認可見結果而非只憑傳輸成功。舊版 ZIP 附帶試用 ASR 憑證,正式環境應更換;ASR 憑證來自本機設定檔或 UMSDK_ASR_API_KEY、UMSDK_ASR_API_SECRET 等環境變數。雲端語音供應者會把音訊傳送到外部,本機供應者可避免。MIT 授權僅涵蓋伺服器程式碼,不含原生 SDK 二進位檔。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 uMouse MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

uMouse MCP — Hardware Mouse Control for AI Agents

English | 简体中文

[release] [MCP Registry] [code license] [platform] [ASR]

Give AI agents a real hardware mouse. uMouse MCP is a Model Context Protocol (MCP) server for USB HID mouse control and voice dictation on Windows. Mouse movement, clicks, scrolling and dragging use a compatible uMouse device; voice input supports pluggable speech recognition providers.

Requires compatible uMouse hardware and firmware, Windows x64, and a separately installed Node.js runtime (use Node.js 22 x64). An ordinary USB mouse is not sufficient. The MIT license covers the server code; native SDK binaries have separate terms. See License.

Download · Quick start · Reference demos · Documentation · Compatibility & FAQ · Get hardware / support · uMouse SDK

Download

PackageDownloadRequirements
MCPB · Windows x64 · v0.1.1Download MCPB · Release notes and SHA-256MCPB-compatible client; compatible uMouse hardware; x64 Node.js 22+
Windows x64 · v0.1.0Download ZIP · Release notes and SHA-256Compatible uMouse device and firmware; Node.js installed separately

All releases · Gitee release mirror

MCPB installation: import the .mcpb into a client that supports MCPB Node extensions. Version 0.1.1 wraps the legacy 0.1.0 runtime, includes no cloud credentials, and defaults speech recognition to disabled; windows-speech is the optional local provider. Data defaults to ~/.umouse-mcp-mcpb. See the bilingual MCPB guide. Published in the official MCP Registry as io.github.SonicloudTech/mouse-mcp; metadata in server.json, publication and validation.

The ZIP includes production Node dependencies, native SDK DLLs, the voice preview UI and VC runtime libraries. No npm install or compilation is required to use the release; Node.js itself is not bundled.

Release and source are different installation paths: the v0.1.0 installer registers the legacy stdio entry, mcp/dist/index.js. The shared-v2 tools, native host and acceptance lab described below belong to the source implementation. This ZIP is not a complete shared-v2 bundle: it does not contain that native host or the acceptance lab. Use the installed server's tool list and the README shipped inside the ZIP for release-specific behavior.

Quick start

The following steps use the original ZIP. For MCPB, use the import instructions above, then perform the status/device checks in step 5.

  1. Install Node.js 22 x64 and confirm node --version works. Connect a compatible uMouse USB receiver/device and power on the mouse. For a device or firmware compatibility check, see Hardware & support.
  2. Download the ZIP above and extract it. Open the umouse-mcp-os-win-x64 folder; keep it in a permanent location because client configuration points to this folder.
  3. Double-click install-agents.cmd to register ZCode at user scope, or run one command for your chosen client from the extracted folder:
ClientPowerShell command
ZCodenode mcp/scripts/install-agents.mjs zcode
Claude Desktopnode mcp/scripts/install-agents.mjs claude
Cursornode mcp/scripts/install-agents.mjs cursor

The installer adds or updates the umouse entry in the selected client's configuration. It also copies the bundled trial ASR configuration into the local data directory if no configuration already exists. Replace trial credentials with your own for production use.

  1. Open a new ZCode session, fully quit and reopen Claude Desktop, or reload the Cursor window, as appropriate.
  2. Ask your agent to call umouse_status, umouse_get_capabilities, and umouse_list_devices. Check SDK health, the device list, and the reported capabilities. A returned sdkVersion only confirms SDK access; it does not prove that hardware control works. Confirm the visible result of any requested mouse action before relying on it.

For a client that accepts the mcpServers JSON format, add this entry manually, replacing the path with your extracted folder. Other clients may require a different configuration format.

json
{  "mcpServers": {    "umouse": {      "command": "node",      "args": ["C:\\path\\to\\umouse-mcp-os-win-x64\\mcp\\dist\\index.js"]    }  }}

Manual configuration does not run the installer's ASR setup. Configure a speech provider separately if you need voice dictation; see Voice dictation.

For source development, npm ci, npm run build, and npm test install dependencies, build TypeScript, and run the default tests. They do not produce a complete shared-v2 native bundle. A complete public shared-v2 packaging workflow is not yet provided. The shared-v2 development and maintenance notes (Chinese) and native host build notes (Chinese) are references for that separate development path.

Reference demos

The mouse lab recording demonstrates the shared-v2 source implementation, not the legacy ZIP installation.

Hardware mouse driving a real browser lab page (gold arrow = system cursor overlaid on the recording) — counters, wheel and hit feedback all come from real browser events:

[uMouse hardware mouse demo]

Voice typing: speak, and it lands in any window

Hold the device voice key, speak, release — the recognized text is typed into whatever window currently has focus. Both clips recorded live at 1080p:

Agent client (terminal) — spoken command typed in and executed:

mcp/acceptance/demo/voice-typing-agent.mp4

Open / download video

WeChat — spoken message typed into the input box and sent:

mcp/acceptance/demo/voice-typing-wechat.mp4

Open / download video

Shared-v2 capabilities (source implementation)

Model → MCP host → shared daemon (:47192) → C++ native host → USB HID 0xF0/0xF1 → uMouse device → Windows input pipeline

  • Hardware actions: umouse_mouse_action — move / click / scroll / drag in desktop physical-pixel coordinates, multi-monitor with negative coords, optional precision: standard | high.
  • Task exclusivity: umouse_control begin → actions → end; only one task drives the mouse and keyboard at a time; dead connections are cleaned up automatically.
  • Read-only sensors: umouse_input_status — cursor position, live key state, foreground window identity; read-only, never intercepts.
  • Voice dictation: mic capture → VAD segmentation → pluggable ASR provider → preview / final transcript; an independent lane that never preempts mouse control (see below).
  • Shared daemon: one instance per machine (port 47192), shared across ZCode / Codex / Claude hosts, reclaimed when idle.

Voice dictation: pluggable ASR providers

ASR here is not a black box tied to one vendor — it is a tiny interface contract: implement begin / writePcm / finishInput / cancel and emit preview / segmentFinal / warning / terminal (exactly once), and you have a valid provider. Swapping recognition services means swapping one factory function; mcp/src/sinicloud-asr.ts is a complete reference implementation.

Provider (UMSDK_ASR_PROVIDER)Notes
sinicloud (default for the legacy ZIP/source on Windows)Sonicloud open-platform streaming ASR: pure TypeScript, no DLL dependency; streams 16k/16bit/mono PCM, interim previews, low-balance warnings without dropping the stream
windows-speechBuilt-in Windows recognizer; offline, audio never leaves the machine
whisper-cppSelf-hosted whisper-cli + ggml model (paths configurable), offline CPU transcription
httpCustom transcription endpoint: multipart WAV in, {"text"} out
disabledDictation off; a missing provider degrades gracefully to asr_unavailable

Credentials travel only through configuration and are hot-read per session — swap keys without a restart: by default a JSON file at <data-dir>/sinicloud_asr.json (appId / apiKey / apiSecret / userId / lanid / streamUrl / tokenUrl); environment variables UMSDK_ASR_APP_ID / UMSDK_ASR_API_KEY / UMSDK_ASR_API_SECRET / … override the file. Never hardcoded, never printed, never logged, never committed. The legacy v0.1.0 ZIP ships a trial credential for the open platform; replace it with your own key for production use. The v0.1.1 MCPB contains no cloud credentials and accepts only disabled (default) or windows-speech. See mcp/SHARED-V2.md for the full source provider matrix.

Shared-v2 adaptive positioning

Windows pointer ballistics ("Enhance pointer precision") make the protocol-dots → pixels gain vary with amplitude. umouse-mcp ships an 11-step ballistic gain curve: read-only seeded from local pointer settings on first use of a device, learned online frame-by-frame within [0.125, 10], decaying back to the seed after 60 s idle — no tuning when you change machines or devices; a stale seed costs 1–2 extra frames. Design and measurements: mcp/sdk-host/POSITIONING.md.

Metricstandardhigh
Stop toleranceresidual ≤ 4 pxresidual ≤ 1 px
Measured (reference rig)median 356 ms / 2 framesmax 1 px, mean 0.67 px
Failure modeidentical; high at worst degrades to ≤ 4 px best-effort, residuals reported as-is

Shared-v2 reference acceptance

After preparing a complete shared-v2 build, follow the acceptance setup guide. The lab is in this repository, not the v0.1.0 ZIP.

32 cases verify effects in closed loop on a real browser page: left / right / middle click counts, double-click interval, wheel scrollTop, drag linearity, 1 px bullseye hits.

powershell
cd mcp/acceptance$env:UMCFG = "C:\path\to\client.json"$env:UMBUNDLE = "C:\path\to\shared-v2-bundle"node run-matrix.mjs# Writes acceptance-report.json; the documented reference run passed 32/32 cases.

Shared-v2 security and verification

  • Locked screen / UAC / secure desktop: key actions are rejected with button_feedback_input_desktop_unavailable — that is a safety property, not a bug.
  • effectConfirmed is always false: transport success ≠ application effect; the acceptance lab's page evidence is the ground truth.
  • ASR credentials enter only via local config file and environment variables — never committed, printed or logged; recover requires a human carrying --hardware-reset-confirmed.

Hardware mouse MCP: frequently asked questions

Can I use an ordinary USB or Bluetooth mouse?

No. uMouse MCP needs compatible uMouse hardware and firmware that implement its hardware-control protocol. A normal mouse, a software-only cursor controller, or the SDK version string alone does not establish compatibility. Confirm the device and firmware through hardware support before choosing a package.

Which package should I use with an MCP client?

Use the v0.1.1 MCPB with a client that supports MCPB Node extensions, or the v0.1.0 ZIP and manual configuration for a stdio MCP client. Both require Windows x64, Node.js 22 x64, and compatible hardware. MCPB 0.1.1 packages the legacy 0.1.0 runtime; neither release includes the shared-v2 native host or acceptance lab. Check the installed server's tool list before using source-only examples.

Does this MCP server support macOS or Linux?

The published MCP packages target Windows x64. The separate uMouse SDK has its own platform packages for application integration; those packages do not provide macOS or Linux support for this MCP server.

Can voice dictation work without a cloud ASR service?

The MCPB package defaults to dictation disabled and optionally uses the local windows-speech provider. Other providers, including whisper-cpp, belong to the source provider configuration; they are not all available in MCPB. Local providers need their own runtime, language or model setup. Mouse control does not require enabling a cloud speech provider.

How do I verify that the hardware action actually worked?

Start with umouse_status, umouse_get_capabilities, and umouse_list_devices. Then request an action in a test window and check the cursor and the application's visible response. SDK access and a successful transport receipt are separate from application effects. For a complete shared-v2 source build, use the hardware acceptance lab.

Should I integrate mouse-mcp or mouse-sdk?

Choose this repository to expose hardware mouse actions and voice input to an AI agent through MCP. Choose mouse-sdk to receive device events and audio in your own C/C++, C#, Python, or Electron application. Keep each project's hardware, package, and licensing requirements separate.

Documentation

DocContents
mcp/SHARED-V2.mdShared-v2 install, upgrade, maintenance and recovery
mcp/acceptance/MOUSE-CAPABILITY-TESTS.mdThe 32-case catalog (copy-paste MCP calls and pass criteria)
mcp/sdk-host/POSITIONING.mdBallistic positioning: history, algorithm, cross-device matrix
mcp/README.mdFull MCP tool reference (Chinese)

Hardware & support

Need a compatible device, evaluation unit or firmware check? Contact [email protected] with your target platform, device model, firmware version and intended use case.

Maintained by SonicloudTech (Anhui SoniCloud Intelligent Technology Co., Ltd.) — AI input hardware and the speech open platform.

  • Website: https://sinicloud.com/
  • Speech open platform: https://open.sinicloud.com/ — powers the default ASR provider; sign up for a trial quota
  • Business & technical contact: [email protected] — OEM / distribution / custom firmware / co-development; include the target platform, expected volume, device model, firmware version and intended use case
[SoniCloud contact QR code]

Related project: uMouse SDK

Integrating smart-mouse hardware into your own application? uMouse SDK provides a C ABI for USB HID/BLE device connections, key events and audio. Start with the English SDK README, integration guide, or SDK downloads. The SDK has its own platform and licensing matrix; those platform options do not extend this MCP server beyond Windows x64. Use the native SDK DLLs bundled with each MCP release rather than substituting a standalone SDK package.

Roadmap

  • Cross-machine adaptive gain curves (v0.4)
  • Pluggable ASR providers: sinicloud streaming, fully configurable credentials
  • Firmware-executed 1–2 count micro-correction frames
  • Wheel ACK and scroll-amount closed loop
  • Absolute positioning mode

License

The MCP server code is released under the MIT license. The native SDK ships as closed-source DLLs with a public header (include/umouse_sdk.h).

來源:README.md,提交 279feeb

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

1
  1. v0.1.1最新Oct 23, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分