Skip to main content
Glama

KOVA MCP

Talk to your myGEKKO in your words. An open-source MCP server that connects Claude (and any other MCP client) to myGEKKO building controllers — via the official myGEKKO Query API. Talk to your myGEKKO building controller from Claude — English quickstart below.

„Wie warm ist es im Wohnzimmer?" · „Welche Lichter sind noch an?" · „Mach die Rollläden im Süden runter." — in your own words, straight to your house.

KOVA MCP is the tool for tinkerers and power users. If you want it daily, on your phone, and for the whole family — without a terminal: that is what the KOVA App is for (kova.casa).


Try it in 2 minutes — without your own controller

The public myGEKKO demo controller (“Mustermann”) is there for exactly this kind of test:

claude mcp add mygekko \
  --env GEKKO_USERNAME=mustermann@my-gekko.com \
  --env GEKKO_KEY=HjR9j4BrruA8wZiBeiWXnD \
  --env GEKKO_GEKKOID=K999-7UOZ-8ZYZ-6TH3 \
  -- uvx --from git+https://github.com/joeexafionbot-dev/kova-mcp mygekko-mcp

Then in Claude Code: “What systems does my building have? Show me the lights in the living room.”

Related MCP server: myUplink MCP Server

With your own myGEKKO

Prerequisite: controller registered on my-gekko.com and the Plus service “myGEKKO Query API” activated (included in the Home Bundle; generate a key under Settings → Globe → Plus Advanced → Plus Query API → Administration → Generate new).

claude mcp add mygekko \
  --env GEKKO_USERNAME=deine@mail.de \
  --env GEKKO_KEY=DEIN-QUERY-API-KEY \
  --env GEKKO_GEKKOID=XXXX-XXXX-XXXX-XXXX \
  -- uvx --from git+https://github.com/joeexafionbot-dev/kova-mcp mygekko-mcp

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "mygekko": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/joeexafionbot-dev/kova-mcp", "mygekko-mcp"],
      "env": {
        "GEKKO_USERNAME": "deine@mail.de",
        "GEKKO_KEY": "DEIN-QUERY-API-KEY",
        "GEKKO_GEKKOID": "XXXX-XXXX-XXXX-XXXX"
      }
    }
  }
}

Also possible locally (LAN instead of cloud): GEKKO_MODE=local + GEKKO_LOCAL_HOST — all variables in .env.example.

What the server supports capabilities

Resources

gekko://inventory (all systems/devices, data-driven discovery), gekko://system/{system}, gekko://item/..., gekko://capabilities

Read tools

list_devices, get_state, describe_capabilities

Control tools

control_device, control_light, … — off by default

Transports

stdio (Claude Code/Desktop) and streamable-http (hosted, token-protected)

Security (deliberately conservative)

  • Read-only by default. Control requires explicit GEKKO_ALLOW_WRITE=true.

  • Deny-list always remains enforced: alarm system, doors/access, and cameras are blocked even with write access enabled; critical actions require a second confirmation.

  • Credentials only via environment variables, never in files/logs (the key is redacted in logs).

  • Controller-friendly: rate limits and backoff on 429/470 — otherwise faulty requests would fall into the controller's alarm log.

Details: SECURITY.md.

English quickstart

MCP server for myGEKKO building controllers (official Query API, cloud or LAN). Read-only by default; writes are opt-in (“off”) and policy-gated (alarm/access/camera are always denied). Try it instantly with the public demo controller using the credentials above, or set GEKKO_USERNAME / GEKKO_KEY / GEKKO_GEKKOID in your own controller. Run via uvx --from git+https://github.com/joeexafionbot-dev/kova-mcp mygekko-mcp.

Development

GXP4

The repository is the release mirror of the KOVA monorepo (where CI runs); issues and PRs are still welcome and will be forwarded back.

License & trademarks

MIT. myGEKKO is a trademark of myGEKKO | Ekon GmbH — KOVA MCP is an independent community project and is not released by myGEKKO. The demo credentials above belong to the public myGEKKO demo controller.

Available Tools

3 tools
describe_capabilitiesA

Discover what this specific controller exposes and how to control it.

Because every installation is configured differently, call this to learn which systems exist, which are controllable, and the exact command grammar of each writable device. Systems with a 'typed_tool' are best driven by that tool (e.g. control_light); the rest are driven by 'control_device' using an advertised command token or label.

Args: system: optional system key to describe just one (e.g. 'lights').

Inputs: system.

get_stateA

Read the current state of a device by its path (e.g. 'lights/item0').

Inputs: path (required).

list_devicesA

List available myGEKKO devices, optionally filtered to one system.

Args: system: optional system key (e.g. 'lights', 'blinds', 'roomtemps').

Inputs: system.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 3 tools

    Disambiguation4/5

    The three tools have clearly distinct responsibilities: listing devices, reading state, and describing controller capabilities. However, the describe_capabilities description references 'control_light' and 'control_device' tools that are not present in the set, which could confuse an agent about which tool to use for control operations.

    Naming Consistency5/5

    All tool names consistently follow the verb_noun snake_case pattern: list_devices, get_state, describe_capabilities. The naming is perfectly uniform and predictable, with no mixed conventions or unexplained abbreviations.

    Tool Count3/5

    Three tools is at the low end of what would be appropriate for a smart home server, but since the tools reference dynamic, configuration-driven capabilities, the count is borderline acceptable for a discovery/query-focused surface. However, the absence of any control tools (referenced but not included) makes the surface feel thin for what appears to be a home automation domain.

    Completeness2/5

    The surface covers discovery and reading well but is significantly incomplete for control tasks. An agent can list devices, read state, and learn how to control systems, but then hits a dead end because control_light and control_device do not actually exist as tools. The capability descriptions promise actions the server cannot perform, creating a clear gap.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Connects MCP clients (e.g., Claude) to your NIBE myUplink heat-pump account for reading sensors and controlling settings via OAuth2 authentication.
      2
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Provides Claude and any MCP client with live access to property management data, enabling operations on properties, units, leases, tenants, work orders, vendors, accounting, and file attachments through natural language.
      25
      MIT