Skip to main content
Glama

batchGeneratePasses

Batch generate wallet passes

Generate up to 100 wallet passes in one synchronous request. Each accepted row is one POST /generate-pass (same free-100 and card-on-file gates as a single generate). Optional POST /share-pass/create per successful row when create_share_links is true (default).

Host: https://passfa.st/api/passes/batch (site / Vercel preview). This is not an api.passfa.st Edge Function. MCP tool: batchGeneratePasses (secret key sk_live_ only) — same path and body as this operation.

Auth: Authorization: Bearer sk_live_… or pk_live_… (scope passes:create). A Supabase user JWT is also accepted (dashboard session). Send X-App-Id for multi-app orgs and X-Org-Id as elsewhere.

Body: mapped rows (same shape the dashboard posts) or raw csv plus optional column_map. Do not send both.

Limits: more than 100 rows → 400 row_limit_exceeded before any generate. Empty body / empty CSV → 400 empty_batch or invalid_csv. Bad template → 400 invalid_template. Missing or invalid Bearer → 401 unauthorized.

Billing: a row that hits the free-100 / card gate returns the same 402 codes as generate-pass (free_limit_reached, subscription_canceled, payment_past_due). Remaining rows stop. Already-created rows stay. HTTP 402 is returned only when zero rows succeeded; a later-row 402 after some successes is HTTP 200 with stopped_reason and per-row results.

Partial failures: other per-row errors (validation, duplicate serial, share-link warning) continue. The response lists every processed row.

Scope: passes:create

Maps to OpenAPI operationId batchGeneratePasses — POST /passes/batch.

Same PassFast HTTP API, billing, and rate limits. Do not invent other paths.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
csvNoRaw CSV text with a header row. Do not send together with rows.
rowsNoMapped rows (dashboard / scripts). Do not send together with csv.
x_app_idNoOverride X-App-Id for this call. Omit the connection header by default; set it only for multi-app orgs.
column_mapNoOptional CSV header map when `csv` is sent.
template_idYesID of a published template.
wallet_typeNoapple
create_share_linksNoWhen true, call POST /share-pass/create after each successful generate.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Without a rich annotation set, the description carries the behavioral burden and does so thoroughly: synchronous execution, per-row semantics, billing 402 behavior with stopped_reason, partial-failure continuation, and the exact HTTP statuses for limit, auth, and template errors. There is no contradiction with the annotations.

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 long but organized into scannable bolded sections (Auth, Body, Limits, Billing, Partial failures) and front-loads the core purpose. A few statements, such as the host details and OpenAPI mapping, are redundant for MCP usage, but they do not obscure the essential behavior.

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?

Even without an output schema, the description covers what an agent needs to invoke the tool correctly: auth methods, request body alternatives, limits, error codes, partial-success semantics, billing outcomes, and the shape of the response. This is comprehensive for a nested, 7-parameter mutation tool.

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

Parameters4/5

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

Schema coverage is 86%, so the baseline is already high. The description adds real value by explaining how rows, csv, and column_map interact ('do not send both'), how create_share_links triggers a follow-up request, and how X-App-Id should be handled for multi-app orgs.

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 leads with a specific verb and resource: it batch-generates wallet passes, up to 100, in one synchronous request. It also frames each accepted row as one POST /generate-pass, which distinguishes it from the single-pass sibling generatePass.

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

Usage Guidelines4/5

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

The description gives clear operating context: batch size, supported body formats, the requirement to choose either rows or csv, and when create_share_links applies. It does not explicitly say 'use generatePass for a single pass,' so it lacks an explicit alternative exclusion, but the role is clear enough.

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.