brex_get_ spend_ limitGet Spend Limit.
See where the money went by category, chase missing receipts, lock a lost card and line up a vendor payment for someone to confirm, all on the Brex account your token belongs to.
PopMCPBrex
Every card, expense, transaction, statement, budget, spend limit, vendor, transfer, person, trip, custom field and webhook operation the connection exposes, plus the Brex events it can watch.
115 tools in the full catalog: 61 read and 54 write. 41 load by default, and the rest are found with tool search.
brex_get_ spend_ limitGet Spend Limit.
brex_list_ budgetsList Budgets.
brex_list_ spend_ limitsList Spend Limits.
brex_create_ transferCreate transfer.
brex_create_ vendorCreate vendor.
brex_get_ transferGet transfer.
brex_get_ vendorGet vendor.
brex_list_ linked_ accountsLists linked accounts.
brex_list_ transfersLists transfers.
brex_list_ vendorsLists vendors.
brex_prepare_ transferGet everything for a payment to a vendor, without sending anything: finds the vendor, its payment methods and the cash accounts to pay from, and writes the body for brex_create_transfer.
brex_find_ transactionsFind settled transactions between two dates, on the company's cards or a cash account.
brex_list_ card_ accountsList card accounts.
brex_list_ card_ statementsList primary card account statements.
brex_list_ card_ transactionsList transactions for all card accounts.
brex_list_ cash_ accountsList cash accounts.
brex_list_ cash_ transactionsList transactions for the selected cash account.
brex_expenses_ to_ reviewFind expenses still missing a receipt, memo or other documentation, counted by person, so someone can chase them.
brex_get_ expenseGet an expense.
brex_list_ expensesList expenses.
brex_spend_ summaryAdd up spend for a period by category, merchant, department, person, budget or location.
brex_update_ card_ expenseUpdate an expense.
brex_upload_ receiptAttach a receipt in one call.
brex_create_ cardCreate card.
brex_get_ cardGet card.
brex_list_ cardsList cards.
brex_lock_ cardLock card.
brex_unlock_ cardUnlock card.
brex_get_ current_ userGet current user.
brex_get_ userGet user.
brex_invite_ userInvite user.
brex_list_ usersList users.
brex_list_ departmentsList departments.
brex_list_ locationsList locations.
brex_list_ tripsList trips.
brex_call_ official_ toolCall any tool on Brex's own MCP server, including those that change something.
brex_list_ official_ toolsList the tools on Brex's own MCP server, with what they do and their inputs.
brex_read_ official_ toolCall a read-only tool on Brex's own MCP server: bills, banking transactions, spend analytics, rewards.
brex_list_ legal_ entitiesList legal entities.
brex_account_ overviewStart here.
brex_get_ companyGet company.
brex_archive_ budgetArchive a Budget.
brex_archive_ spend_ limitArchive a Spend Limit.
brex_archive_ spend_ limit_ v1Archive a Spend Limit.
brex_create_ budgetCreate Budget.
brex_create_ spend_ limitCreate Spend Limit.
brex_create_ spend_ limit_ v1Create Spend Limit.
brex_get_ budgetGet Budget.
brex_get_ budget_ programGet Budget Program.
brex_get_ spend_ limit_ v1Get Spend Limit.
brex_list_ budget_ programsList Budget Programs.
brex_list_ spend_ limits_ v1List Spend Limits.
brex_update_ budgetUpdate Budget.
brex_update_ spend_ limitUpdate Spend Limit.
brex_update_ spend_ limit_ v1Update Spend Limit.
brex_add_ webhook_ group_ membersAdd Webhook Group Members.
brex_create_ webhookRegister Webhook.
brex_create_ webhook_ groupCreate Webhook Group.
brex_delete_ webhookUnregister Webhook.
brex_delete_ webhook_ groupDelete Webhook Group.
brex_get_ webhookGet Webhook.
brex_get_ webhook_ groupGet Webhook Group.
brex_list_ webhook_ group_ membersList Webhook Group Members.
brex_list_ webhook_ groupsList Webhook Groups.
brex_list_ webhook_ secretsList Webhook Secrets.
brex_list_ webhooksList Webhooks.
brex_remove_ webhook_ group_ membersRemove Webhook Group Members.
brex_update_ webhookUpdate Webhook.
brex_create_ incoming_ transferCreate incoming transfer.
brex_delete_ vendorDelete vendor.
brex_update_ vendorUpdate vendor.
brex_create_ custom_ fieldCreate a custom field (beta at Brex: an admin turns it on in Settings, Beta features, and it may change).
brex_create_ custom_ field_ valuesCreate custom field values (beta at Brex: an admin turns it on in Settings, Beta features, and it may change).
brex_delete_ custom_ fieldDelete a custom field (beta at Brex: an admin turns it on in Settings, Beta features, and it may change).
brex_delete_ custom_ field_ valuesDelete custom field values (beta at Brex: an admin turns it on in Settings, Beta features, and it may change).
brex_get_ custom_ fieldGet custom field (beta at Brex: an admin turns it on in Settings, Beta features, and it may change).
brex_get_ custom_ field_ valueGet a field value (beta at Brex: an admin turns it on in Settings, Beta features, and it may change).
brex_list_ custom_ field_ valuesList custom field values (beta at Brex: an admin turns it on in Settings, Beta features, and it may change).
brex_list_ custom_ fieldsList custom fields (beta at Brex: an admin turns it on in Settings, Beta features, and it may change).
brex_update_ custom_ fieldUpdate a custom field (beta at Brex: an admin turns it on in Settings, Beta features, and it may change).
brex_update_ custom_ field_ valuesUpdate custom field values (beta at Brex: an admin turns it on in Settings, Beta features, and it may change).
brex_get_ cash_ accountGet cash account by ID.
brex_get_ primary_ cash_ accountGet primary cash account.
brex_list_ cash_ statementsList cash account statements.
brex_create_ receipt_ matchCreate a new receipt match.
brex_create_ receipt_ uploadCreate a new receipt upload.
brex_terminate_ cardTerminate card.
brex_update_ cardUpdate card.
brex_create_ accounting_ integrationCreate accounting integration (alpha at Brex: open by invitation from developer-support@brex.com, and it may change).
brex_create_ userCreate user.
brex_disconnect_ accounting_ integrationDisconnect accounting integration (alpha at Brex: open by invitation from developer-support@brex.com, and it may change).
brex_get_ accounting_ recordGet accounting record by ID (alpha at Brex: open by invitation from developer-support@brex.com, and it may change).
brex_list_ accounting_ recordsQuery accounting records (alpha at Brex: open by invitation from developer-support@brex.com, and it may change).
brex_reactivate_ accounting_ integrationReactivate accounting integration (alpha at Brex: open by invitation from developer-support@brex.com, and it may change).
brex_report_ accounting_ export_ resultsReport accounting export results (alpha at Brex: open by invitation from developer-support@brex.com, and it may change).
brex_update_ userUpdate user.
brex_create_ departmentCreate department.
brex_create_ locationCreate location.
brex_create_ titleCreate title.
brex_delete_ departmentDelete department.
brex_delete_ locationDelete location.
brex_delete_ titleDelete title.
brex_get_ departmentGet department.
brex_get_ locationGet location.
brex_get_ titleGet title.
brex_list_ titlesList titles.
brex_update_ departmentUpdate department.
brex_update_ locationUpdate location.
brex_update_ titleUpdate title.
brex_get_ tripGet trip.
brex_get_ trip_ bookingGet booking.
brex_list_ trip_ bookingsList trip bookings.
brex_get_ cost_ centerGet cost center.
brex_get_ legal_ entityGet legal entity.
brex_list_ cost_ centersList cost centers.
Credentials off one Brex screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
In Brex, go to Settings, then Developer, and click Create Token. Name it, pick Read only or Write for each area the AI should reach, click Allow Access, and paste the token into PopMCP. You need to be an account admin or card admin.
••••••••••••3f7aTransfers, new cards and spending limits take effect the moment the AI calls them, and Brex has no customer sandbox, so this is always real company money. Pick Read only when you make the token for reporting, or keep the connection on read-only in PopMCP.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Brex credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
How much did we spend on cards last month, by category?
brex_spend_summaryok
Then just ask for the work
“How much did we spend on cards last month, by category?”
“Which October expenses are still missing a receipt or memo, and who do I need to chase?”
“Find every AWS charge between August and October over $500”
“Lock Sam's card, he just reported it lost”
“Get a $1,250 payment to Acme Supply ready, and show me before you send it”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Brex behind an AI client.
One API token. In Brex, an account admin or card admin goes to Settings, then Developer, and clicks Create Token. The first time, your company accepts Brex's developer terms on that page. There is nothing to apply for, the token works straight away, and the connection is locked to the Brex account it belongs to.
Only if it goes unused. Brex stops a token after 90 days without a call, or when its owner stops being an active user. You can revoke it any time on the same Developer page. If that happens, a tool says so and you make a new token and reconnect.
Brex's own server needs an admin to turn on a beta first and offers a chosen set of tools. PopMCP connects to the Brex API instead, which reaches far more, including transfers, card transactions, statements and company structure. Once that beta is on, the same token also reaches Brex's own tools for bills, banking transactions and spend questions, through list_official_tools and read_official_tool.
No. PopMCP leaves out Brex's card number call and its call that emails card details, and never uses their permission, so only the last four digits are shown. Expiry dates are hidden too. A card number or security code sent to a tool is refused before it reaches Brex. Full bank account numbers come back as their last four.
It can move money if you let it. create_transfer pays vendors by ACH, wire or check, create_incoming_transfer pulls funds in from a linked bank, update_vendor changes where money goes, and create_card and update_spend_limit let people spend. Those tools say so in their descriptions, and prepare_transfer lays a payment out for someone to confirm without sending anything. To keep it to reading, pick Read only when you make the token, or choose read-only for the connection in PopMCP.
A token's scopes are fixed when it is made. The error names what the call accepts: make a new token with that one set to Read only or Write, and reconnect Brex in PopMCP with it. Custom fields are in beta, so an admin also turns them on in Settings, Beta features. Accounting records are in alpha and open by invitation from Brex.
Brex's API only returns settled transactions. It also has no end date, search or amount filter on its transaction calls, so find_transactions reads the pages and applies those for you.
108 operations across cards, expenses, transactions, statements, budgets, spend limits, vendors, transfers, people, company structure, travel, custom fields, accounting and webhooks, plus nine tools of PopMCP's own such as spend_summary and prepare_transfer. 41 load into your AI client by default and the rest stay searchable.
Webhook triggers cover transfers processed and failed, expense payment changes, people updated, and accounting records ready to export. Updated expenses, settled card transactions and trips are picked up by checking regularly, and so are new transfers, vendors, cards, people and card statements. Brex allows one webhook address per customer.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Brex in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Brex on the consent screen. The Brex tools are then available in that session, and no Brex credential is stored on your machine.
Loading 115 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 41-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 115 here. A trigger is something PopMCP watches for you: 13 Brex events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Brex.
Launch a hosted MCP endpoint for Brex, keep tool access under control, and start testing real workflow prompts right away.