Skip to main content
Glama
dennisonbertram

Brex MCP Server

upload_receipt

Upload receipt images to associate with Brex card expenses. Convert base64-encoded images to files, store them securely, and link them to specific expense records for documentation and reporting.

Instructions

Upload a receipt image (base64-encoded) to a specific card expense. Creates a pre-signed S3 URL, uploads the receipt, and associates it with the expense. Returns upload confirmation. NOTE: This is a write operation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
receipt_dataYesBase64-encoded image data
receipt_nameYesName of the receipt file (e.g., 'receipt.jpg')
content_typeYesMIME type of the receipt (e.g., 'image/jpeg', 'image/png', 'application/pdf')
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the multi-step process (creating S3 URL, uploading, associating with expense) and explicitly states 'This is a write operation,' which is crucial for understanding it's a mutation. However, it lacks details on error handling, rate limits, authentication requirements, or what happens if the upload fails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by implementation details and a note. It's appropriately sized at three sentences with minimal waste, though the note about being a write operation could be integrated more seamlessly. Each sentence adds value, but there's slight room for tighter phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides a good overview of the write operation and process but lacks completeness. It doesn't explain the return value ('upload confirmation') in detail, such as what data is included or error responses. For a mutation tool with 3 parameters and no structured output, more behavioral context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters (receipt_data, receipt_name, content_type) with clear descriptions. The description adds no additional parameter-specific information beyond what's in the schema, such as file size limits or supported formats beyond the examples. This meets the baseline of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Upload a receipt image'), the resource ('to a specific card expense'), and the technical process ('creates a pre-signed S3 URL, uploads the receipt, and associates it with the expense'). It distinguishes itself from sibling tools like 'match_receipt' or 'update_expense' by focusing on upload functionality rather than matching or updating existing records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'match_receipt' or 'update_expense'. It mentions it's for uploading receipts to expenses but doesn't specify prerequisites, such as whether an expense must already exist or if this creates a new expense. There's no explicit when-not-to-use advice or comparison to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dennisonbertram/mcp-brex'

If you have feedback or need assistance with the MCP directory API, please join our Discord server