Tabs MCP Connector — Setup & Usage Guide
Last updated: April 22, 2026
Overview
The Tabs MCP connector lets AI assistants like Claude query your billing, revenue, and contract data through the Model Context Protocol. Connect your AI tools to Tabs and ask questions in natural language — no custom integration code required.
Protocol: Model Context Protocol (MCP) over Streamable HTTP
Authentication: OAuth 2.0
Version: 1.0.0
Prerequisites
Before connecting, you'll need:
A Tabs platform account with access to at least one merchant
An MCP-compatible AI client (Claude Code, Claude Desktop, or any client supporting MCP over Streamable HTTP)
If you don't yet have a Tabs account, contact your account manager or reach out to support@tabsplatform.com to get started.
Getting Started
1. Connect Your MCP Client
Add Tabs to your MCP client configuration:
Claude Code
{
"mcpServers": {
"tabs": {
"type": "url",
"url": "<https://integrators.prod.api.tabsplatform.com/mcp>"
}
}
}
Claude Desktop
Add to your claude_desktop_config.json:
"mcpServers": {
"tabs": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://integrators.prod.api.tabsplatform.com/mcp"
]
}
}Other MCP clients
Point any Streamable HTTP-compatible MCP client at:
POST <https://integrators.prod.api.tabsplatform.com/mcp>
The server is stateless — no session management required.
2. Authenticate
When you first interact with a Tabs tool, your MCP client will prompt you to sign in via OAuth. The connector uses standard OAuth 2.0 discovery (RFC 8414 / RFC 9728), so compatible clients handle the flow automatically — no API keys or manual token management needed.
3. Select a Merchant
After authenticating, start by calling list_merchants to see which merchants your account has access to. If you only have access to one merchant, it's selected automatically. Otherwise, pass the merchant_id parameter to scope each tool call.
Available Tools
All tools are read-only (readOnlyHint: true). Every tool except list_merchants requires a merchant_id parameter.
Setup
ToolDescription | |
| List all merchants your account has access to. Call this first. |
| Get details about a specific merchant |
Customers
ToolDescription | |
| List customers with optional filtering by name, external ID, or last updated date |
| Get a single customer by ID |
| List contacts for a specific customer |
Contracts
ToolDescription | |
| List contracts with filtering by name, external ID, source, status, customer, or last updated date |
| Get a single contract by ID |
| Get usage data for a contract, optionally filtered by event type |
| Get billing term groups for a contract |
| Get performance obligations for a contract |
Invoices
ToolDescription | |
| List invoices with filtering by customer, contract, status, issue date, due date, and more |
| Get a single invoice (requires customer ID) |
Payments
ToolDescription | |
| List payments with filtering by received date, status, type, invoice, or customer |
| Get a single payment (requires customer and invoice IDs) |
Credit Memos
ToolDescription | |
| List credit memos with filtering by number, customer, issue date range, or status |
| Get a single credit memo by ID |
| Get all credit memos for a specific invoice |
Items & Products
ToolDescription | |
| List items with filtering by name, external ID, or external ID type |
| Get a single item by ID |
| List products with filtering by name or status |
| Get a single product by ID |
Revenue & Commitments
ToolDescription | |
| List revenue data with filtering by month range (YYYY-MM) or customer |
| List commitments with filtering by customer or contract |
| Get a single commitment by ID |
Renewals & Reports
ToolDescription | |
| List renewals with filtering by contract, type, status, or contract end date |
| Get the cash forecasting report |
Response Format
Successful tool response
Tool results are returned as JSON text content. For single-resource tools:
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Acme Inc.",
"parentCustomerId": null,
"defaultCurrency": "USD",
"primaryBillingContactName": "John Doe",
"primaryBillingContactEmail": "john.doe@example.com",
"secondaryBillingContacts": ["jane.doe@example.com"],
"billingAddress": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postalCode": "94105",
"country": "US"
},
"externalIds": [
{ "type": "NETSUITE", "id": "NS-10042" }
],
"lastUpdatedAt": "2025-06-15T14:30:00.000Z",
"customFields": [],
"autoCharge": true,
"dunningDisabled": false
}
Paginated list response
List tools return data with pagination metadata:
{
"data": [
{ "id": "...", "name": "Acme Inc.", "..." : "..." },
{ "id": "...", "name": "Globex Corp.", "..." : "..." }
],
"currentPage": 1,
"limit": 50,
"totalItems": 142
}
Error response
When a tool encounters an error, it returns an error message with isError: true:
{
"error": "You do not have access to merchant abc-123. Call list_merchants to see available options."
}
Common error scenarios:
ErrorCauseResolution | ||
Missing or invalid authorization header | No Bearer token provided | Sign in again — your MCP client will re-trigger the OAuth flow |
Invalid or expired token | OAuth token has expired | Re-authenticate via your MCP client |
User not found or has no manufacturer access | Account not provisioned in Tabs | Contact your Tabs admin to ensure your account has merchant access |
You do not have access to merchant X | Invalid | Call |
Invalid filter property: X | Unsupported filter field | Check the tool description for supported filter properties |
Invalid filter rule: X | Unrecognized filter operator | Use a supported rule: |
Filtering
Tools that support filtering accept a filter string parameter. Use the format:
property:rule:value
Combine multiple filters with commas:
name:eq:Acme Corp,status:eq:active
Available rules:
RuleDescriptionExample | ||
| Equals |
|
| Not equals |
|
| Greater than |
|
| Greater than or equal |
|
| Less than |
|
| Less than or equal |
|
| Contains (partial match) |
|
| In list |
|
| Not in list |
|
| Between two values |
|
Each tool's description lists which filter properties it supports.
Pagination
List tools support pagination with two optional parameters:
ParameterTypeDefaultDescription | |||
| integer | 1 | Page number (starting at 1) |
| integer | 50 | Items per page |
Rate Limits
Requests are rate-limited per merchant. If you exceed the limit, the server returns HTTP 429 with a message indicating the current limit and reset window.
Rate limit headers are included on every response:
HeaderDescription | |
| Maximum requests allowed in the current window |
| Requests remaining in the current window |
| Time (in seconds) until the rate limit window resets |
If you hit a rate limit, wait for the reset window before retrying. AI clients will typically handle this automatically.
Examples
Here are some things you can ask your AI assistant once connected:
Revenue overview
"Show me this month's revenue broken down by customer"
Overdue invoices
"Which invoices are overdue and what's the total outstanding amount?"
Contract details
"Pull up the contract for Acme Corp and show me the billing term groups"
Cash forecasting
"What does our cash forecast look like?"
Customer lookup
"Find the contact info for Wilson Electric"
The AI assistant will automatically call the right tools, handle pagination, and combine results to answer your question.
FAQ
Do I need an API key?
No. The Tabs MCP connector uses OAuth 2.0. Your MCP client handles the sign-in flow automatically.
Can AI assistants modify my data?
No. All tools are read-only. The connector can only retrieve data — it cannot create, update, or delete anything.
Which AI clients are supported?
Any MCP-compatible client that supports Streamable HTTP transport, including Claude Code, Claude Desktop, and other tools implementing the Model Context Protocol.
What data can I access?
You can access the same data available through the Tabs Integrators API: customers, contracts, invoices, payments, credit memos, items, products, revenue, commitments, renewals, and reports.
How is my data secured?
Authentication is handled via OAuth 2.0. All requests are scoped to the merchants your account has access to — you can only query data you're authorized to see.
Is there a privacy policy?
Yes. See the Tabs Privacy Policy for details on how your data is handled.
Versioning & Changelog
The Tabs MCP connector follows semantic versioning. The current version is 1.0.0.
Breaking changes will be communicated in advance via email and release notes. Non-breaking additions (new tools, new filter properties) are deployed continuously.
VersionDateNotes | ||
1.0.0 | April 2026 | Initial release — 26 read-only tools across billing, revenue, contracts, and more |
Support
If you need help or run into issues:
Email: support@tabsplatform.com
Slack: Reach out via your dedicated Tabs <> Merchant Slack channel
Documentation: Tabs API Docs
When reaching out, include the error message and the tool name you were calling so we can help quickly.