返回市场
MCP-BREX服务器

MCP-BREX服务器

作者:crazyrabbitLTC2 星标更新:2025-08-28

项目介绍

Brex MCP Server

适用于Brex API的模型上下文协议(MCP)服务器。优化用于安全、小巧且只读的响应,支持投影和批处理。

安装

Claude Code

# 安装包
npm install -g mcp-brex

# 使用您的API密钥添加到Claude Code
claude mcp add brex --env BREX_API_KEY=your_brex_api_key -- npx mcp-brex

Claude Desktop

在您的claude_desktop_config.json中添加:

{
  "mcpServers": {
    "brex": {
      "command": "npx",
      "args": ["mcp-brex"],
      "env": {
        "BREX_API_KEY": "your_brex_api_key"
      }
    }
  }
}

手动设置(开发)

git clone https://github.com/dennisonbertram/mcp-brex.git
cd mcp-brex
npm install
npm run build
claude mcp add brex --env BREX_API_KEY=your_key -- node build/index.js

资源

  • brex://expenses | brex://expenses/{id} | brex://expenses/card | brex://expenses/card/{id}
  • brex://budgets | brex://budgets/{id}
  • brex://spend_limits | brex://spend_limits/{id}
  • brex://budget_programs | brex://budget_programs/{id}
  • brex://transactions/card/primary | brex://transactions/cash/{id}
  • brex://docs/usage (代理使用的紧凑指南)

注意事项:

  • 资源接受?summary_only=true&fields=id,status,...来控制负载大小。
  • 费用资源会自动扩展merchantbudget以提高可读性。

工具(除非注明,否则只读)

  • 预算:get_budgets, get_budget
  • 支出限额:get_spend_limits, get_spend_limit
  • 预算计划:get_budget_programs, get_budget_program
  • 费用(单页):get_expenses
  • 费用(分页):get_all_expenses, get_all_card_expenses
  • 按ID获取费用:get_expense, get_card_expense
  • 卡片报表:get_card_statements_primary
  • 交易:get_card_transactions, get_cash_transactions
  • 现金报表:get_cash_account_statements
  • 账户:get_all_accounts, get_account_details
  • 收据(写入):match_receipt, upload_receipt
  • 更新(写入):update_expense

如何调用工具

始终将参数放在arguments下(而不是input)。通过分页和过滤保持负载小。

常见参数:

  • 分页:page_size(<=50),max_items(推荐<=200)
  • 日期过滤:start_date, end_date, window_days
  • 状态过滤:status数组用于费用/交易
  • 金额过滤:min_amount, max_amount用于费用
  • 商家过滤:merchant_name用于费用
  • 展开控制:expand数组以包括嵌套对象(例如,["merchant", "budget"]

推荐示例:

{
  "name": "get_all_card_expenses",
  "arguments": {
    "page_size": 10,
    "max_items": 20,
    "start_date": "2025-08-25T00:00:00Z",
    "end_date": "2025-08-26T00:00:00Z",
    "status": ["APPROVED"],
    "min_amount": 100
  }
}
{
  "name": "get_expenses",
  "arguments": {
    "limit": 5,
    "status": "APPROVED"
  }
}
{
  "name": "get_card_transactions",
  "arguments": {
    "limit": 10,
    "posted_at_start": "2025-08-25T00:00:00Z"
  }
}
{
  "name": "get_all_accounts",
  "arguments": {
    "page_size": 10,
    "max_items": 20,
    "status": "ACTIVE"
  }
}
{
  "name": "get_transactions",
  "arguments": {
    "accountId": "acc_123456789",
    "limit": 10
  }
}
{
  "name": "get_expenses",
  "arguments": {
    "limit": 5,
    "expand": ["merchant", "user"]
  }
}

分页和过滤最佳实践

重要:使用分页、过滤和排序来控制响应大小,而不是依赖于摘要。

数据控制的关键参数:

  • page_size: number — 每页项目数(建议:≤50)
  • max_items: number — 所有页面的最大总项目数(建议:≤200)
  • start_date/end_date: string — ISO日期范围过滤
  • window_days: number — 将大日期范围分割成更小的批次
  • status: string[] — 按状态过滤(例如,["APPROVED", "PENDING"])
  • min_amount/max_amount: number — 基于金额的费用过滤

最佳实践:

  • 始终使用日期范围进行批量请求以避免巨大的响应
  • 使用小的分页大小(≤50)和合理的最大项目数(≤200)
  • 应用状态过滤器以仅获取所需的数据
  • 使用window_days(例如,7)来批处理大的日期范围
  • 使用expand参数控制嵌套对象的展开
    • 默认expand: []返回精简的对象(每个约500-1000个标记)
    • 带展开expand: ["merchant", "budget"]返回完整的对象(每个约15K+个标记)
    • 可用的expand选项merchant, budget, user, department, location, receipts
  • 先测试小限制再逐步增加
  • 现金端点需要额外的Brex范围;优雅地处理403错误

发布

仅发布build/, README.md, 和 LICENSE

许可证

MIT — 查看LICENSE