CeoDash
Ask Claude about your numbers
CeoDash speaks the Model Context Protocol. Point Claude at your workspace and it can read your KPIs and latest financial snapshot — the same numbers on your dashboard, answered in chat. Read-only, workspace-scoped, and authenticated with a token you mint yourself.
Preview — not enabled on this deployment
The MCP server ships with CeoDash but is off by default, and the endpoint returns 404 until an administrator enables it. Talk to us if you would like it switched on for your workspace — the setup below is what you will use once it is.
What it is
A Model Context Protocol server built into CeoDash. MCP is the open standard for giving an AI assistant access to a system it would not otherwise know about — so instead of exporting a CSV and pasting it into a chat, Claude queries your live workspace directly and answers from it.
It runs on the CeoDash API itself, so there is nothing to install and nothing to keep in sync. It talks JSON-RPC 2.0 over HTTP POST at https://ceodash.tools/api/mcp, identifies as ceodash-kpis v1.0.0, and implements protocol revision 2025-03-26. This version answers each request in a single response; there is no server-sent-event stream, so a GET to the endpoint returns 405.
What Claude can see
Three tools, listed here exactly as the server reports them from tools/list:
list_kpisList every KPI on the caller's active KPI version (level, scope, target, latest value, achievement %).
get_kpiGet one KPI by id (from list_kpis) with its recent measurement trend.
get_financial_summaryLatest financial snapshot for the caller's workspace (same metrics as the dashboard hero strip: revenue/ARR/MRR, burn, runway, cash, headcount when connected).
That is the complete list. Claude sees the KPIs on your active KPI version and your latest financial snapshot — and nothing else in CeoDash.
Security
Read-only. Every tool is a read. The server exposes no way to create, edit, or delete anything in your workspace, so there is no instruction Claude could follow — or that could be smuggled into a document it reads — that would change your data through this endpoint.
Workspace-scoped. Requests carry a token that names your user and workspace, and every query is filtered to that workspace. A token without a workspace claim is rejected outright.
Short-lived credentials. Tokens are minted on demand and expire 15 minutes after issue. There is no long-lived API key to leak, and nothing to revoke if one does — it has already expired.
Off unless enabled. The endpoint is disabled by default and returns 404 until an administrator turns it on for the deployment.
Get a token
Sign in to CeoDash as an administrator, then call the token endpoint from the same browser session. It returns a JWT scoped to your user and workspace.
curl -s https://ceodash.tools/api/auth/pipeline-token \
-H "Cookie: <your session cookie>" | jq -r .data.tokenThe token is valid for 15 minutes. That is deliberately short, and it is the main rough edge of this release: an MCP client configured with a pasted token will start returning authentication errors once it expires, and you will need to mint a fresh one. Longer-lived credentials for MCP clients specifically are the next thing we want to add here.
Connect Claude Code
Claude Code speaks HTTP MCP natively. Add the server with the token in an Authorization header:
claude mcp add --transport http ceodash https://ceodash.tools/api/mcp \
--header "Authorization: Bearer $CEODASH_TOKEN"Then ask it something — "how are we tracking against our KPI targets?" — and it will call list_kpis and answer from the result.
Connect Claude Desktop
Claude Desktop connects to remote servers like this one through Settings → Connectors → Add custom connector. Give it the endpoint URL:
https://ceodash.tools/api/mcpNote that claude_desktop_config.json is for locally-launched servers — it starts a command on your machine and talks to it over stdin and stdout, which is a different transport from the HTTP endpoint above. If you would rather configure this in the file than in the connectors UI, you need a bridge process that adapts one to the other, such as the community mcp-remote package:
{
"mcpServers": {
"ceodash": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://ceodash.tools/api/mcp",
"--header", "Authorization: Bearer ${CEODASH_TOKEN}"
],
"env": { "CEODASH_TOKEN": "<token from the step above>" }
}
}
}That bridge is third-party software we do not ship or control; the connectors UI is the supported path.
Check it by hand
If a client will not connect, call the endpoint directly. A working server answers with its three tools:
curl -s https://ceodash.tools/api/mcp \
-H "Authorization: Bearer $CEODASH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'A 404 means the server is not enabled on this deployment. A 401 means the token is missing, expired, or has no workspace — mint a new one.