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.
The endpoint to paste, and the two ways to authenticate.
Step-by-step for Claude, ChatGPT, Cursor, VS Code and more.
Every tool, grouped by area, with read/write flags.
Fixes for the errors people actually hit.
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/mcpThe transport is Streamable HTTP. There are two ways to authenticate, and which one you use depends on your client:
| Method | Best for | How it works |
|---|---|---|
| OAuth (recommended) | Claude, ChatGPT | You click Connect, sign in to FieldCamp in the browser, and approve the permissions. No token to copy or store. |
| Personal API token | Cursor, VS Code, Claude Code, Windsurf, Kiro, Gemini CLI, scripts | You 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
"Show me all my active clients."
"Create an estimate for Alex Turner with 2 hours of labour at $95/hr and a $40 service fee."
"How much revenue is outstanding this month, and which clients owe the most?"
"What's on the schedule tomorrow, and are there any conflicts?"
"Find the client 'Alex Turner' and show their recent requests and payment history."
"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.
Related articles
Apps & Integrations | FieldCamp
Review the apps, integrations, and add-ons available in FieldCamp, understand their access gates, and open the correct connection or settings workflow.
Connect Gmail & Outlook | FieldCamp
Connect Gmail and Outlook to FieldCamp with the right OAuth scopes, per-user or workspace mailbox setup, manual Resync, and SMTP fallback for blocked tenants.