Skip to content

Connectors · Logistics & field service

Fergus MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Fergus and the rest of your systems. It gives your agent 91 Fergus actions (46 reads, 38 writes and 7 that wait for a confirmation) and holds the Fergus credential itself, so the agent never does. It paces Fergus'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/mcp
the first call
do {  action: "fergus.contacts.list",  intent: "check which Fergus account is connected"}# Returns a list of contacts · read · 1 upstream call
  • 91actionsin one signed file
  • 46readlook, never change
  • 38writecreate and update
  • 7wait for a yesdestructive, confirmed first

Set up

Connect Fergus 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 Fergus.

    Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • access_tokenFergus personal access token (in Fergus
    account { op: "connections.requirements", service: "fergus" }
    # 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: "fergus.contacts.list" }# returns a list of contacts · read · 1 upstream callcheck { action: "fergus.contacts.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Fergus at a glance

Sign-in
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
access_token
Limits we pace to
100 calls a minute, per connection
API covered
Fergus API v1 (OpenAPI 3.1.0)api.fergus.com
Built from
Fergus's documentation, read 23 October 2026api.fergus.comapi.fergus.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
46 of 46 reads, for up to 5 minutes; a write clears what it affects
Shared entities
9, so ask can line Fergus up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Fergus.

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

  • 46readlook, never change
  • 38writecreate and update
  • 7destructivewait for a confirmation
  1. Quotes

    10

    4 read · 5 write · 1 destructive

    quotes: list · Returns a specific quote by ID from across all jobs · Voids a quote · Accepts a quote

  2. Jobs

    9

    3 read · 6 write · 0 destructive

    Returns a list of jobs · Creates a new job · Returns a job by id · Updates a draft job

  3. Job phases

    8

    3 read · 4 write · 1 destructive

    Creates a job phase · Returns a list of job phases · Get a job phase financial summary · Returns a job phase

  4. Tasks

    7

    2 read · 4 write · 1 destructive

    List all tasks for the company with optional filters · Create a new task · Get a single task by ID · Update a task's description, due date, or assigned employees

  5. Sites

    6

    2 read · 4 write · 0 destructive

    Returns a list of sites · Create a new site · Returns a site by ID · Update site

  6. Calendar events

    5

    2 read · 2 write · 1 destructive

    Returns a list of CalendarEvents · Creates a new calendar event · Returns a CalendarEvent by ID · Updates a calendar event

  7. Customers

    5

    2 read · 2 write · 1 destructive

    Returns a list of customers · Creates a new customer · Returns a customer by ID · Update a customer

  8. Job quotes

    5

    2 read · 3 write · 0 destructive

    Create a new quote · Update a quote by ID · Get all quotes for a job · Get a quote

15 more areas · 36 actions
  • Stock on hand 5
  • Contacts 4
  • Users 4
  • Enquiries 3
  • Notes 3
  • Pricebooks 3
  • Attachments 2
  • Customer invoices 2
  • Favourites 2
  • Pricebook items 2
  • Pricing tiers 2
  • Company 1
  • Stock used 1
  • Time entries 1
  • Version 1

Top actions

The Fergus API, shaped for agents.

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

ActionWhat it doesEffectSame name in
fergus.contacts.listReturns a list of contactsReturns a list of contacts.readcrm.contact.list177 connectors
fergus.customers.listReturns a list of customersReturns a list of customers.readcrm.company.list162 connectors
fergus.sites.listReturns a list of sitesReturns a list of sites.readcrm.location.list48 connectors
fergus.users.listReturns a list of usersReturns a list of users.readidentity.user.list474 connectors
fergus.contacts.createCreates a new contact for a customer or siteCreates a new contact for a customer or site.writecrm.contact.create161 connectors
fergus.customer_invoices.listReturns a list of invoicesReturns a list of invoices.readfinance.invoice.list101 connectors
fergus.customers.createCreates a new customerCreates a new customer.writecrm.company.create142 connectors
fergus.jobs.listReturns a list of jobsReturns a list of jobs.readwork.project.list109 connectors
fergus.sites.createCreate a new siteCreate a new site.writecrm.location.create41 connectors
fergus.customers.deleteDeletes a customer by IDDeletes a customer by ID.destructivecrm.company.delete119 connectors
fergus.calendar_events.listReturns a list of CalendarEventsReturns a list of CalendarEvents.readcomm.event.list61 connectors
fergus.customer_invoices.getReturns a single invoice by ID with customer details and sectionsReturns a single invoice by ID with customer details and sections.readfinance.invoice.get102 connectors

Try it

Prompts to paste into Claude.

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

  1. Readread

    Which Fergus invoices are more than 30 days overdue? Group them by customer with the total owed.

    callsfergus.customer_invoices.list

  2. Writewrite

    Creates a new contact for a customer or site in Fergus. Show me exactly what you will send before you save it.

    callsfergus.contacts.create

  3. Across systemsread

    Which Fergus companies have invoices in ConnectWise PSA, and how many each?

    callsfergus.customers.listconnectwise_manage.invoices.list

Across your systems

Fergus, joined to the rest of your business.

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

  • Which Fergus companies have invoices in ConnectWise PSA, and how many each?

    fergus.customers.list + connectwise_manage.invoices.list, on crm.company · ConnectWise PSA

  • Which Fergus companies have invoices in NetSuite, and how many each?

    fergus.customers.list + netsuite.views.invoices, on crm.company · NetSuite

Also mapped by other connectorsidentity.user 517crm.company 227crm.contact 192work.project 116work.task 105finance.invoice 91crm.location 49comm.event 47
ask
ask {  intent: "which Fergus companies have invoices in ConnectWise PSA, and how many each",  steps: [    { action: "fergus.customers.list", as: "co", input: {}, limit: 100, max_pages: 5 },    { action: "connectwise_manage.invoices.list", 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"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for Fergus

Destructive actions wait for a yes.

7 Fergus actions are destructive. These are all of them:

  • Deletes a customer by IDfergus.customers.delete
  • Deletes a calendar eventfergus.calendar_events.delete
  • Soft-delete a taskfergus.tasks.delete
  • Voids a quotefergus.quotes.void
  • Void a job phase by JobId and Job PhaseIdfergus.job_phases.void
  • Delete a filefergus.attachments.delete
  • Delete stock on hand on job phasefergus.stock_on_hand.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.

dofergus.customers.deleteconfirm_policy: human

Deletes a customer by ID?

intent: the user asked me to deletes a customer by ID

run suspended · waiting for a named person · key fergus-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "fergus-agent",  allowed_actions: ["fergus.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "fergus.customers.delete", approver: "[email protected]" },    { match: "fergus.calendar_events.delete", approver: "[email protected]" },    { match: "fergus.tasks.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Fergus only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Fergus costs on actionlake.

Every Fergus action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Fergus 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 91 Fergus actions
  • 20actions pageeach page of a long list is one call
  • 46reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Fergus action.

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

Quotes10
  • fergus.quotes.acceptAccepts a quotewrite
  • fergus.quotes.declineDeclines a quotewrite
  • fergus.quotes.getReturns a specific quote by ID from across all jobsread
  • fergus.quotes.get_by_guidReturns a specific quote by GUID with full detailsread
  • fergus.quotes.listquotes: listread
  • fergus.quotes.mark_as_sentMarks a quote as sentwrite
  • fergus.quotes.mark_as_viewedRecords that a customer viewed the quote in the portalwrite
  • fergus.quotes.publishPublishes a quotewrite
  • fergus.quotes.totalsGet totals for a quoteread
  • fergus.quotes.voidVoids a quotedestructive
Jobs9
  • fergus.jobs.archiveArchives a job, including a draftwrite
  • fergus.jobs.createCreates a new jobwrite
  • fergus.jobs.finaliseFinalises a draft job, turning it into an active jobwrite
  • fergus.jobs.financial_summaryGet a job financial summaryread
  • fergus.jobs.getReturns a job by idread
  • fergus.jobs.holdPuts a job on holdwrite
  • fergus.jobs.listReturns a list of jobsread
  • fergus.jobs.resumeResumes a job that was on holdwrite
  • fergus.jobs.updateUpdates a draft jobwrite
Job phases8
  • fergus.job_phases.createCreates a job phasewrite
  • fergus.job_phases.financial_summaryGet a job phase financial summaryread
  • fergus.job_phases.getReturns a job phaseread
  • fergus.job_phases.listReturns a list of job phasesread
  • fergus.job_phases.ready_for_invoiceMarks a job phase as ready for invoice, advancing it to `To Invoice`write
  • fergus.job_phases.reopenjob phases: reopenwrite
  • fergus.job_phases.updateCreates a job phasewrite
  • fergus.job_phases.voidVoid a job phase by JobId and Job PhaseIddestructive
Tasks7
  • fergus.tasks.completeMark a task as completewrite
  • fergus.tasks.createCreate a new taskwrite
  • fergus.tasks.deleteSoft-delete a taskdestructive
  • fergus.tasks.getGet a single task by IDread
  • fergus.tasks.listList all tasks for the company with optional filtersread
  • fergus.tasks.reopenReopen a completed taskwrite
  • fergus.tasks.updateUpdate a task's description, due date, or assigned employeeswrite
Sites6
  • fergus.sites.archiveArchive Sitewrite
  • fergus.sites.createCreate a new sitewrite
  • fergus.sites.getReturns a site by IDread
  • fergus.sites.listReturns a list of sitesread
  • fergus.sites.restoreRestore Sitewrite
  • fergus.sites.updateUpdate sitewrite
Calendar events5
  • fergus.calendar_events.createCreates a new calendar eventwrite
  • fergus.calendar_events.deleteDeletes a calendar eventdestructive
  • fergus.calendar_events.getReturns a CalendarEvent by IDread
  • fergus.calendar_events.listReturns a list of CalendarEventsread
  • fergus.calendar_events.updateUpdates a calendar eventwrite
Customers5
  • fergus.customers.createCreates a new customerwrite
  • fergus.customers.deleteDeletes a customer by IDdestructive
  • fergus.customers.getReturns a customer by IDread
  • fergus.customers.listReturns a list of customersread
  • fergus.customers.updateUpdate a customerwrite
Job quotes5
  • fergus.job_quotes.createCreate a new quotewrite
  • fergus.job_quotes.getGet a quoteread
  • fergus.job_quotes.listGet all quotes for a jobread
  • fergus.job_quotes.updateUpdate a quote by IDwrite
  • fergus.job_quotes.update_by_versionUpdate a quote by version numberwrite
Stock on hand5
  • fergus.stock_on_hand.createAdd stock on hand to job phasewrite
  • fergus.stock_on_hand.deleteDelete stock on hand on job phasedestructive
  • fergus.stock_on_hand.listJob Phase stock on handread
  • fergus.stock_on_hand.list_allStock on hand across all Job Phasesread
  • fergus.stock_on_hand.updateUpdate stock on hand on job phasewrite
Contacts4
  • fergus.contacts.createCreates a new contact for a customer or sitewrite
  • fergus.contacts.getReturns a contact by IDread
  • fergus.contacts.listReturns a list of contactsread
  • fergus.contacts.updateUpdates a customer contact or site contactwrite
Users4
  • fergus.users.getReturns a user by IDread
  • fergus.users.listReturns a list of usersread
  • fergus.users.meReturns the current authenticated userread
  • fergus.users.updateUpdate userwrite
Enquiries3
  • fergus.enquiries.createCreate Enquirywrite
  • fergus.enquiries.getReturns enquiry by IDread
  • fergus.enquiries.listGet all enquiriesread
Notes3
  • fergus.notes.createCreates a new note on an entity (job, customer, quote, etc.)write
  • fergus.notes.listSchema for Notesread
  • fergus.notes.updateUpdates the text and/or pinned status of an existing notewrite
Pricebooks3
  • fergus.pricebooks.getSchema for a Pricebook by IDread
  • fergus.pricebooks.listSchema for Pricebooksread
  • fergus.pricebooks.searchpricebooks: searchread
Attachments2
  • fergus.attachments.deleteDelete a filedestructive
  • fergus.attachments.listList files associated with an entityread
Customer invoices2
  • fergus.customer_invoices.getReturns a single invoice by ID with customer details and sectionsread
  • fergus.customer_invoices.listReturns a list of invoicesread
Favourites2
  • fergus.favourites.getGet a specific favourite sectionread
  • fergus.favourites.listGet all favourite sections, in flat or tree viewread
Pricebook items2
  • fergus.pricebook_items.getSchema for a Pricebook Item by IDread
  • fergus.pricebook_items.listSchema for Pricebook Itemsread
Pricing tiers2
  • fergus.pricing_tiers.getSchema for a Pricing Tier by IDread
  • fergus.pricing_tiers.listSchema for a Pricing Tierread
Company1
  • fergus.company.getReturns company information for the authenticated companyread
Stock used1
  • fergus.stock_used.liststock used: listread
Time entries1
  • fergus.time_entries.listGet all time entriesread
Version1
  • fergus.version.getReturns the current version of the APIread

Questions

The Fergus MCP server, answered.

Is there a Fergus MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 91 Fergus actions across quotes, jobs, job phases and tasks, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Fergus.

What do I need to connect Fergus?

Fergus personal access token (in Fergus. The free call account { op: "connections.requirements", service: "fergus" } lists exactly what to paste.

Can an AI agent delete or change things in Fergus?

Only if its key allows it, and only with an explicit confirmation. 7 Fergus actions are destructive, including deletes a customer by ID, deletes a calendar event and soft-delete a task. 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 Fergus API limit?

actionlake paces every call to the limits in the Fergus service file: 100 calls a minute per connection. Repeated reads are answered from cache (46 Fergus actions can be), which never reaches Fergus.

What does a Fergus action cost?

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

The Fergus API v1 (OpenAPI 3.1.0) at api.fergus.com. It is built from Fergus's documentation as read on 23 October 2026. 91 actions in 23 areas, each one in the signed service file (version 1.0.0).

Can I combine Fergus with my other systems?

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

Does actionlake keep my Fergus 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 Fergus 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 Fergus today.

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