home / mcp / fergus mcp server

Fergus MCP Server

Fergus MCP Server for AI

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "jayco-design-fergus-mcp": {
      "url": "https://fergus-mcp-server.onrender.com/mcp",
      "headers": {
        "FERGUS_API_TOKEN": "YOUR_API_TOKEN"
      }
    }
  }
}

You deploy Fergus MCP Server to connect Fergus’s job management platform with AI assistants. It offers secure local and remote access, real-time data synchronization, and a suite of tools to create, read, and update Fergus resources through your preferred MCP client.

How to use

You can connect Fergus MCP Server in two ways: local Stdio mode for use with Claude Desktop, and remote HTTP mode for Claude Web, Claude Desktop remote usage, or other MCP clients. In local mode, you start the server as a local process and pass your Fergus API token to authorize requests. In remote mode, you expose the server over HTTPS and authorize users via OAuth 2.0, enabling remote clients to discover and connect without sharing tokens directly.

When you are connected, you can ask Claude or other MCP clients to perform operations such as creating a new job, listing customers, generating quotes, or retrieving time entries. The built‑in prompts help with common workflows, while the 26+ tools cover jobs, quotes, customers, sites, time entries, and users.

How to install

Prerequisites: you need Node.js and a package manager (pnpm is used in the examples). Ensure you have a Fergus account to obtain an API token for local mode.

Option 1: Local Mode (Stdio) install and run steps

claude mcp add fergus-mcp -- npx -y fergus-mcp --api-token YOUR_API_TOKEN
```, which registers the Fergus MCP in Claude Desktop and runs the MCP via npx with your API token.

Or configure the local MCP manually in Claude Desktop’s config file.

{
  "mcpServers": {
    "fergus": {
      "command": "npx",
      "args": ["-y", "fergus-mcp", "--api-token", "YOUR_API_TOKEN"]
    }
  }
}
```
Place this in your Claude Desktop config at the per‑user path (MacOS or Windows where indicated in the original setup).

Option 2: Remote Mode (HTTP) install and run steps

You can host your own Fergus MCP server. A shared test instance is available at the hosted domain, but availability is not guaranteed.

To enable remote usage in Claude Web or Claude Desktop, you register the domain as a remote server and go through the OAuth flow provided by Fergus. The server exposes an HTTP endpoint that remote clients can call with appropriate credentials.

Local development and testing: you can clone the repository, install dependencies, build, and run in development mode for HTTP or stdio as described in the project steps.

Configuration and security

Stdio mode uses a Personal Access Token (PAT) that you obtain from your Fergus account. Do not commit the token to version control. The token is passed to the MCP runtime as an environment variable or CLI argument.

HTTP mode uses OAuth 2.0 with PKCE for secure authentication. Tokens are stored in memory (or Redis for multi‑instance deployments). HTTPS is required in production, and token refresh is automatic. CORS and DNS protections are enabled to prevent common web vulnerabilities.

Notes and troubleshooting

If you rotate OAuth credentials or change PUBLIC_URL, re-run client setup steps so each client refreshes metadata and tokens.

If you encounter connection issues, ensure the correct domain is registered in your MCP client and that the OAuth flow completes with a successful redirection to your configured redirect URI.

Development and deployment overview

Development work focuses on the Fergus MCP Server project structure, including entry points, configuration management, Fergus API client wrappers, resource handlers, and tool handlers. Building and running steps are provided to test both stdio and HTTP modes during development.

Available tools

get-job

Fetch details for a specific job by ID.

list-jobs

List all jobs with filtering and sorting options.

create-job

Create a new job in draft or finalized status.

update-job

Update an existing draft job.

finalize-job

Convert a draft job to active status.

get-quote

Retrieve basic information about a quote.

get-quote-detail

Retrieve full quote details including sections and line items.

list-quotes

List quotes with filtering capabilities.

create-quote

Create a quote with sections and line items.

update-quote

Update draft quote sections by quote ID.

update-quote-version

Update draft quote sections by version number.

get-customer

Fetch customer details.

list-customers

List customers with search capabilities.

create-customer

Add a new customer.

update-customer

Modify customer details.

get-site

Fetch site details.

list-sites

List sites with filtering.

create-site

Add a new site.

update-site

Modify site details.

get-user

Fetch user or team member details.

list-users

List users with filtering options.

update-user

Update user details.

get-time-entry

Get time entry details.

list-time-entries

List time entries with filtering.

job-creation-assistant

Guided workflow for creating jobs.

quote-generator

Assist in creating comprehensive quotes.

weekly-report

Generate weekly job status summaries.