~/docs/features/mcp
╭─ § 03.01 ─╮

AI Tools (MCP)

└───────────╯

Corral speaks the Model Context Protocol (MCP) — the open standard AI coding tools use to talk to outside systems. Point your AI assistant at Corral’s MCP server and it sees what Corral sees: which projects are registered, what’s running and on which URL, the connection string for every local service, recent logs, and more — over a typed protocol the agent already knows how to call, instead of shelling out to the CLI and parsing text.

One server reaches every client. An agent working in a Corral-managed project can answer “what’s my dev URL?”, “is Postgres up and what’s its connection string?”, or “why did the build fail?” without leaving its tools — and it can start, stop, or restart things after a change instead of asking you to.

Supported AI clients

Corral knows how to configure seven clients today. Installing writes one corral entry into each client’s native MCP config — nothing else in the file is touched.

ClientUser-scope configProject-scope config
Claude Code~/.claude.json.mcp.json
Cursor~/.cursor/mcp.json.cursor/mcp.json
VS Code~/Library/Application Support/Code/User/mcp.json.vscode/mcp.json
Codex CLI~/.codex/config.toml.codex/config.toml
Continue.dev~/.continue/config.yaml.continue/config.yaml
Zed~/.config/zed/settings.json(none)
Windsurf~/.codeium/windsurf/mcp_config.json(none)

Setup

Via the macOS app

First-run setup includes a Configure AI clients step that detects your installed AI tools and offers a checkbox to wire each one up.

Anytime after, open Settings → AI Tools. Each detected client shows its status — configured, not configured, mismatched, or unparseable — with add and remove buttons, plus a test-connection action.

Via the CLI

corral mcp install                  # configure every detected AI client (user scope)
corral mcp install --client cursor  # configure just one client
corral mcp install --project        # write project-scoped config in the current directory
corral mcp status                   # show each client's configuration status
corral mcp uninstall                # remove Corral's entry from every detected client
corral mcp uninstall --client zed   # remove from just one client

With no --client, install and uninstall act only on the clients actually detected on your machine. Pass --client <name> to force a specific one — claude-code, cursor, vscode, codex, continue, zed, or windsurf — even if it isn’t installed yet.

--project writes config scoped to the current directory instead of your user-global config — handy for committing .cursor/mcp.json or .mcp.json into a repo. Zed and Windsurf have no project scope. Both commands exit non-zero if any client couldn’t be configured, so they’re safe to chain in scripts.

You never run the bare corral mcp (server mode) yourself — your AI client spawns it. See the CLI reference for the full command surface.

What an agent can do

Corral exposes its capability surface as MCP tools, grouped by domain. Tools that wrap Pro features are marked PRO.

Projects

ToolWhat it does
project_listList every registered project with status
project_infoFull detail for one project: dev URL, port, framework, attached services, settings
project_for_pathMap a working directory to its registered project — the foundation other project tools chain off
project_scanDiscover JS/TS projects under a directory
project_add · project_removeRegister or unregister a project
project_settings_updateChange per-project settings

Lifecycle

ToolWhat it does
start_project · stop_project · restart_projectControl a single dev server
up · downBring the whole environment (DNS + reverse proxy + auto-start projects) up or down
infra_statusDNS, reverse proxy, and daemon health

Services PRO

ToolWhat it does
service_catalogList installable services
services_listInstalled services with status, version, ports, connection string
service_infoDetail for one service
service_install · service_uninstallInstall or remove by name or name@version
service_start · service_stop · service_restartService lifecycle
service_config_updateUpdate ports, env, or version pinning

Stacks

ToolWhat it does
stack_listEvery stack with aggregate status, origin (manual / cloudflare), and member count
stack_infoOne stack’s members, wiring, and status
stack_start · stack_stop PROBring a whole stack — its projects and services — up or down

Sharing

ToolWhat it does
share_startStart a Cloudflare tunnel that exposes a project to the internet
share_stop · share_statusStop or query a tunnel

Logs

ToolWhat it does
logsQuery log snapshots — across all units or one project, with a search term and limit

Node.js

ToolWhat it does
node_list · node_installList or install Node.js versions

Frameworks & git

ToolWhat it does
frameworks_listSupported frameworks and their detection rules
effective_dev_commandThe exact command Corral will run for a project
git_branchCurrent branch for a project

Read-only

ToolWhat it does
license_infoTier, entitlements, expiry
settings_showApp-wide settings

Diagnostics

ToolWhat it does
report_problemFile a bug report with the maintainers. Consent-first — diagnostics are opt-in (off by default), and the agent must show you the message and bundle contents first. See Reporting Problems

How it works

The installer adds a single entry — keyed corral — to each client’s MCP config:

{
  "corral": {
    "command": "/usr/local/bin/corral",
    "args": ["mcp"]
  }
}

The absolute path is deliberate: GUI-launched editors don’t inherit your shell PATH, so a bare corral wouldn’t resolve. When the client starts, it runs corral mcp, which speaks JSON-RPC over stdio.

The MCP server is stateless. It holds no state of its own and forwards every tool call to Corral’s background daemon — the same daemon the CLI and macOS app use. So an agent always sees the same running state you do, multiple AI clients can connect at once, and the server simply exits when the client closes. All the real logic lives in the daemon; MCP is just a third way in.

Free vs Pro tools

MCP is a delivery channel, not a paywall. The server is free, and most tools work on every tier — projects, lifecycle, logs, Node.js, git, frameworks, read-only introspection, and reporting problems.

The tools that wrap Pro features inherit the daemon’s Pro gate: the nine service tools (the service_* family plus services_list), plus the two stack lifecycle tools (stack_start / stack_stop — reads like stack_list / stack_info stay free). Called on the free tier, they return a clean “activate Corral Pro” message that points at how to upgrade — so the agent can tell you exactly what’s needed instead of failing cryptically. Activate a license from the Subscription room or with corral license activate.

Troubleshooting

SymptomWhat to do
The agent doesn’t see Corral’s toolsRun corral mcp status and confirm the client reads configured. Restart the AI client after installing — most read their MCP config only at startup.
Status shows mismatchedThe client’s corral entry points somewhere else (often a stale path from an older install). Re-run corral mcp install --client <name> to update it.
Status shows errorCorral couldn’t read that config file (e.g. a permissions problem) — the path and reason are printed so you can fix it. This is surfaced rather than hidden as “not configured.”
A tool returns an activation messageThat tool wraps a Pro feature; activate a license.
// Last updated 2026-07-11