Skip to content
Custom Connectors

Connect Expensify to Claude Code

Have Claude build and code expense reports in Expensify. From the terminal, inside the sessions where you already work.

How do you connect Expensify to Claude Code?

Claude Code reaches outside tools through MCP servers. To connect Expensify, you add a Expensify MCP server: a small hosted service that exposes Expensify's data and actions over the Model Context Protocol. With a custom connector we build for you, that is one command in the terminal, then an OAuth sign-in with your own Expensify account. No API keys pasted into config files.

claude mcp add --transport http expensify https://your-connector-url/mcp

Then run /mcp inside a Claude Code session to sign in. Add it with --scope project and the connector is checked into the repo for your whole team.

What can Claude Code do in Expensify once connected?

Full read-write Expensify access lets Claude create expense reports, attach and categorize expenses, set the policy and tags, add comments, and hand back a finished report in Open status for you to submit. The report assembly and coding that used to mean manual data entry happen where the expenses already live.

  • Create a new expense report and add matching expenses to it
  • Categorize and tag expenses against the correct policy and GL codes
  • Add a comment or note to flag an expense for review
  • Mark an already-approved report as reimbursed after you confirm
  • Pull expenses matching a query and draft a report grouped by project

One connector, every Claude surface

The connector we build is a remote MCP server, which is the same standard claude.ai and Claude Desktop use. Add it once and the same Expensify access works in Claude Code for you, in claude.ai for the rest of the team, and in Claude Desktop. One build, one set of permissions, one monthly plan covering all of them.

Build it yourself, or have it built?

If you live in the terminal, you can absolutely write your own MCP server against the Expensify API. The protocol is open. What you take on is everything around the happy path: OAuth token refresh, hosting, monitoring, keeping up when Expensify changes its API and when the MCP spec itself moves, and scoping write actions so an agent can never do more than you intended. We build Expensify connectors with separated read and write tools and approval gates on destructive actions, then host and maintain them so they keep working while you work.

Frequently asked questions

Does the same Expensify connector work in claude.ai and Claude Code?
Yes. It is one remote MCP server. Claude Code adds it with a single "claude mcp add" command; claude.ai and Claude Desktop add it as a custom connector in Settings. Each person signs in with their own Expensify account, so access always matches what that person can already see and do.
Do I need to host or maintain anything myself?
No. The connector runs as a hosted service we operate: we handle uptime, token health, API changes on Expensify's side, and MCP spec migrations under the monthly plan. Your side is one command in the terminal and an OAuth sign-in.
Is it safe to give a coding agent write access to Expensify?
Write access is scoped, not blanket. Read tools and write tools are separated, destructive actions like deleting or sending are gated behind your explicit approval, and the connector can never exceed the permissions of the Expensify account it signs in with. Revoking access is one click in Expensify.

Tell us what you run. We'll build the connector.

Pick your tool, choose what Claude should do, and get an instant scope and price. No call required.