OpenCharts MCP

official

Plug your AI agent into OpenCharts—build spreadsheets, boards, music, and automations from Claude Code, Codex, or Cursor without leaving your terminal.

What can you do with Open Charts MCP?

  • Create and manage projects — Build flowcharts, whiteboards, notes, presentations, and more using tools like create_flowchart, create_whiteboard, create_notes, and create_presentation.
  • Work with spreadsheets — Inspect, read, create, and edit Theo Sheets with formula support using inspect_sheet, get_sheet, create_sheet, update_sheet, and edit_sheet.
  • Build and run automations — Create, configure, activate, and run Theo Agents with build_agent, create_agent, configure_agent_trigger, and run_agent.
  • Manage Kanban boards — Create boards, add and update cards, and manage lists with create_board, add_board_card, update_board_card, and list_board_cards.
  • Generate websites and songs — Build full websites or apps with generate_code_canvas and create music with create_song, then poll status with get_code_canvas_status and get_song_status.
  • Check account and credits — Verify your connection with whoami and monitor AI credit usage with get_credits.

Documentation

OpenCharts

OpenCharts MCP Server

Build flowcharts, notes, slides, sheets, boards, sites, agents & songs in OpenCharts — straight from your AI client.

Website · Documentation · Get an API key · Issues

License Website MCP


What is this?

OpenCharts runs a public, hosted Model Context Protocol (MCP) server that puts the whole OpenCharts product inside any MCP-compatible AI client. Connect once with an API key and your assistant can build and manage real OpenCharts projects on your behalf — flowcharts, whiteboards, notes, presentations, spreadsheets (Theo Sheets), Kanban + calendar boards, full websites & apps (Code Canvas), automations (Theo Agents), and songs (Theo Symphony) — all powered by Theo, the OpenCharts AI.

It is a remote server over Streamable HTTP — there is nothing to install or run locally. Point your client at the endpoint, paste your API key, and go.

This repository is the public documentation for that server. The server itself is hosted by OpenCharts; you don't run it yourself.

Want to connect in under a minute? Use the in-app guide at opencharts.com/help/mcp-server or the setup page at opencharts.com/theo-agents/mcp.

Quick start

  1. Create an API key at opencharts.com/theo-agents/mcp. Copy it immediately — the full key is shown only once.
  2. Add the server to your AI client using the matching config snippet below, replacing {{YOUR_API_KEY}} with your key.
  3. Verify the connection by asking your assistant to call the whoami tool — it should return your OpenCharts account.

Endpoint

https://www.opencharts.com/api/mcp
  • Transport: Streamable HTTP (POST)
  • Auth: Authorization: Bearer <API key> (a JWT from an active OpenCharts session also works)

⚠️ Always use the www. host. The apex opencharts.com issues a 307 redirect that strips the Authorization header and breaks authentication. Use https://www.opencharts.com/api/mcp exactly.

Connect your AI client

The server works with any MCP-compatible client. Copy the matching snippet and swap in your API key. Prefer to let your assistant wire it up? The help page has a one-paste "AI setup prompt" for every client below.

Warp

{
  "mcpServers": {
    "opencharts": {
      "type": "http",
      "url": "https://www.opencharts.com/api/mcp",
      "headers": {
        "Authorization": "Bearer {{YOUR_API_KEY}}"
      }
    }
  }
}

Claude Desktop / Claude Code

{
  "mcpServers": {
    "opencharts": {
      "type": "streamable-http",
      "url": "https://www.opencharts.com/api/mcp",
      "headers": {
        "Authorization": "Bearer {{YOUR_API_KEY}}"
      }
    }
  }
}

Cursor

{
  "mcpServers": {
    "opencharts": {
      "url": "https://www.opencharts.com/api/mcp",
      "headers": {
        "Authorization": "Bearer {{YOUR_API_KEY}}"
      }
    }
  }
}

VS Code (GitHub Copilot)

Add to .vscode/mcp.json:

{
  "servers": {
    "opencharts": {
      "type": "http",
      "url": "https://www.opencharts.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:opencharts-key}"
      }
    }
  },
  "inputs": [
    {
      "id": "opencharts-key",
      "type": "promptString",
      "description": "OpenCharts API key",
      "password": true
    }
  ]
}

Windsurf (Codeium)

{
  "mcpServers": {
    "opencharts": {
      "serverUrl": "https://www.opencharts.com/api/mcp",
      "headers": {
        "Authorization": "Bearer {{YOUR_API_KEY}}"
      }
    }
  }
}

Claude Code (CLI)

claude mcp add --transport http opencharts https://www.opencharts.com/api/mcp --header "Authorization: Bearer {{YOUR_API_KEY}}"

Codex (OpenAI)

codex mcp add opencharts --url https://www.opencharts.com/api/mcp --header "Authorization: Bearer {{YOUR_API_KEY}}"

Amp

In the VS Code extension settings.json:

"amp.mcpServers": {
  "opencharts": {
    "url": "https://www.opencharts.com/api/mcp",
    "headers": {
      "Authorization": "Bearer {{YOUR_API_KEY}}"
    }
  }
}

OpenCode

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "opencharts": {
      "type": "remote",
      "url": "https://www.opencharts.com/api/mcp",
      "oauth": false,
      "headers": {
        "Authorization": "Bearer {{YOUR_API_KEY}}"
      }
    }
  }
}

Tools

The server exposes 56 tools across 10 groups. Tools that use Theo AI or generation consume AI credits.

Projects

ToolDescription
list_projectsList your projects with pagination and filters
get_projectGet full project data by ID
create_flowchartCreate a flowchart project with nodes and edges
create_whiteboardCreate a whiteboard with native shapes and elements
create_notesCreate a notes project from Markdown
create_presentationCreate a slide deck from an outline
update_projectUpdate metadata or content (notes, flowchart, whiteboard, or presentation)
delete_projectSoft-delete a project (30-day recovery)

Code Canvas

ToolDescription
generate_code_canvasBuild a full website or app (HTML/React) from a description — returns a job to poll
get_code_canvas_statusPoll a Code Canvas build; returns the project + open URL when ready

AI

ToolDescription
ask_theoSend a single-turn AI message (fast or think mode)
extract_flowchartExtract a flowchart from an uploaded document (PDF, image, PPTX)

Theo Agents

ToolDescription
build_agentBuild a Theo Agent from a description — runs in the background, notifies you when ready
get_agent_build_statusOptional poll for a build_agent job; returns the agent + open URL when done
create_agentCreate a Theo Agent deterministically from structured steps + trigger
update_agentPatch an agent's name, description, or step list
configure_agent_triggerSet an agent's trigger (manual, schedule, webhook, event, telegram)
activate_agentActivate an agent (seeds the first scheduled run)
deactivate_agentDeactivate an agent so triggers stop firing
delete_agentSoft-delete an agent (30-day recovery)
list_agentsList your Theo Agents with status + step counts
get_agentGet an agent's full definition (trigger + ordered steps)
run_agentDispatch an agent now — runs in the background, notifies you on completion
list_agent_runsList an agent's recent execution runs
get_agent_run_statusGet a single run's status + per-node progress

Theo Sheets

ToolDescription
list_sheetsList your Theo Sheets spreadsheet projects
inspect_sheetInspect a sheet — per-tab dimensions, header row, sampled cells + formulas, layout
get_sheetExtract a worksheet as structured rows (headers + data rows)
read_sheet_rangeRead an exact A1 range's values (+ optional formulas) as a grid + CSV
create_sheetCreate a live spreadsheet (Excel-grade grid + formulas) from headers and rows
update_sheetEdit a sheet by applying structured spreadsheet edit ops — saved as a rollback-able commit
apply_sheet_opsApply structured spreadsheet edit ops — or propose a merge-gated change
edit_sheetEdit a sheet with a natural-language instruction (Theo plans + applies ops)
list_sheet_commitsList a sheet's git-style change commits (applied / proposed / merged)
diff_sheet_commitShow the cell-level diff for a commit or proposal
resolve_sheet_proposalMerge or reject a pending change proposal
rollback_sheetRoll the live sheet back to a prior commit (reversible)

Boards

ToolDescription
create_boardCreate a Kanban + calendar project board
list_boardsList your project boards
get_boardGet a board's lists (columns) and cards
update_boardUpdate a board's name, description, or list columns
delete_boardSoft-delete a board (recoverable)
duplicate_boardDuplicate a board with its lists, rules, and cards
add_board_cardAdd a card (post/task/idea/event) to a board
list_board_cardsList a board's cards, optionally by schedule range
update_board_cardEdit a card — move list, reschedule, change status/color
delete_board_cardSoft-delete a card from a board

Theo Symphony

ToolDescription
create_songGenerate a song with Theo Symphony — returns a job to poll
get_song_statusPoll a song job; returns audio + cover-art versions when complete

Notes

ToolDescription
get_note_contentExtract a note's content as Markdown
append_to_noteAppend Markdown content to an existing note
clip_to_noteSave web content (URL + HTML) as a clip inside a note

Templates

ToolDescription
list_templatesBrowse the template gallery
use_templateCreate a new project from a template

Account

ToolDescription
whoamiGet the authenticated user's profile information
get_creditsCheck remaining AI credit balance

Resources

Resources provide read-only context an AI client can retrieve without calling a tool.

ResourceDescription
projectsPaginated list of your recent projects
projectFull data for a single project by ID
templatesBrowsable template catalog

How it works

┌────────────────────┐   Streamable HTTP    ┌────────────────────────────┐
│   Your AI client    │   + Bearer API key   │   OpenCharts MCP (hosted)  │
│  Warp · Claude ·    │ ───────────────────► │                            │
│  Cursor · VS Code · │                      │  Projects · Code Canvas ·  │
│  Windsurf · Codex · │ ◄─────────────────── │  Agents · Sheets · Boards ·│
│  Amp · OpenCode     │      tool results    │  Symphony · Notes · AI     │
└────────────────────┘                      └────────────────────────────┘

Every request is authenticated by your API key and acts on your own OpenCharts account. Because the server is hosted, the tool surface stays current automatically — no client updates required. Tools that use Theo AI or generation (for example ask_theo, extract_flowchart, generate_code_canvas, build_agent, create_song) consume AI credits from your plan.

Rate limits & credits

  • 120 requests per minute per user.
  • AI and generation tools consume AI credits — check your balance any time with the get_credits tool.

Discovery & registry

Machine-readable metadata is published for clients, crawlers, and registries (no secrets):

  • https://www.opencharts.com/.well-known/mcp — discovery manifest
  • https://www.opencharts.com/.well-known/mcp/server-card.json — server card
  • https://www.opencharts.com/.well-known/oauth-protected-resource — protected-resource metadata
  • Docs: opencharts.com/help/mcp-server

Troubleshooting

  • 307 redirect / "no authorization support" / 401 — make sure the URL is exactly https://www.opencharts.com/api/mcp (with www.). The apex host strips the Authorization header on redirect. Also confirm your key is active and sent with the Bearer prefix.
  • 429 Too Many Requests — you've hit the 120 req/min limit; wait and retry.
  • Tools missing in your client — fully restart the client (or toggle the OpenCharts server off/on) so it re-fetches the tool list. Confirm your key carries the read, write, and ai scopes (default keys include all three).
  • JWT expired mid-session — session JWTs expire after ~15 minutes; use a persistent API key for long-running integrations.

Compatible clients

Works with any client that supports the Model Context Protocol, including:

Links

License

This documentation is licensed under CC-BY-4.0. The OpenCharts MCP server is a hosted product — see opencharts.com for terms and pricing.