Clients
Where Iris is verified to run, and where it is claimed to.
Iris runs inside an MCP client. This is the list of the clients it names, one row each, with what was actually checked: 2 verified by a test on every CI run, 8 claimed from the client's own documentation. Any other MCP client works the same way the claimed rows do — the configuration is one block — and gets a row here when someone checks it.
- verified means
- A test in the repository drives that client's real integration surface — the hook scripts, the manifest, a real ingest read back from the store — on every CI run. The evidence column links the test.
- claimed means
- The installer writes the configuration shape the client's own documentation describes, and that writer is tested on the shape. Nobody on the Iris side has watched that client connect. The source column is the page the shape was read from, with the date.
| Client | What the installer writes | What was checked, and the evidence | Source |
|---|---|---|---|
Claude Code verified | ~/.claude.json (user scope, $CLAUDE_CONFIG_DIR when set), an mcpServers block beside Claude Code's own settings; the capture plugin installs from the repository's plugin marketplace | On every CI run, on Linux, macOS and Windows, the installer from this commit's packed tarball writes the entry and the real claude CLI starts Iris from it: claude mcp list reports it Connected and claude mcp get shows it at user scope; uninstall takes it out again. The capture plugin's three hooks (UserPromptSubmit, PostToolUse, Stop) are driven through the real hook scripts with the payload shapes Claude Code documents, ending in a real ingest read back from the store. What is not verified by a test: a model session calling the tools. | the client's MCP documentation read 2026-09-25 |
Gemini CLI verified | ~/.gemini/settings.json, an mcpServers block | On every CI run, on Linux, macOS and Windows, the installer from this commit's packed tarball writes the entry and the real gemini CLI starts Iris from it: gemini mcp list reports it Connected in a trusted folder; uninstall takes it out again. No model call is made. What is not verified by a test: a model session calling the tools. | the client's MCP documentation read 2026-09-25 |
Claude Desktop claimed | claude_desktop_config.json in the Claude application-data directory, an mcpServers block | The installer writes the mcpServers entry into a dedicated JSON file at the path Claude Desktop documents, keeping existing servers; the writer is tested on that shape. No test launches Claude Desktop. | the client's MCP documentation read 2026-09-25 |
Cursor claimed | ~/.cursor/mcp.json (or a workspace .cursor/mcp.json), an mcpServers block with "type": "stdio", which Cursor's field table marks required; a one-click install link on the site | The installer writes the mcpServers entry, type included, into mcp.json as Cursor's documentation describes; the writer is tested on that shape. No test launches Cursor: its connection could not be driven headlessly here, so it stays claimed. | the client's MCP documentation read 2026-09-25 |
Devin Desktop (Windsurf) claimed | mcp_config.json in ~/.config/devin/ (%APPDATA%\devin\ on Windows), an mcpServers block — Windsurf became Devin Desktop, and its documentation now names this file | The installer writes the mcpServers entry into mcp_config.json at the path Devin Desktop's documentation (formerly Windsurf's) names; the writer is tested on that shape. No test launches Devin Desktop. | the client's MCP documentation read 2026-09-25 |
Continue claimed | ~/.continue/mcpServers/iris-eval.json, a file of its own in Continue's MCP folder, an mcpServers block | The installer writes its own iris-eval.json into Continue's global mcpServers folder, which Continue's documentation says accepts the Claude Desktop JSON format; the writer is tested on that shape. No test launches Continue. | the client's MCP documentation read 2026-09-25 |
VS Code claimed | mcp.json in the VS Code user directory (or .vscode/mcp.json in a workspace), a servers block — VS Code's own key, not mcpServers | The installer writes under servers, the key VS Code's native MCP support documents, and uninstalls only its own entry; the writer is tested on that shape. No test launches VS Code. | the client's MCP documentation read 2026-09-25 |
Cline claimed | ~/.cline/data/settings/cline_mcp_settings.json, shared by Cline in VS Code, JetBrains and the CLI, an mcpServers block | The installer writes the mcpServers entry into cline_mcp_settings.json where Cline's configuration documentation puts it; the writer is tested on that shape. No test launches Cline. | the client's MCP documentation read 2026-09-25 |
Zed claimed | Zed's settings.json, a context_servers entry with command, args and env | The installer writes the context_servers entry in the shape Zed's documentation shows, into the settings file with its comments kept; the writer is tested on that shape, including the comment header Zed writes. No test launches Zed. | the client's MCP documentation read 2026-09-25 |
OpenAI Codex CLI claimed | ~/.codex/config.toml ($CODEX_HOME when set), an [mcp_servers.iris-eval] table | The installer writes an [mcp_servers.iris-eval] TOML table as the Codex MCP documentation describes; the writer is tested on that shape. No test launches Codex. | the client's MCP documentation read 2026-09-25 |
How a row moves
A claimed row becomes verified when a test in the repository drives that client's real integration surface on every CI run, or when a session in that client is reported with the client's version and the tool list it showed. A row that stops being true is changed, not removed: the rows are locked to the installer's client profiles, so no client is called supported without one. Report a row or read the file itself: clients.json. The install itself is on the home page.