C4 MCP Server

Control4 MCP server (Python) - npm wrapper for easy setup/run

Local serverstdioPython

What is the C4 MCP Server?

Control4 MCP server (Python) - npm wrapper for easy setup/run

What it actually does

Turn your Control4 system into a Model Context Protocol (MCP) toolset, so any MCP-capable client (Claude Desktop, custom agents, scripts) can query rooms/devices and safely run automations.

  • Works with real MCP clients — HTTP transport for dev/scripts + STDIO JSON-RPC for clients like Claude Desktop
  • One integration point for many clients — use the same toolset from Claude Desktop, scripts, or your own agents without rewriting Control4 logic
  • Structured tool schemas = fewer mistakes — explicit inputs/outputs (room/device IDs, levels, setpoints, etc.) reduce ambiguity vs. prompt-only automations
  • Safe-by-default controls — optional write guardrails, read-only mode, and allow/deny lists for state-changing tools
  • Session memory for follow-ups — enables natural multi-step flows like “turn on the basement lights… now dim those lights”
  • Smarter “lights” semantics — room-based lighting ops avoid accidentally targeting fans/heaters/outlets

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
python3m venv .venv
c4_list_roomsc4_find_rooms / c4_resolve_room (search by name)
c4_shade_listc4_shade_get_state (returns position 0-100 when available)

How to install the C4 MCP Server

{
	"mcpServers": {
		"c4-mcp": {
			"command": "C:\\Users\\YOUR_USER\\c4-mcp\\.venv\\Scripts\\python.exe",
			"args": ["-u", "C:\\Users\\YOUR_USER\\c4-mcp\\claude_stdio_server.py"],
			"cwd": "C:\\Users\\YOUR_USER\\c4-mcp",
			"env": {
				"PYTHONUTF8": "1",
				"PYTHONIOENCODING": "utf-8",
				"C4_STDIO_TOOL_MODE": "compact",
				"C4_CONFIG_PATH": "C:\\Users\\YOUR_USER\\c4-mcp\\config.json",
				"C4_WRITE_GUARDRAILS": "true",
				"C4_WRITES_ENABLED": "false",
				"C4_DIRECTOR_TIMEOUT_S": "30",
				"C4_GET_ALL_ITEMS_TIMEOUT_S": "75"
			}
		}
	}
}

Configuration as documented by the project. Restart the client after saving.

Configuration

VariableDescriptionRequired
PYTHONUTF8Configuration value read at startup.Optional
PYTHONIOENCODINGConfiguration value read at startup.Optional
C4_STDIO_TOOL_MODEConfiguration value read at startup.Optional
C4_CONFIG_PATHFilesystem location the server is allowed to use.Optional
C4_WRITE_GUARDRAILSConfiguration value read at startup.Optional
C4_WRITES_ENABLEDConfiguration value read at startup.Optional
C4_DIRECTOR_TIMEOUT_SFilesystem location the server is allowed to use.Optional
C4_GET_ALL_ITEMS_TIMEOUT_SConfiguration value read at startup.Optional

Example prompts to try

  • “Use C4 MCP to Safe-by.”
  • “Use C4 MCP to One.”
  • “Use C4 MCP to Example.”

Frequently asked questions

Control4 MCP server (Python) - npm wrapper for easy setup/run Confirm the tools offered by your installed version in the connected client. Tool availability and permissions depend on the server and account configuration.