Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Unofficial MCP server for WLED LED controllers; not affiliated with the WLED project
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.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"wled": {
"command": "uvx",
"args": [
"wled-mcp",
"--transport",
"stdio",
"--config",
"{config_path}",
"--data-dir",
"{data_dir}"
]
}
}
}Run this in your terminal
claude mcp add wled -- uvx wled-mcp --transport stdio --config '{config_path}' --data-dir '{data_dir}'Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"wled": {
"command": "uvx",
"args": [
"wled-mcp",
"--transport",
"stdio",
"--config",
"{config_path}",
"--data-dir",
"{data_dir}"
]
}
}
}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.
Paste into .vscode/mcp.json in your project
{
"servers": {
"wled": {
"type": "stdio",
"command": "uvx",
"args": [
"wled-mcp",
"--transport",
"stdio",
"--config",
"{config_path}",
"--data-dir",
"{data_dir}"
]
}
}
}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 10, 2026
The registry name was verified with the GitHub account descipar, 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.2.0) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Aleksei Shipulin — CV, projects and writing
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ 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.
Read-only CV, project stories and blog of Aleksei Shipulin, product researcher. EN and RU.
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.
An unofficial MCP server that lets an AI agent read and control WLED LED controllers by name: power, brightness, segments, effects, palettes, presets, groups, scenes and zones. It talks to each controller's JSON API on your network, validates every change before sending it and reads it back afterwards. It runs as a subprocess of your MCP host (stdio) or as a separate HTTP service. It is not affiliated with, endorsed by or supported by the WLED project or MCPHub.
Status: early software with 0.x versions that may break between releases (CHANGELOG.md). Releases are distributed on PyPI as wled-mcp (the first two releases are Git tags only); a release that is not listed there installs from its Git tag instead. The server is listed in the official MCP Registry as io.github.descipar/wled-mcp (unofficial, not affiliated with the WLED project); whether a particular MCP host or hub shows that entry was not checked. The container image is not published to GHCR. Hardware acceptance is partial: one controller on WLED 16.0.1. No support is promised (Support).
wled-mcp discover is an opt-in command.effect_name, palette_name) in place of IDs; a name is resolved against that device's catalog before any write and an ambiguous or unknown name is refused with candidates (contract).wled_get_effects parses the firmware's effect metadata and filters by name, 2D and audio reactivity (contract). wled_search_effects finds a device's effects by curated properties such as motion, flashing, colour slots and palette use; the catalog is small and an effect it does not list is not searchable (contract).wled_plan_zone previews the exact segments without a write and wled_apply_zone changes segment fields only inside the zone, otherwise it refuses before any write (contract).change_lighting_safely and precise field descriptions, identically over stdio and HTTP. A client has to pass them on to its agent; forwarding by MCPHub was not observed (contract).read-only, control, full) and, for the HTTP service, a bearer credential with Host and Origin allowlists.All 31 tools, each with its read-only, write or destructive hint, are listed in the tool contract.
WLED feature coverage: 59 % of the planned scope, 47 % of WLED overall (method and list).
You need uv, an MCP host that can start a stdio server and a WLED controller reachable over HTTP; the optional HTTP service also needs Docker with Docker Compose. Replace with the version of the latest release (its tag is v ). The commands install that release from PyPI. If the version is not listed there yet, use the Git route instead: replace wled-mcp== with git+https://github.com/descipar/wled-mcp@v , which builds the package from the tag on your machine; without a tag, uvx takes the current main, which can change at any time. The commands are for a POSIX shell; Windows is experimental (docs/DEVELOPMENT.md).
uvx --isolated --python 3.13 --from wled-mcp==<version> wled-mcp --version
mkdir -p "$HOME/wled-mcp"
uvx --isolated --python 3.13 --from wled-mcp== wled-mcp config init --config "$HOME/wled-mcp/devices.toml" --device-id desk --device-name "Desk strip" --base-url http://
uvx and these arguments, each one separate, using absolute paths: --isolated --python 3.13 --from wled-mcp==<version> wled-mcp --transport stdio --config <absolute path>/wled-mcp/devices.toml --data-dir <absolute path>/wled-mcp
Ask the agent to list your WLED devices (wled_list_devices). Every write tool accepts dry_run=true to preview a change without touching the lights.
Both routes need network access (the Git route to GitHub as well as PyPI). The dependencies are resolved within the ranges the package declares when uvx first creates the tool environment, so they can be newer than the set the release was tested with; for that tested set add the release constraints (dependency policy). For a checksum-verified wheel, more devices, the inventory format and the HTTP service, follow the quickstarts; updates, rollback and removal are in docs/DEPLOYMENT.md.
wled_patch_segments changes only the named segments; only wled_replace_layout removes segments that are not listed.dry_run=true returns the plan without writing. Writes are read back; a write that timed out is reported as possibly applied and is never retried blindly.wled_store_preset) and playlist saves change the live output before they store, and the previous lighting is not restored.overwrite=true is required).What the checks cover; the evidence for each row and the firmware tiers are in docs/contract/compatibility.md. This is not a support commitment (see Support).
| Area | Status |
|---|---|
| Python 3.13 | supported |
| Linux amd64 | supported |
| Linux arm64 | supported |
| HTTP container image, amd64 and arm64 | supported |
| stdio via uvx on Linux | supported |
| Windows | experimental |
| macOS | experimental |
| WLED 16.0.1 | tested |
| WLED 16.x other than 16.0.1 | unknown |
| WLED below 16.0.0, including 0.15.x | unsupported |
Unsupported or unrecognized firmware is served with a warning and never refused; wled_get_state reports the tier in diagnostics.firmware_support.
Automated tests use mocks and synthetic loopback devices. Hardware acceptance covers the first feature set on one RGB controller, and a live check with an offline controller is still pending. A short live check of release 0.1.1 over HTTP and stdio covered state reads, power, brightness and effect changes on that controller (record). A later run on the same controller exercised a one-device group and scene, preset store, export, import and restore, and a playlist, with the controller restored afterwards (record). Multi-device scenes, profiles, discover, restore onto an occupied slot, playlist import, restoring a playlist preset and CCT, RGBW and 2D controllers have no hardware run. Of the newest features, only a read-only run covered the effect metadata and one effect search; zones, name resolution in segment writes and the served guidance have mocked or local-client tests only. Other limits:
wled-mcp config validate and a restart.The complete list and the evidence are in docs/VALIDATION.md.
| Document | Contents |
|---|---|
| Quickstarts | Release directory, stdio and HTTP setup, inventory format |
| Deployment | Both transports in detail: staging, verification, update, rollback, removal |
| Tool contract | Tools, parameters, results, errors and mutation semantics |
| WLED feature coverage | WLED features with support status, owning issue or decision, and coverage figures |
| [Inventory and cl
Only the beginning is shown; read the rest in the repo