Skip to content
Tech News
← Back to articles

Show HN: SharkClean MCP

read original more articles
Why This Matters

The SharkClean MCP server enables users and developers to control SharkNinja robot vacuums through plain language commands directly via the cloud, bypassing traditional app limitations. This innovation enhances automation, especially for newer robot models that are incompatible with legacy cloud services, fostering greater flexibility and integration in smart home ecosystems.

Key Takeaways

An MCP server for SharkClean / SharkNinja robot vacuums. Lets any MCP client (Claude Code, Claude Desktop, etc.) start cleanings, clean specific rooms, send the robot home, and check status — agentically, in plain language.

Unofficial — not affiliated with or endorsed by SharkNinja.

All commands go through SharkNinja's current cloud ("skegox") — the same backend the SharkClean app uses — so the robot behaves exactly as if driven from the app, with no hardware modification.

Why not the Ayla cloud? The widely-used sharkiq SDK (and the Home Assistant Shark IQ integration built on it) talk to SharkNinja's legacy Ayla IoT cloud. Newer robots (Matrix, AI Ultra, Mach 2, the RV2500+ generation) have been migrated off Ayla onto the skegox backend. On Ayla those robots show up permanently "Offline" with a frozen, stale room map, even though the app controls them fine. This server talks to skegox directly, which is why it works with the newer robots that sharkiq can't reach. The reverse engineering of the skegox API is owed to the shark2mqtt project.

Tools

Tool What it does list_robots List robots on the account (name, device id) get_status Live state: cleaning/paused/docked, battery %, charging, power mode, online, errors start_cleaning Whole-home clean, optional power mode ( eco / normal / max ) list_rooms Rooms the robot knows from its current map (with floor id + last-updated) clean_rooms Clean only specific rooms (validated against the live map) pause_cleaning / resume_cleaning / stop_cleaning Run control return_to_dock Send the robot home to recharge / self-empty set_power_mode Suction: eco , normal , max locate_robot Make the robot beep

start_cleaning and clean_rooms first check the robot is online and refuse if it isn't, so commands don't silently vanish. Multi-robot accounts are supported — every tool takes an optional robot argument (name or device id). With one robot, omit it.

Setup

Requires uv and Python ≥ 3.10.

git clone https://github.com/a-funk/sharkclean-mcp cd sharkclean-mcp uv sync cp .env.example .env # add your SharkClean app email + password uv run shark-mcp-auth # one-time browser login (see below) uv run shark-mcp-doctor # confirm: prints your robot + current room map

... continue reading