For the complete documentation index, see llms.txt. This page is also available as Markdown.

MCP Server

Connect AI tools like Claude.ai, Claude Code, and ChatGPT to Zenlytic's MCP server so they can query your business data directly.

Zenlytic supports the Model Context Protocol (MCP), which lets AI tools like Claude.ai, Claude Code, and ChatGPT ask Zoë questions about your business data directly — no copy-pasting numbers back and forth. Once connected, you can ask your AI assistant things like "What was our revenue last quarter, broken out by region?" and it will query Zenlytic's governed semantic layer and return a real answer, grounded in your actual metrics.

This guide walks through connecting an MCP client to Zenlytic and what to expect once you do.

This is the reverse of MCP Client: here, Zenlytic is the MCP server and your AI tool is the client. If you're instead looking to connect Zoë to an external MCP server, see MCP Client.

What you get

The main tool Zenlytic exposes to MCP clients is ask_zoe. Your AI assistant calls this tool whenever you ask it a question that requires querying your business data. Behind the scenes, it:

  • Starts (or continues) a Zenlytic conversation with your question

  • Waits for Zenlytic's AI analyst to answer, including running any needed queries

  • Returns the answer, a link back to the full conversation in the Zenlytic app, and any resulting data/charts

In MCP clients that support MCP Apps (an interactive-widget extension to MCP), like Claude.ai, ask_zoe's answer renders as a live, interactive result view instead of plain text — clients without that support just get the same answer as plain text and data.

Every conversation started this way shows up in Zenlytic's conversation history like any other, tagged as an MCP conversation, so you (and your workspace admins) can always see what was asked and how it was answered.

Before you start

You'll need:

  • A Zenlytic account with access to the workspace you want to query

  • Chat permission in that workspace

  • An MCP-capable client (Claude.ai, Claude Code, ChatGPT, or similar)

  • Zenlytic's MCP URL for your workspace: https://mcp.zenlytic.com/mcp

If your org logs in at a custom vanity subdomain (e.g. acme.zenlytic.com), use that subdomain in front of the MCP host instead: https://acme.mcp.zenlytic.com/mcp. The exact URL for your org is shown in Workspace Settings → MCP.

If your client supports MCP connectors with OAuth (this includes Claude.ai, Claude.ai, Claude Code, and ChatGPT Developer mode), this is the easiest path — you don't need to generate or manage any tokens yourself.

  1. In your MCP client, add a new connector/server pointing at Zenlytic's MCP URL

  2. Your client will open a browser window and redirect you to Zenlytic's login page.

  3. Log in (if you aren't already), then pick the workspace you want to connect.

  4. Approve the connection. Your client is now authorized — you won't need to log in again unless you revoke access.

Option 2: Connect with a Personal Access Token (for static-config clients or when OAuth isn't available)

Some clients don't support the OAuth flow and instead want a static token in their config file.

Creating a personal access token requires the Admin (or Organization Admin) role in the workspace. See Personal Access Tokens.

  1. In Zenlytic, go to Workspace Settings → Personal Access Tokens (/workspace-settings/personal-access-tokens).

  2. Click Create token, give it a name (e.g. "Claude MCP"), and save it.

  3. Copy the token immediately — it's only shown once, right after creation.

  4. Add it to your MCP client's config as a bearer token, using your org's MCP URL from Workspace Settings → MCP. For example:

  1. Restart or reload your MCP client so it picks up the new server.

The steps above are general — each client has its own place to add a connector and its own quirks. Follow the guide for your client:

Using it

Once connected, just ask your AI assistant a data question naturally — for example:

"Hey Zoë, who were our top 5 customers by revenue last month?"

Your assistant will recognize this needs live data, call ask_zoe, and return the answer along with a link you can click to open the full conversation (and any charts or query results) in Zenlytic.

Which data model MCP uses

An MCP conversation is pinned to the branch your workspace is set to when the conversation starts, exactly like a conversation started in the app. If you've switched to a development branch, ask_zoe answers from that branch, not production.

To check which branch you're on, ask:

"Which branch are you using?"

To switch branches, change the branch in the Zenlytic UI, then start a new conversation in your MCP client.

If your workspace has Context Editing disabled, Zoë has no branch awareness and can't answer that question. Open the conversation in Zenlytic using the link ask_zoe returns to see which branch it ran against.

After you change a branch's data model, start a new conversation. An ongoing conversation keeps using the version of the model it cached when it started, so your change won't appear until you start a fresh one.

If a new conversation still returns the old model, the change was most likely pushed straight to git rather than made through the UI. See Cache Refresh.

Last updated

Was this helpful?