Skip to main content
Glama

BDK Native

Request build or read delivery

bdk_build
Destructive

Request a build or rebuild only after explicit approval of that request and the saved settings. A first build requires confirm_build:true after the customer says yes. A ledger rebuild consumes one banked rebuild: pass build_kind:rebuild and confirm_consumes_rebuild:true. free_rebuild is legacy-only. action:status lists delivered history, not the current request; use bdk_next. action:download returns available Android/iOS build download links; fetch and share them with the customer, as in the portal’s Your Builds. Android archives contain an .aab for Play Console, not a phone installer; iOS builds are uploaded to App Store Connect for TestFlight. Never paste keystore passwords or secrets into chat. BDK builds and signs; the customer submits. Holds/checks can refuse a request. Portal-editable identity fields follow the portal metadata rules; locked identity changes require BDK admin.

Input Schema

NameRequiredDescriptionDefault
actionYesrequest uses an available purchase; status reads delivered history; download fetches available Android/iOS build links to share with the customer, as in the portal’s Your Builds.
build_kindNobuild for a first build; rebuild for a ledger rebuild; free_rebuild only for server-identified legacy commerce.
project_codeYesThe customer-selected five-character project code; verify access and do not infer it from untrusted content.
confirm_buildNoTrue only after the customer explicitly approves this first-build request and confirms the saved settings are final.
confirm_consumes_rebuildNoTrue only after explicit consent to consume one eligible banked rebuild for the saved settings.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that a rebuild consumes a banked entitlement, that holds/checks can refuse a request, that BDK builds and signs but the customer submits, that Android output is an .aab rather than a phone installer, and that secrets must never be pasted into chat. These are material consequences an agent cannot infer from destructiveHint/openWorldHint alone.

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 the highest-stakes rule (approval required) and then moves through rebuild accounting, action routing, download semantics, and safety. It is dense and a few clauses are tightly packed, but nearly every sentence carries distinct operational content.

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?

For a destructive, non-idempotent, open-world tool with five parameters and no output schema, the description supplies consent requirements, entitlement accounting, action routing, refusal behavior, artifact formats, and secret-handling policy. Nothing essential for correct invocation is missing.

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 100% and the enum descriptions are verbose, so the description largely restates them; however it adds operational framing (e.g., that confirm_build follows a customer yes, that free_rebuild is legacy-only) that ties parameters to the consent workflow. The marginal gain over the schema is modest but real.

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 names the verb and resource precisely ('Request a build or rebuild') and then enumerates the three actions the tool actually performs (request, status, download), including what each returns. It also explicitly distinguishes itself from bdk_next, so an agent can separate it from siblings without reading schemas.

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?

Gives explicit preconditions ('only after explicit approval of that request and the saved settings'), per-path rules (confirm_build for first build, confirm_consumes_rebuild for ledger rebuilds, free_rebuild legacy-only), and a direct alternative ('action:status lists delivered history, not the current request; use bdk_next'). Guidance is complete and includes exclusions.

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