We've gone down the same path as roofintent. The Jobber MCP is built on the GraphQL API, and we rolled the MCP server ourselves.
I mistyped in my earlier post and couldn't find a way to edit it. We have it running with a client and have been working through the write side as well. Getting Claude to create or update something in Jobber hasn't necessarily the hard part. Making sure it does it reliably without making an expensive mistake is.
We've ended up putting a lot of the guardrails into the server itself rather than relying on the ai to make the right decisions. Things like validating the property before creating a quote or preventing an invoice from being created when one already exists. Client data isolation is also something we've tried to pay a lot of attention to as a Jobber Partner. Each client gets their own deployment and their own Jobber credentials rather than sharing one instance across accounts. There's more to it than that, but that's the general shape of it.
The deeper we've gotten into it, the more we've found that Jobber's UI handles quite a bit behind the scenes that you have to account for yourself when you're working directly through the API.
We've essentially been able to shift the question from "Can Claude write to Jobber?" to "How do we make those writes safe and dependable enough to trust in a client's day-to-day operations?"
Also, really nice work with your GraphQL API roofintent . Has it been a useful tool for your business?