# Connect Cady

For the agent: follow this guide in the current conversation. Do not ask the user to paste another setup prompt.

Cady MCP endpoint: `https://app.cadyworks.com/mcp`

Use the endpoint in the user's setup request when it supplies one; otherwise use the endpoint above.

## Steps

1. Check existing connections first and reuse Cady. If configured but disconnected, authenticate or reload it. Do not add a duplicate, install another route, or replace unrelated settings. In Claude Code the cady@cady plugin adds Cady, so do not also run `claude mcp add`; that command is for people without the plugin. Where the app allows it, add Cady yourself with the matching instructions below; otherwise give the user only the matching settings instructions in one short message.

2. The user signs in and approves the intended company and access in the browser. Tell them to return to this conversation. Resume the same request when tools become available and do not ask for another setup prompt. If the app requires a reload or new chat, explain that requirement without claiming automatic resume across it.

3. First read, by intent. For first company setup in Cady, whether the business is a new idea or already operating, call get_cady_context({area:"ops/onboarding"}) once. Do not make a plain context read first. Follow company_setup.setup, or load the method at company_setup.method when its text is absent. Follow any recorded completed-review instruction instead of repeating setup. For reconnection, joining an existing Cady company, or a current task, call get_cady_context({}) and continue that work.

4. Before any writes, confirm that the returned company matches the requested name, domain or legal entity. Ask once if ambiguous. If it is wrong, stop company work and reconnect to the intended company. Claim connection success only after a successful context read, and saved work only after verifying its result.

## Browser apps

Claude web/desktop and ChatGPT web need Cady added through their settings. A prompt cannot install a connection in these apps. Use the matching instructions in the app dropdown or this help section, including OAuth automatic or dynamic registration.

## Skills (optional, once per AI app)

Cady methods are skills in a library the agent loads. Claude Code: run claude plugin marketplace add malcolmai/cady-skills, then claude plugin install cady@cady, then claude plugin install cady-core@cady, and install the group plugins your agents use (cady-company, cady-gtm, cady-finance, cady-product, cady-engineering). Codex: run git clone --depth 1 https://github.com/malcolmai/cady-skills ~/.codex/cady-skills, then mkdir -p ~/.codex/skills/cady && cp -R ~/.codex/cady-skills/plugins/cady/skills/cady/. ~/.codex/cady-skills/library ~/.codex/cady-skills/references ~/.codex/skills/cady/. claude.ai: upload cady.zip from the latest release at github.com/malcolmai/cady-skills/releases/latest as a skill. Other apps: Cady has no verified skill install for them; the onboarding method is served inline in the first read, and later methods are fetched on demand.

## Several companies, one connection

One connection per user covers all your companies. Choose "All my companies" when you sign in, then set the company per project or repo. Company ids are in the Cady app under Settings. A call may also pass orgId.

Claude Code: the cady@cady plugin carries the server and sends the X-Cady-Company header from CADY_COMPANY. Set CADY_COMPANY=<company id> in the project's environment (export it in the shell that starts Claude Code). Unset or empty is safe: Cady ignores the header.

Codex: in [mcp_servers.cady] of ~/.codex/config.toml add env_http_headers = { "X-Cady-Company" = "CADY_COMPANY" } and set CADY_COMPANY in the environment. A static alternative is http_headers = { "X-Cady-Company" = "<company id>" }.

claude.ai and ChatGPT: they send no header. Cady uses the default company you chose at sign-in; to change it, reconnect and choose another.

Changing a project's company needs a reconnect in the host, because tools and instructions are per company.

## If connecting does not work

If Cady identifies another regional endpoint, update the existing connection to that address and authenticate again. Do not add a second connection. If approval expires or fails, restart authentication on the existing connection. Do not create another company to repair a connection. If the returned company is wrong, stop dependent work and reconnect with the intended company.


### Claude web or desktop

Open Claude web → Customize → Connectors → + Add → Add custom connector. Desktop: Settings → Connectors. Name it Cady, enter the URL, choose OAuth, sign in now and Register automatically. A chat prompt cannot install it.

```text
Name: Cady
URL: https://app.cadyworks.com/mcp
```

Approve your company in the browser, then return here with Cady enabled.

[Claude custom connectors](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp)

### ChatGPT web or desktop

Open ChatGPT on the web → Plugins → + → Add custom MCP server. Name it Cady, enter the URL, choose OAuth with dynamic registration, review the warning and create the plugin. Workspace controls may apply.

```text
Name: Cady
URL: https://app.cadyworks.com/mcp
```

Install it, approve your company in the browser, then return here with Cady enabled.

[ChatGPT custom MCP setup](https://developers.openai.com/api/docs/guides/custom-mcp-server)

### Claude Code

In a terminal, run this in your Claude Code project:

```sh
claude mcp add --transport http cady 'https://app.cadyworks.com/mcp'
```

Sign in in the browser when prompted, then check /mcp. Installing the cady@cady plugin adds Cady too, so skip this command then; both together show Cady twice.

[Claude Code MCP](https://code.claude.com/docs/en/mcp)

### Codex CLI or desktop

In a terminal, run these commands, or add Cady under Settings → MCP servers:

```sh
codex mcp add cady --url 'https://app.cadyworks.com/mcp'
codex mcp login cady
```

Sign in and approve the company in your browser, then reload Codex if Cady tools are missing. Set default_tools_approval_mode to "approve" for Cady only to reduce repeated write prompts; do not change global approval settings.

[Codex MCP setup](https://learn.chatgpt.com/docs/extend/mcp?surface=cli)

### Gemini CLI

Merge this entry into the existing mcpServers object in Gemini CLI settings, preserving other servers:

```json
{
  "mcpServers": {
    "cady": {
      "httpUrl": "https://app.cadyworks.com/mcp"
    }
  }
}
```

Then run /mcp auth cady and complete sign-in in the browser.

[Gemini CLI MCP](https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md)

### Antigravity

Merge this entry into ~/.gemini/config/mcp_config.json, preserving other servers:

```json
{
  "mcpServers": {
    "cady": {
      "serverUrl": "https://app.cadyworks.com/mcp"
    }
  }
}
```

Sign in in the browser when asked.

[Antigravity MCP](https://antigravity.google/docs/mcp)

### Grok

On grok.com open Connectors → New Connector → Custom and enter https://app.cadyworks.com/mcp. Or in a terminal, run:

```sh
grok mcp add --transport http cady 'https://app.cadyworks.com/mcp'
```

Sign in in the browser when asked.

[Grok connectors](https://docs.x.ai/grok/connectors)
[Grok CLI MCP](https://docs.x.ai/build/features/mcp-servers)

### Hermes Agent

Add this to ~/.hermes/config.yaml, preserving other servers:

```yaml
mcp_servers:
  cady:
    url: "https://app.cadyworks.com/mcp"
    auth: oauth
```

Then run hermes mcp login cady and approve the company in the browser.

[Hermes Agent](https://github.com/NousResearch/hermes-agent)

### Cursor

Settings → Tools & MCP → add Cady, or configure .cursor/mcp.json using the current documented format. Check the format against your installed version.

[Cursor MCP](https://docs.cursor.com/context/model-context-protocol)

### VS Code / GitHub Copilot

In VS Code, run MCP: Add Server, or merge this server into .vscode/mcp.json. Copilot portable config uses a different format; follow its documentation.

```json
{
  "servers": {
    "cady": {
      "type": "http",
      "url": "https://app.cadyworks.com/mcp"
    }
  }
}
```

Sign in in the browser when asked.

[VS Code MCP servers](https://code.visualstudio.com/docs/agent-customization/mcp-servers)
[MCP configuration reference](https://code.visualstudio.com/docs/agents/reference/mcp-configuration)

### Cline

Use the MCP Servers panel → Remote Servers, or its CLI to add Cady. Follow the current Cline steps to sign in.

```sh
cline mcp add cady 'https://app.cadyworks.com/mcp' --transport http --yes
```

[Cline MCP](https://github.com/cline/cline/blob/main/docs/mcp/mcp-overview.mdx)

### Roo Code

Roo Code supports remote MCP servers. Cady has not been verified with Roo Code; check that your version supports remote connections and browser sign-in.

```json
{
  "mcpServers": {
    "cady": {
      "type": "streamable-http",
      "url": "https://app.cadyworks.com/mcp"
    }
  }
}
```

[Roo Code MCP](https://github.com/RooCodeInc/Roo-Code-Docs/blob/main/docs/features/mcp/using-mcp-in-roo.mdx)

### Goose

Not yet verified with Cady. Check that your version supports remote HTTP and browser sign-in.

[Goose documentation](https://block.github.io/goose/)

### Zed

Settings → AI → MCP Servers → Add Server → Add Remote Server. Zed supports browser sign-in when the server does not require a separate authorization header.

```json
{
  "context_servers": {
    "cady": {
      "url": "https://app.cadyworks.com/mcp"
    }
  }
}
```

[Zed MCP](https://zed.dev/docs/ai/mcp)

### OpenCode

Run this command, then authenticate in the browser:

```sh
opencode mcp add cady --url 'https://app.cadyworks.com/mcp'
opencode mcp auth cady
```

[OpenCode MCP servers](https://dev.opencode.ai/v2/docs/mcp-servers/)

### Windsurf / legacy Cascade

The available Cascade instructions apply to legacy Cascade; do not treat them as current Windsurf defaults. Follow the current product’s MCP documentation.

[Cascade MCP (legacy)](https://docs.windsurf.com/windsurf/cascade/mcp)

### Other agent apps

Add https://app.cadyworks.com/mcp as a remote HTTP MCP server named cady. Follow the app’s steps to connect and sign in. Use fixed-client settings only when Cady provides them for this connection; never copy identifiers from another deployment.
