list-domains
Discover available macOS domains to view and modify system preferences and application settings using the defaults system.
Instructions
List all available macOS domains, same as defaults domains
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The `list_domains` function implements the core logic of the 'list-domains' tool. It executes the `defaults domains` subprocess command, parses the comma-separated output into a list of stripped domain names, and returns it formatted as TextContent.def list_domains() -> list[types.TextContent]: # get array of domains: # run command `defaults domains` result = subprocess.run(["defaults", "domains"], capture_output=True) domains = result.stdout.decode("utf-8").split(",") domains = [domain.strip() for domain in domains] return [types.TextContent(type="text", text=f"Domains: {domains}")]
- src/mcp_server_macos_defaults/server.py:104-111 (registration)The 'list-domains' tool is registered within the `handle_list_tools` function, specifying its name, description, and input schema.types.Tool( name="list-domains", description="List all available macOS domains, same as `defaults domains`", inputSchema= { "type": "object", "properties": {}, }, # TODO filter domains? ),
- Input schema for the 'list-domains' tool, defining an empty object with no properties since the tool requires no arguments.inputSchema= { "type": "object", "properties": {}, }, # TODO filter domains?
- Dispatch logic in the `handle_call_tool` function that routes calls to 'list-domains' to the `list_domains` implementation.if name == "list-domains": return list_domains()