Reference

Platforms#

PlatformId is a closed union with one adapter registry entry per platform — the internal full registry currently has 42 hosts, grouped by hook paradigm (the deepest cross-platform divergence). Public coverage pages intentionally hide open-source hosts below the star threshold.

Prefer a visual, filterable view? See the full interactive coverage matrix on the dedicated coverage page →

Host, client, harness#

Three words circulate for the things this page lists, and they are not synonyms. agent-connector writes configuration into an app that owns a writable config file, so the word that fits is host — or client, which is what the specs themselves say.

TermWho uses itWhat it names
hostthis referencethe app with a config file we can write — the thing an adapter targets
clientthe MCP, Agent Plugins 1.0.0 and Agent Skills specsthe same thing. Agent Plugins defines it as “a tool that discovers, installs, loads, and executes plugin components”, and uses the word throughout — “harness” appears nowhere in any of the three specs
harnessAnthropic, OpenAI, Google, Microsoft, AWS, Vercel, Cloudflarea different layer — the engine that runs the session loop behind the front end

“Agent harness” is now real product vocabulary rather than blog jargon, so it is worth being precise about. VS Code carries both words in the same documentation set: it supports “multiple agent harnesses: Local, GitHub Copilot, Anthropic Claude, OpenAI Codex, and Cloud”, where “an agent harness coordinates an agent session, including tool calls, context, and code changes” — while its separate Agent Host is the local process that owns that session. Kiro says the same structurally: its IDE, CLI, Web and Mobile apps are “different ways to talk to the same unified agent harness”.

The harness is the engine; the host is the surface in front of it that holds the config. One harness can sit behind several hosts, which is exactly why this list enumerates hosts — swapping the harness behind Copilot does not change where its MCP servers, hooks and skills are written. This reference therefore keeps host for the config-owning app, and reserves harness for the engine sense we already use it in elsewhere.

Generated capability snapshot#

The support counts below are generated from the adapter registry before the site builds. They describe what agent-connector wires today; the host-native gap/provenance notes stay separate on the coverage matrix.

SurfaceAdapters wired
MCP41 / 42
Hooks32 / 42
Commands19 / 42
Skills36 / 42
Subagents16 / 42
Memory41 / 42
Statusline4 / 42
Actions9 / 42

json-stdio
24
#

Full hook dispatch. One universal hook entrypoint binary handles all of them.

PlatformidMCP native target
Claude Codeclaude-code~/.claude.json / .mcp.json → mcpServers (hooks in settings.json)
CodeBuddycodebuddy~/.codebuddy.json / .mcp.json → mcpServers (Claude Code fork; hooks in .codebuddy/settings.json)
Codex CLIcodex~/.codex/config.toml → [mcp_servers.*] (hooks in hooks.json)
Cursorcursor.cursor/mcp.json → mcpServers (hooks in hooks.json)
VS Code Copilotvscode-copilot.vscode/mcp.json → servers
JetBrains Copilotjetbrains-copilotshares the GitHub Copilot .github/ files
GitHub Copilot CLIcopilot-climcp.json → mcpServers
Gemini CLIgemini-cli.gemini/ → mcpServers (opt-in host-native AfterModel usage)
Qwen CLIqwen-code.qwen/ → mcpServers
KirokiromcpServers
Kimi CLIkimimcpServers
Crushcrushcrush.json → mcp (root key, not mcpServers)
Goosegoosehost config
Hermeshermeshost config
Droid (Factory)droid~/.factory/mcp.json → mcpServers (hooks in ~/.factory/hooks.json)
OpenHandsopenhands~/.openhands/mcp.json → mcpServers (hooks in a separate .openhands/hooks.json)
Antigravity (IDE)antigravity~/.gemini/antigravity/mcp_config.json → mcpServers (hooks.json)
Antigravity CLI (agy)antigravity-clishares ~/.gemini/antigravity/
Continuecontinue~/.continue/config.yaml → mcpServers (YAML ARRAY; hooks in separate settings.json, honors CONTINUE_GLOBAL_DIR)
Amazon Q Developer CLIamazon-q~/.aws/amazonq/mcp.json (user) / .amazonq/mcp.json (project) → mcpServers (hooks in cli-agents/q_cli_default.json; subagents as cli-agents/<name>.json)
Grok Buildgrok-build$GROK_HOME/config.toml (default ~/.grok) → [mcp_servers.<id>] TOML; hooks in $GROK_HOME/hooks/*.json (Claude-compatible JSON)
Grok CLIgrok-cli~/.grok/user-settings.json → mcp.servers (JSON ARRAY, keyed by id; hooks in the SAME file under top-level hooks, user-scope only)
Devin CLI (Cognition)devin~/.config/devin/config.json (user) / .devin/config.json (project) → mcpServers (hooks under the same file's "hooks" key, Claude-compatible)
Open Interpreteropen-interpreter~/.openinterpreter/config.toml ($INTERPRETER_HOME) → [mcp_servers.<id>] TOML table; hooks in ~/.openinterpreter/hooks.json (a Codex fork)

mcp-only
10
#

MCP registration only, no hook layer. Detection surfaces “hooks unavailable here.”

PlatformidMCP native target
Warpwarp~/.warp/.mcp.json → mcpServers (cwd keyed as working_directory)
ClineclineglobalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json → mcpServers (the parent kilo forked)
Traetraemcp config
Zedzedhost config
Codebuffcodebuffmcp.json → mcpServers
Muxmuxmcp config
Pipitelemetry/skills surface; no writable MCP hook config
Windsurfwindsurf~/.codeium/windsurf/mcp_config.json (user/global ONLY) → mcpServers (object map; remote keyed by serverUrl)
Juniejunie~/.junie/mcp/mcp.json (user) / .junie/mcp/mcp.json (project) → mcpServers (JetBrains' own agent; object map; remote keyed by url)
Mistral Vibemistral-vibe.vibe/config.toml (project) / ~/.vibe/config.toml (user) → [[mcp_servers]] (TOML ARRAY-OF-TABLES, keyed by name)

ts-plugin
8
#

Framework-generated bridge module exporting lifecycle functions that import your handler.

PlatformidMCP native target
OpenCodeopencodegenerated exported plugin module importing your handler
MiMoCodemimo-codeOpenCode fork (Xiaomi @mimo-ai/cli); generated plugin module in ~/.config/mimocode/plugin/ (MCP root key mcp)
Kilo CLIkilo-cligenerated @kilocode/plugin module registered in kilo.jsonc's plugin array
Kilo Codekilogenerated plugin module in .kilo/plugin/ (7.x shares the Kilo CLI backend)
OMPompgenerated plugin module
NVIDIA NemoClawnemoclawOpenClaw wrapper/fork; generated plugin module in the wrapped ~/.openclaw/openclaw.json (detected via ~/.nemoclaw/)
OpenClawopenclawgenerated plugin module
Ampampgenerated plugin module in .amp/plugins/<id>.ts (project scope; MCP in settings.json → "amp.mcpServers")
PlatformId also includes synthetic and unknown sentinels used internally.