Skip to main content
Glama

Add Transaction from Photo

add_transaction_from_photo

Run AI vision extraction on a base64-encoded receipt/transaction photo (image/jpeg, image/png, application/pdf) and return a PREFILLED transaction draft (NOT committed). Picks the primary transaction from the photo and returns amount, date, description, type, suggestedCategory, and the (suggested) accountId. The agent should review and then call add_transaction (or bulk_add_transactions) to persist. If accountId is omitted, the account currency defaults to USD and suggestedAccountId is null - the agent must choose an account before committing. Requires confirmation: true.

Input Schema

NameRequiredDescriptionDefault
mimeTypeNoMIME type of the supplied image. Defaults to image/jpeg.
accountIdNoOptional account ID to scope currency detection and prefill suggestedAccountId. When omitted, currency defaults to USD and suggestedAccountId is null.
imageBase64YesBase64-encoded contents of the receipt/transaction image (no data: URI prefix).
confirmationYesMust be true to execute the mutation
idempotencyKeyNoOptional idempotency key — calls with the same key (per-user, within 24h) return the cached response without re-executing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false. The description adds genuinely useful context beyond these: it is a non-committing draft producer, enumerates the returned fields, and states the confirmation:true requirement and the account-omission defaulting behavior. It does not cover latency/cost of vision extraction, keeping it below a 5.

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?

Front-loaded with what the tool does and the critical 'NOT committed' caveat up front. Dense but nearly every sentence carries actionable information; only the account-defaulting sentence mildly duplicates the schema.

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

Completeness5/5

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

With no output schema, the description compensates by enumerating returned fields (amount, date, description, type, suggestedCategory, suggestedAccountId). Together with the workflow guidance and confirmation requirement, an agent has everything needed to call it and act on the result.

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 parameters are already fully documented. The description's note about accountId omission (currency defaults to USD, suggestedAccountId null) largely restates the schema's own accountId description rather than adding new semantics. Baseline 3 is appropriate.

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?

States a specific verb and resource: runs AI vision extraction on a base64 receipt/PDF and returns a PREFILLED draft, explicitly 'NOT committed'. This clearly distinguishes it from the sibling add_transaction, which it names as the follow-up persistence step.

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

Usage Guidelines5/5

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

Explicit two-phase workflow: this tool produces a reviewable draft, then the agent should call add_transaction or bulk_add_transactions to persist. Also flags a branching condition (if accountId omitted, agent must choose an account before committing).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources