---
title: "ServiceTrade MCP server for AI agents - actionlake"
description: "Give Claude 376 ServiceTrade actions through one MCP server: quotes, clock events, contacts. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/servicetrade
updated: 2026-10-23
---

Connectors · Work & projects

# ServiceTrade MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to ServiceTrade and the rest of your systems. It gives your agent 376 ServiceTrade actions (165 reads, 166 writes and 45 that wait for a confirmation) and holds the ServiceTrade credential itself, so the agent never does. It paces ServiceTrade's limits and records every call.

[Connect ServiceTrade free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

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/mcp`

the first call

```
do {
  action: "servicetrade.contacts.list",
  intent: "check which ServiceTrade account is connected"
}
# List all contacts · read · 1 upstream call
```

- 376 actions in one signed file
- 165 read look, never change
- 166 write create and update
- 45 wait for a yes destructive, confirmed first

Set up

## Connect ServiceTrade in three steps.

1. 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`
2. 02
   ### Connect ServiceTrade.
   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_id` ServiceTrade API client ID: in ServiceTrade create OAuth2 API credentials (Settings > API credentials) for a user…
   - `client_secret` ServiceTrade API client secret, shown once when the credentials are created or rotated
   ```
   account { op: "connections.requirements", service: "servicetrade" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "servicetrade.contacts.list" }
   # list all contacts · read · 1 upstream call
   check { action: "servicetrade.contacts.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

ServiceTrade 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_id` `client_secret`

**Limits we pace to**

10 calls a second, per connection

**API covered**

ServiceTrade API 1.0.0 (OpenAPI 3.1, api.servicetrade.com/api)`api.servicetrade.com/api`

**Built from**

ServiceTrade's documentation, read 23 October 2026[api.servicetrade.com](https://api.servicetrade.com/openapi/openapi.json) [api.servicetrade.com](https://api.servicetrade.com/api/docs)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

161 of 165 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

6, so ask can line ServiceTrade up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in ServiceTrade.

376 actions in 83 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **165** read look, never change
- **166** write create and update
- **45** destructive wait for a confirmation

1. ### Quotes
   16
   2 read · 13 write · 1 destructive
   List all quotes · Create a new quote · Retrieve a single quote · Update a quote
2. ### Clock events
   11
   7 read · 3 write · 1 destructive
   Create a clock-in event · Create a clock-out event · List clock events · List clock-in events for a job
3. ### Contacts
   9
   2 read · 5 write · 2 destructive
   List all contacts · Create a new contact · Get a single contact · Update an existing contact
4. ### User absences
   9
   3 read · 5 write · 1 destructive
   Create a user absence · Create a user absence · Create multiple user absences · List user absences
5. ### Time cards
   8
   3 read · 4 write · 1 destructive
   Create a time card · Generate a time card · List all time cards · List time card history
6. ### Appointments
   7
   2 read · 4 write · 1 destructive
   Create a new appointment · List all appointments · Get a single appointment · Update an appointment
7. ### Contracts
   7
   2 read · 5 write · 0 destructive
   List contracts · Create a contract · Get a single contract · Update a contract
8. ### Oauth2 credentials
   7
   2 read · 4 write · 1 destructive
   Create new credentials · List all credentials · Disable credentials · Enable credentials

**75 more areas · 302 actions**

- Time card day logs **7**
- Users **7**
- Assets **6**
- Budget line items **6**
- Clock spans **6**
- Companies **6**
- Contract rules **6**
- Invoices **6**
- Locations **6**
- Service recurrences **6**
- Tags **6**
- Attachments **5**
- Brands **5**
- Budget categories **5**
- Budgets **5**
- Change order categories **5**
- Change order line items **5**
- Change orders **5**
- Comments **5**
- Contact types **5**
- Deficiencies **5**
- External ids **5**
- Group labels **5**
- Invoice items **5**
- Invoice recurrence items **5**
- Job items **5**
- Job type group labels **5**
- Jobs **5**
- Quote items **5**
- Quote template items **5**
- Quote templates **5**
- Regions **5**
- Service items **5**
- Service templates **5**
- Task lists **5**
- Tax groups **5**
- Terms **5**
- Time card comments **5**
- User group labels **5**
- User values **5**
- Webhooks **5**
- External syncs **4**
- External systems **4**
- Invoice recurrences **4**
- Job contexts **4**
- Lib items **4**
- Payments **4**
- Service requests **4**
- Tasks **4**
- Warehouses **4**
- Imports **3**
- Library task lists **3**
- Messages **3**
- Projects **3**
- Task instances **3**
- Account settings **2**
- Accounts **2**
- Activities **2**
- Asset definitions **2**
- Deficiency reports **2**
- Entity filters **2**
- Eula **2**
- Library tasks **2**
- Master agreement **2**
- Payment terms **2**
- Quote requests **2**
- Roles **2**
- Service lines **2**
- Auth **1**
- Config **1**
- History **1**
- Oauth2 userinfo **1**
- Tax rates **1**
- Tokens **1**
- User activities **1**

Top actions

## The ServiceTrade API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 54 of ServiceTrade's 54 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `servicetrade.contacts.list` List all contacts | List all contacts. | read | `crm.contact.list` 177 connectors |
| `servicetrade.companies.list` List all companies | List all companies. | read | `crm.company.list` 162 connectors |
| `servicetrade.locations.list` List all locations | List all locations. | read | `crm.location.list` 48 connectors |
| `servicetrade.users.list` List all users | List all users. | read | `identity.user.list` 474 connectors |
| `servicetrade.contacts.create` Create a new contact | Create a new contact. | write | `crm.contact.create` 161 connectors |
| `servicetrade.invoices.list` List all invoices | List all invoices. | read | `finance.invoice.list` 101 connectors |
| `servicetrade.companies.create` Create a new company | Create a new company. | write | `crm.company.create` 142 connectors |
| `servicetrade.locations.create` Create a new location | Create a new location. | write | `crm.location.create` 41 connectors |
| `servicetrade.companies.delete` Delete a company | Delete a company. | destructive | `crm.company.delete` 119 connectors |
| `servicetrade.invoices.create` Create an invoice | Create an invoice. | write | `finance.invoice.create` 74 connectors |
| `servicetrade.users.create` Create a new user | Create a new user. | write | `identity.user.create` 262 connectors |
| `servicetrade.quotes.create` Create a new quote | Create a new quote. | write | `finance.quote.create` 52 connectors |

Try it

## Prompts to paste into Claude.

Each one names the ServiceTrade actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Which ServiceTrade invoices are more than 30 days overdue? Group them by customer with the total owed.
   calls `servicetrade.invoices.list`
2. Write write
   Create a new contact in ServiceTrade. Show me exactly what you will send before you save it.
   calls `servicetrade.contacts.create`
3. Across systems read
   For each customer, how many invoices are in ServiceTrade and how many tickets in ConnectWise PSA?
   calls `servicetrade.invoices.list` `connectwise_manage.tickets.list`

Across your systems

## ServiceTrade, joined to the rest of your business.

One `ask` fetches from ServiceTrade and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

- For each customer, how many invoices are in ServiceTrade and how many tickets in ConnectWise PSA?
  `servicetrade.invoices.list` + `connectwise_manage.tickets.list`, on `crm.company` · [ConnectWise PSA](https://actionlake.com/connectors/connectwise-psa)
- For each customer, how many invoices are in ServiceTrade and how many tickets in HubSpot CRM?
  `servicetrade.invoices.list` + `hubspot_crm.tickets.list`, on `crm.company` · [HubSpot CRM](https://actionlake.com/connectors/hubspot-crm)

Also mapped by other connectors `identity.user` **517** `crm.company` **227** `crm.contact` **192** `finance.invoice` **91** `crm.location` **49** `finance.quote` **45**

ask

```
ask {
  intent: "for each customer, how many invoices are in ServiceTrade and how many tickets in ConnectWise PSA",
  steps: [
    { action: "servicetrade.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 },
    { action: "connectwise_manage.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 },
    { join: {
        left: "inv",
        right: "tix",
        on: "crm.company",
        group_by: "inv.company_name",
        select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"]
    } }
  ]
}
```

Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for ServiceTrade

## Destructive actions wait for a yes.

45 ServiceTrade actions are destructive. The first 10:

- Delete a company `servicetrade.companies.delete`
- Delete a location `servicetrade.locations.delete`
- Delete an asset `servicetrade.assets.delete`
- Delete an appointment `servicetrade.appointments.delete`
- Remove or delete a tag `servicetrade.tags.remove`
- Delete terms `servicetrade.terms.delete`
- Delete an import `servicetrade.imports.delete`
- Delete a region `servicetrade.regions.delete`
- Delete a comment `servicetrade.comments.delete`
- Delete a webhook `servicetrade.webhooks.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.

do servicetrade.companies.delete confirm_policy: **human**

Delete a company?

**intent:** the user asked me to delete a company

run suspended · waiting for a named person · key _servicetrade-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "servicetrade-agent",
  allowed_actions: ["servicetrade.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "servicetrade.companies.delete", approver: "lead@example.com" },
    { match: "servicetrade.locations.delete", approver: "lead@example.com" },
    { match: "servicetrade.assets.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to ServiceTrade only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What ServiceTrade costs on actionlake.

Every ServiceTrade action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call ServiceTrade 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.

- 1 upstream call per action all 376 ServiceTrade actions
- 376 actions page each page of a long list is one call
- 161 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every ServiceTrade action.

376 actions by area: the id your agent calls, what it does, and its effect.

**Quotes 16**

- `servicetrade.quotes.create` Create a new quote write
- `servicetrade.quotes.get` Retrieve a single quote read
- `servicetrade.quotes.list` List all quotes read
- `servicetrade.quotes.update` Update a quote write
- `servicetrade.quotes.add_to_job` Add quote to a job write
- `servicetrade.quotes.approve` Approve a quote write
- and 10 more in this area

**Clock events 11**

- `servicetrade.clock_events.clock_in` Create a clock-in event write
- `servicetrade.clock_events.clock_out` Create a clock-out event write
- `servicetrade.clock_events.list` List clock events read
- `servicetrade.clock_events.list_clock_ins` List clock-in events for a job read
- `servicetrade.clock_events.delete` Delete a clock event destructive
- `servicetrade.clock_events.get` Get a single clock event read
- and 5 more in this area

**Contacts 9**

- `servicetrade.contacts.create` Create a new contact write
- `servicetrade.contacts.get` Get a single contact read
- `servicetrade.contacts.list` List all contacts read
- `servicetrade.contacts.update` Update an existing contact write
- `servicetrade.contacts.assign_company` Assign contact to a company write
- `servicetrade.contacts.assign_location` Assign contact to a location write
- and 3 more in this area

**User absences 9**

- `servicetrade.user_absences.create` Create a user absence write
- `servicetrade.user_absences.create_for_user` Create a user absence write
- `servicetrade.user_absences.create_many` Create multiple user absences write
- `servicetrade.user_absences.list` List user absences read
- `servicetrade.user_absences.delete` Delete a user absence destructive
- `servicetrade.user_absences.get` Get a single user absence read
- and 3 more in this area

**Time cards 8**

- `servicetrade.time_cards.create` Create a time card write
- `servicetrade.time_cards.generate` Generate a time card write
- `servicetrade.time_cards.list` List all time cards read
- `servicetrade.time_cards.list_history` List time card history read
- `servicetrade.time_cards.delete` Delete a time card destructive
- `servicetrade.time_cards.get` Retrieve a single time card read
- and 2 more in this area

**Appointments 7**

- `servicetrade.appointments.create` Create a new appointment write
- `servicetrade.appointments.get` Get a single appointment read
- `servicetrade.appointments.list` List all appointments read
- `servicetrade.appointments.update` Update an appointment write
- `servicetrade.appointments.add_service_request` Add a service to an appointment write
- `servicetrade.appointments.delete` Delete an appointment destructive
- and 1 more in this area

**Contracts 7**

- `servicetrade.contracts.create` Create a contract write
- `servicetrade.contracts.get` Get a single contract read
- `servicetrade.contracts.list` List contracts read
- `servicetrade.contracts.update` Update a contract write
- `servicetrade.contracts.copy` Copy a contract write
- `servicetrade.contracts.create_child` Create a child contract write
- and 1 more in this area

**Oauth2 credentials 7**

- `servicetrade.oauth2_credentials.create` Create new credentials write
- `servicetrade.oauth2_credentials.disable` Disable credentials write
- `servicetrade.oauth2_credentials.enable` Enable credentials write
- `servicetrade.oauth2_credentials.list` List all credentials read
- `servicetrade.oauth2_credentials.get` Get a single set of credentials read
- `servicetrade.oauth2_credentials.rotate_secret` Rotate client secret destructive
- and 1 more in this area

**Time card day logs 7**

- `servicetrade.time_card_day_logs.create` Create a day log write
- `servicetrade.time_card_day_logs.create_many` Create multiple day logs write
- `servicetrade.time_card_day_logs.get` Retrieve a single day log read
- `servicetrade.time_card_day_logs.list` List all day logs read
- `servicetrade.time_card_day_logs.delete` Delete a day log destructive
- `servicetrade.time_card_day_logs.update` Update a day log write
- and 1 more in this area

**Users 7**

- `servicetrade.users.create` Create a new user write
- `servicetrade.users.get` Retrieve a single user read
- `servicetrade.users.list` List all users read
- `servicetrade.users.update` Update a user write
- `servicetrade.users.assign_role` Assign a role to a user destructive
- `servicetrade.users.list_roles` List roles assigned to a user read
- and 1 more in this area

**Assets 6**

- `servicetrade.assets.create` Create an asset write
- `servicetrade.assets.get` Get a single asset read
- `servicetrade.assets.list` List assets read
- `servicetrade.assets.update` Update an asset write
- `servicetrade.assets.delete` Delete an asset destructive
- `servicetrade.assets.enable_group_tasking` Enable tasking for an abstract asset group write

**Budget line items 6**

- `servicetrade.budget_line_items.copy_to_job` Copy budget line item to job item write
- `servicetrade.budget_line_items.create` Create a budget line item write
- `servicetrade.budget_line_items.get` Get a single budget line item read
- `servicetrade.budget_line_items.list` List budget line items read
- `servicetrade.budget_line_items.delete` Delete a budget line item destructive
- `servicetrade.budget_line_items.update` Update a budget line item write

**Clock spans 6**

- `servicetrade.clock_spans.batch` Batch create, update, or delete clock spans write
- `servicetrade.clock_spans.create` Create a clock span (clock-in) write
- `servicetrade.clock_spans.get` Get a clock span by ID read
- `servicetrade.clock_spans.list` List clock spans read
- `servicetrade.clock_spans.delete` Delete a clock span destructive
- `servicetrade.clock_spans.update` Update a clock span (typically clock-out) write

**Companies 6**

- `servicetrade.companies.create` Create a new company write
- `servicetrade.companies.get` Retrieve a single company read
- `servicetrade.companies.list` List all companies read
- `servicetrade.companies.update` Update a company write
- `servicetrade.companies.delete` Delete a company destructive
- `servicetrade.companies.merge` Merge a company into another write

**Contract rules 6**

- `servicetrade.contract_rules.create` Create a contract rule write
- `servicetrade.contract_rules.get` Get a single contract rule read
- `servicetrade.contract_rules.list` List contract rules for a contract read
- `servicetrade.contract_rules.list_by_date_range` List contract rules by date range read
- `servicetrade.contract_rules.delete` Delete a contract rule destructive
- `servicetrade.contract_rules.update` Update a contract rule write

**Invoices 6**

- `servicetrade.invoices.create` Create an invoice write
- `servicetrade.invoices.get` Retrieve a single invoice by ID read
- `servicetrade.invoices.list` List all invoices read
- `servicetrade.invoices.update` Update an invoice write
- `servicetrade.invoices.create_from_job` Create invoice from job write
- `servicetrade.invoices.create_from_recurrences` Create invoice from recurrences write

**Locations 6**

- `servicetrade.locations.create` Create a new location write
- `servicetrade.locations.get` Get a single location read
- `servicetrade.locations.list` List all locations read
- `servicetrade.locations.update` Update a location write
- `servicetrade.locations.delete` Delete a location destructive
- `servicetrade.locations.merge` Merge a location into another write

**Service recurrences 6**

- `servicetrade.service_recurrences.create` Create a new service recurrence write
- `servicetrade.service_recurrences.get` Retrieve a single service recurrence read
- `servicetrade.service_recurrences.list` List all service recurrences read
- `servicetrade.service_recurrences.list_events` Get events for a task list service recurrence read
- `servicetrade.service_recurrences.regenerate` Regenerate a task list service recurrence write
- `servicetrade.service_recurrences.update` Update a service recurrence write

**Tags 6**

- `servicetrade.tags.create` Create a tag or attach to an entity write
- `servicetrade.tags.get` Get a single tag read
- `servicetrade.tags.list` List all tags read
- `servicetrade.tags.merge` Merge tags write
- `servicetrade.tags.remove` Remove or delete a tag destructive
- `servicetrade.tags.rename` Rename a tag write

**Attachments 5**

- `servicetrade.attachments.get` Get a single attachment read
- `servicetrade.attachments.get_thumbnail` Get thumbnail URLs for an attachment read
- `servicetrade.attachments.list` List attachments for an entity read
- `servicetrade.attachments.update` Update an attachment write
- `servicetrade.attachments.delete` Delete an attachment destructive

**Brands 5**

- `servicetrade.brands.create` Create a new brand for a company write
- `servicetrade.brands.get` Get a single brand for a company read
- `servicetrade.brands.list` List all brands read
- `servicetrade.brands.list_for_company` List brands for a company read
- `servicetrade.brands.update` Update a brand for a company write

**Budget categories 5**

- `servicetrade.budget_categories.create` Create a new budget category write
- `servicetrade.budget_categories.get` Get a single budget category read
- `servicetrade.budget_categories.list` List budget categories read
- `servicetrade.budget_categories.update` Update a budget category write
- `servicetrade.budget_categories.delete` Delete a budget category destructive

**Budgets 5**

- `servicetrade.budgets.create` Create a new budget write
- `servicetrade.budgets.get` Get a single budget read
- `servicetrade.budgets.list` List budgets read
- `servicetrade.budgets.revise` Revise a budget write
- `servicetrade.budgets.update` Update a budget write

**Change order categories 5**

- `servicetrade.change_order_categories.create` Create a new change order category write
- `servicetrade.change_order_categories.get` Get a single change order category read
- `servicetrade.change_order_categories.list` List change order categories read
- `servicetrade.change_order_categories.update` Update a change order category write
- `servicetrade.change_order_categories.delete` Delete a change order category destructive

**Change order line items 5**

- `servicetrade.change_order_line_items.create` Create a change order line item write
- `servicetrade.change_order_line_items.get` Get a single change order line item read
- `servicetrade.change_order_line_items.list` List change order line items read
- `servicetrade.change_order_line_items.update` Update a change order line item write
- `servicetrade.change_order_line_items.delete` Delete a change order line item destructive

**Change orders 5**

- `servicetrade.change_orders.create` Create a new change order write
- `servicetrade.change_orders.get` Get a single change order read
- `servicetrade.change_orders.list` List change orders read
- `servicetrade.change_orders.update` Update a change order write
- `servicetrade.change_orders.delete` Delete a change order destructive

**Comments 5**

- `servicetrade.comments.create` Create a comment write
- `servicetrade.comments.get` Get a single comment read
- `servicetrade.comments.list` List comments read
- `servicetrade.comments.update` Update a comment write
- `servicetrade.comments.delete` Delete a comment destructive

**Contact types 5**

- `servicetrade.contact_types.create` Create a custom contact type write
- `servicetrade.contact_types.list` List all contact types read
- `servicetrade.contact_types.merge` Merge contact types write
- `servicetrade.contact_types.update` Update a custom contact type write
- `servicetrade.contact_types.delete` Delete a custom contact type destructive

**Deficiencies 5**

- `servicetrade.deficiencies.create` Report a new deficiency write
- `servicetrade.deficiencies.get` Get a single deficiency read
- `servicetrade.deficiencies.list` List all deficiencies read
- `servicetrade.deficiencies.update` Update an existing deficiency write
- `servicetrade.deficiencies.delete` Delete a deficiency destructive

**External ids 5**

- `servicetrade.external_ids.get` Get external ID for a specific system read
- `servicetrade.external_ids.list_for_entity` Get all external IDs for an entity read
- `servicetrade.external_ids.lookup_entity` Look up entity by external ID read
- `servicetrade.external_ids.set` Set external ID for an entity write
- `servicetrade.external_ids.update` Update external ID for an entity write

Group labels **5** Invoice items **5** Invoice recurrence items **5** Job items **5** Job type group labels **5** Jobs **5** Quote items **5** Quote template items **5** Quote templates **5** Regions **5** Service items **5** Service templates **5** Task lists **5** Tax groups **5** Terms **5** Time card comments **5** User group labels **5** User values **5** Webhooks **5** External syncs **4** External systems **4** Invoice recurrences **4** Job contexts **4** Lib items **4** Payments **4** Service requests **4** Tasks **4** Warehouses **4** Imports **3** Library task lists **3** Messages **3** Projects **3** Task instances **3** Account settings **2** Accounts **2** Activities **2** Asset definitions **2** Deficiency reports **2** Entity filters **2** Eula **2** Library tasks **2** Master agreement **2** Payment terms **2** Quote requests **2** Roles **2** Service lines **2** Auth **1** Config **1** History **1** Oauth2 userinfo **1** Tax rates **1** Tokens **1** User activities **1**

This index shows a sample of each area. All 376 actions, with their inputs and prices, are in the [catalogue](https://actionlake.com/console/catalogue), which a free sandbox key can search.

Questions

## The ServiceTrade MCP server, answered.

**Is there a ServiceTrade MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 376 ServiceTrade actions across quotes, clock events, contacts and user absences, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by ServiceTrade.

**What do I need to connect ServiceTrade?**

ServiceTrade API client ID: in ServiceTrade create OAuth2 API credentials (Settings > API credentials) for a user… and ServiceTrade API client secret, shown once when the credentials are created or rotated. The free call account { op: "connections.requirements", service: "servicetrade" } lists exactly what to paste.

**Can an AI agent delete or change things in ServiceTrade?**

Only if its key allows it, and only with an explicit confirmation. 45 ServiceTrade actions are destructive, including delete a company, delete a location and delete an asset. 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 ServiceTrade API limit?**

actionlake paces every call to the limits in the ServiceTrade service file: 10 calls a second per connection. Repeated reads are answered from cache (161 ServiceTrade actions can be), which never reaches ServiceTrade.

**What does a ServiceTrade action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (376 ServiceTrade actions page). Cache hits, searches, dry runs and calls ServiceTrade 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 ServiceTrade API does it cover?**

The ServiceTrade API 1.0.0 (OpenAPI 3.1, api.servicetrade.com/api) at api.servicetrade.com/api. It is built from ServiceTrade's documentation as read on 23 October 2026. 376 actions in 83 areas, each one in the signed service file (version 1.0.0).

**Can I combine ServiceTrade with my other systems?**

Yes. ask joins ServiceTrade to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. ServiceTrade maps crm.company, which 227 other connectors also map.

**Does actionlake keep my ServiceTrade data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, 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 ServiceTrade 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.

## More connectors like ServiceTrade

Shares the most action names with

- [Zuper 41](https://actionlake.com/connectors/zuper)
- [Elation Health 16](https://actionlake.com/connectors/elation-health)
- [apaleo 13](https://actionlake.com/connectors/apaleo)
- [Mitti 13](https://actionlake.com/connectors/mitti)
- [Halaxy 12](https://actionlake.com/connectors/halaxy)
- [Microsoft Bookings 9](https://actionlake.com/connectors/microsoft-bookings)

Joins with, on shared entities

- [HaloPSA 6](https://actionlake.com/connectors/halopsa)
- [ServiceTitan 6](https://actionlake.com/connectors/servicetitan)
- [Simpro 5](https://actionlake.com/connectors/simpro)
- [Zoho Books 5](https://actionlake.com/connectors/zoho-books)
- [ERPNext (Frappe) 5](https://actionlake.com/connectors/erpnext-frappe)
- [Microsoft Dynamics 365 5](https://actionlake.com/connectors/microsoft-dynamics-365)

Browse

- [All Work & projects connectors](https://actionlake.com/connectors/category/work-and-projects)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by ServiceTrade; the name is the vendor's own. Counts are from the ServiceTrade service file, version 1.0.0.

## Give your agent ServiceTrade today.

[Connect ServiceTrade free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/servicetrade
More: https://actionlake.com/llms.txt
