# Chartbuddy Hub > Desktop charting app. AI clients connect via local stdio MCP (`chartbuddy --mcp`), not via this docs host. ## Plaintext setup pages - [MCP setup (markdown)](https://chartbuddy.io/hub/mcp-setup.md): command, args, framing, status, smoke test - [MCP setup (JSON)](https://chartbuddy.io/hub/mcp-setup.json): `kind: mcp-client-config` connect descriptor - Local: `/hub/mcp-setup.md`, `/hub/mcp-setup.json`, `/hub/llms.txt` ## Critical facts - Docs site ≠ MCP API (no OpenAPI). Headers: `X-ChartBuddy-Resource: docs`, `X-ChartBuddy-MCP-Transport: stdio`. - Transport: **stdio**. Framing: **newline-delimited JSON-RPC** (preferred) or **Content-Length**. - MCP paths are machine-specific; user/global scope is usual (project files often should not contain `/Applications/...` paths). - Claude Code / Codex: new session if tools missing. Cursor: mid-chat attach usually works after refresh. - Live tools need Hub running (`open -a Chartbuddy`). `--mcp-status` is read-only. - Sandboxed environments may need loopback approval; status can look “down” while Hub is up. - On-machine status: `chartbuddy --mcp-status`. ## Human docs (VitePress HTML) - [Connect MCP](https://chartbuddy.io/hub/docs/connect-mcp/) — overview - [Cursor](https://chartbuddy.io/hub/docs/connect-mcp/cursor) — **recommended** - [Claude Code](https://chartbuddy.io/hub/docs/connect-mcp/claude-code) — **recommended**; also desktop **Code** tab - [OpenCode](https://chartbuddy.io/hub/docs/connect-mcp/opencode) — **recommended** - [ChatGPT / Codex](https://chartbuddy.io/hub/docs/connect-mcp/chatgpt-codex) — Codex CLI and desktop **Codex** tab - [ChatGPT](https://chartbuddy.io/hub/docs/connect-mcp/chatgpt) — browser / regular desktop chat (no Hub MCP yet; see Embed docs) - [Claude](https://chartbuddy.io/hub/docs/connect-mcp/claude) — browser / desktop **Home** tab (no Hub MCP yet; see Embed docs) - [Install Hub](https://chartbuddy.io/hub/docs/getting-started/installation)