Connect your AI Agents to Expensify in minutes

Merge lets you securely connect your agents to Expensify and thousands of tools instantly

Available tools

export_card_transactions

Export corporate card transactions for a domain by date range. Two-step: generates reconciliation file then downloads. Returns transaction details including merchant, amount, and card info.

get_domain_cards

List all corporate cards registered on a domain. Returns card details including bank, card name, number, and assigned employee. Use the domain from your company email (e.g. mycompany.com).

update_employees

Add or update employees on a policy. Each employee needs email and manager email. Note: this API is deprecated by Expensify. Use list_policies first to find policy IDs.

create_expenses

Create one or more standalone expenses. Each expense needs merchant, amount (cents), currency, and date. Optionally attach to a report or policy. Use get_policy to check valid categories/tags.

list_policies

List all accessible Expensify policies (workspaces). Returns policy IDs, names, types, and roles. Use this first to get policy IDs needed by other tools.

get_policy

Get detailed policy config including categories, tags, report fields, employees, and tax settings. Use list_policies first to find policy IDs.

create_policy

Create a new Expensify policy (workspace). Returns the new policy ID. Use 'team' for small groups or 'corporate' for organizations with advanced features.

update_categories

Add, update, or replace expense categories on a policy. Use 'merge' to add/update or 'replace' to overwrite all. Use get_policy first to see existing categories.

update_tags

Add, update, or replace tags on a policy. Tags are used to categorize expenses (e.g., by project or department). Use get_policy first to see existing tags.

export_reports

Export expense reports with transactions by date range, status, or ID. Two-step: generates file then downloads. Use list_policies first to verify policy IDs.

create_report

Create a new expense report with transactions. Requires policy ID (use list_policies), employee email, title, and at least one expense with date, merchant, and amount in cents.

update_report_status

Update report status to REIMBURSED (only supported status via API). Filter by report IDs or date range. Reports must be in APPROVED state first.

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Expensify  MCP server

FAQs on using Merge's Expensify  MCP server

Explore other MCP servers built and managed by Merge

activecampaign
ActiveCampaign
airtable
Airtable
amazon_s3
Amazon S3
anaplan
Anaplan
apollo
Apollo
articulate
Articulate Reach 360
asana
Asana
bamboohr
BambooHR
basecamp
Basecamp
bitbucket
Bitbucket
box
Box
cms_coverage
CMS Coverage
calendly
Calendly
canva
Canva
clickup
ClickUp
clinicaltrials
ClinicalTrials.gov
cloudflare
Cloudflare
confluence
Confluence
contentful
Contentful
databricks
Databricks
datadog
Datadog
docusign
DocuSign
dropbox
Dropbox
dynamics365
Dynamics 365 Sales
exa
Exa
factset
FactSet
figma
Figma
firecrawl
Firecrawl
freshbooks
FreshBooks
freshdesk
Freshdesk
freshservice
Freshservice
front
Front
gamma
Gamma
github
GitHub
gitlab
GitLab
gmail
Gmail
gong
Gong
google_bigquery
Google BigQuery
google_calendar
Google Calendar
google_docs
Google Docs
google_drive
Google Drive
google_meet
Google Meet
google_sheets
Google Sheets
google_slides
Google Slides
greenhouse
Greenhouse
hibob
HiBob
hubspot
HubSpot
intercom
Intercom
jira
Jira
jira_service_management
Jira Service Management
linear
Linear
linkedin
LinkedIn
make
Make
microsoft_teams
Microsoft Teams
miro
Miro
monday
Monday.com
npi_registry
NPI Registry
notion
Notion
onedrive
OneDrive
onenote
OneNote
oracle_hcm
Oracle HCM
outlook
Outlook
paypal
PayPal
pipedrive
Pipedrive
pubmed
PubMed
pylon
Pylon
quickbooks_online
QuickBooks Online
ramp
Ramp
sapsf
SAP SuccessFactors
salesforce
Salesforce
sendgrid
SendGrid
sentry
Sentry
servicenow
ServiceNow
sharepoint
SharePoint
shopify
Shopify
slack
Slack
snowflake
Snowflake
square
Square
straker
Straker
stripe
Stripe
teamwork
Teamwork.com
trello
Trello
visualping
VisualPing
weather
Weather
wikipedia
Wikipedia
workday
Workday
x
X
zendesk
Zendesk
zendesk_sell
Zendesk Sell
zohocrm
Zoho CRM
zohodesk
Zoho Desk
zoom
Zoom
zoominfo
ZoomInfo
biorxiv
bioRxiv
n8n
n8n

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now