Getting started
This takes about ten minutes, and most of it is waiting for downloads. If the words “MCP server” are new to you, here is all you need to know: Claude on its own can only talk. An MCP server is a small program that lets it look at things and do things — in this case a plugin inside Indigo that answers Claude’s questions about your house and carries out its requests.
What you need
- Indigo 2023.2 or later on your Mac. I develop and test it on Indigo 2025.2.
- Claude Code, Anthropic’s app for working with Claude on a Mac, installed on the Mac that runs Indigo and used from the same Mac user account that Indigo runs under.
- A paid Claude account. Claude Code needs one, and a Claude Pro or Max subscription from claude.ai is the usual choice. That monthly plan pays for your conversations. If you already have one, there is nothing more to pay. An Anthropic API account, which you pay for as you use it, works instead.
- An Indigo access key. This is the key Indigo’s web server asks for before it answers anything. Most people already have one — see step 3 below.
The plugin itself needs no API key and no extra Python packages. It runs on what Indigo already has, so it downloads nothing when you install it.
1. Install the plugin
- Go to the Releases page and download
Claude.Bridge.indigoPlugin.zip - Unzip the downloaded file — you will get
Claude Bridge.indigoPlugin - Double-click
Claude Bridge.indigoPlugin— Indigo will install it automatically
Indigo asks whether to enable the plugin. Say yes. If you missed that, use Plugins → Manage Plugins and enable Claude Bridge there.
2. What the plugin does by itself
There is nothing to fill in. Every time it starts, the plugin:
- creates a device called Claude Bridge, if you do not already have one, which shows whether the plugin is running (see The device and the trigger)
- copies a small go-between program,
indigo_mcp_proxy.py, into Indigo’sScriptsfolder, and writes your Indigo access key and the web server’s address into it - adds an entry called indigo-mcp to the two files Claude Code reads its settings from,
.mcp.jsonand.claude/settings.jsonin your home folder, and leaves everything else in them alone
The Indigo Event Log then says Claude Code integration configured, followed by Restart Claude Code to activate the indigo-mcp tools, or, on later starts, Claude Code integration already up to date.
If you would rather look after those files yourself, untick Auto-configure Claude Code in the plugin’s settings and follow Setting Claude Code up by hand below.
3. Make sure Indigo has an access key
The plugin takes the access key from Indigo’s own list of local secrets — a file called secrets.json in the Preferences folder inside your Indigo folder. It uses the first key in that list.
If the Event Log shows an error starting No bearer token available to patch into the MCP proxy, you do not have one yet. Do either of these:
- Make a local secret. Create a plain text file called
secrets.jsonin/Library/Application Support/Perceptive Automation/Indigo <your version>/Preferences/holding a list with one made-up key in it, such as["a-long-random-phrase-of-your-own"]. Restart the Indigo Server so its web server reads the file. The plugin picks the key up as it starts again. Indigo’s own guide to local secrets is on the Indigo web server page. - Use an API key from your Indigo account. Make one in the Authorizations section of your Indigo account, put it in the shared credentials file as
CLAUDEBRIDGE_BEARER_TOKEN, and reload the plugin. The Settings page explains that file.
The key in secrets.json wins if both are there.
4. Check it works
Quit Claude Code and start it again — it reads its list of tools only when it starts. Then type /mcp in Claude Code. indigo-mcp should be listed as connected, and you should see 71 tools when you select it.
Now ask it things you already know the answer to, so you learn what it can see:
- “Which lights are on?”
- “What is the temperature in the hall, and when did it last change?”
- “List every device that has not reported in a day.”
- “Turn the landing light on for ten minutes.” — then watch it go off by itself.
- “What happened in the event log in the last hour?”
Then ask for something you have been putting off — a script, a report, or why a trigger did not fire. Working with Claude has worked examples.
If indigo-mcp is missing or will not connect, the When something goes wrong page goes through the usual causes.
Using the Claude desktop app instead
The go-between program works with any Claude app that can run a local MCP server, including the chat side of the Claude desktop app. Give the desktop app’s MCP server settings (the file claude_desktop_config.json) the same entry the plugin writes for Claude Code:
{
"mcpServers": {
"indigo-mcp": {
"command": "python3",
"args": ["/Library/Application Support/Perceptive Automation/Scripts/indigo_mcp_proxy.py"]
}
}
}
I develop and test with Claude Code. The desktop app should work the same way, but it has not had the same testing here, so please open an issue if it does not.
Chat can answer questions about the house and control devices, but it cannot act on the Mac itself, so it will not write a script to disk or check its own work the way Claude Code does. The comparison is on the Dashboards site’s beginner’s page.
Plugins → Claude Bridge → Print MCP Client Connection Information writes three more ready-made desktop-app settings to the Event Log — one through your Indigo Reflector for use away from home, and two for your home network. Those use a helper called mcp-remote, which needs Node.js installed on the Mac, and they take the access key in the settings themselves.
Setting Claude Code up by hand
You only need this if you unticked Auto-configure Claude Code, or you run Claude Code on another Mac or as another Mac user.
- Copy
indigo_mcp_proxy.pyout of the plugin (right-clickClaude Bridge.indigoPlugin, choose Show Package Contents, and openContents/Server Plugin) into/Library/Application Support/Perceptive Automation/Scripts/— on another Mac, any folder will do, as long as you use that path in step 3. - Open the copy in a text editor and put your access key between the quotes on the line that starts
BEARER_TOKEN. On another Mac, also changeINDIGO_HOSTfromlocalhostto the Indigo Mac’s network address — the four numbers such as192.168.1.20— and changeINDIGO_SCHEMEandINDIGO_PORTif your web server does not use plainhttpon port 8176. -
Tell Claude Code about it. This command, typed in Terminal, makes it available in every folder you start Claude Code from:
claude mcp add --scope user indigo-mcp -- python3 "/Library/Application Support/Perceptive Automation/Scripts/indigo_mcp_proxy.py" - Start Claude Code again and check with
/mcp, as in step 4 above.
Connecting over HTTP instead
Claude Code can also reach the plugin straight through Indigo’s web server, without the go-between script carrying each request. It then uses the newest version of the protocol. The script is still needed, for one small job: Claude Code runs it with --headers to fetch your access key, so the key never has to go into Claude Code’s settings. On the Indigo Mac, after step 2 above:
claude mcp remove --scope user indigo-mcp
claude mcp add-json --scope user indigo-mcp '{"type": "http", "url": "http://localhost:8176/message/com.clives.indigoplugin.claudebridge/mcp/", "headersHelper": "python3 '"'"'/Library/Application Support/Perceptive Automation/Scripts/indigo_mcp_proxy.py'"'"' --headers"}'
Plugins → Claude Bridge → Print MCP Client Connection Information prints these two lines for your own setup, so you can copy them rather than type them. Choose Straight to Indigo over HTTP under Connect Claude Code in the plugin’s settings as well, so the plugin keeps .mcp.json the same way. One thing to know: after the Mac restarts, Claude Code may start before Indigo’s web server and show indigo-mcp as failed. Type /mcp and reconnect it.