All Resources
Feature Spotlight 9 min read September 29, 2026

How MoveRight's MCP Server Makes Claude Your 24/7 Operations Assistant

MoveRight's MCP server lets Claude connect directly to your MoveRight instance — per-zone, per-permission — and take real actions: list jobs, view the day schedule, open a support ticket. It's not a chatbot. It's an employee that never sleeps.

Most AI integrations in SaaS are chatbots bolted onto a dashboard. They can answer questions about your data. They can summarize a report. They can’t do anything. You still have to go into the app and click the buttons.

MoveRight’s MCP server is different. It lets Claude — or any AI assistant that speaks the Model Context Protocol — connect directly to your MoveRight instance, see your data, and take real actions. Open a support ticket. List the jobs that were updated today. Pull up tomorrow’s dispatch schedule. All from a conversation, all inside your permissions, all scoped to the zone you’re working in.

It’s not a chatbot. It’s an employee.


What MCP Is

MCP stands for Model Context Protocol. It’s an open standard from Anthropic (the company behind Claude) that defines how an AI assistant talks to an external system. The external system implements an MCP server. The AI assistant is the MCP client. The server exposes a set of tools — functions the AI can call — and the AI decides which to call based on the conversation.

MoveRight implements the MCP server. Claude connects to it. When you ask Claude “what jobs were created today?”, Claude calls the list_resources tool on the MoveRight MCP server, gets the results, and answers you in the conversation. The data never goes through Claude’s training pipeline. It’s a live API call, scoped to your permissions, returned to the conversation.

This is the architectural difference between a chatbot and an agent. A chatbot reads a pre-fetched summary. An agent calls a tool and gets the live answer.


What Claude Can Do in MoveRight Today

As of the August 2026 release (Changelog_2608.md !2272, !2268, !2293), the MoveRight MCP server exposes four tools:

1. list_resources — See Recent Jobs

Claude can list recently created and updated jobs in the current zone, with job code and customer name. Ask “what jobs came in this morning?” and Claude calls list_resources, gets the list, and reads it back to you.

Each job is also exposed as a readable resource at moveright://jobs/<id>. Claude can read the job details directly from the resource URI — customer name, job code, status, events, charges, and the job timeline.

2. view_day_schedule / day_summary — See the Day’s Dispatch

Claude can pull up the day’s schedule, filtered to the current zone. Ask “what’s on the board for tomorrow?” and Claude calls view_day_schedule, gets the events, and summarizes them. The zone filter means a Vancouver zone admin only sees Vancouver jobs — not Charlotte, not Calgary.

3. view_events — See Job Events

Claude can view the events on a specific job, scoped to the zone. Ask “what happened on job PHX-XQI-ZQB?” and Claude calls view_events, gets the timeline, and walks you through it.

4. report_issue — Open a Support Ticket

This is the one that makes it an employee, not a chatbot. Ask Claude “there’s a bug in the estimate template — the tax breakdown is wrong on Vancouver Island jobs, can you report that?” and Claude calls report_issue, which opens a ticket with the Move Right development team. The ticket includes the zone, the job context, and your description. The dev team sees it in their queue. You don’t have to leave the conversation, open a support portal, fill out a form, and copy-paste the job code.


The OAuth Fix — Why Claude Couldn’t Connect Before

Here’s the honest engineering story. We shipped the MCP server in August 2026. Claude.ai couldn’t connect to it. Users saw “Failed to start MCP authorization” and a dead end.

The problem was in our OAuth configuration. The protected resource metadata — the file that tells Claude where to send authentication requests — pointed to FusionAuth’s domain. FusionAuth is our auth provider. But FusionAuth’s domain doesn’t serve OAuth discovery endpoints. It doesn’t host /.well-known/oauth-authorization-server. Claude was knocking on a door that didn’t exist.

The fix (Changelog_2608.md !2268): point the metadata to moveright.app, where our backend serves the OAuth discovery endpoints. Claude can now find the authorization server, redirect the user through the OAuth flow, and get a token.

We also fixed three other things in the same MR:

  • Email fallback. OAuth introspection doesn’t return the user’s email. We fetch it from the FusionAuth user API as a fallback, so we can link the MCP session to the right MoveRight user.
  • Role selection. When a user has multiple roles, we prefer the role with mcp.access permission or wildcard *.*. No more “Missing permission mcp.read” for zone admins.
  • Password grant scope. The password grant now requests the email scope so the userinfo endpoint returns email_verified. We require email verification before identity resolution — a security guard, not a convenience.

Zone-Scoped Permissions: Claude Works Inside Your Access Level

Every MCP tool call requires a zoneId. Permissions are combined across all applicable roles in the selected zone. A zone admin in Vancouver can’t see jobs in Charlotte. A sales agent in the NSC can see the NSC schedule but not the franchise financials. Claude works inside the same permission model as a human user.

This is the part that makes it safe. A chatbot that can “see everything” is a liability. An agent that can only see what you can see is an employee.

The switch_zone tool was removed in !2289. Instead, the zone is passed per call. If you work across multiple zones, you specify which zone each request is for. No global context, no accidental cross-zone data exposure.

The MCP guard also had a bug where view_events threw “(intermediate value) is not iterable” because the permissions array wasn’t always returned. Fixed in !2293 — the guard always returns the permissions array, and view_day_schedule / day_summary now apply zone filters so cross-franchise data is never returned.


Year-Long Refresh Token: Sessions That Don’t Die

An MCP session is only useful if it stays connected. If the refresh token expires after an hour, you’re re-authenticating every morning. That’s not an employee — that’s an intern who forgets their badge.

In !2293, we patched the MCP refresh-token TTL to one year. You connect Claude to MoveRight once. The session stays alive for a year. You can close Claude, reopen it tomorrow, and the connection is still there. Long-lived sessions for long-lived work.


Why This Isn’t a Chatbot

A chatbot reads your data and paraphrases it back to you. It can’t change anything. It can’t create anything. It can’t open a ticket, schedule a follow-up, or surface a problem.

An MCP-connected agent reads your data AND takes actions. It opens a support ticket. It surfaces a job that was updated 10 minutes ago. It pulls up tomorrow’s schedule so you can review it on your phone without opening the app. The difference between “I can see the schedule” and “I can see the schedule and report a problem with it” is the difference between a dashboard and an employee.

The other difference: the agent works inside your permissions. A chatbot that reads your entire database is a security incident waiting to happen. An MCP agent that can only see your zone, only call the tools you have permission for, and only act within your role is a controlled, audited, scoped employee.


How to Connect Claude to MoveRight

  1. Open Claude Desktop or claude.ai
  2. Go to Settings → Connectors
  3. Add the MoveRight MCP server
  4. Complete the OAuth flow (log in with your MoveRight credentials)
  5. Select your zone
  6. Start asking

Example prompts:

  • “What jobs were created in my zone today?”
  • “What’s on the schedule for tomorrow?”
  • “Show me the events on job PHX-XQI-ZQB”
  • “There’s a bug in the Vancouver Island estimate template — the GST number is missing. Open a ticket with the dev team.”

Claude calls the MoveRight MCP tools, gets the live data, and answers in the conversation. No app to open. No support portal to navigate. No copy-paste of job codes.


What’s Next

The MCP server is early. The four tools today are read-only (list_resources, view_day_schedule, day_summary, view_events) plus one action (report_issue). The next set of tools we’re considering:

  • Create a follow-up task on a job — Claude adds a task to a job’s timeline
  • Update a job summary — Claude edits the customer/admin/crew summary (now auditable via !2311)
  • Search jobs by customer name or phone — Claude calls the Elasticsearch-powered global search (!2193)
  • Generate a document — Claude calls AegisDoc to produce an estimate or invoice
  • Run a calculator — Claude calls the run_calculator AI function to recompute job totals

Each of these turns Claude from a reader into a doer. The roadmap is: every action a human can take in MoveRight, Claude can take via MCP — inside the same permissions, inside the same audit trail.

MoveRight is the moving company CRM that lets Claude be your 24/7 operations assistant — not a chatbot, an employee that works inside your permissions and never sleeps.

Connect Claude to MoveRight


References:

MR

MoveRight Team

MoveRight

mcp claude ai automation integration

Ready to put this into practice?

Start a 5-day free trial and see how MoveRight handles this in your business.