From pax8
Guides Pax8 MCP API tools: connect to hosted server with token auth, use parameters/pagination/sorting/filtering for 15 tools on companies/products/subscriptions/orders/invoices, handle rate limits/errors.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin pax8This skill uses the workspace's default tool permissions.
Pax8 provides a first-party hosted MCP server at `https://mcp.pax8.com/v1/mcp` for AI tool integration. The MCP server exposes 15 tools covering companies, products, subscriptions, orders, invoices, usage, and quotes. This skill covers MCP server connection, the complete tool reference, pagination patterns, sorting, error handling, and best practices.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
Pax8 provides a first-party hosted MCP server at https://mcp.pax8.com/v1/mcp for AI tool integration. The MCP server exposes 15 tools covering companies, products, subscriptions, orders, invoices, usage, and quotes. This skill covers MCP server connection, the complete tool reference, pagination patterns, sorting, error handling, and best practices.
Pax8 hosts an official MCP server. Authentication uses a single token:
MCP Server URL: https://mcp.pax8.com/v1/mcp
Required Header:
| Header | Value | Description |
|---|---|---|
x-pax8-mcp-token | <token> | MCP token from Pax8 portal |
export PAX8_MCP_TOKEN="your-mcp-token"
{
"mcpServers": {
"pax8": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://mcp.pax8.com/v1/mcp",
"--header", "x-pax8-mcp-token:YOUR_TOKEN"
]
}
}
}
| Tool | Description | Parameters |
|---|---|---|
pax8-list-companies | List and filter companies | page, size, sort (name/city/country/stateOrProvince/postalCode), order (asc/desc), company_name, status (active/inactive/deleted) |
pax8-get-company-by-uuid | Get a single company | uuid (required) |
| Tool | Description | Parameters |
|---|---|---|
pax8-list-products | Search the product catalog | productName, page, size, vendorName, search |
pax8-get-product-by-uuid | Get a single product | productId (required) |
pax8-get-product-pricing-by-uuid | Get product pricing | productId (required), companyId (optional) |
| Tool | Description | Parameters |
|---|---|---|
pax8-list-subscriptions | List and filter subscriptions | page, size, sort, status (Active/Cancelled/PendingManual/PendingAutomated/PendingCancel/WaitingForDetails/Trial/Converted/PendingActivation/Activated), billingTerm (monthly/annual/two-year/three-year/one-time/trial/activation), companyId, productId |
pax8-get-subscription-by-uuid | Get a single subscription | uuid (required) |
| Tool | Description | Parameters |
|---|---|---|
pax8-list-orders | List orders | page, size, companyId |
pax8-get-order-by-uuid | Get a single order | uuid (required) |
| Tool | Description | Parameters |
|---|---|---|
pax8-list-invoices | List and filter invoices | page, size, sort, status (unpaid/paid/void/carried/nothing due), invoiceDate, invoiceDateRangeStart, invoiceDateRangeEnd, dueDate, total, balance, carriedBalance, companyId |
pax8-get-invoice-by-uuid | Get a single invoice | uuid (required) |
| Tool | Description | Parameters |
|---|---|---|
pax8-get-usage-summary | Get usage summary for a subscription | subscriptionId (required), page, size, sort, resourceGroup, companyId |
pax8-get-detailed-usage-summary | Get detailed usage data | usageSummaryId (required), usageDate, page, size |
| Tool | Description | Parameters |
|---|---|---|
pax8-list-quotes | List and filter quotes | page, limit, sort, search, status (accepted/closed/declined/draft/expired/pending/sent) |
pax8-get-quote-by-uuid | Get a single quote | quoteId (required) |
All list tools use zero-based page pagination with configurable page size:
Pagination Parameters:
| Parameter | Description | Default | Max |
|---|---|---|---|
page | Page number (0-based) | 0 | - |
size | Results per page | 50 | 200 |
Pagination Response Metadata:
| Field | Description |
|---|---|
page.size | Number of results per page |
page.totalElements | Total number of records |
page.totalPages | Total number of pages |
page.number | Current page number (0-based) |
To fetch all results, call the list tool repeatedly, incrementing page from 0 until page.number >= page.totalPages - 1:
page=0 and size=200page.totalPages in the responsepage=1, then page=2, etc.content arrays from each responseUse the sort parameter on list tools. The order parameter specifies direction:
| Parameter | Values | Description |
|---|---|---|
sort | Varies by tool | Field to sort by |
order | asc, desc | Sort direction |
Company sort fields: name, city, country, stateOrProvince, postalCode
To list companies sorted by name ascending:
pax8-list-companies with sort=name, order=asc, size=200Each list tool supports specific filter parameters:
| Tool | Filter Parameters |
|---|---|
pax8-list-companies | company_name, status (active/inactive/deleted) |
pax8-list-products | productName, vendorName, search |
pax8-list-subscriptions | companyId, productId, status, billingTerm |
pax8-list-orders | companyId |
pax8-list-invoices | companyId, status, invoiceDate, invoiceDateRangeStart, invoiceDateRangeEnd, dueDate, total, balance, carriedBalance |
pax8-list-quotes | search, status |
| Status | Description |
|---|---|
Active | Subscription is live and billing |
Cancelled | Subscription has been terminated |
PendingManual | Awaiting manual provisioning |
PendingAutomated | Automated provisioning in progress |
PendingCancel | Cancellation in progress |
WaitingForDetails | Additional information needed |
Trial | Free trial active |
Converted | Trial converted to paid |
PendingActivation | Activation pending |
Activated | Recently activated |
| Status | Description |
|---|---|
unpaid | Invoice issued, payment not received |
paid | Invoice has been paid |
void | Invoice has been voided |
carried | Balance carried forward |
nothing due | No payment required |
Single Resource:
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Acme Corporation",
"address": {
"street": "123 Main St",
"city": "Springfield",
"stateOrProvince": "IL",
"postalCode": "62704",
"country": "US"
},
"phone": "555-123-4567",
"website": "https://www.acme.com",
"status": "Active",
"billOnBehalfOfEnabled": false,
"selfServiceAllowed": false,
"orderApprovalRequired": false,
"createdDate": "2024-01-15T10:30:00.000Z"
}
Paginated Collection:
{
"page": {
"size": 50,
"totalElements": 237,
"totalPages": 5,
"number": 0
},
"content": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Acme Corporation"
}
]
}
| Metric | Limit |
|---|---|
| Successful calls per minute | 1000 |
When rate limited, the MCP tool will return an error. Wait before retrying. The MCP server handles authentication automatically, so rate limit responses are the main error to watch for.
| Error | Cause | Resolution |
|---|---|---|
| Tool not found | MCP server not connected | Verify MCP token and server URL |
| Invalid UUID | Malformed resource ID | Check UUID format |
| Resource not found | ID does not exist | Verify the resource UUID |
| Rate limited | Too many requests | Wait 60 seconds and retry |
| Invalid parameter | Wrong filter value | Check allowed values for the parameter |
https://mcp.pax8.com/v1/mcppax8-list-companies with size=1 to verify connectivitysize=200 to minimize total tool calls when fetching all recordssort=name, order=asc for predictable pagination resultscompanyId when checking a specific client's datapax8-list-products supports a search parameter for flexible text matching