The Field Service MCP Server
Connect Claude or ChatGPT to your Service Storm company once, and the assistant you already use can look up a customer, check a schedule, price a job, or draft the quote — against live records, inside your existing permissions.

Model Context Protocol is the emerging open standard for letting an AI assistant use another system's real tools and data. Instead of pasting your job list into a chat window, you connect the system itself, and the assistant can call actual functions against actual records. Service Storm runs a hosted MCP server for exactly that, and it supports both Claude and ChatGPT.
The short version
Service Storm's MCP server lives at https://mcp.servicestorm.io/mcp. You connect it from inside Service Storm using OAuth — no API key to paste — and choose one of three access levels. At the highest level it exposes everything Otto's own specialists can call, close to a hundred tools, all filtered by your individual permissions. Every call is audited, and you can revoke a connection at any time.
What is MCP, in plain language?
Large language models are good at reasoning and bad at knowing anything specific about your business. For years the workaround was copy-and-paste: dump a spreadsheet into the chat and hope. MCP replaces that with a proper connection. The AI application — Claude, ChatGPT, or something you build yourself — talks to an MCP server, which advertises a list of tools it can call and the arguments each one takes. When you ask a question, the assistant picks the right tool and calls it.
The important consequence is that the answers are live. Ask what's on Thursday and the assistant queries Thursday, rather than recalling whatever you pasted in last week. And because tools can write as well as read, the assistant can do things — not merely describe them.
Why this matters for a service business
It means you don't have to choose between the software that runs your company and the assistant you actually enjoy using. Your estimator can price a job in the tool they already have open, and the quote lands in Service Storm where your crew, your invoices, and your accountant expect to find it.
What you can do through it
The tool surface follows Service Storm's own structure, so anything you can meaningfully ask about the business is reachable at the read level:
- Look up customers, their properties, history, and open balances
- Search jobs, visits, quotes, invoices, leads, and tasks
- Read schedules, employee shifts, and job pipelines
- Inspect your service catalog, materials, and pricing context
- Pull quote and invoice detail, including billing summaries and payment state
- Read contract templates, quote templates, and project notes
Grant the drafts level and it adds a small, carefully chosen set of reviewed write tools: creating a draft quote from one of your templates, editing a draft quote, creating and updating tasks, and creating and updating project notes. These are the writes that are cheap to undo and hard to embarrass you with.
Grant the top level — labelled "Run your business" on the consent screen — and the server exposes full parity with Otto: every tool Otto's specialists can call, gated by the same per-tool permission rules Otto uses, including write permission per tool, field-technician narrowing, and the job-relationship and field-note rules.
The three consent levels
| Level | Scope | What it adds |
|---|---|---|
| Read | mcp:read | Every read tool. Nothing in your business changes. |
| Drafts | mcp:drafts | Draft quote creation from a template, draft quote editing, task create and update, project-note create and update. |
| Run your business | mcp:write | Full Otto parity — every tool Otto's specialists can call, under the same per-tool permission gates. |
You pick the level when you approve the connection, and it is shown plainly on the approval page before you confirm. Start at read. Move up when you trust it.
What is deliberately not exposed
Some things are missing from the MCP server on purpose, and some are missing for architectural reasons. Both lists are worth knowing.
By policy, no connected assistant at any level can send a message to your customer, collect a payment, or accept a quote or contract on someone's behalf. Those actions reach outside your company or move money, so they stay in the app and in human hands.
By architecture, a handful of Otto's abilities aren't hosted at all. The MCP gateway has no credential for the AI service's own database, so the catalog, configuration, field-execution, and service-plan handlers stay out of it. In practice that means starting, pausing, completing, and cancelling a visit remains something you do in the Service Storm app. New tools added to the internal registry stay denied until they've been reviewed into a group — the default is closed, not open.
Security: how the connection actually works
This is the part worth reading carefully, because "connect your business data to an AI assistant" deserves scrutiny.
You approve it, from inside Service Storm
Setup uses OAuth 2.1 with PKCE and dynamic client registration. There is no API key to generate, paste, store in a chat window, or leak. You start from Integrations → AI connections in Service Storm, sign in normally, and confirm which company the connection is bound to. Your normal company selector determines what gets approved, so a multi-company operator gets a separate, clearly-named connection per company rather than one key to everything.
The gateway can't impersonate you
The MCP service does not hold a login-signing secret and cannot mint Service Storm login tokens. The approved session credential is encrypted at rest inside its grant and sent only to the configured backend — it never appears in an MCP response, a UI response, a URL parameter, or an audit event. Your assistant receives opaque tokens that are stored only as hashes.
Short leashes on every token
| Credential | Lifetime |
|---|---|
| Access token | 15 minutes maximum |
| Refresh token | Rotates on use, 30 days maximum |
| Authorization code | Two minutes |
| Pending consent | Ten minutes |
| The grant itself | Never outlives your approved Service Storm login session, and never exceeds 90 days |
Reusing an authorization code or a refresh token revokes the whole token family — that's replay detection, and it means a stolen token is a dead token the moment the real one is used.
Permissions are checked every single time
Every HTTP request and every tool execution rechecks the grant, whether the user is locked, whether their membership is still active, and what their current permissions are. Remove someone from the company or change their role and their assistant's reach changes on the next call — you are not waiting for a token to expire. Each request also owns its own executor; no company API key or user token is held globally.
Everything is on the record
Each tool call writes audit rows — started, then success or error — and refusals from the permission policy write a denied row. Rows carry the grant, user, company, tool name, which assistant it came from, and how long it took. On errors they carry the class of error only. Arguments and record contents are never stored. Platform staff monitor these for connections probing past their scope, and a user's AI access can be suspended centrally, which takes effect on their next call.
One thing to check during setup
Your existing Service Storm automations still react to record changes the same way they always have. If you have an automation that fires when a quote is created, it will fire for a quote created through MCP too. Review your automations as part of connecting — that is a feature, but it should not be a surprise.
Getting connected
- In Service Storm, select the company you want to connect.
- Open Integrations → AI connections.
- Choose Connect to Claude or Connect to ChatGPT and follow the setup dialog.
- Sign in, confirm the company shown on the approval page, and choose your access level.
- Select the connection in a new conversation and ask it something real.
Connecting a second company means repeating the setup with that company selected; you'll end up with two clearly-named connections. Switching companies inside Service Storm never moves an existing connection to a different company.
Step-by-step setup guides
The exact clicks for each assistant, including the developer-mode step ChatGPT currently requires.
Set up ClaudeWho this is for
If nobody at your company uses an AI assistant day to day, use Otto inside Service Storm and ignore this page — you get the same capability without the setup. The MCP server is for the growing group of owners, estimators, and operations managers who already live in Claude or ChatGPT and would rather bring their business into that window than tab away from it. It's also for technically-minded teams who want to build their own tooling against a real, permission-aware API surface.

Your assistant. Your data. Your rules.
OAuth-approved, company-bound, permission-filtered, and audited on every call — with instant revocation when you want it back.
Frequently Asked Questions
Run jobs. Get paid.
Service Storm runs your whole field service business from one platform — lead to ledger.
Book a Demo
