Brex ACTION
List Cards
Lists the cards in the Brex account, each with its status, last four digits, cardholder, and spend limit. Filter by cardholder (
userId) or status (ACTIVE, SHIPPED, LOCKED, TERMINATED) — status has no server-side filter, so it's applied after fetching, which can leave results truncated before every match is scanned; raise maxResults (default 100) or drop the status filter if that happens. This is how you find the card ID that Get Card, Freeze Card, Cancel Card, and Update Card Limit require. See the documentation- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Brex account once, then configure and run List Cards from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "brex-list-cards",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
brex: { authProvisionId: "apn_xxxxxxx" },
userId: "Cardholder",
status: "Status",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "brex-list-cards",
"configured_props": {
"brex": { "authProvisionId": "apn_xxxxxxx" },
"userId": "Cardholder",
"status": "Status"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "brex",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "brex-list-cards",
arguments: {
userId: "Cardholder",
status: "Status",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
userId Cardholder | string | Return only cards owned by this person, as a Brex user ID, e.g. cuuser_ckze72soa117f01pkmf1wcpl3. Omit to list every card in the account. Use List Users to find a user ID by email address. Optional |
status Status | string | Only return cards with this status. Brex has no server-side status filter, so results are filtered after being fetched. Optional |
maxResults Max Results | integer | The maximum number of records to return, from 1 to 2000. Defaults to 100. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- brex-list-cards
- Version
- 0.0.1
- App
- Brex
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗