Skip to content

MCP Control

In this guide

New in 2026.1 The Indigo Web Server includes an MCP server, which lets an AI assistant control your home in plain language. You can ask it what's on, turn things on and off, run your action groups, and read or set variables. It is called MCP Control because running your system and changing your system are deliberately separate, and this is the one that runs it.

MCP, the Model Context Protocol, is an open standard for letting an AI assistant call tools on an external system. Indigo publishes a set of home-automation tools — list the devices, turn one on, run an action group, read a variable — and any MCP client that can send an Indigo API key can connect to them. That includes chat applications such as Claude Desktop, and coding agents such as Claude Code, Cursor and Visual Studio Code. ChatGPT can't connect yet, because it requires OAuth; see Connecting a Chat Client.

What it can do

Two quite different jobs, both of them "run the system that already exists".

Controlling your home. Ask in plain language and the assistant works out which device you meant and what to do with it: dim a light, set a thermostat, lock a door, run an action group, read or set a variable, check what's on. This is the everyday use, and it's what Using Indigo from a Chat Client covers. How well it understands indirect phrasing, like "I'm too warm", depends on your Mac: it takes Apple Intelligence, whose requirements are listed with the matching engine, and the macOS 27 model is noticeably better at it than the macOS 26 one. Without it, Indigo matches on the words in your object names.

Developing plugins. A coding agent that can restart a plugin can run the whole edit cycle without you switching windows: change the code, reload the plugin, read the event log to see what happened, check a device's state to confirm it worked. restart_plugin exists for exactly this. See Setting Up a Development Environment, which covers the other ways to reload a plugin during development.

What it deliberately cannot do

MCP Control cannot change your configuration. It cannot create or delete devices, triggers, schedules, action groups or control pages, and it cannot edit the ones you have. It runs what you have already built. The single exception is that it can create a variable.

This is a deliberate boundary rather than an unfinished feature, and it's worth explaining, because "why can't it just do everything?" is a reasonable question.

Why configuration is kept separate

An assistant that can control your home makes recoverable mistakes. If it turns on the wrong light, you turn it off again. If it runs the wrong action group, you run another one. Nothing is lost, and the worst case is an inconvenience you can see and reverse.

An assistant that can change your configuration makes mistakes of a different kind. A deleted trigger is not a light you can switch back. A rewritten schedule, a removed device, an edited control page — these are the result of work you did over months, and an assistant acting on a misunderstood instruction can undo a great deal of it in one step. Worse, you may not notice immediately. A light that is wrongly on is obvious; a trigger that quietly no longer exists is not, until the night it fails to fire.

So the two capabilities are kept apart on purpose. Configuration is a second MCP server, planned for a later release, and separating them means:

  • Connecting a client to control your home does not put your configuration at risk. You don't have to trust an assistant with your database in order to ask it to turn off the kitchen lights.
  • The riskier capability can be adopted deliberately, by people who want it, with its own safeguards, rather than arriving unannounced alongside the safe one.
  • The boundary is enforced by the server, not by the assistant's good behavior. The tools to change your configuration are not published, so no prompt, misunderstanding or jailbreak can reach them. A limit that depends on an AI choosing to respect it is not a limit.

This is not a permanent restriction on Indigo

Configuration through an assistant is planned, as a separate MCP server matching what the Indigo clients can do today. It is being kept separate rather than deferred. When it arrives, you will be able to connect one, the other, or both.

Within control, there are still guardrails

Even the safe half is not unguarded. Locks, garage doors and anything else you flag require an explicit confirmation step before they act, and the assistant only ever sees objects you have marked for remote display. Both are covered in Using Indigo from a Chat Client.

Where it runs

The MCP server is part of the Indigo Web Server, served at /v3/api/mcp, and it uses the same API keys and local secrets as the rest of Indigo's Integration APIs. There is nothing extra to install. If the Indigo Web Server is running and API key authentication is on, the MCP server is already there.