Pax8 MCP Tools & API Patterns
Overview
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.
Anti-triggers
- Sherweb's request model — the other CSP marketplace here uses OAuth
client-credentials plus a subscription-key header, underscored tool
names, and 1-based pagination, against Pax8's single token, hyphenated
tool names, and 0-based pagination. Use
sherweb-api-patterns. Copying
a paging pattern between the two silently changes which records you get.
- Pax8 tools missing from the client entirely, or a 401 before any call
succeeds — that is a gateway-connection problem; use
shared-skills-wyre-gateway-troubleshooting.
- How to change something — nothing in this surface writes. All 15
tools are list or fetch; orders, quantity changes, and cancellations
happen in the Pax8 portal. That is a scope fact, not a missing
permission, and no other skill in this plugin works around it.
Connection & Authentication
MCP Server
Pax8 hosts an official MCP server. Authentication uses a single token:
- Log into app.pax8.com
- Navigate to Integrations > MCP (or visit app.pax8.com/integrations/mcp)
- Generate an MCP 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 |
Environment Variables
export PAX8_MCP_TOKEN="your-mcp-token"
Claude Desktop Configuration
{
"mcpServers": {
"pax8": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://mcp.pax8.com/v1/mcp",
"--header", "x-pax8-mcp-token:YOUR_TOKEN"
]
}
}
}
Complete MCP Tool Reference
Company Tools
| 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) |
Product Tools
| 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) |
Subscription Tools
| 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) |
Order Tools
| Tool |
Description |
Parameters |
pax8-list-orders |
List orders |
page, size, companyId |
pax8-get-order-by-uuid |
Get a single order |
uuid (required) |
Invoice Tools
| 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) |
Usage Tools
| 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 |
Quote Tools
| 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) |
Pagination
Page-Based Pagination
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) |
Iterating Through All Pages
To fetch all results, call the list tool repeatedly, incrementing page from 0 until page.number >= page.totalPages - 1:
- Call the tool with
page=0 and size=200
- Check
page.totalPages in the response
- If more pages exist, call again with
page=1, then page=2, etc.
- Collect
content arrays from each response
Sorting
Sort Parameters
Use 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
Example
To list companies sorted by name ascending:
- Call
pax8-list-companies with sort=name, order=asc, size=200
Filtering
Filter Parameters by Tool
Each 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 |
Subscription Status Values
| 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 |
Invoice Status Values
| 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 |
Response Format
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"
}
]
}
Rate Limiting
Rate Limit Details
| 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 Handling
Common Errors
| 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 |
Troubleshooting MCP Connection
- Verify token - Ensure the MCP token is valid and not expired
- Check URL - MCP server URL must be
https://mcp.pax8.com/v1/mcp
- Test with a simple call - Try
pax8-list-companies with size=1 to verify connectivity
- Regenerate token - If authentication fails, generate a new token from the Pax8 portal
Best Practices
- Use maximum page size - Set
size=200 to minimize total tool calls when fetching all records
- Filter server-side - Use tool parameters to narrow results rather than fetching everything
- Sort consistently - Use
sort=name, order=asc for predictable pagination results
- Use UUIDs - All Pax8 resource IDs are UUIDs; validate format before passing to tools
- Use company-scoped queries - Always pass
companyId when checking a specific client's data
- Paginate large results - The full Pax8 catalog has thousands of products; always paginate
- Cache results when appropriate - Company and product data changes infrequently
- Use the search parameter -
pax8-list-products supports a search parameter for flexible text matching
Related Skills
1---2name: pax8-api-patterns3description: Pax8 MCP fundamentals: the official hosted MCP server connection, all 15 Pax8 MCP tools and their parameters, pagination, sorting, filtering, response shapes, rate limiting, and error handling.4---56# Pax8 MCP Tools & API Patterns78## Overview910Pax8 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.1112## Anti-triggers1314- **Sherweb's request model** — the other CSP marketplace here uses OAuth15 client-credentials plus a subscription-key header, underscored tool16 names, and 1-based pagination, against Pax8's single token, hyphenated17 tool names, and 0-based pagination. Use `sherweb-api-patterns`. Copying18 a paging pattern between the two silently changes which records you get.19- **Pax8 tools missing from the client entirely, or a 401 before any call20 succeeds** — that is a gateway-connection problem; use21 `shared-skills-wyre-gateway-troubleshooting`.22- **How to change something** — nothing in this surface writes. All 1523 tools are list or fetch; orders, quantity changes, and cancellations24 happen in the Pax8 portal. That is a scope fact, not a missing25 permission, and no other skill in this plugin works around it.2627## Connection & Authentication2829### MCP Server3031Pax8 hosts an official MCP server. Authentication uses a single token:32331. Log into [app.pax8.com](https://app.pax8.com)342. Navigate to **Integrations > MCP** (or visit [app.pax8.com/integrations/mcp](https://app.pax8.com/integrations/mcp))353. Generate an MCP token3637**MCP Server URL:** `https://mcp.pax8.com/v1/mcp`3839**Required Header:**4041| Header | Value | Description |42|--------|-------|-------------|43| `x-pax8-mcp-token` | `<token>` | MCP token from Pax8 portal |4445### Environment Variables4647```bash48export PAX8_MCP_TOKEN="your-mcp-token"49```5051### Claude Desktop Configuration5253```json54{55 "mcpServers": {56 "pax8": {57 "command": "npx",58 "args": [59 "-y", "mcp-remote",60 "https://mcp.pax8.com/v1/mcp",61 "--header", "x-pax8-mcp-token:YOUR_TOKEN"62 ]63 }64 }65}66```6768## Complete MCP Tool Reference6970### Company Tools7172| Tool | Description | Parameters |73|------|-------------|------------|74| `pax8-list-companies` | List and filter companies | `page`, `size`, `sort` (name/city/country/stateOrProvince/postalCode), `order` (asc/desc), `company_name`, `status` (active/inactive/deleted) |75| `pax8-get-company-by-uuid` | Get a single company | `uuid` (required) |7677### Product Tools7879| Tool | Description | Parameters |80|------|-------------|------------|81| `pax8-list-products` | Search the product catalog | `productName`, `page`, `size`, `vendorName`, `search` |82| `pax8-get-product-by-uuid` | Get a single product | `productId` (required) |83| `pax8-get-product-pricing-by-uuid` | Get product pricing | `productId` (required), `companyId` (optional) |8485### Subscription Tools8687| Tool | Description | Parameters |88|------|-------------|------------|89| `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` |90| `pax8-get-subscription-by-uuid` | Get a single subscription | `uuid` (required) |9192### Order Tools9394| Tool | Description | Parameters |95|------|-------------|------------|96| `pax8-list-orders` | List orders | `page`, `size`, `companyId` |97| `pax8-get-order-by-uuid` | Get a single order | `uuid` (required) |9899### Invoice Tools100101| Tool | Description | Parameters |102|------|-------------|------------|103| `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` |104| `pax8-get-invoice-by-uuid` | Get a single invoice | `uuid` (required) |105106### Usage Tools107108| Tool | Description | Parameters |109|------|-------------|------------|110| `pax8-get-usage-summary` | Get usage summary for a subscription | `subscriptionId` (required), `page`, `size`, `sort`, `resourceGroup`, `companyId` |111| `pax8-get-detailed-usage-summary` | Get detailed usage data | `usageSummaryId` (required), `usageDate`, `page`, `size` |112113### Quote Tools114115| Tool | Description | Parameters |116|------|-------------|------------|117| `pax8-list-quotes` | List and filter quotes | `page`, `limit`, `sort`, `search`, `status` (accepted/closed/declined/draft/expired/pending/sent) |118| `pax8-get-quote-by-uuid` | Get a single quote | `quoteId` (required) |119120## Pagination121122### Page-Based Pagination123124All list tools use zero-based page pagination with configurable page size:125126**Pagination Parameters:**127128| Parameter | Description | Default | Max |129|-----------|-------------|---------|-----|130| `page` | Page number (0-based) | 0 | - |131| `size` | Results per page | 50 | 200 |132133**Pagination Response Metadata:**134135| Field | Description |136|-------|-------------|137| `page.size` | Number of results per page |138| `page.totalElements` | Total number of records |139| `page.totalPages` | Total number of pages |140| `page.number` | Current page number (0-based) |141142### Iterating Through All Pages143144To fetch all results, call the list tool repeatedly, incrementing `page` from 0 until `page.number >= page.totalPages - 1`:1451461. Call the tool with `page=0` and `size=200`1472. Check `page.totalPages` in the response1483. If more pages exist, call again with `page=1`, then `page=2`, etc.1494. Collect `content` arrays from each response150151## Sorting152153### Sort Parameters154155Use the `sort` parameter on list tools. The `order` parameter specifies direction:156157| Parameter | Values | Description |158|-----------|--------|-------------|159| `sort` | Varies by tool | Field to sort by |160| `order` | `asc`, `desc` | Sort direction |161162**Company sort fields:** `name`, `city`, `country`, `stateOrProvince`, `postalCode`163164### Example165166To list companies sorted by name ascending:167- Call `pax8-list-companies` with `sort=name`, `order=asc`, `size=200`168169## Filtering170171### Filter Parameters by Tool172173Each list tool supports specific filter parameters:174175| Tool | Filter Parameters |176|------|-------------------|177| `pax8-list-companies` | `company_name`, `status` (active/inactive/deleted) |178| `pax8-list-products` | `productName`, `vendorName`, `search` |179| `pax8-list-subscriptions` | `companyId`, `productId`, `status`, `billingTerm` |180| `pax8-list-orders` | `companyId` |181| `pax8-list-invoices` | `companyId`, `status`, `invoiceDate`, `invoiceDateRangeStart`, `invoiceDateRangeEnd`, `dueDate`, `total`, `balance`, `carriedBalance` |182| `pax8-list-quotes` | `search`, `status` |183184### Subscription Status Values185186| Status | Description |187|--------|-------------|188| `Active` | Subscription is live and billing |189| `Cancelled` | Subscription has been terminated |190| `PendingManual` | Awaiting manual provisioning |191| `PendingAutomated` | Automated provisioning in progress |192| `PendingCancel` | Cancellation in progress |193| `WaitingForDetails` | Additional information needed |194| `Trial` | Free trial active |195| `Converted` | Trial converted to paid |196| `PendingActivation` | Activation pending |197| `Activated` | Recently activated |198199### Invoice Status Values200201| Status | Description |202|--------|-------------|203| `unpaid` | Invoice issued, payment not received |204| `paid` | Invoice has been paid |205| `void` | Invoice has been voided |206| `carried` | Balance carried forward |207| `nothing due` | No payment required |208209## Response Format210211**Single Resource:**212213```json214{215 "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",216 "name": "Acme Corporation",217 "address": {218 "street": "123 Main St",219 "city": "Springfield",220 "stateOrProvince": "IL",221 "postalCode": "62704",222 "country": "US"223 },224 "phone": "555-123-4567",225 "website": "https://www.acme.com",226 "status": "Active",227 "billOnBehalfOfEnabled": false,228 "selfServiceAllowed": false,229 "orderApprovalRequired": false,230 "createdDate": "2024-01-15T10:30:00.000Z"231}232```233234**Paginated Collection:**235236```json237{238 "page": {239 "size": 50,240 "totalElements": 237,241 "totalPages": 5,242 "number": 0243 },244 "content": [245 {246 "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",247 "name": "Acme Corporation"248 }249 ]250}251```252253## Rate Limiting254255### Rate Limit Details256257| Metric | Limit |258|--------|-------|259| Successful calls per minute | 1000 |260261When 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.262263## Error Handling264265### Common Errors266267| Error | Cause | Resolution |268|-------|-------|------------|269| Tool not found | MCP server not connected | Verify MCP token and server URL |270| Invalid UUID | Malformed resource ID | Check UUID format |271| Resource not found | ID does not exist | Verify the resource UUID |272| Rate limited | Too many requests | Wait 60 seconds and retry |273| Invalid parameter | Wrong filter value | Check allowed values for the parameter |274275### Troubleshooting MCP Connection2762771. **Verify token** - Ensure the MCP token is valid and not expired2782. **Check URL** - MCP server URL must be `https://mcp.pax8.com/v1/mcp`2793. **Test with a simple call** - Try `pax8-list-companies` with `size=1` to verify connectivity2804. **Regenerate token** - If authentication fails, generate a new token from the Pax8 portal281282## Best Practices2832841. **Use maximum page size** - Set `size=200` to minimize total tool calls when fetching all records2852. **Filter server-side** - Use tool parameters to narrow results rather than fetching everything2863. **Sort consistently** - Use `sort=name`, `order=asc` for predictable pagination results2874. **Use UUIDs** - All Pax8 resource IDs are UUIDs; validate format before passing to tools2885. **Use company-scoped queries** - Always pass `companyId` when checking a specific client's data2896. **Paginate large results** - The full Pax8 catalog has thousands of products; always paginate2907. **Cache results when appropriate** - Company and product data changes infrequently2918. **Use the search parameter** - `pax8-list-products` supports a `search` parameter for flexible text matching292293## Related Skills294295- [Pax8 Companies](../companies/SKILL.md) - Company management296- [Pax8 Products](../products/SKILL.md) - Product catalog297- [Pax8 Subscriptions](../subscriptions/SKILL.md) - Subscription lifecycle298- [Pax8 Orders](../orders/SKILL.md) - Order management299- [Pax8 Invoices](../invoices/SKILL.md) - Invoice and billing