Harness Integrations

July 8, 2026 ยท View on GitHub

Cloudwright ships an MCP server (cloudwright mcp), a CLI, and a GitHub Action. Most AI coding harnesses in 2026 are MCP clients, so one server reaches almost all of them, but each harness wants the server entry in a different file, under a different JSON (or TOML) key, and each has its own convention for the plain-text rules file that steers agent behavior. This page is the per-harness wiring reference. Run cloudwright integrate --list for the same table from the terminal, and cloudwright integrate --harness <name> for the exact snippet plus --write to drop it straight into the right file.

Related: MCP Reference | CLI Reference | GitHub Action | README


How the MCP server launches

There is no separate console script for the MCP server. Every harness below launches it the same way: command cloudwright, args ["mcp"] (the server defaults to stdio transport; pass ["mcp", "--transport", "stdio"] if a harness wants that spelled out explicitly). The differences between harnesses are entirely in where that command/args pair goes and what key it sits under.


Harness table

HarnessMCP client?Config file and keyRules fileHow to wire
Claude CodeYes.mcp.json (project) or ~/.claude.json (user), key mcpServersCLAUDE.md (does not read AGENTS.md)cloudwright integrate --harness claude-code --write
CursorYes.cursor/mcp.json (project) or ~/.cursor/mcp.json, key mcpServersAGENTS.md (native) plus .cursor/rules/*.mdccloudwright integrate --harness cursor --write
ClineYescline_mcp_settings.json under the VS Code extension's global storage, key mcpServers.clinerules (AGENTS.md support is global-only and contested)cloudwright integrate --harness cline --write --output <path>
WindsurfYes~/.codeium/windsurf/mcp_config.json, key mcpServers.windsurfrules (also reads AGENTS.md)cloudwright integrate --harness windsurf --write
GitHub CopilotYes.vscode/mcp.json, key servers (not mcpServers), entries need "type": "stdio".github/copilot-instructions.md plus native AGENTS.mdcloudwright integrate --harness copilot --write
ZedYes.zed/settings.json (project) or ~/.config/zed/settings.json, key context_servers.rules (falls back to AGENTS.md)cloudwright integrate --harness zed --write
OpenAI Codex CLIYes~/.codex/config.toml, TOML table [mcp_servers.cloudwright]AGENTS.md (canonical origin of the convention)cloudwright integrate --harness codex --write
JetBrains JunieYes.junie/mcp/mcp.json, key mcpServersAGENTS.md (primary), .junie/guidelines.md (legacy fallback)cloudwright integrate --harness junie --write
KiroYes.kiro/settings/mcp.json (project) or ~/.kiro/settings/mcp.json, key mcpServers.kiro/steering/*.md (own convention); list AGENTS.md toocloudwright integrate --harness kiro --write
AntigravityYes~/.gemini/config/mcp_config.json, key mcpServersAGENTS.md; confirm whether GEMINI.md still appliescloudwright integrate --harness antigravity --write
AiderNon/aAGENTS.mdSee "Not an MCP client" below

Not an MCP client: Aider

Aider has no shipped MCP integration. Use the CLI pipe path instead: from an Aider session, run

/run cloudwright design "<description>" --json

and parse the structured output directly. cloudwright integrate --harness aider prints this guidance along with the rules-file note (Aider reads AGENTS.md natively, same as most of the harnesses above). Unofficial third-party MCP bridges for Aider exist (mcpm-aider, aider-mcp-server) but are not something cloudwright depends on for a supported path.


Discontinued or superseded (not generated by integrate)

cloudwright integrate does not generate configs for these; asking for one by name returns a message pointing at the live successor instead.

  • Roo Code was sunset in April 2026 and its repo was archived in May 2026. No successor is tracked here.
  • Continue.dev was acquired by Cursor in June 2026; its repo is now read-only. Wire Cursor instead.
  • Amazon Q Developer is being sunset by AWS in favor of Kiro, which carries over MCP support. Use cloudwright integrate --harness kiro.
  • Google Gemini CLI stopped serving individual/free-tier users in June 2026 in favor of Antigravity. Use cloudwright integrate --harness antigravity.

The rules-file block

cloudwright integrate --rules emits a short, harness-agnostic block that tells an agent to gate infrastructure work through cloudwright:

## Cloudwright gate

Before proposing, generating, or applying cloud infrastructure or Terraform, Pulumi, or
CloudFormation changes, run cloudwright first:

- `cloudwright design "<description>" --json` for a typed architecture spec
- `cloudwright review <spec.yaml>` for an offline architecture critique (no LLM, free)
- `cloudwright cost <spec.yaml>` for a per-component cost estimate
- `cloudwright compliance <spec.yaml> --frameworks <hipaa,soc2,...>` for control-mapped findings

Treat any high or critical review or compliance finding as a blocker. Fix it before writing
Terraform, Pulumi, or CloudFormation.

Use --agent-file to pick which file it targets:

--agent-file valueFileWhy it exists as a separate target
agents (default)AGENTS.mdRead natively by Cursor, Windsurf, Copilot, Codex, Junie, Aider, and Kiro; Zed falls back to it
claudeCLAUDE.mdClaude Code does not read AGENTS.md at all, so it needs its own copy
geminiGEMINI.mdGemini CLI's default context file; AGENTS.md is not read unless manually reconfigured

--write appends the block to the target file (creating it if missing) behind an HTML comment marker so a second run does not duplicate it; pass --force to replace an already-installed block in place.


Quick start

# See every supported harness and what it needs
cloudwright integrate --list

# Wire Claude Code and Cursor in one repo
cloudwright integrate --harness claude-code --write
cloudwright integrate --harness cursor --write

# Add the gate instructions everywhere AGENTS.md is read, plus a CLAUDE.md copy for Claude Code
cloudwright integrate --rules --write
cloudwright integrate --rules --agent-file claude --write

# Machine-readable output for scripting
cloudwright --json integrate --harness codex