Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
USB HID mouse control and voice dictation for Windows x64. Requires compatible uMouse hardware.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Download the maker’s .mcpb file
The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.
Run this in your terminal
Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account SonicloudTech, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.1) reached the registry 15 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need MCPB on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, FlyDocs
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Spec-driven development workflow: your agent works issues, sessions and the status lifecycle.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
English | 简体中文
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
| Package | Download | Requirements |
|---|---|---|
| MCPB · Windows x64 · v0.1.1 | Download MCPB · Release notes and SHA-256 | MCPB-compatible client; compatible uMouse hardware; x64 Node.js 22+ |
| Windows x64 · v0.1.0 | Download ZIP · Release notes and SHA-256 | Compatible 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.
The following steps use the original ZIP. For MCPB, use the import instructions above, then perform the status/device checks in step 5.
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.umouse-mcp-os-win-x64 folder; keep it in a permanent location because client configuration points to this folder.install-agents.cmd to register ZCode at user scope, or run one command for your chosen client from the extracted folder:| Client | PowerShell command |
|---|---|
| ZCode | node mcp/scripts/install-agents.mjs zcode |
| Claude Desktop | node mcp/scripts/install-agents.mjs claude |
| Cursor | node 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.
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.
{
"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.
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:
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
Model → MCP host → shared daemon (
:47192) → C++ native host → USB HID0xF0/0xF1→ uMouse device → Windows input pipeline
umouse_mouse_action — move / click / scroll / drag in desktop physical-pixel coordinates, multi-monitor with negative coords, optional precision: standard | high.umouse_control begin → actions → end; only one task drives the mouse and keyboard at a time; dead connections are cleaned up automatically.umouse_input_status — cursor position, live key state, foreground window identity; read-only, never intercepts.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-speech | Built-in Windows recognizer; offline, audio never leaves the machine |
whisper-cpp | Self-hosted whisper-cli + ggml model (paths configurable), offline CPU transcription |
http | Custom transcription endpoint: multipart WAV in, {"text"} out |
disabled | Dictation 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 /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.
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.
| Metric | standard | high |
|---|---|---|
| Stop tolerance | residual ≤ 4 px | residual ≤ 1 px |
| Measured (reference rig) | median 356 ms / 2 frames | max 1 px, mean 0.67 px |
| Failure mode | identical; high at worst degrades to ≤ 4 px best-effort, residuals reported as-is |
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.
cd mcp/acceptance
$env:UMCFG = "C:\path\to\client.json" $env:UMBUNDLE = "C:\path\to\shared-v2-bundle" node run-matrix.mjs
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.Only the beginning is shown; read the rest in the repo