Skip to content
VS Code

ccu mcp for VS Code

io.github.claymore666/ccu-mcp

MCP server for controlling HomeMatic smart home devices via the CCU JSON-RPC API

client:VS Code transport:stdio runtime:npm

Install ccu mcp in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "ccu-host",
      "description": "CCU_HOST",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-password",
      "description": "CCU_PASSWORD",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-user",
      "description": "CCU_USER",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-https",
      "description": "CCU_HTTPS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-port",
      "description": "CCU_PORT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cache-dir",
      "description": "CACHE_DIR",
      "password": true
    },
    {
      "type": "promptString",
      "id": "mcp-allowed-origins",
      "description": "MCP_ALLOWED_ORIGINS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "mcp-allowed-hosts",
      "description": "MCP_ALLOWED_HOSTS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-profiles",
      "description": "CCU_PROFILES",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-default-profile",
      "description": "CCU_DEFAULT_PROFILE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-tls-verify",
      "description": "CCU_TLS_VERIFY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-tls-fingerprint",
      "description": "CCU_TLS_FINGERPRINT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-ca-cert",
      "description": "CCU_CA_CERT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-timeout",
      "description": "CCU_TIMEOUT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-script-timeout",
      "description": "CCU_SCRIPT_TIMEOUT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cache-ttl",
      "description": "CACHE_TTL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-rate-limit-burst",
      "description": "CCU_RATE_LIMIT_BURST",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ccu-rate-limit-rate",
      "description": "CCU_RATE_LIMIT_RATE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "resource-poll-interval",
      "description": "RESOURCE_POLL_INTERVAL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "log-level",
      "description": "LOG_LEVEL",
      "password": true
    }
  ],
  "servers": {
    "ccu-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "ccu-mcp"
      ],
      "env": {
        "CCU_HOST": "${input:ccu-host}",
        "CCU_PASSWORD": "${input:ccu-password}",
        "CCU_USER": "${input:ccu-user}",
        "CCU_HTTPS": "${input:ccu-https}",
        "CCU_PORT": "${input:ccu-port}",
        "CACHE_DIR": "${input:cache-dir}",
        "MCP_ALLOWED_ORIGINS": "${input:mcp-allowed-origins}",
        "MCP_ALLOWED_HOSTS": "${input:mcp-allowed-hosts}",
        "CCU_PROFILES": "${input:ccu-profiles}",
        "CCU_DEFAULT_PROFILE": "${input:ccu-default-profile}",
        "CCU_TLS_VERIFY": "${input:ccu-tls-verify}",
        "CCU_TLS_FINGERPRINT": "${input:ccu-tls-fingerprint}",
        "CCU_CA_CERT": "${input:ccu-ca-cert}",
        "CCU_TIMEOUT": "${input:ccu-timeout}",
        "CCU_SCRIPT_TIMEOUT": "${input:ccu-script-timeout}",
        "CACHE_TTL": "${input:cache-ttl}",
        "CCU_RATE_LIMIT_BURST": "${input:ccu-rate-limit-burst}",
        "CCU_RATE_LIMIT_RATE": "${input:ccu-rate-limit-rate}",
        "RESOURCE_POLL_INTERVAL": "${input:resource-poll-interval}",
        "LOG_LEVEL": "${input:log-level}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

ccu mcp in other clients