Connect your AI Agents to Brex in minutes

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.

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}
11Open 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}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 }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}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_transactionsreturns recent transactions for a specific card. agents use it to spot duplicate charges or check spend against a limit
list_expensesreturns 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_expensefetches 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_budgetsreturns each budget's allocated amount, spent amount, and remaining balance. useful for any agent built around spend tracking or overspend alerts
get_userlooks up an employee's Brex profile by ID or email, including department and role. handy for routing approvals to the right manager
list_billsreturns 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.
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

























