FieldCamp

FieldCamp MCP Server — Connect Your AI Assistant

Connect FieldCamp to Claude, ChatGPT, Cursor, VS Code and other AI tools to manage clients, jobs, estimates, invoices and scheduling in plain language.

The FieldCamp MCP server lets an AI assistant work directly in your FieldCamp account. Ask in plain English — "show me this week's unpaid invoices", "create an estimate for the Turner job", "who's free Friday afternoon?" — and it reads and updates your live data.

It speaks the Model Context Protocol over a secure connection, so the assistant only ever acts with permissions you approve.

Prerequisites

A FieldCamp account

Any active FieldCamp account. The assistant acts as you — it can see and change exactly what your own role allows, and nothing more. Check roles and permissions if you're unsure what your account can reach.

A supported AI client

Claude (Pro, Max, Team or Enterprise for custom connectors), ChatGPT, or any MCP-capable tool such as Cursor, VS Code, Claude Code, Windsurf, Kiro or Gemini CLI.

Node.js 18+ (only for Claude Desktop)

Claude Desktop reaches remote servers through the mcp-remote bridge, which runs via npx. Install Node.js 18 or newer first. Every other client connects directly and needs nothing extra.

Server URL and authentication

Use this endpoint everywhere:

https://mcp.fieldcamp.ai/mcp

The transport is Streamable HTTP. There are two ways to authenticate, and which one you use depends on your client:

MethodBest forHow it works
OAuth (recommended)Claude, ChatGPTYou click Connect, sign in to FieldCamp in the browser, and approve the permissions. No token to copy or store.
Personal API tokenCursor, VS Code, Claude Code, Windsurf, Kiro, Gemini CLI, scriptsYou paste a fc_live_… token into the client's config as an Authorization: Bearer header.

Tokens must be sent in the Authorization header. Access tokens in the URL query string are not accepted — the MCP specification forbids them.

MCP is for connecting an AI assistant to your account. If you're building a server-to-server integration instead, use the FieldCamp REST API — it's a different endpoint with its own auth model.

Create a personal API token

Only needed for the token-based clients above.

Open the MCP servers page

In FieldCamp, go to Settings → Automation → MCP Servers and add a server for your client.

Generate a token

On the Connect tab, click Generate token. FieldCamp creates a token scoped for MCP and attaches it to that server, so every snippet on the page fills in automatically.

Copy it once

The token is shown only once. Copy it now — you can always generate a new one. You can also manage tokens under Settings → Company → API Tokens.

Only workspace owners can create API tokens. If you're a team member, ask an owner to generate one and share it with you.

Set up your client

Config keys differ between clients — url, serverUrl and httpUrl are not interchangeable, and the wrong key fails silently. Use the exact snippet for your tool.

Claude (web & desktop) — OAuth

Remote servers are added through Settings → Connectors, not a config file. Requires a Pro, Max, Team or Enterprise plan.

Add a custom connector

Go to Settings → Connectors → Add custom connector and paste https://mcp.fieldcamp.ai/mcp.

Connect and approve

Click Connect. Sign in to FieldCamp in the browser window that opens and approve the permissions you want to grant.

Try it

Ask: "Show me all my active clients."

ChatGPT — OAuth

Add the connector

In ChatGPT, open connector settings and add https://mcp.fieldcamp.ai/mcp.

Authorize

Sign in to FieldCamp and approve the requested permissions.

Try it

Ask: "What's on my schedule tomorrow?"

Claude Desktop (config file) — token

Claude Desktop's config only supports local servers, so we bridge through mcp-remote. Open Settings → Developer → Edit Config and add:

{
  "mcpServers": {
    "fieldcamp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.fieldcamp.ai/mcp",
        "--header",
        "Authorization: Bearer fc_live_YOUR_TOKEN"
      ]
    }
  }
}

Config file location — macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json. Quit and reopen Claude Desktop afterwards.

Claude Code — token
claude mcp add --transport http fieldcamp https://mcp.fieldcamp.ai/mcp \
  --header "Authorization: Bearer fc_live_YOUR_TOKEN"

Add --scope local, project or user to control where the server is registered.

Cursor — token

Uses url with a top-level headers object. Add to ~/.cursor/mcp.json (or .cursor/mcp.json for one project):

{
  "mcpServers": {
    "fieldcamp": {
      "url": "https://mcp.fieldcamp.ai/mcp",
      "headers": {
        "Authorization": "Bearer fc_live_YOUR_TOKEN"
      }
    }
  }
}
VS Code — token

Different shape: the top-level key is servers, and headers go inside requestInit. Add to .vscode/mcp.json:

{
  "servers": {
    "fieldcamp": {
      "url": "https://mcp.fieldcamp.ai/mcp",
      "requestInit": {
        "headers": {
          "Authorization": "Bearer fc_live_YOUR_TOKEN"
        }
      }
    }
  }
}

To keep the token out of git, use VS Code's ${input:…} prompt instead of hard-coding it.

Windsurf — token

Uses serverUrl, not url:

{
  "mcpServers": {
    "fieldcamp": {
      "serverUrl": "https://mcp.fieldcamp.ai/mcp",
      "headers": {
        "Authorization": "Bearer fc_live_YOUR_TOKEN"
      }
    }
  }
}
Kiro — token
{
  "mcpServers": {
    "fieldcamp": {
      "url": "https://mcp.fieldcamp.ai/mcp",
      "headers": {
        "Authorization": "Bearer fc_live_YOUR_TOKEN"
      }
    }
  }
}
Gemini CLI — token

Uses httpUrl. Either run:

gemini mcp add --transport http fieldcamp https://mcp.fieldcamp.ai/mcp \
  -H "Authorization: Bearer fc_live_YOUR_TOKEN"

or add to settings.json:

{
  "mcpServers": {
    "fieldcamp": {
      "httpUrl": "https://mcp.fieldcamp.ai/mcp",
      "headers": {
        "Authorization": "Bearer fc_live_YOUR_TOKEN"
      },
      "timeout": 30000
    }
  }
}
Anthropic API / Python / other tools

Any MCP-capable client works: point it at https://mcp.fieldcamp.ai/mcp over Streamable HTTP and send Authorization: Bearer fc_live_…. For clients that only speak local (stdio) servers, bridge with npx -y mcp-remote https://mcp.fieldcamp.ai/mcp --header "Authorization: Bearer fc_live_YOUR_TOKEN".

FieldCamp's Settings → Automation → MCP Servers page generates ready-made snippets for the Anthropic API and Python (fastmcp) too.

Tools and permissions

The assistant acts as you: it can only touch what your FieldCamp role already allows, and only within the permissions you approve at connect time. Read tools run freely; write and destructive tools are flagged so your assistant asks before acting.

Clients

Read — list and filter clients, open a client, see their jobs, documents, products and payment history. Write — create a client. Destructive — update or delete a client.

Jobs & visits

Read — list and open jobs and visits, visit stats, next job number. Write — create jobs and visits. Destructive — update or delete a job or visit.

Tasks

Read — list tasks, open a task, list the tasks on a job or against a client. Write — create a task. Destructive — update or delete a task.

Requests

Read — list and open service requests. Write — create a request, convert a request into an estimate. Destructive — update or delete a request.

Estimates & invoices

Read — list and open estimates and invoices, payment history, next document number. Write — create documents, email a document to a client, record a payment received. Destructive — update or delete documents and payments.

FieldCamp records that a payment was received (cash, cheque, transfer). The connector never charges a card or moves money.

Products, inventory & purchasing

Read — browse products and services, categories, inventory, warehouses, vendors, tax rates, purchase orders. Write — create products, warehouses, vendors, tax rates, purchase orders. Destructive — update, delete or transfer inventory.

Scheduling & team

Read — calendar events and activity, availability, schedule conflicts, team members, dispatch suggestions. Write — create calendar events. Destructive — update or delete calendar events.

Analytics & lookup

Read only — business analytics, company info, account data model, record change history, units of measurement, cross-record search and fetch-by-id.

Permissions you approve

When you connect over OAuth you choose which areas to grant, as read and/or write per area — clients, jobs, tasks, requests, estimates, invoices, products and calendar — plus read-only scopes such as team:read and analytics:read. The consent screen lists the exact scopes being requested, so review it before you approve.

A tool outside your granted scopes is refused. Granting only clients:read, for example, lets the assistant list clients but not create a job. Your FieldCamp role and permissions still apply on top: a scope can never grant more than your own account already has.

What's not supported

  • The connector never executes card charges, bank transfers or refunds. It records payments for bookkeeping only.
  • File and image uploads to records aren't available yet.
  • It can't change billing, plan or workspace-level settings.
  • It has no access to your AI assistant's other chats, memory or files.

Example prompts

See your clients

"Show me all my active clients."

Create an estimate

"Create an estimate for Alex Turner with 2 hours of labour at $95/hr and a $40 service fee."

Check what's owed

"How much revenue is outstanding this month, and which clients owe the most?"

Review the schedule

"What's on the schedule tomorrow, and are there any conflicts?"

Look up a client

"Find the client 'Alex Turner' and show their recent requests and payment history."

Add a client

"Add a new client: Jane Doe, jane@example.com, in Toronto."

Security

Use only the official endpoint

The only FieldCamp MCP endpoint is https://mcp.fieldcamp.ai/mcp. Never enter a look-alike URL — a spoofed server could capture your token.

Treat tokens like passwords

A fc_live_… token grants the same access you have. Keep it out of git and screenshots. Revoke any token you've exposed under Settings → Company → API Tokens.

Confirm write actions

Write and destructive tools are annotated so your assistant prompts before running them. Keep those confirmations on, especially for deletes.

Prompt injection

Content inside your records (a client note, a request description) is data, not instructions. Review any action an assistant proposes after reading external content before approving it.

Disconnect or revoke

  • OAuth (Claude / ChatGPT): remove the connector in your assistant's connector settings. Access stops immediately.
  • API token: go to Settings → Company → API Tokens and revoke it. Any client using it stops working at once.
  • Revoking a token or disconnecting doesn't change your FieldCamp data.

Rate limits

Requests are rate-limited per API token (60 requests/minute by default). A normal conversation stays far below this; you'd only approach it by asking an assistant to page through hundreds of records at once. The REST API has its own separate budget — see API rate limits.

If you're limited, you'll get an error mentioning too many requests. Wait a minute and retry, ask for a narrower result set (filter by stage, date or client instead of "everything"), or use a summary request — for totals, ask for the total rather than asking the assistant to add up pages itself.

Troubleshooting

“Server disconnected” or the client keeps asking me to sign in

The token was rejected, so the client fell back to trying OAuth. Check the token is current (regenerate under Settings → Company → API Tokens), that it's sent as Authorization: Bearer fc_live_…, and that you used the right config key for your client (url vs serverUrl vs httpUrl). For Claude Desktop, clear the bridge's cached auth with rm -rf ~/.mcp-auth and restart.

A tool says I don't have permission

Your grant is missing that scope. Disconnect and reconnect, approving the extra areas (for example jobs:write to create jobs). With an API token, confirm it was generated from the MCP Servers page so it carries the full MCP scope set.

“Token has expired” / 401 on every call

OAuth access tokens refresh automatically — approve the reconnect prompt if you see one. API tokens don't expire but can be revoked; generate a new one if it was.

My tool isn't listed above

Any MCP client that supports remote Streamable HTTP works — use the URL and Bearer header. If it only supports local servers, bridge with mcp-remote as shown in the Claude Desktop section.

The connector connects but no tools appear

Restart the client completely (quit, don't just close the window). For Claude Desktop the first launch also downloads mcp-remote via npx, which can take a few seconds.

Support

Questions or something not working? Contact support@fieldcamp.ai. For how data is handled, see the FieldCamp Privacy Policy.

On this page