MCP Server for Brex API Integration - provides tools and resources for accessing Brex accounts, transactions, expenses, budgets, and spend limits
21 tools with consistent naming (verb_noun pattern) and complete input schemas. Descriptions are present but generic, most lack context on WHEN to use the tool or dependencies. Parameters are well-typed with enums where appropriate (expense_type, status, payment_status), but descriptions are minimal (avg ~40 chars vs. baseline 72). Output schemas are not documented, LLMs cannot infer what fields to expect. Error handling is absent; no recovery guidance. Tool composition is reasonable (single responsibility), but pagination and result limits are underspecified. Security: API key injected via env (good), but no audit logging visible.
Retrieve detailed information for a specific account by ID, including balance, status, and account type.
Fetch all accounts (card and cash) across multiple pages with automatic pagination handling. Returns aggregated results with summary statistics.
Fetch all card expenses across multiple pages (similar to get_all_expenses but card-specific endpoint). Supports pagination, date filtering, merchant search, and amount filters. Returns complete expense objects with money annotation and summaries.
Fetch all expenses across multiple pages with automatic pagination handling. Supports date range filtering, amount filtering, status filtering, and merchant search. Returns aggregated results with summary statistics. Use window_days to batch large date ranges.
Retrieve a single budget by its unique ID. Returns complete budget details including spending limits and status.
Output schemas not documented. LLMs cannot infer what fields (e.g., transaction_id, merchant_name, amount) are returned by get_transactions, get_expenses, or other tools. This forces agents to guess field names for downstream operations.
Descriptions are generic and lack context. Most descriptions (avg ~40 chars) state WHAT the tool does but not WHEN to use it or dependencies. E.g., 'Retrieve a paginated list of settled transactions' does not explain when to call get_transactions vs get_card_transactions vs get_cash_transactions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | <=2025-11-25 | v2 |
Retrieve a single budget program by its unique ID. Returns complete budget program details including budget blueprints and employee filters.
Retrieve a paginated list of all budget programs with employee filter configurations. Supports filtering by status.
Retrieve a paginated list of all budget allocations with spending limits and status. Supports filtering by status and parent budget ID.
Retrieve a single card expense by its unique ID. Supports expansion of nested objects (merchant, budget, user, department, location, receipts). Returns complete card expense details.
Retrieve a paginated list of statements for the primary card account with optional filters for date range.
Retrieve a paginated list of settled transactions for all card accounts with optional filters for merchant, amount, and date range.
Retrieve a paginated list of statements for a specific cash account with optional filters for date range.
Retrieve a paginated list of settled transactions for a specific cash account with optional filters for merchant, amount, and date range.
Retrieve a single expense by its unique ID. Supports expansion of nested objects (merchant, budget, user, department, location, receipts). Returns complete expense details.
Retrieve a paginated list of expenses with optional filters for status, type, and amount. Supports expansion of related objects like merchant and budget details. Returns expenses with automatic money annotation (cents, dollars, formatted).
Retrieve a single spend limit by its unique ID. Returns complete spend limit details including authorization settings.
Retrieve a paginated list of all spend limit policies with authorization settings. Supports filtering by status and member user ID.
Retrieve a paginated list of settled transactions for a specific account with optional filters for merchant, amount, and date range. Returns transactions with automatic money annotation (cents, dollars, formatted).
Match a receipt to an expense by analyzing receipt content and expense details. Uses OCR and pattern matching to find the best matching expense.
Update an existing expense with new details such as category, merchant, amount, or status. Supports partial updates.
Upload a receipt image or PDF file for an expense. Supports JPEG, PNG, and PDF formats. Returns receipt metadata including ID and processing status.
No error handling or recovery guidance. Tools do not document what happens on invalid account_id, missing expense, or API failures. LLMs receive raw errors with no actionable next steps.
Pagination limits underspecified. Tools accept limit (1 - 100) but do not document default behavior, total count return, or next_cursor semantics. Agents cannot reliably fetch all results.
Overlapping tool names create ambiguity. get_expenses, get_all_expenses, get_card_expenses, get_all_card_expenses, and get_expense are similar, LLMs must reason about which to call. Consider consolidating or clarifying distinctions in descriptions.