Connect your AI Agents to Brex in minutes

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

Available tools

create_accounting_integration

Create a new accounting system integration (alpha feature - may be restricted).

disconnect_accounting_integration

Disconnect an accounting system integration (alpha feature - may be restricted).

reactivate_accounting_integration

Reactivate a disconnected accounting system integration (alpha feature - may be restricted).

list_accounting_records

List accounting records. Requires an active accounting integration (use createaccountingintegration first). Filter by ids, reviewstatus, sourcetype, or updatedat (RFC 3339). Set singleentry to get single-entry line items. Alpha feature - may be restricted.

get_accounting_record

Get a specific accounting record. Use listaccountingrecords to find record IDs. Set single_entry to get single-entry line items. Alpha feature - may be restricted.

report_accounting_export_results

Report results of an accounting export (success or failure) (alpha feature - may be restricted).

list_budget_programs

List all budget programs in the company.

get_budget_program

Get a specific budget program by ID. Use listbudgetprograms to find program IDs.

list_budgets

List all budgets in the company. Use cursor and limit for pagination. The Brex Budgets API has no server-side status filter, so filter the returned items by their status field.

create_budget

Create a budget. Requires parentbudgetid (call listbudgets first to get a parent, e.g. the root 'All Budgets'), name, description, periodrecurrencetype, and amount. Use listusers for owneruserids.

get_budget

Get a specific budget by ID. Use list_budgets to find budget IDs.

update_budget

Update a budget's name, description, or limit. Use list_budgets to find budget IDs.

archive_budget

Archive a budget (mark as inactive). Use list_budgets to find budget IDs.

list_spend_limits

List all spend limits. Filter by member user (use list_users to find user IDs) and use cursor/limit for pagination.

create_spend_limit

Create a new spend limit for a budget or user.

get_spend_limit

Get a specific spend limit by ID. Use listspendlimits to find spend limit IDs.

update_spend_limit

Update a spend limit's name, description, or base limit amount. Use listspendlimits to find spend limit IDs.

archive_spend_limit

Archive a spend limit (mark as inactive). Use listspendlimits to find spend limit IDs.

list_cards

List Brex cards. Filter by user_id and use cursor/limit for pagination.

get_card

Get a specific card by ID.

create_card

Create a new card. Use listusers to find a valid owner user ID. WARNING: This creates a real card. A failed call is not always a no-op — Brex creates the backing spend limit before it validates funding, so a failure can still leave one behind; check listspend_limits before retrying.

update_card

Update a card's spend controls and metadata.

lock_card

Lock a card. Provide a reason from the enum (CARDDAMAGED, CARDLOST, etc.).

unlock_card

Unlock a locked card.

terminate_card

Terminate a card permanently. Provide a reason from the enum.

get_company

Get the Brex company the credential belongs to, including its legal name, mailing address, and account type (BREXCLASSIC or BREXEMPOWER).

list_departments

List Brex departments. Filter by name and use cursor/limit for pagination.

get_department

Get a specific department by ID.

create_department

Create a new department.

list_expenses

List expenses, filtering server-side by status, payment status, expense type, user, budget, or a purchased/updated/payment-posted date range. The filters take lists, e.g. status=['APPROVED','SETTLED']. Use listusers for user IDs and listbudgets for budget IDs. Pass expand (e.g. ['merchant']) for extra detail. Dates are RFC 3339, e.g. 2026-01-31T00:00:00Z.

get_expense

Get a specific expense by ID. Use listexpenses to find expense IDs. Pass expand (e.g. ['merchant', 'receipts.downloaduris']) for extra detail, and loadcustomfields to include custom field values.

update_expense

Update a card expense's memo. Use list_expenses to find expense IDs.

create_receipt_match

Register a receipt so Brex auto-matches it to a card expense by amount and date. Returns a presigned URL (uri) to PUT the receipt file. Provide the receipt file name including its extension.

create_receipt_upload

Get a presigned URL to upload a receipt for a specific card expense. Returns uri to PUT the file (valid ~30 min). Use list_expenses to find expense IDs; provide the receipt file name including its extension.

list_locations

List Brex locations. Filter by name and use cursor/limit for pagination.

get_location

Get a specific location by ID.

create_location

Create a new location.

list_referrals

List all onboarding referrals created by this application. Use cursor for pagination; this endpoint has no page-size parameter.

get_referral

Get an onboarding referral by ID, including its signup URL and status. Use listreferrals, or the id returned by createreferral, to find referral IDs.

create_referral

Create an onboarding referral (partner API). Requires referralcode and applicant details (firstname, lastname, email). Returns referralsignup_url, which the applicant uses to claim the account.

list_vendors

List all vendors in the company. Filter by vendor name and use cursor/limit for pagination.

create_vendor

Create a new vendor.

get_vendor

Get a specific vendor by ID. Use list_vendors to find vendor IDs.

update_vendor

Update a vendor's name, email, phone, or beneficiary name. Use list_vendors to find vendor IDs. Bank details cannot be changed here — rotate a vendor's payment instrument in the Brex dashboard.

delete_vendor

Delete a vendor by ID. Use list_vendors to find vendor IDs.

list_transfers

List all transfers. Use cursor/limit for pagination. The Brex API does not support server-side status filtering here; filter client-side if needed.

create_transfer

Create an outgoing transfer. WARNING: This moves real money out of the account. Requires amount, counterparty (payee), description, externalmemo, and originatingaccount. Use getprimarycashaccount/listcashaccounts for the originating account and listvendors for a vendor counterparty.

get_transfer

Get a specific transfer by ID. Use list_transfers to find transfer IDs.

create_incoming_transfer

Pull funds into a Brex account. WARNING: This moves real money. Requires amount, counterparty (payer bank account), description, and receivingaccount. Use getprimarycashaccount/listcashaccounts for the receiving account.

list_linked_accounts

List linked bank accounts eligible to fund ACH transfers into Brex. Requires accountids: the Brex account IDs to scope the lookup to (use listcashaccounts or getprimarycashaccount; the same accountid is also on every listbudgets and listspendlimits result).

list_titles

List Brex job titles. Filter by name and use cursor/limit for pagination.

get_title

Get a specific title by ID.

create_title

Create a new job title.

list_card_accounts

List all card accounts in the company.

list_card_statements

List statements for the company's card account, newest period first. Brex exposes statements for the primary card account only, so this takes no account ID.

list_cash_accounts

List all cash accounts in the company, with balances. Account numbers are returned as the last four digits only.

get_primary_cash_account

Get the primary cash account for the company.

get_cash_account

Get a specific cash account by ID, with balances. Use listcashaccounts to find account IDs. The account number is returned as the last four digits only.

list_cash_statements

List statements for a cash account. Use listcashaccounts to find account IDs.

list_card_transactions

List card transactions for the company. Brex exposes only the primary card account, so this takes no account ID. Filter server-side with postedatstart (RFC 3339, e.g. 2026-01-31T00:00:00Z) or userids — use listusers to find user IDs. Pass expand=['expense_id'] to link each transaction to its expense.

list_cash_transactions

List transactions for a cash account. Use listcashaccounts to find account IDs. Filter server-side with postedatstart (RFC 3339, e.g. 2026-01-31T00:00:00Z).

list_trips

List company trips. Use lastupdatedafter to fetch only trips changed since a timestamp (RFC 3339, e.g. 2026-01-31T00:00:00Z). /v1/trips supports no other filter — to find one traveler's trips, read the traveler field on each result.

get_trip

Get a specific trip by ID. Use list_trips to find trip IDs.

list_trip_bookings

List all bookings for a trip. Use list_trips to find trip IDs.

get_trip_booking

Get a specific trip booking by ID. Use listtripbookings to find booking IDs.

list_users

List Brex users. Filter by email or remotedisplayid, and pass expand=['limit'] to inline each user's spend limit. Use cursor and limit for pagination.

get_current_user

Get the current authenticated user's information.

get_user

Get a specific user by ID.

create_user

Create a new Brex user. Use listusers, listlocations, listdepartments, and listtitles to find valid IDs for optional fields.

update_user

Update a user's details (status, manager, department, location, title).

get_user_limit

Get a user's monthly spend limit.

update_user_limit

Set a user's monthly spend limit in cents.

validate_credential

Validate Brex credentials. Verifies OAuth2, user token, or client_credentials access.

View all tools by creating a free accountSee more tools

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 Brex  MCP server

FAQs on using Merge's Brex  MCP server

What is a Brex MCP?

It's an MCP server that lets your agents access data and functionality from Brex via tools. Your agents can invoke these tools to pull a card's recent transactions, check an expense's approval status, flag a receipt as missing, review a budget's remaining balance, and more.

Brex has its own MCP server. It covers expenses, transactions, budgets, and user lookups, but it doesn't include DLP controls, cross-connector Tool Packs, or centralized credential management, which is why teams often route through a platform like Merge Agent Handler instead.

How can I use the Brex MCP server?

The use cases naturally depend on the agent you've built, but here are a few common ones:

  • Missing-receipt reminders: when an expense over a set amount has no attached receipt after a few days, an agent can message the employee with a link to upload it before the expense window closes
  • Budget overspend alerts: when a team's budget crosses 90% of its allocated amount, an agent can post an alert to the budget owner with the remaining balance and days left in the period
  • Expense policy violation flagging: an agent can scan new expenses for policy violations, like a meal over the per-diem cap or a purchase from a blocked merchant category, and route them to a manager for review
  • Reconciliation against an accounting system: an agent can match Brex transactions against entries in NetSuite or QuickBooks and flag any that don't have a corresponding journal entry

What are popular tools for Brex's MCP server?

Here are some of the most commonly used tools:

  • get_card_transactions returns recent transactions for a specific card. agents use it to spot duplicate charges or check spend against a limit
  • list_expenses returns expenses filtered by status, employee, or date range. it's the fastest way for an agent to find every pending or unapproved expense in one call
  • get_expense fetches full detail on a single expense, including receipt attachment status and approval state. agents call this after finding a candidate expense with a list operation
  • list_budgets returns each budget's allocated amount, spent amount, and remaining balance. useful for any agent built around spend tracking or overspend alerts
  • get_user looks up an employee's Brex profile by ID or email, including department and role. handy for routing approvals to the right manager
  • list_bills returns vendor bills and their payment status. agents cross-reference this against accounting records during reconciliation

What makes Merge Agent Handler's Brex MCP server better than alternative Brex MCP servers?

Several things separate Merge Agent Handler's Brex MCP server from a self-hosted or community alternative:

  • Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For Brex, this means you can prevent card numbers, individual transaction amounts, or employee spend history from being exposed even when the agent has broad read access
  • Managed authentication and credentials: Merge stores and refreshes Brex credentials on your behalf. You never expose raw API keys or OAuth tokens to an agent or manage token rotation manually
  • Real-time observability and audit trail: Every tool call made against Brex is logged with timestamp, tool name, input parameters, and response metadata. You can audit exactly what an agent read or wrote without instrumenting anything yourself
  • Tool Packs and controlled access: Tool Packs let you bundle specific Brex tools with tools from other connectors into a single MCP endpoint, scoped to a specific use case. An agent gets exactly the tools it needs, nothing more

How can I start using Merge Agent Handler's Brex MCP server?

You can take the following steps:

1. Create or log into your Merge Agent Handler account.

2. Install the Merge CLI by running pipx install merge-api, then run merge configure to link the CLI to your Merge account and merge login to authenticate your session.

3. Register the Agent Handler MCP server with Claude Code by running claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp, then open Claude Code and run /mcp to confirm agent-handler appears with a connected status.

4. Select agent-handler from the MCP list. This opens a browser window where you select which integrations to authenticate. Choose Brex and complete the auth flow. Merge stores and manages the credentials going forward.

5. Open a Claude Code session and start querying Brex data directly. The first time you use a Brex tool, a Magic Link may appear to complete connector authentication.

If you want to connect Merge Agent Handler's Brex MCP with internal or customer-facing agentic products, you can follow the steps in our docs.

Can employees use Merge to connect their AI tools to Brex?

Yes, Merge for Workforce lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, Codex, and other MCP-compatible AI tools to Brex without bypassing IT governance.

Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Merge and gets individual credentials tied to their identity. An employee can ask their AI to check a card's recent transactions, submit a missing receipt, or check an expense's approval status, all within IT-defined permissions.

IT also provisions access by role or group via SCIM. A finance analyst, for example, might get Brex access to reconcile transactions, NetSuite access to post journal entries, and Slack access to post budget alerts, while an engineering manager might get Brex access to review team card spend, GitHub access to check deploy activity, and Jira access to update sprint tickets.

Every tool call an employee's AI makes to Brex is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.

Explore other MCP servers built and managed by Merge

calendly
Calendly
canva
Canva
casepeer
CasePeer
clay
Clay
clickup
ClickUp
clinicaltrials
ClinicalTrials.gov
clio
Clio
cloudflare
Cloudflare
cms_coverage
CMS Coverage
coda
Coda
compliancequest
ComplianceQuest
concur
Concur
confluence
Confluence
contentful
Contentful
copper
Copper
crustdata
Crustdata
databricks
Databricks
datadog
Datadog
deel
Deel
discord
Discord
docrio
Docrio
docusign
DocuSign
doordash
DoorDash
dropbox
Dropbox

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