Most macOS preference tweaking is a hunt for the right domain and key followed by a command you paste. Listing the domains and reading them back makes that a conversation, and the write goes through the same mechanism the blog posts tell you to run.
A thin MCP wrapper around the macOS defaults command. list-domains is defaults domains; defaults-read is defaults read <domain> <key>, returning the whole domain when no key is given; defaults-write is defaults write <domain> <key> <value>.
- Every preference domain on the machine listed
- A domain read by key, or the entire domain at once
- A preference written by domain, key and value
macOS, plus uv or uvx to run the package. It executes the system defaults command as the user who launched it, so writes change real settings — point it at a test domain first if you want to see the shape of a write before making one.
One command — uvx mcp-server-macos-defaults
