# 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. On Claude Code, the recommended plugin below includes skills. On Codex, skills are optional: a sandboxed agent can call get_cady_context with its task and follow the method core inline in the plan, without installing or fetching a skill from the web. In Claude Code the cady@cady plugin is the one route, and the claude.ai Cady connector must be switched off inside Claude Code so Cady is not connected twice. 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({task:""}) and follow its plan. With no task yet, call get_cady_context({}) and follow its general plan. 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 (once per AI app; recommended on Claude Code and Codex) 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: no installation is needed to begin. Without confirmed installed skills, get_cady_context serves the selected method core inline; plan.method.more offers read_cady for the full text inside Cady. Sandboxed agents can follow that plan even without shell network or write access to the skills folder. For an optional local install when those are available, skills live under $CODEX_HOME/skills (default ~/.codex/skills). Run git clone --depth 1 https://github.com/malcolmai/cady-skills "${CODEX_HOME:-$HOME/.codex}/cady-skills", then mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills/cady" && cp -R "${CODEX_HOME:-$HOME/.codex}/cady-skills/plugins/cady/skills/cady/." "${CODEX_HOME:-$HOME/.codex}/cady-skills/library" "${CODEX_HOME:-$HOME/.codex}/cady-skills/references" "${CODEX_HOME:-$HOME/.codex}/skills/cady/", check that "${CODEX_HOME:-$HOME/.codex}/skills/cady/SKILL.md" exists, then start a new Codex session. 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; get_cady_context returns the selected method core inline in its plan, with a full in-Cady read on request. ## Several companies, one connection One connection covers all your companies. Sign-in preselects your last choice, else the first by name. Keep it if this app mainly works there; a project header overrides that default, and orgId on a call overrides both. Choose "No default" only if every call names its company. Company ids are in the Cady app under Settings. Claude Code: the cady@cady plugin carries the server without headers. Choose the company with orgId on each call, or use the connection default chosen at sign-in. Do not add a company header: Claude Code keys its OAuth token store by the server configuration, including headers, so each header value splits the saved sign-in. Codex: in [mcp_servers.cady] of $CODEX_HOME/config.toml (default ~/.codex/config.toml) add env_http_headers = { "X-Cady-Company" = "CADY_COMPANY" } then export CADY_COMPANY= in the shell that starts Codex. Edit only that table and keep its other settings. Start a new session and confirm the company in the first read before any write. A static alternative is http_headers = { "X-Cady-Company" = "" }. 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 takes a session restart in the host, not a reconnect, because tools and instructions are per company. A connection needs a fresh sign-in every 90 days, and after 30 days unused. Scheduled agents hit the same limit. ## If connecting does not work One address serves every company, whichever region holds its data. If a saved connection uses an older regional address, replace it with the main 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 Install the cady plugin; it adds the Cady server and the skills. Run once in a terminal: ```sh claude plugin marketplace add malcolmai/cady-skills claude plugin install cady@cady claude plugin install cady-core@cady ``` Restart Claude Code, sign in in the browser when prompted, then check /mcp. If the claude.ai Cady connector is on in Claude Code, switch it off there; 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. If Cady tools are missing, reconnect Cady and start a new session. 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.