Anyone else running Claude Code with an MCP server?

whoami ™

Pulling my weight
Aug 4, 2019
244
235
South Florida
Posting this in the AI subforum on purpose, since the audience here is more likely to actually have opinions on agent tooling than the general Blue Iris room.

Curious how many folks here are using Claude Code (or any LLM agent) with MCP servers. I've been building one over the last few weeks and it's changing how I troubleshoot BI completely. Wanted to see if there's interest in the project going public, and try to gauge if anyone might want to contribute. The reason I'm asking before pushing it out is that standing up a real OSS project (CI on GitHub Actions, a release pipeline, contributor docs, a test matrix across BI versions, issue triage) is a meaningful chunk of work on top of the code itself. If it's just me using it, none of that overhead is worth doing. If there are a few others who'd actually use it, and ideally a couple who'd contribute, it pays for itself.

What it is

bi-mcp is a stdio MCP server that wraps Blue Iris's HTTP/JSON API, the undocumented camconfig cmd, and a parser for BI's .reg camera exports (for the stuff the API doesn't expose: trigger zone polygons, per-class AI thresholds, alert action chains, ONVIF event handlers, etc.).

Built and tested against BI 5.9.9.71 (x64) on Windows 10. Currently 21 tools, 15 read-only by default, plus 6 mutating tools that only register when an env flag is set. It wraps 18 of the 23 documented JSON cmds. The remaining 5 are either niche or destructive enough that I haven't decided whether to expose them.

What you can do with it

A real session from today: I asked it to "find issues on my install." Over about 15 minutes of back-and-forth, here's what came out of it.

It noticed my PTZ camera had "AI: not responding" warnings in the log, pulled the CPAI-side config, cross-referenced to a fix I'd applied earlier that day, did the UTC to EDT timezone math to confirm the warnings had stopped after the fix, and flagged a verification window to re-check in the morning.

The bigger one was my busiest spotter. Road-facing cam with about 5900 alerts in the queue, and three PTZ-handoff action rows that hadn't fired in two days. It pulled the BI log filtered for "ONVIF Event:" on that camera and showed me the IVS tripwires WERE firing on the camera side, roughly 160 events in 48 hours, but BI wasn't translating any of them into PTZ preset calls. Then it walked the alert lifecycle and found every ONVIF event was landing as a "Retriggered: ONVIF,Motion_A" on top of an in-flight motion alert, never as a fresh trigger. From there it identified the "Run on retrigger: New zones/sources (exclusive)" dropdown as the culprit. The "exclusive" qualifier requires the source set to replace, not add, and since Motion_A stayed present from the original trigger, the rows never re-evaluated. One dropdown change, three months of broken PTZ handoffs explained.

It also surfaced cross-camera action-set inconsistencies via a .reg walker that buckets rows by type, description, and filter shape, then flags fields where one camera diverges from the cohort majority. Two were known intentional and already in its memory of my install. One was a real misconfig.

For mutations (PTZ presets, profile switches, manual record toggles, clip exports, alert memo updates) every write is verified after the fact. Read before, write, read after, report whether the change actually landed. It won't claim success on writes that BI silently dropped.

It's not infallible. Twice in that same session it misread a config field and I had to correct it. But the workflow of "explain what you see, here's what I think, push back if I'm wrong" turns into a real investigative pair-debugging loop, not a black box.

The other nice part is the agent builds up a memory of your install over time by writing markdown files. My camera roster, which spotters call which PTZ presets, which ONVIF source tokens have to be hand-typed because the BI UI leaves them blank, all of it gets remembered between sessions, so it doesn't re-ask the same questions every time.

What's left before I push it to GitHub

A couple of useful JSON cmds I haven't wrapped yet (camset for preset image management and grid layout, and the alert-counter reset path). The parser exception taxonomy could be tighter, so .reg parse failures report distinct error kinds instead of flattening to one. Install docs need to actually exist; the README currently assumes you already know what MCP is. And I haven't picked a publishing pipeline. Right now it's just a local Python package; I haven't decided between PyPI, a tagged GitHub release, or "clone and pip install -e ."

The question

Anyone else here doing this? If so, what are you using and what's working or not working for you? And if there's interest in this one going open source, I'd love contributors. There's plenty of room to wrap more of the API, add tests against a wider range of BI versions, and build out the agent-facing operating manual.
 
Update: I went ahead and pushed it. Repo is at https://github.com/whoamiTM/bi-mcp

Important caveat up front: this is built and tested against Blue Iris 5.9.9.71 only. v6 is out but I'm not planning to update my own install until the end of the year, so I won't be testing against it until then. Some of the tools call undocumented BI endpoints whose response shapes may have changed in 6.x. There's a note in the README saying the same thing. If anyone on v6 wants to try it and report back what works or breaks, that'd be useful, but go in expecting rough edges.

Since the original post, the tool count grew. Currently 23 tools total. 17 read-only by default, plus 6 mutating ones that only register when you set BI_MCP_ALLOW_MUTATIONS=1. That covers nearly all of the documented JSON cmds plus a few that aren't documented (camconfig's set-half, the .reg parser for trigger zones and AI thresholds and alert actions, and a cross-camera audit tool that surfaces action-set outliers between cameras).

The README is now written for someone who's never set up an MCP server before. It walks through prereqs, install, creating a dedicated low-privilege BI user, and getting it registered with Claude Code or Claude Desktop.

On the publishing pipeline question I flagged in the original post: for now it installs straight from the GitHub source via "pipx install git+https://github.com/whoamiTM/bi-mcp". PyPI release is coming next, which will make the install one command without the git+ prefix.

Open to contributors. The wishlist includes wrapping a few more JSON cmds I haven't gotten to yet (camset for preset image management, the alert-counter reset path), tightening the .reg parser exception taxonomy, and broadening the BI version test matrix once I'm on v6 myself. AGENTS.md in the repo is the canonical operating manual for an LLM working through the server. Worth reading even if you're just curious about how the tools fit together.

Issues and PRs welcome.
 
Last edited:
Quick update for anyone watching this thread: bi-mcp 0.2.0 is now on PyPI. You can install it with pipx install bi-mcp (or uv tool install bi-mcp) instead of the git+https://... form from the first post. Same code, same tools, just easier to grab.

Nothing has changed about how it runs or what it can do. The 0.2.0 number is mostly a marker for "this is the first version that exists outside GitHub." If you already installed from the git source you don't need to do anything; the next time you want to update, you can switch over to the PyPI name or keep using pipx install --force git+https://github.com/whoamiTM/bi-mcp, your call.

Project page: https://pypi.org/project/bi-mcp/
Source as before: https://github.com/whoamiTM/bi-mcp