The Cube MCP Server lets you connect your governed financial data directly to AI platforms like Claude and ChatGPT. Instead of exporting data and pasting it into AI chats, the MCP Server provides a live, secure connection that respects your Cube permissions on every request.
Overview
With the Cube MCP Server, you can:
- Query live Cube data from Claude, ChatGPT, and other MCP-compatible AI tools: actuals, budgets, forecasts, variances, and more
- Ask an AI to generate board decks, run variance analysis, or build financial summaries using your real Cube data
- Read your planning Tables, such as headcount rosters and asset registers, at line-item detail
- See your source connections and import history, and refresh actuals on demand rather than waiting for the next scheduled import
- Review your close and planning workflows and the tasks inside them
- Have an AI write updated figures back into a scenario, populate a planning Table, create a scenario, build and update Boards, draft workflows and tasks, and create tags, when you grant write access
- Drill into transaction-level detail and dimension breakdowns directly from an AI chat
- Maintain full security: Cube's role-based access control (RBAC) security model enforces your user permissions on every AI request. If you can't see it in Cube, the AI can't see it either
How it works
The Model Context Protocol (MCP) is an open standard that lets AI tools connect to external data sources. Cube's MCP Server acts as a secure gateway between your AI tool and your Cube data.
When you (or an AI agent acting on your behalf) send a query through MCP, Cube validates your identity, checks your Data Access Scope, and returns only the data you are authorized to see. The AI tool receives governed, calculated, multi-currency-normalized financials, not raw exports. The same governed connection also lets the AI build live Boards, populate planning Tables, and draft workflows in your workspace from that data.
This means:
- Every response uses your Cube Source of Truth: consolidated, calculated, and current
- Your Cube business rules, formulas, and multi-currency logic are applied before data reaches the AI
- No data leaves Cube without passing through your organization's permission model
What the AI can do on your behalf
When you ask a question, the AI tool makes one or more calls to the Cube MCP Server to gather what it needs or to build something for you. Every call is governed by your permissions. The tool names below are the calls an AI client makes against the MCP Server, useful if you are reviewing connector activity or audit logs.
Reading your data
Available with either permission level.
| What the AI does | Tool call | What you get |
|---|---|---|
| Reads your account and dimension structure | get_chart_of_accounts |
The AI learns what data exists in your model: accounts, departments, scenarios, time periods, entities, and custom dimensions. It also reads the formula behind any calculated account, so it can explain how a metric like Gross Margin % or EBITDA is derived, not just report the value. Almost every other call starts here, because dimension IDs come from this response. |
| Retrieves aggregated financial data | get_financial_slice_of_data |
A summary view of your data, similar to a pivot table, with the rows, columns, and filters your question implies. "Revenue by quarter, actuals versus budget" returns a grid of calculated, consolidated values. Time rollups such as YTD, QTD, and trailing twelve months are computed by the Cube engine, and multi-currency normalization and your formulas are applied before the data reaches the AI. |
| Retrieves transaction-level detail | get_drilldown_data |
Line-item records at the lowest level of detail available, with all dimension values and metadata attached. Use this for auditing a figure or finding outliers. |
| Lists and reads your Boards |
list_dashboards, get_dashboard
|
The Boards you have access to, and the full definition of any one of them: tabs, widgets, layout, and the dimensions behind each widget. This is how the AI answers "what's already on my Q3 board" and how it preserves your existing widgets before updating a Board. |
| Checks valid Board widget settings | get_widget_settings_schema |
The settings fields and permitted values for each widget type. The AI calls this before building a Board so the widgets it creates are valid, rather than guessing at configuration. |
| Reads your tags | list_tags |
Your existing tags and their members, so the AI can filter by a grouping you already use instead of rebuilding it. |
| Lists and reads your planning Tables |
list_planning_tables, get_planning_table_data
|
The Tables you have access to, and the data grid for any one of them in a given scenario: headcount rosters, opportunity lists, asset registers, including calculated and dimension-linked columns. Rows outside your Data Access Scope are excluded before the data reaches the AI. |
| Checks valid planning Table column settings | get_planning_table_schema_options |
The column types, required attributes, and format options a planning Table supports, plus your top-level dimensions for dimension-linked columns. The AI calls this before creating a Table so the schema it builds is valid, rather than guessing at column configuration. |
| Lists your source connections and imports | list_connections |
Your source system connections, each with its recent imports and scheduled-import configuration. Use this to confirm your actuals are current before running an analysis, or to find the import the AI should refresh. |
| Reads your workflows and tasks |
list_workflows, list_tasks
|
Your workflows, filterable by status, and the tasks inside any one of them with status, due date, and assignee. "What's still open on the month-end close" is answered here. |
Building and writing
These calls require Use MCP (Write). Writes to scenario data and planning Tables are also subject to the checks described under How write-back works.
| What the AI does | Tool call | What you get |
|---|---|---|
| Writes updated figures back into your model | publish_data |
The AI writes values into a scenario, one figure or many at once. "Update our Q3 reforecast with the latest actuals and my revised assumptions" lands the new numbers in the target scenario. Values are written at leaf level and your formula rollups recalculate from them. Publishes land only in scenarios opened for AI write-back or created by the AI. Every write is attributed to you and flagged as AI-originated in your audit trail. |
| Creates a scenario or dimension member | create_dimension |
A new member under a parent you name, most often a new scenario. "Create a new scenario called Headcount Downside" produces a real scenario in Cube. A scenario the AI creates is automatically opened for AI write-back, so the AI can populate it without any manual setup from you. Members created outside the Scenario hierarchy get no write protection and no AI access by default. |
| Copies an existing scenario into a new one the AI can write to | duplicate_scenario |
A new scenario seeded with the leaf-level values from one you already have, rather than an empty shell. "Copy our FY27 Budget into a scenario called FY27 Downside" gives the AI a populated starting point to adjust and leaves the source scenario untouched. The copy is automatically opened for AI write-back, so no manual setup is needed. Copying runs in the background and you receive an email when it completes; the new scenario cannot be written to until then. |
| Creates a calculated account or dimension member | create_formula |
A new formula member under a parent you name, so a metric you keep rebuilding by hand becomes part of your model instead. "Add a Contribution Margin % account under Gross Profit" creates it once, and it applies across every scenario. Formula members are calculated rather than writable, so nothing can publish over them. A formula can only reference members that share its top-level dimension, and it cannot reference Time, tags, or itself. Calculation runs in the background after the member is created, so values appear shortly afterward rather than immediately. The AI can create a new formula; it cannot edit a formula you already have. |
| Builds and updates Boards |
create_dashboard, update_dashboard
|
A live Board in your Cube workspace, with tabs and widgets, or an update to one you already have. "Build a board showing this quarter's performance" produces a real Board in Cube, not a static export. You can open, share, and edit it like any Board you built yourself. An update applies the definition the AI submits, so the AI reads the Board with get_dashboard first when it needs to keep your existing widgets. |
| Creates a planning Table | create_planning_table |
A new Table with a typed column schema: text, number, date, enum, dimension-linked, and calculated columns. "Set up a headcount roster with name, department, start date, and fully loaded cost" produces a real Table in Cube. It is created empty for each scenario you name, so the AI can populate it next with write_planning_table_data. Sharing is set to Managers or All; sharing with specific users is not available through MCP. The Table itself can be created against any scenario you can write to, but data only lands in scenarios opened for AI write-back. |
| Writes data into a planning Table | write_planning_table_data |
The AI writes a dataset into a Table for a given scenario, so a headcount plan or asset schedule can be built in one pass rather than typed row by row. This replaces the full dataset for that Table and scenario: rows the AI does not resend are removed, though rows outside your Data Access Scope are always preserved. Review what an AI proposes before accepting it on a Table you rely on. The target scenario must be open to AI write-back. |
| Creates tags | create_tag |
A new tag that groups dimension members for reporting. "Create a tag grouping our top ten revenue accounts" adds a new grouping you can filter on. A tag sits outside the account hierarchy and does not change any rolled-up total. All members of a tag must come from the same top-level dimension. |
| Drafts workflows and tasks |
create_workflow, create_task
|
A new workflow, or a new task inside one. "Set up a close checklist for October" builds the structure for you. Nothing goes live on its own: a new workflow is created as Not Started with you as owner, and a new task is created as a draft with no assignee and no due date unless you name one. You review and assign before anyone is notified. Running workflows cannot be cancelled or cleared through MCP. |
| Refreshes actuals from a source system | initiate_import |
Starts an import for one of your existing connections, into the scenario and date range you name, reusing the mapping and dimension defaults from that connection's last successful import. "Pull in yesterday's actuals from NetSuite before we look at the variance" refreshes the data rather than working from a stale load. The values that land come from your source system through your own mapping rules, not from the AI. |
Session and setup
These calls carry no financial data. They appear in connector activity because the AI uses them to establish which Cube company it is working in.
| What the AI does | Tool call | What you get |
|---|---|---|
| Lists the companies you can access | list_companies |
The Cube companies your login reaches. If you have access to more than one, the AI uses this to ask which you mean. |
| Sets the active company | select_company |
Points the rest of the conversation at one company, so every later call reads and writes in the right place. Worth checking first if an AI returns figures you do not recognize. |
Every one of these runs through your Data Access Scope. The AI can only read or build from data you are authorized to see in Cube.
Read access and write access
MCP access comes in two permission levels, granted by an admin. They determine what the AI can do on your behalf:
- Use MCP (Read Only): the AI can query and retrieve data, drill down, read your planning Tables, list and read Boards, read your tags, see your source connections and import history, and read your workflows and tasks, all within your Data Access Scope. It cannot change anything.
-
Use MCP (Write): everything read access can do, plus writing data back with
publish_data, writing into planning Tables, creating scenarios and dimension members, building and updating Boards, drafting workflows and tasks, refreshing actuals from a source connection, and creating tags, subject to the write rules below.
A few things to know about write access:
- Use MCP (Write) can only be held by a user who already has write capability in Cube, meaning a Finance or Admin user. It cannot be granted to a Business user.
- Having permission to publish inside the Cube interface does not by itself grant MCP write access. The two are controlled separately.
- When your organization is upgraded, everyone who previously held the single MCP permission is migrated to Use MCP (Read Only). No user is automatically given write access.
- By default, Use MCP (Write) is on for Admin and Finance users and off for Business users. An admin can adjust this or create custom user groups.
How write-back works
Write-back is built so an AI can never silently overwrite a scenario you rely on. Two rules govern where an AI can write:
- An AI can always write to a scenario it created, because scenarios an AI creates are automatically opened for AI write-back.
- An AI can write to an existing scenario only if a person has explicitly opened that scenario for AI write-back, by turning on its "AI" write protection setting.
New scenarios are the AI's sandbox. Existing scenarios stay your data, writable by an AI only on your explicit invitation. The "AI" setting is off by default on every scenario except those an AI created.
Every write passes four checks. Each write is checked, on every call, against all four of these. If any check fails, nothing is written:
- The user holds Use MCP (Write).
- The user has the underlying write capability in Cube (Finance or Admin).
- The write is within the user's Data Access Scope.
- The target scenario is open to AI write-back, or was created by the AI.
Because access is re-checked on every call, if an admin removes a user's write access, the change takes effect on that user's next write. Their read access keeps working.
Open an existing scenario for AI write-back. To let an AI write to a scenario that already exists, a person turns on the "AI" write protection setting for that scenario. This is a deliberate action, and an AI cannot turn it on for you.
- Open the scenario's settings in Cube.
- Set its write protection value to "AI".
- Save. The AI can now write to that scenario, subject to the other three checks.
The "AI" setting and time-based write protection work independently. A scenario can be open to AI write-back and still have specific time periods locked. A write to a locked period, or to a period whose data is routed elsewhere by a scenario lifecycle rule, is denied.
When a write is blocked. A blocked write returns a clear reason and never reveals data outside your access. The most common reason is that the target scenario is not open to AI write-back, and the message names the fix: open that scenario for AI, or have the AI create a new scenario to write into. Other reasons include not holding write access, targeting data outside your Data Access Scope, or targeting a locked or lifecycle-routed period.
Prerequisites
Before connecting, confirm the following:
- You have a Cube account with an active login.
- You have access to an AI tool that supports MCP connectors. Note that MCP functionality may require a specific subscription tier depending on the tool:
- Claude: MCP connectors are available on Claude Pro, Team, and Enterprise plans. Free plans do not support custom connectors. Check Anthropic's plan details for the latest information.
- ChatGPT: MCP connectors require a Plus, Pro, Team, Business, Enterprise, or Edu plan. Developer Mode must be enabled by a workspace admin for Business and Enterprise plans. Check OpenAI's plan details for the latest information.
- Other tools: Refer to your tool's documentation for MCP support and plan requirements.
- To write data back, build or update Boards, or create tags, your Cube user needs Use MCP (Write). To query and read, Use MCP (Read Only) is enough.
Connect to Claude
Enterprise and Team plans: admin setup first
If your organization is on a Claude Enterprise or Team plan, individual members cannot add Cube on their own. An Owner or Primary Owner needs to add Cube as a custom connector at the organization level first. This is a one-time setup.
An Owner or Primary Owner should:
- Sign in to Claude and go to Organization settings > Connectors.
- Click Add, then choose the option to add a custom connector.
- Enter the connector details:
- Name: Cube
- Remote MCP server URL: https://mcp.cubesoftware.com/
- Click Add to save the connector.
Cube now appears in your organization's connector list with a Custom label. Members can then connect individually using the steps below.
Owners can also control which Cube tool calls are available to members. In Organization settings > Connectors, you can allow Cube to read data while restricting the tools that build or update Boards, applied across everyone in the organization. This is optional. If you want members to use the full set of Cube capabilities, no change is needed.
Once an Owner has added Cube at the organization level, each member connects their own account:
- Go to https://claude.ai/customize/connectors.
- Click Add custom connector.
- Enter the following:
- Name: Cube
-
URL:
https://mcp.cubesoftware.com/
- Click Add.
- You will be prompted to authenticate with Cube via OAuth. Sign in with your Cube credentials.
- Once connected, Cube will appear in your list of connectors.
Start querying:
Open a new conversation in Claude and ask a question about your financial data. Examples:
- "Build me a board deck showing this quarter's performance. Include revenue by quarter, gross margin trends, opex breakdown by department, and headcount growth. Compare actuals to budget."
- "Create a summary comparing Actuals vs. Forecast for Revenue by entity for the last 12 months."
- "If we cut Sales & Marketing spend by 15% in the back half of the year, how would that change our Net Income? Compare to what we actually spent."
Claude will call the Cube MCP Server to retrieve your data, apply your permissions, and return results grounded in your Source of Truth.
Connect to ChatGPT
ChatGPT supports custom MCP connectors through its Apps & Connectors settings. This feature requires a ChatGPT Plus, Pro, Team, Business, Enterprise, or Edu plan.
You can add Cube directly as a ChatGPT app instead of creating a custom connector. This is the fastest way to get started.
Requirements: ChatGPT Plus, Pro, Team, Business, Enterprise, or Edu plan.
- Open this link: Add Cube to ChatGPT
- ChatGPT will open the Cube app page. Click Connect.
- Review the permissions summary, then click Continue to Cube.
- Sign in with your Cube credentials to authorize the connection.
- Once connected, Cube will appear in your list of apps under Settings > Apps & Connectors.
- To start querying, open a new chat, click the + button (or Connected apps) in the chat tools menu, enable Cube, and ask a question about your financial data.
If you prefer to configure the connection manually, or if the app link above doesn't work for your ChatGPT plan, follow the steps below.
Step 1: Enable Developer Mode
- In ChatGPT, go to Settings > Apps & Connectors > Advanced settings.
- Enable the Developer Mode toggle.
Step 2: Add the Cube connector
- Return to Settings > Apps & Connectors.
- Click Create (or + Create New Connector).
- Enter the following:
- Name: Cube
- Description: Query governed financial data from Cube, including actuals, budgets, forecasts, variances, and transaction-level detail.
-
MCP Server URL:
https://mcp.cubesoftware.com/ - Authentication: OAuth
- Check the box to confirm you trust this application.
- Click Create.
- You will be redirected to Cube's login page. Sign in with your Cube credentials to authorize the connection.
- Once connected, Cube will appear in your list of connectors under Apps & Connectors.
Step 3: Start querying
- Open a new chat in ChatGPT.
- Click the + button (or Connected apps) in the chat tools menu and enable the Cube connector.
- Ask a question about your financial data. Examples:
- "Use deep research to analyze our company's financial performance in the context of current market conditions. Pull our revenue, margins, and opex from Cube, then research comparable SaaS benchmarks and write a board-ready market positioning report."
- "Pull our quarterly P&L from Cube for 2024 and 2025 and open it in Canvas. Build a variance analysis with charts showing actuals vs budget by department, and let me edit the commentary inline before exporting to PDF."
- "Connect to Cube and pull our current headcount, personnel costs, and revenue by department. Then model three scenarios: (1) 10% RIF in Sales, (2) 20% Engineering hiring ramp, (3) flat headcount with 5% raises. Show the net income impact of each."
ChatGPT will display a confirmation prompt before executing any tool call, so you can review what data is being requested.
Troubleshooting an "Unknown Tool" related error:
- Click your name in the lower left-hand corner of the screen.
- Select Settings from the menu.
- Select Apps from the new window.
- Select Cube from your list of apps.
- You see something that says Information. To the right of that, there should be a Refresh button. Click that button.
Connect to other MCP-compatible tools
The Cube MCP Server works with any tool that supports the Model Context Protocol. The general pattern is:
- Open your tool's MCP or Connectors settings.
- Add a new connector with the URL
https://mcp.cubesoftware.com/. - Authenticate with your Cube credentials when prompted.
Refer to your specific tool's MCP documentation for exact configuration steps.
Things to keep in mind
- Every MCP request is validated against your Cube user permissions. There are no master keys or backdoors.
- AI agents can build and update Boards, write updated figures back into scenarios opened for AI, populate planning Tables, create new scenarios and dimension members, draft workflows and tasks, refresh actuals from a configured source connection, and create tags, when the user holds Use MCP (Write). They cannot rename or restructure existing dimensions, edit existing formulas or tags, delete Boards or other assets, cancel or clear a running workflow, assign a task to someone, change anyone's permissions, or write to your connected source systems through Cube.
- An AI writes data only to scenarios that are opened for AI write-back or that the AI created. It cannot write to a scenario on its own initiative, and it cannot enable AI write-back on a scenario for you. Every write is attributed to the user who made it and flagged as AI-originated in your audit trail, within the same Data Access Scope as any read.
- The MCP Server delivers governed, calculated data. Cube's rules engine, multi-currency logic, and multi-source consolidation are applied before data reaches any AI tool.
- If your Data Access is modified in Cube, the change takes effect on the next MCP request in real time.
- AI tools may interpret or summarize data in their responses. Always verify AI-generated content against your Cube Source of Truth before using it in formal reporting or decision-making.
- See how to get started with example prompts here.
Troubleshooting
- If your connection has stopped working, or is presenting unexpected errors, try to disconnect and reconnect to the server. If that doesn't work, contact our Support team.
- If an AI reports that it cannot write to a scenario, the target scenario is almost always not open to AI write-back. Open the scenario in Cube and set its write protection value to "AI", or have the AI create a new scenario to write into.