Loading…
MCP server for controlling HomeMatic smart home devices via the CCU JSON-RPC API
io.github.claymore666/ccu-mcp is an MCP server entry in ChatHome Skills, sourced from Official MCP Registry and scored 78/100. As a Model Context Protocol server, it exposes tools that MCP-compatible LLM clients such as Claude, Cursor, and Copilot can call directly, extending an agent's reach beyond its built-in capabilities. ChatHome Skills discovered this entry through its daily ingest of official registries and GitHub discovery queries, and re-verifies repository facts, freshness signals, and install metadata on every run. The quality score weighs official-registry presence, a working install command, license clarity, GitHub star trajectory, and repository freshness — the full formula is on the Sources page. The install command above is ready to copy. Review the last-pushed date and repository status before adding io.github.claymore666/ccu-mcp to a production agent workflow; the snapshot facts below are point-in-time values from the most recent ingest.
npx -y ccu-mcp@1.11.7Review the upstream source before running this command.
{
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"isLatest": true,
"updatedAt": "2026-10-25T17:03:29.755312Z",
"publishedAt": "2026-10-25T17:03:29.755312Z",
"statusChangedAt": "2026-10-25T17:03:29.755312Z"
}
},
"server": {
"name": "io.github.claymore666/ccu-mcp",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "1.11.7",
"packages": [
{
"version": "1.11.7",
"transport": {
"type": "stdio"
},
"identifier": "ccu-mcp",
"runtimeHint": "npx",
"registryType": "npm",
"packageArguments": [
{
"type": "positional",
"value": "--stdio"
}
],
"environmentVariables": [
{
"name": "CCU_HOST",
"format": "string",
"isRequired": true,
"description": "Hostname or IP of your HomeMatic CCU (debmatic, CCU3, or OpenCCU/RaspberryMatic)"
},
{
"name": "CCU_PASSWORD",
"format": "string",
"isSecret": true,
"isRequired": true,
"description": "CCU admin password (same as the WebUI login). Must be set; the value may be empty for a CCU with no password"
},
{
"name": "CCU_USER",
"format": "string",
"default": "Admin",
"description": "CCU username"
},
{
"name": "CCU_HTTPS",
"format": "boolean",
"default": "false",
"description": "Connect to the CCU via HTTPS (self-signed certificates supported)"
},
{
"name": "CCU_PORT",
"format": "number",
"default": "80",
"description": "CCU API port (80 for HTTP, 443 for HTTPS)"
},
{
"name": "CACHE_DIR",
"format": "string",
"default": "/data",
"description": "Directory for the device type cache and session persistence"
},
{
"name": "MCP_ALLOWED_ORIGINS",
"format": "string",
"description": "Comma-separated allowlist of browser origins. Unset = no cross-origin browser access (default-deny). An allowlisted origin is reflected exactly in Access-Control-Allow-Origin (never '*'); the list also drives DNS-rebinding origin checks"
},
{
"name": "MCP_ALLOWED_HOSTS",
"format": "string",
"description": "Extra Host header values accepted by DNS-rebinding protection (comma-separated host:port); add your hostname when behind a proxy or container DNS name"
},
{
"name": "CCU_PROFILES",
"format": "string",
"description": "Comma-separated names of multiple CCU targets (e.g. 'prod,dev'). Each profile takes the flat CCU_* settings prefixed CCU_<NAME>_ (CCU_PROD_HOST, ...), plus policy flags CCU_<NAME>_PROTECTED (writes need confirm:true) and CCU_<NAME>_READONLY. Unset = single default profile from the flat CCU_* vars"
},
{
"name": "CCU_DEFAULT_PROFILE",
"format": "string",
"description": "Which profile from CCU_PROFILES is active at startup (default: the first listed)"
},
{
"name": "CCU_TLS_VERIFY",
"format": "boolean",
"default": "false",
"description": "Verify the CCU's TLS certificate against the system trust store. Only meaningful with CCU_HTTPS=true. Default false, because a CCU ships a self-signed certificate — prefer CCU_TLS_FINGERPRINT or CCU_CA_CERT to verify one of those"
},
{
"name": "CCU_TLS_FINGERPRINT",
"format": "string",
"description": "Pin the CCU's self-signed leaf certificate by its SHA-256 fingerprint (hex, colons optional). The strongest option for an appliance: the connection is rejected unless the presented certificate matches. Takes precedence over CCU_CA_CERT"
},
{
"name": "CCU_CA_CERT",
"format": "string",
"description": "Path to a PEM file holding the CCU's CA or self-signed certificate. The connection is then validated against it with standard chain verification"
},
{
"name": "CCU_TIMEOUT",
"format": "number",
"default": "10000",
"description": "Timeout for a CCU JSON-RPC call, in MILLISECONDS"
},
{
"name": "CCU_SCRIPT_TIMEOUT",
"format": "number",
"default": "30000",
"description": "Timeout for HomeMatic Script execution (ReGa), in MILLISECONDS — scripts are slower than plain API calls"
},
{
"name": "CACHE_TTL",
"format": "number",
"default": "86400",
"description": "Lifetime of the on-disk device-type schema cache, in SECONDS"
},
{
"name": "CCU_RATE_LIMIT_BURST",
"format": "number",
"default": "20",
"description": "Token-bucket burst size for CCU requests — how many may be issued back to back"
},
{
"name": "CCU_RATE_LIMIT_RATE",
"format": "number",
"default": "10",
"description": "Sustained CCU request rate, in requests per second"
},
{
"name": "RESOURCE_POLL_INTERVAL",
"format": "number",
"default": "60",
"description": "How often MCP resources are polled for change notifications, in SECONDS"
},
{
"name": "LOG_LEVEL",
"format": "string",
"default": "info",
"description": "error | warn | info | debug. Logs are structured JSON on stderr"
}
]
}
],
"repository": {
"url": "https://github.com/claymore666/ccu-mcp",
"source": "github"
},
"description": "MCP server for controlling HomeMatic smart home devices via the CCU JSON-RPC API"
}
}