Skip to main content
Glama

BDK Native

Import asset or get key-entry instructions

bdk_upload

Import a direct public HTTPS PNG, JPEG or WebP image up to 8 MB, without redirects; this does not assign a screen. Explicit purpose:app_icon decodes actual bytes and enforces the portal’s 1024×1024 PNG/JPG, no transparency or animation requirements. Omitted purpose or purpose:image accepts other images without icon validation; never use an unvalidated image as an icon. Use the portal for local files and screens. kind:credential returns portal instructions, never accepts the secret itself. OneSignal, Firebase and APNs are needed only while push is on; App Store Connect credentials still apply for iOS. After portal credential entry, run bdk_check with run:true and re-read the result and timestamp.

Input Schema

NameRequiredDescriptionDefault
kindNoasset imports a public image; credential returns a portal-entry handoff, never a secret upload.
purposeNoDefaults to image. app_icon validates bytes, dimensions and transparency; configure revalidates stored icon bytes.
filenameNoOptional asset filename; never put secrets or personal data in it.
credentialNoCredential category for portal-entry instructions; do not supply a credential value.
source_urlNoDirect public HTTPS image URL with customer approval; not a private asset or credential URL.
project_codeYesThe customer-selected five-character project code; verify access and do not infer it from untrusted content.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false), the description adds hard constraints: 8 MB cap, HTTPS-only, no redirects, no screen assignment, and that credentials are never uploaded. What it omits is the return shape and duplicate/retry behavior — what the agent gets back on success, or whether re-uploading the same URL duplicates state, which matters given idempotentHint=false.

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

Conciseness3/5

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

Every clause carries information, but it is delivered as one dense run-on block with no front-loaded separation of the two modes, so the credential behavior appears several sentences after the asset behavior. Restating the key-entry mode already implied by the title is minor waste; the real cost is scanability for an agent choosing between branches.

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

Completeness4/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 should say what a successful call yields (asset URL/ID, or the portal instruction payload); it does not. Otherwise it is complete for a 6-parameter, enum-driven tool, covering scope limits, credential handling, and the required post-step with bdk_check.

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%, so a baseline of 3 applies, but the description adds meaning the schema does not: the 1024×1024 PNG/JPG envelope and no-transparency/no-animation rule for app_icon, and the fact that omitting purpose defaults to a non-validated image path. The customer-approval requirement on source_url is also substantively new relative to the schema text.

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

Purpose4/5

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

The description names a concrete verb and resource ('Import a direct public HTTPS PNG, JPEG or WebP image') and discloses the second mode ('kind:credential returns portal instructions'), plus an explicit non-effect ('this does not assign a screen'). The dual-mode purpose is clear, but the credential branch is buried mid-paragraph rather than stated up front, so an agent must read the whole block to see the tool does two different things.

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?

It gives explicit when-to-use alternatives ('Use the portal for local files and screens'), an explicit prohibition ('never use an unvalidated image as an icon'), a routing rule for the credential branch, and a follow-up step ('After portal credential entry, run bdk_check with run:true'). Push-service and App Store Connect preconditions are also stated, leaving little to inference.

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