Integration

Add the QC MCP server to ~/.claude/claude_desktop_config.json so Claude Desktop sees it on startup.

The QC app exports a ready-to-paste config. In QC, open Settings > MCP and click "Copy Claude Desktop config". The block looks like:

{
  "mcpServers": {
    "quant-charts": {
      "command": "<path-to-QC-mcp-bridge>",
      "args": [],
      "env": {}
    }
  }
}

Paste that into claude_desktop_config.json, restart Claude Desktop, and the QC tools appear under the hammer icon in any conversation. First call prompts you to sign in to QC if you have not already.

Notes

  • On Windows the config lives at %APPDATA%\Claude\claude_desktop_config.json.
  • On macOS it is at ~/Library/Application Support/Claude/claude_desktop_config.json.
  • Multiple QC installs on one machine will conflict on the bridge command; only one can be the active server.

Cursor

Add the same server entry to .cursor/mcp.json (workspace-local) or ~/.cursor/mcp.json (global).

{
  "mcpServers": {
    "quant-charts": {
      "command": "<path-to-QC-mcp-bridge>"
    }
  }
}

In QC, Settings > MCP has a "Copy Cursor config" button that fills in the absolute bridge path for your install. Restart Cursor after editing.

ChatGPT and other clients

Any MCP-conformant client works. Point it at the bridge command from MCP Settings.

The server speaks the standard MCP wire protocol over stdio. Any client that supports custom MCP servers can attach to it the same way. The bridge process holds session state (auth cache, rate-limit buckets) per-client, so two clients can be connected simultaneously without interfering.

Limits and behaviour

Per-tool rate limits, response caps, audit log.

  • Per-tool rate limit: token-bucket per session, varies by cost class. read_file is permissive; run_sweep is strict.
  • Response cap: 50,000 chars per tool result. Larger payloads are truncated with a "[truncated; N total chars]" footer suggesting a narrower call.
  • Audit log: every MCP call writes a row to the audit table (tool name, outcome, durationMs, argHash, sessionId). Use read_terminal or the QC settings panel to inspect.
  • Bulk read flag: pulling more than ~30 files in a session sets a session flag that nudges the model toward search_files / query_parquet instead of brute-forcing read_file.

Notes

  • Path safety: absolute paths are accepted only when they resolve under the active workspace; everything else is rejected with PathEscape.
  • Dirty-file refusal applies to MCP edits the same way it applies to in-app AI edits.