Configuration

AI Assistants

Connect Servelo to the AI assistant you already use and run your business from a chat: close tickets, create tickets and clients, build and send quotes and invoices, record payments, log expenses, and ask questions about your work. Servelo connects through MCP, the open standard for linking AI assistants to apps, so it isn't tied to one assistant.

Which assistants work

Any AI app that supports remote MCP connectors with sign-in (OAuth) can connect. Apps that also support MCP Apps show Servelo's forms right in the chat; others ask you for the details in the chat instead.

AssistantForms in the chatStatus
Claude (web, desktop, mobile)YesTested
Claude CodeNo, asks in the chatTested
ChatGPTExpected (supports MCP Apps)Setup steps below; we're still testing it
Gemini (app and CLI)Not yet knownSetup steps below; we're still testing it
Other MCP appsDepends on the appShould work with the connector URL

Connect your assistant

Every assistant uses the same connector URL:

https://serveloapp.com/mcp

When you add it, the assistant opens a Servelo sign-in page. Sign in to your workspace and click Approve. Each person connects with their own login, and the assistant gets only that person's permissions. Admins can copy the URL from Settings > Integrations > AI assistants.

Claude

  1. In Claude (claude.ai or the desktop app), open Settings > Connectors and choose Add custom connector.
  2. Name it Servelo and enter https://serveloapp.com/mcp.
  3. Click Connect, sign in to Servelo, and click Approve.

The connector then also works in the Claude mobile apps. Servelo's commands appear in Claude's + menu under Servelo. You need a Claude plan that supports custom connectors. On a Claude Team or Enterprise plan, an owner of your Claude organization may need to add the connector first.

Claude Code

Run this in a terminal, then start Claude Code and use /mcp to sign in:

claude mcp add --transport http servelo https://serveloapp.com/mcp

Claude Code doesn't show forms, so it asks for the details in the chat and confirms before saving.

ChatGPT

โ„น๏ธ We're still testing ChatGPT. These steps follow ChatGPT's current setup, and its menu names change often, so yours may differ slightly.
  1. In ChatGPT, open Settings > Apps & Connectors, then Advanced settings, and turn on Developer mode. This needs a paid plan (Plus, Pro, Business, Enterprise, or Edu).
  2. Choose Create (or Add custom connector), name it Servelo, enter https://serveloapp.com/mcp, and choose OAuth for authentication.
  3. Sign in to Servelo and click Approve.
  4. In a new chat, click +, choose Developer mode, and pick Servelo.

Gemini

โ„น๏ธ We're still testing Gemini. Custom connectors in the Gemini app are new and their menu names may differ from these steps.

Gemini app: open Settings & help > Connected Apps, choose Add a custom app, enter https://serveloapp.com/mcp, and follow the prompts to sign in to Servelo and approve.

Gemini CLI: add Servelo to ~/.gemini/settings.json, then start Gemini CLI. It opens your browser to sign in the first time.

{
  "mcpServers": {
    "servelo": {
      "httpUrl": "https://serveloapp.com/mcp",
      "oauth": { "enabled": true }
    }
  }
}

Other assistants

Add a remote MCP server (sometimes called a custom connector or custom app) with the URL https://serveloapp.com/mcp and OAuth sign-in. Servelo supports dynamic client registration, so the app registers itself; there's no API key to copy.

๐Ÿ’ก When Servelo adds new commands, disconnect and reconnect the connector in your assistant so it sees them. Assistants remember the command list from when you connected, so starting a new chat isn't enough.

How it works

Once connected, you can work three ways, and mix them in one conversation:

Forms follow the same pattern everywhere:

  1. If the action works on something that already exists (a ticket, client, quote, or invoice), you pick it from a list. Tickets scheduled today come first, and a filter box narrows the list, so you never need to know a ticket number.
  2. The form opens filled in from your data, plus anything you already said ("new ticket for Dana Lee, printer offline").
  3. Nothing is saved until you click the form's button. It saves exactly the way the Servelo app does: same emails, revenue, fees, calendar events, and audit log.
  4. Afterward the form offers next steps, like Schedule it after a new ticket or Send a receipt after marking an invoice paid.

In assistants that can't show forms, the assistant asks for the same details in the chat and confirms before saving.

Commands

Each command starts the same way whether you say its name or pick it from your assistant's menu (in Claude, the + menu under Servelo).

CommandStarts withWhat it does
Close a ticketYour open ticketsCloses a ticket with the closing comment, hours, charge, payment, and fee
New ticketThe formCreates a ticket for an existing client or a new one
Update a ticketYour open ticketsChanges any detail of a ticket
Add a noteYour open ticketsAdds an internal note, or messages the customer
Schedule a visitYour open ticketsSets the visit date, time, and tech
Create a follow-upAll ticketsCreates a linked follow-up ticket for the same client
Pin or unpin a ticketYour open ticketsPins a ticket to the dashboard, or unpins it
New clientThe formAdds a client
Update a clientYour clientsChanges a client's contact details
Look up a clientYour clientsShows their details, recent tickets, and balance
New quoteThe formBuilds a quote from your price book
Send a quoteDraft and sent quotesEmails a quote to the customer
New invoiceYour tickets (or start without one)Builds an invoice from a ticket or from scratch
Send an invoiceUnpaid invoicesEmails an invoice, or resends it as a reminder
Mark an invoice paidUnpaid invoicesRecords the payment and processing fee
Send a receiptPaid invoicesEmails a receipt
Log an expenseThe formRecords an expense
Log revenueThe formRecords income that didn't come through a ticket or invoice
My scheduleA viewYour visits for the next 7 days
Who owes meA viewUnpaid invoices and unpaid jobs, oldest first

Ticket actions

Close a ticket

The same as the Close button in Servelo. Prefilled with the charge (from the ticket, or its invoice or accepted quote), round-trip miles from your start location in My Account when the ticket has none, the payment method with its fee estimated from the method's rate, lead fee, hours, work type, and assigned tech.

New ticket

Update a ticket

Title, description, status, priority, work type, assigned tech, visit time, charge, hours, miles, lead fee, payment method, and internal notes. Only what you change is saved. Status can't be set to Closed here; closing always goes through Close a ticket.

Add a note

An internal note only staff can see, or a customer message that emails them (the form tells you if the client has no email on file).

Schedule a visit

Date and time (required) and assigned tech. An open or in-progress ticket becomes Scheduled.

Create a follow-up

A new, numbered ticket for the same client, linked to the original. Title (prefilled "Follow-up: ..."), description, priority, tech, and visit time.

Pin or unpin a ticket

Pinned tickets show on the dashboard regardless of date.

Client actions

New client

First and last name, company, phone, email, address, how they found you, and notes. A name or company is required. Afterward you can start a ticket or quote for them in one click.

Update a client

Name, company, phone, email, address, how they found you, and notes. Anything you don't change stays as it was.

Look up a client

Their address, lifetime revenue, what they owe, and notes, plus their recent tickets (with Update and Close buttons) and unpaid invoices (with Mark paid and Resend). Buttons start a new ticket or quote for them.

Quote and invoice actions

New quote

Send a quote

The email address (prefilled from the client), an optional message, and a copy to you.

New invoice

Pick a ticket, or start without one. From a ticket, the line items are copied from its accepted quote, or from its charge if there's no quote. The due date follows your payment terms. Saved as a draft with Send it and Mark it paid offered next.

Send an invoice

Emails an unpaid invoice, or resends it as a reminder. Paid invoices use Send a receipt instead.

Mark an invoice paid

Choose the payment method and the fee is estimated from its rate (see Processing Fees), or type the real fee. Marking an invoice paid also marks its ticket paid and closes it, and records the revenue once (it won't duplicate revenue already recorded when the ticket was closed).

Send a receipt

Emails a receipt for a paid invoice.

Money actions

Log an expense

What it was and the amount (required), date (today by default), category, the account it was paid from, an optional ticket, and notes.

Log revenue

Description and amount (required), date, category, and an optional client. Paid tickets and invoices already record their own revenue, so use this only for income that didn't come through one.

Views

My schedule

Every visit in the next 7 days, grouped by day with time, client, address, and tech. Each visit has Close, Note, and Reschedule buttons.

Who owes me

The total outstanding, then unpaid invoices oldest first (marked Overdue 14 days past due) with Mark paid and Send reminder, and closed jobs that were never paid or invoiced, with Create invoice.

Questions your assistant can answer

AreaExamples
Tickets"What's open for Maple Street Clinic?", "Show me ticket 1042", "What's in progress?"
Clients"What's on file for Dana Lee?", "Find the client with phone 727-555-0100"
Quotes and invoices"Which invoices are unpaid?", "What did we quote Harbor Auto?"
Assets"What equipment does Coastal Realty have?"
Money"How's this month looking?", "What did I spend on parts in September?", "What revenue came in last week?"
Team"Who are my technicians?"
Anything"Search for anything about the Synology NAS"

What the connector can't do

Permissions and privacy

Workspace controls (admins)

Admins decide who can connect from Settings > Integrations > AI assistants. Under Who can connect, pick one:

SettingWhat happens
Everyone (default)Any user in the workspace can connect an assistant with their own permissions.
Admins onlyOnly admins can connect. Existing connections from other users stop working right away.
OffNo one can connect, and every existing connection stops working right away.

Changing the setting doesn't delete anyone's connection. If you switch back to Everyone, paused connections start working again without anyone reconnecting. To remove a connection for good, use Disconnect. The same card lists every active connection in the workspace (whose it is, which app, and when it was last used). Changes to the setting and admin disconnects are recorded in the Audit Log.

Manage your connections

Admins manage their own connections, along with everyone else's, in Settings > Integrations. Everyone else sees and removes their own under My Account > Connected Apps. Each app appears once with when it was connected and last used; for example, Claude on the web and Claude Code count as separate apps. Disconnect revokes access immediately. You can also remove the connector in your assistant's own settings, but disconnecting in Servelo is what guarantees access is cut off.

Troubleshooting

What you seeWhat to do
The assistant doesn't know a command, or says a Servelo tool isn't availableDisconnect and reconnect the connector in your assistant. It remembers the command list from when you connected.
"Your workspace admin has turned off connected apps"An admin has set Who can connect to Off. Ask them to turn it back on.
"Your workspace admin has limited connected apps to admins"Only admins can connect right now. Ask an admin to switch the setting to Everyone.
The assistant says the Servelo connector needs to be reconnectedThe connection was disconnected, went unused for 90 days, or your account was deactivated. Reconnect from your assistant's settings.
No form appears, just questionsYour assistant doesn't show MCP Apps forms (or that part isn't supported there yet). Answer in the chat; it saves the same way.
It can't find a record you can seeMake sure you signed in to the right workspace when connecting. Check My Account > Connected Apps in that workspace.
An action fails with a permission errorThe assistant has your role's permissions. If you can't do it in Servelo, it can't either.

Technical details

ItemValue
Connector URLhttps://serveloapp.com/mcp
TransportMCP Streamable HTTP
Sign-inOAuth 2.1 with PKCE (S256) and dynamic client registration; discovery at /.well-known/oauth-authorization-server
FormsMCP Apps (2026-01-26): ui://servelo/action-form and ui://servelo/close-ticket
Form toolsopen_form (19 actions), submit_form, prepare_close_ticket, close_ticket
Read toolslist_tickets, get_ticket, list_customers, get_customer, list_quotes, get_quote, list_invoices, get_invoice, list_assets, get_asset, list_technicians, list_revenue, list_expenses, get_dashboard_summary, search
Direct write toolscreate_ticket, update_ticket (can't close), add_ticket_comment, pin_ticket, create_customer, update_customer, create_quote, create_invoice
Commands menuMCP prompts, one per action plus Close a ticket

See the API Reference for developer details.