> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.tabs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.tabs.com/_mcp/server.

# Tabs MCP

> Connect Claude and other AI assistants to your Tabs data over the Model Context Protocol.

Tabs MCP connects AI assistants like Claude and ChatGPT to your Tabs data, so you can ask questions about customers, contracts, invoices, payments, and revenue in plain language. It's read-only, authenticates with your Tabs login over OAuth, and only returns data from instances your account can access.

> **Note**
>
> Tabs MCP is subject to change. Send questions and feedback to [support@tabsplatform.com](mailto:support@tabsplatform.com) or your shared Slack channel.

## What you can do

* **Analyze revenue** — recognized, deferred, and unbilled revenue by customer and month; revenue by product category; ARR over time.
* **Work receivables** — open and overdue invoices, payments, credit memos, and outstanding balances by customer.
* **Inspect contracts** — billing terms, billing term groups, usage, and how each performance obligation is recognized.
* **Plan ahead** — cash forecast, upcoming renewals, and usage commitments.

## Getting started

You need a Tabs account with access to at least one instance, and an MCP-compatible client.

Server URL: `https://integrators.prod.api.tabsplatform.com/mcp`

#### Claude

The fastest path is from the Tabs app:

1. Go to **Settings → Integrations** and click **Connect** on the Claude tile.
2. Click **Connect with Claude**. This opens the Tabs listing in Claude's connector directory.
3. Click **Connect** on the listing and sign in with your Tabs account.

You can also go straight to [claude.ai/directory/connectors/tabs](https://claude.ai/directory/connectors/tabs). Connectors added on claude.ai are available in Claude Desktop and mobile.

If Tabs isn't listed for your organization, a Claude admin can add it under **Settings → Connectors → Add custom connector** with the server URL above.

#### ChatGPT

Available on ChatGPT Plus, Pro, Business, Enterprise, and Edu, on the web.

1. In ChatGPT, go to **Settings → Security and login** and turn on **Developer mode**.
2. Go to **Plugins** and click **+** to create an app.
3. Name it **Tabs**, paste the server URL above, and choose **OAuth** for authentication.
4. Sign in with your Tabs account when prompted.

To use it in a chat, click **+** in the message box, choose **Developer mode**, and select **Tabs**.

> **Note**
>
> On Business, Enterprise, and Edu, a workspace admin has to allow custom apps first under **Workspace Settings → Permissions & Roles**. Admins can then publish Tabs to the whole workspace so no one has to set it up individually.

#### Claude Code

```bash
claude mcp add --transport http tabs https://integrators.prod.api.tabsplatform.com/mcp
```

Run `/mcp` in your session, select **tabs**, and authenticate.

#### Cursor

Add to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "tabs": {
      "url": "https://integrators.prod.api.tabsplatform.com/mcp"
    }
  }
}
```

#### Other clients

Point any client that supports Streamable HTTP at the server URL. Clients without remote MCP support can bridge through `mcp-remote`:

```json
{
  "mcpServers": {
    "tabs": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://integrators.prod.api.tabsplatform.com/mcp"]
    }
  }
}
```

The first time a Tabs tool runs, your client opens the Tabs sign-in page. No API key is required.

### Verify the connection

Try a prompt:

* "Which Tabs instances do I have access to?"
* "Which invoices are overdue and what's the total outstanding?"

### Multiple instances

If your account can access more than one Tabs instance, name the one you want in your prompt ("for Acme, show\..."). Single-instance accounts are selected automatically.

## Using Tabs MCP

Prompts work best when they name a time range and the view you want. These workflows are what finance teams run most often, and each maps to a small set of tools:

| Workflow                 | Example prompt                                                                         | Tools                                                    |
| ------------------------ | -------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| AR aging                 | "Build an AR aging for Acme with 30/60/90+ buckets and flag stale balances"            | `invoices_list`, `customers_list`                        |
| Recognized revenue trend | "Recognized revenue by month for 2026, split actuals from scheduled"                   | `revenue_list`                                           |
| Revenue by product       | "Break down Q2 revenue by category and flag anything uncategorized"                    | `revenue_list` (with `categories`)                       |
| ARR and renewal exposure | "Chart ARR over the last 12 months and show what's rolling off without a renewal"      | `reports_arr_get`, `renewals_list`                       |
| Top customers            | "Top 20 customers by revenue this year, recurring vs one-time"                         | `revenue_list`, `reports_arr_get`                        |
| Deferred roll-forward    | "Deferred revenue roll-forward for August: beginning + billings − recognized = ending" | `revenue_list`, `invoices_list`                          |
| Revenue close pack       | "Run a revenue close review for September"                                             | all of the above                                         |
| Contract drill-down      | "How is Acme's contract being recognized, and what's left on each obligation?"         | `contracts_get`, `contracts_performance_obligations_get` |
| Cash forecast            | "What does our cash forecast look like for the next quarter?"                          | `reports_cash_forecasting_get`                           |

For portfolio revenue questions, `revenue_list` alone is enough: each row carries recognized, deferred, and unbilled totals for one customer in one month. Use `reports_arr_get` for ARR rather than deriving it from revenue.

## Available tools

All tools are read-only. Disconnect and reconnect your client to pick up new tools as they ship.

| Area               | Tools                                                                                                                                                                            |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Setup              | `list_merchants`, `merchants_info_get`                                                                                                                                           |
| Customers          | `customers_list`, `customers_get`, `customers_contacts_list`                                                                                                                     |
| Contracts          | `contracts_list`, `contracts_get`, `contracts_usage_get`, `contracts_billing_term_groups_get`, `contracts_performance_obligations_get`, `billing_terms_list`, `obligations_list` |
| Invoices           | `invoices_list`, `invoices_get`                                                                                                                                                  |
| Payments           | `payments_list`, `payments_get`                                                                                                                                                  |
| Credit memos       | `credit_memos_list`, `credit_memos_get`, `credit_memos_by_invoice`                                                                                                               |
| Items & products   | `items_list`, `items_get`, `products_list`, `products_get`                                                                                                                       |
| Revenue            | `revenue_list`, `journal_entries_list`                                                                                                                                           |
| Commitments        | `commitments_list`, `commitments_get`                                                                                                                                            |
| Renewals & reports | `renewals_list`, `reports_arr_get`, `reports_cash_forecasting_get`                                                                                                               |

## Permissions

Your AI assistant sees exactly what you see in Tabs, nothing more. Access follows your existing Tabs login and role.

## Troubleshooting

**Your assistant can't reach Tabs or asks you to sign in again**

Disconnect and reconnect Tabs, then sign in with the same account you use for the Tabs app.

* **Claude:** Settings → Connectors
* **ChatGPT:** Settings → Apps

**You see a rate limit message**

Wait a minute and try again.

**You got data from the wrong company**

If you have access to more than one Tabs instance, name the one you want in your prompt, e.g. "For Acme, show overdue invoices."

Still stuck? Email [support@tabsplatform.com](mailto:support@tabsplatform.com) or message us in your shared Slack channel.