Connectors · MSP & PSA
Pax8 MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Pax8 and the rest of your systems. It gives your agent 99 Pax8 actions (54 reads, 34 writes and 11 that wait for a confirmation) and holds the Pax8 credential itself, so the agent never does. It paces Pax8's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "pax8.quotes.list", intent: "check which Pax8 account is connected"}# List Pax8 quotes · read · 1 upstream call- 99actionsin one signed file
- 54readlook, never change
- 34writecreate and update
- 11wait for a yesdestructive, confirmed first
Set up
Connect Pax8 in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Pax8.
OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.
client_idPax8 client idclient_secretPax8 client secret
account { op: "connections.requirements", service: "pax8" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "pax8.quotes.list" }# list pax8 quotes · read · 1 upstream callcheck { action: "pax8.quotes.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Pax8 at a glance
- Sign-in
- OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.
- You provide
client_idclient_secret- Limits we pace to
- 1,000 calls a minute, per connection
- API covered
- Pax8 API 1
api.pax8.com/v1 - Built from
- Pax8's documentation, read 15 September 2026devx.pax8.comdevx.pax8.comdevx.pax8.com
- Service file
- Version 2.0.0, signed (Ed25519)
- Cached reads
- 54 of 54 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 8 in the store
- Shared entities
- 8, so ask can line Pax8 up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Pax8.
99 actions in 1 area. Every one carries its effect, so a key can allow the reads and hold the rest.
- 54readlook, never change
- 34writecreate and update
- 11destructivewait for a confirmation
Distribution
9954 read · 34 write · 11 destructive
List Pax8 quotes · List Pax8 orders · List Pax8 companies · List Pax8 subscriptions
Top actions
The Pax8 API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 66 of Pax8's 72 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
pax8.quotes.listList Pax8 quotes | List quotes with optional search, status and intent filters. | read | finance.quote.list52 connectors |
pax8.orders.listList Pax8 orders | List orders placed through Pax8, optionally for one company. | read | finance.purchase_order.list45 connectors |
pax8.companies.listList Pax8 companies | List the client companies under this Pax8 partner account, filtered by status or location. | read | crm.company.list162 connectors |
pax8.subscriptions.listList Pax8 subscriptions | List subscriptions across clients, filtered by company, product, status or billing term. | read | finance.subscription.list37 connectors |
pax8.products.listList Pax8 products | List the products in the Pax8 marketplace, optionally searched by name, vendor or SKU. | read | commerce.product.list112 connectors |
pax8.company_contacts.listList a company's contacts | List the contacts on one Pax8 client company, newest first. | read | crm.contact.list177 connectors |
pax8.quotes.createCreate a Pax8 quote | Start a new quote for a client company. | write | finance.quote.create52 connectors |
pax8.orders.createPlace a Pax8 order | Place an order for one or more products against a client company. | write | finance.purchase_order.create43 connectors |
pax8.companies.createCreate a Pax8 company | Create a client company, optionally with its first contacts. | write | crm.company.create142 connectors |
pax8.company_contacts.createCreate a company contact | Add a contact to a Pax8 client company. | write | crm.contact.create161 connectors |
pax8.product_dependencies.listGet a product's dependencies | List the products and commitments a product depends on. | read | commerce.product.list112 connectors |
pax8.quotes.deleteDelete a Pax8 quote | Delete a quote by id. | destructive | finance.quote.delete36 connectors |
Try it
Prompts to paste into Claude.
Each one names the Pax8 actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Pax8 quotes went out this month and are still waiting for an answer?
calls
pax8.quotes.list - Planwrite
Build a quote, add line items and publish it in Pax8. Ask me before anything is sent or changed.
calls
pax8.quote_preferences.getpax8.quotes.createpax8.quote_sections.createpax8.quote_line_items.createpax8.quote_access_list.create+2 more - Planwrite
Place an order and wait for provisioning to finish in Pax8. Ask me before anything is sent or changed.
calls
pax8.companies.getpax8.product_pricing.listpax8.orders.createpax8.orders.getpax8.subscriptions.list - Writewrite
Create a Pax8 quote in Pax8. Show me exactly what you will send before you save it.
calls
pax8.quotes.create - Across systemsread
Which Pax8 companies have invoices in NetSuite, and how many each?
calls
pax8.companies.listnetsuite.views.invoices
Across your systems
Pax8, joined to the rest of your business.
One ask fetches from Pax8 and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which Pax8 companies have invoices in NetSuite, and how many each?
pax8.companies.list+netsuite.views.invoices, oncrm.company· NetSuiteWhich Pax8 companies have tickets in HubSpot CRM, and how many each?
pax8.companies.list+hubspot_crm.tickets.list, oncrm.company· HubSpot CRM
crm.company 227crm.contact 192commerce.product 109crm.location 49finance.quote 45finance.purchase_order 35finance.subscription 24platform.invoice 12ask { intent: "which Pax8 companies have invoices in NetSuite, and how many each", steps: [ { action: "pax8.companies.list", as: "co", input: {}, limit: 100, max_pages: 5 }, { action: "netsuite.views.invoices", as: "inv", input: {}, limit: 100, max_pages: 5 }, { join: { left: "co", right: "inv", on: "crm.company", group_by: "co.name", select: ["co.name", "count(inv.id) as invoices"] } } ]}The plan store
Ready-made plans for Pax8.
8 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.
Review this month's invoices and pull the line detail
Use it when Finance wants the month's Pax8 invoices with their line detail before approving the bill run.
Triage a failing webhook and retry its failed deliveries
Use it when A Pax8 webhook is reporting delivery errors and the failed events need inspecting and replaying.
Onboard a new client company with its primary contact
Use it when A new managed-services client has signed and needs a Pax8 company record plus a primary billing contact.
A person decides
Add first name last name (email) as the primary billing contact on name.
Sweep unfulfilled provision requests and start a new attempt
Use it when Provisioning is backed up and stalled Pax8 provision requests need inspecting and re-attempting.
Place an order and wait for provisioning to finish
Use it when A client has approved a new product and you need to order it in Pax8 and confirm it provisioned.
A person decides
Place a Pax8 order for name covering number of line items line item(s) of product product id.
Build a quote, add line items and publish it
Use it when Sales needs a Pax8 quote assembled from known line items and published to a client after review.
A person decides
Publish quote id to client client id with number of line items line item(s), expiring expires on.
Cancel a subscription after a human signs off
Use it when A client has asked to end a Pax8 subscription and the cancellation needs a signed-off, audited path.
A person decides
Cancel subscription subscription id (productName, qty quantity) effective cancel date, 'immediately'.
Remove a departed contact from a client company
Use it when Someone has left a client and their contact record must be removed from the Pax8 company.
A person decides
Delete contact firstName lastName (email) from name, leaving contact count contact(s) minus one.
account { op: "plans.install", slug: "pax8-monthly-invoice-review" }
# then ask for it by name; a schedule can run it on a timetableGovernance for Pax8
Destructive actions wait for a yes.
11 Pax8 actions are destructive. These are all of them:
- Delete a Pax8 quote
pax8.quotes.delete - Delete a company contact
pax8.company_contacts.delete - Delete a Pax8 webhook
pax8.webhooks.delete - Cancel a Pax8 subscription
pax8.subscriptions.cancel - Delete a Pax8 quote library attachment
pax8.quote_library_attachments.delete - Remove a topic from a Pax8 webhook
pax8.webhook_topics.delete - Delete a Pax8 quote line item
pax8.quote_line_items.delete - Bulk delete Pax8 quote line items
pax8.quote_line_items.bulk_delete - Revoke access to a Pax8 quote
pax8.quote_access_list.delete - Delete a Pax8 quote attachment
pax8.quote_attachments.delete - Remove a Pax8 quote preference attachment
pax8.quote_preference_attachments.delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete a Pax8 quote?
intent: the user asked me to delete a Pax8 quote
account { op: "keys.create", name: "pax8-agent", allowed_actions: ["pax8.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "pax8.quotes.delete", approver: "[email protected]" }, { match: "pax8.company_contacts.delete", approver: "[email protected]" }, { match: "pax8.webhooks.delete", approver: "[email protected]" } ]}Cost
What Pax8 costs on actionlake.
Every Pax8 action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Pax8 refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 99 Pax8 actions
- 54actions pageeach page of a long list is one call
- 54reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Pax8 action.
99 actions by area: the id your agent calls, what it does, and its effect.
Distribution99
pax8.companies.createCreate a Pax8 companywritepax8.companies.getGet a Pax8 companyreadpax8.companies.listList Pax8 companiesreadpax8.companies.updateUpdate a Pax8 companywritepax8.company_contacts.createCreate a company contactwritepax8.company_contacts.deleteDelete a company contactdestructivepax8.company_contacts.getGet a company contactreadpax8.company_contacts.listList a company's contactsreadpax8.company_contacts.updateUpdate a company contactwritepax8.finance_report_invoices.queryQuery the Pax8 invoice line-item reportreadpax8.invoice_draft_items.listList Pax8 draft invoice itemsreadpax8.invoice_items.listList a Pax8 invoice's line itemsreadpax8.invoices.getGet a Pax8 invoicereadpax8.invoices.listList Pax8 invoicesreadpax8.orders.createPlace a Pax8 orderwritepax8.orders.getGet a Pax8 orderreadpax8.orders.listList Pax8 ordersreadpax8.product_dependencies.listGet a product's dependenciesreadpax8.product_pricing.listGet a product's pricingreadpax8.product_provision_details.listGet a product's provisioning detailsreadpax8.products.getGet a Pax8 productreadpax8.products.listList Pax8 productsreadpax8.provision_attempts.createCreate a Pax8 provision attemptwritepax8.provision_attempts.getGet a Pax8 provision attemptreadpax8.provision_attempts.get_latestGet a Pax8 provision request's latest attemptreadpax8.provision_attempts.listList a Pax8 provision request's attemptsreadpax8.provision_details.getGet a Pax8 provision detailreadpax8.provision_details.get_latestGet a Pax8 provision request's latest detailreadpax8.provision_details.listList a Pax8 provision request's detailsreadpax8.provision_requests.getGet a Pax8 provision requestreadpax8.provision_requests.listList Pax8 provision requestsreadpax8.provision_requests.list_unfulfilledList unfulfilled Pax8 provision requestsreadpax8.provision_results.createReport a Pax8 provision resultwritepax8.provision_results.getGet a Pax8 provision resultreadpax8.provision_results.get_latestGet a Pax8 provision request's latest resultreadpax8.provision_results.listList a Pax8 provision request's resultsreadpax8.provision_simulations.create_order_eventSimulate a Pax8 order eventwritepax8.provisioner_webhooks.createCreate a Pax8 provisioner webhookwritepax8.provisioner_webhooks.getGet a Pax8 provisioner webhookreadpax8.provisioner_webhooks.get_latestGet a Pax8 provisioner's latest webhookreadpax8.provisioner_webhooks.listList a Pax8 provisioner's webhooksreadpax8.provisioners.getGet a Pax8 provisionerreadpax8.provisioners.listList Pax8 provisionersreadpax8.quote_access_list.createShare a Pax8 quotewritepax8.quote_access_list.deleteRevoke access to a Pax8 quotedestructivepax8.quote_access_list.listList a Pax8 quote's access listreadpax8.quote_attachments.copy_from_libraryCopy a library attachment onto a Pax8 quotewritepax8.quote_attachments.deleteDelete a Pax8 quote attachmentdestructivepax8.quote_attachments.download_allDownload all a Pax8 quote's attachmentsreadpax8.quote_attachments.getGet a Pax8 quote attachmentreadpax8.quote_attachments.updateUpdate a Pax8 quote's attachmentswritepax8.quote_library_attachments.add_from_quoteAdd a quote attachment to the Pax8 librarywritepax8.quote_library_attachments.deleteDelete a Pax8 quote library attachmentdestructivepax8.quote_library_attachments.getGet a Pax8 quote library attachmentreadpax8.quote_library_attachments.listList Pax8 quote library attachmentsreadpax8.quote_library_attachments.updateUpdate Pax8 quote library attachmentswritepax8.quote_line_items.bulk_deleteBulk delete Pax8 quote line itemsdestructivepax8.quote_line_items.createAdd line items to a Pax8 quotewritepax8.quote_line_items.deleteDelete a Pax8 quote line itemdestructivepax8.quote_line_items.updateUpdate a Pax8 quote's line itemswritepax8.quote_preference_attachments.createAttach library documents to Pax8 quote preferenceswritepax8.quote_preference_attachments.deleteRemove a Pax8 quote preference attachmentdestructivepax8.quote_preferences.getGet Pax8 quote preferencesreadpax8.quote_preferences.updateUpdate Pax8 quote preferenceswritepax8.quote_sections.createCreate a Pax8 quote sectionwritepax8.quote_sections.listList a Pax8 quote's sectionsreadpax8.quote_sections.updateUpdate a Pax8 quote's sectionswritepax8.quotes.createCreate a Pax8 quotewritepax8.quotes.deleteDelete a Pax8 quotedestructivepax8.quotes.getGet a Pax8 quotereadpax8.quotes.listList Pax8 quotesreadpax8.quotes.take_ownershipTake ownership of a Pax8 quotewritepax8.quotes.updateUpdate a Pax8 quotewritepax8.subscription_usage_summaries.listList a subscription's usage summariesreadpax8.subscriptions.cancelCancel a Pax8 subscriptiondestructivepax8.subscriptions.getGet a Pax8 subscriptionreadpax8.subscriptions.listList Pax8 subscriptionsreadpax8.subscriptions.updateUpdate a Pax8 subscriptionwritepax8.subscriptions_history.listGet a subscription's historyreadpax8.usage.aggregate_lines_saveSave Pax8 vendor usage lines with an aggregate quantitywritepax8.usage_lines.listList Pax8 vendor usage linesreadpax8.usage_lines.saveSave Pax8 vendor usage lineswritepax8.usage_summaries.getGet a Pax8 usage summaryreadpax8.usage_summary_lines.listList a usage summary's linesreadpax8.webhook_delivery.retryRetry a Pax8 webhook deliverywritepax8.webhook_logs.getGet a Pax8 webhook delivery logreadpax8.webhook_logs.listList a Pax8 webhook's delivery logsreadpax8.webhook_topic_definitions.listList Pax8 webhook topic definitionsreadpax8.webhook_topics.createAdd a topic to a Pax8 webhookwritepax8.webhook_topics.deleteRemove a topic from a Pax8 webhookdestructivepax8.webhook_topics.replaceReplace a Pax8 webhook's topicswritepax8.webhook_topics.testTest a Pax8 webhook topicwritepax8.webhook_topics.update_configurationUpdate a Pax8 webhook topic's filterswritepax8.webhooks.createCreate a Pax8 webhookwritepax8.webhooks.deleteDelete a Pax8 webhookdestructivepax8.webhooks.getGet a Pax8 webhookreadpax8.webhooks.listList Pax8 webhooksreadpax8.webhooks.update_configurationUpdate a Pax8 webhook's configurationwritepax8.webhooks.update_statusEnable or disable a Pax8 webhookwrite
Questions
The Pax8 MCP server, answered.
Is there a Pax8 MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 99 Pax8 actions, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Pax8.
What do I need to connect Pax8?
Pax8 client id and Pax8 client secret. The free call account { op: "connections.requirements", service: "pax8" } lists exactly what to paste.
Can an AI agent delete or change things in Pax8?
Only if its key allows it, and only with an explicit confirmation. 11 Pax8 actions are destructive, including delete a Pax8 quote, delete a company contact and delete a Pax8 webhook. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Pax8 API limit?
actionlake paces every call to the limits in the Pax8 service file: 1,000 calls a minute per connection. Repeated reads are answered from cache (54 Pax8 actions can be), which never reaches Pax8.
What does a Pax8 action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (54 Pax8 actions page). Cache hits, searches, dry runs and calls Pax8 refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Pax8 API does it cover?
The Pax8 API 1 at api.pax8.com/v1. It is built from Pax8's documentation as read on 15 September 2026. 99 actions in 1 area, each one in the signed service file (version 2.0.0).
Can I combine Pax8 with my other systems?
Yes. ask joins Pax8 to NetSuite or HubSpot CRM on the same customer and returns the answer rather than every row. Pax8 maps crm.company, which 227 other connectors also map.
Does actionlake keep my Pax8 data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Pax8 credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Pax8 today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.