Skip to main content
Glama
DatalisHQ

ZuckerBot

by DatalisHQ

zuckerbot_upload_ad_asset

Upload a new image or video to Meta's ad library from a public URL, obtaining an image_hash or video_id. Use the returned asset reference when creating ads or adding creatives to existing campaigns.

Instructions

Upload a NEW image or video file into the connected Meta ad account's library from a publicly reachable https URL — Meta downloads the file itself, nothing is fetched locally. Returns image_hash (images) or video_id (videos) for use in zuckerbot_create_ad or a zuckerbot_create_campaign_from_spec IMAGE_SET/VIDEO ref. Videos need Meta-side processing: the tool waits briefly and polls; if still processing, call zuckerbot_get_ad_asset_status until ready=true before creating an ad with the video. Library assets are non-delivering and spend nothing. This is the first step for adding a brand-new creative file to an EXISTING (even live) campaign: upload here, then zuckerbot_create_ad into the target ad set.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoOptional library name for the uploaded video
asset_urlYesPublicly reachable https:// URL of the image or video file (e.g. jpg, png, mp4, mov)
asset_typeNoAuto-detected from the URL extension when omitted; pass explicitly for extension-less URLs
business_idNoOptional business ID override for the authenticated API key
Behavior5/5

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

No annotations were provided, so the description carries the whole behavioral disclosure burden and meets it. This reveals that Meta fetches the download itself (no local fetch), that video uploads waits and polls while processing, that the new video for non-read status requires the status tool, and the library assets are non-delivering/spend nothing. Cost and latency/side effects are both disclosed.

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?

Clear front-loading: the purpose, the account scope, and the mechanics are all in the first sentence; everything else rides on the sentence-style. Approximately 5 sentences with a script, dense. Partially repeated — 'for the use in zuckerbot_create_ad'', then 'zuckerberg first step... upload here…' — could be squeezed a tiny bit, but every sentence otherwise earns its place.

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?

This is a no-annotation, no-output-schema tool with significant async complexity, yet the description covers inputs, outputs, the asynchronous polling branch, the non-spend side-effect, and the pipeline orientation. No tool-specific needed info for a selection and an agent to call it is missing; return logic was described even though there is no output schema.

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% with detailed per-parameter descriptions, so the baseline is 3. Above baseline, the description adds meaning: it explains why asset_url must be publicly reachable (Meta is the one downloading the file), and it states concretely that this is a workstream contract for what the returned hash should be consumed downstream. It doesn't re-explain the schema but gives the rationale tying the parameter to the larger workflow.

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?

Opens with a specific verb and resource — 'Upload a NEW image or video file into a Meta account's library' - which clearly states the function. The term 'NEW' and the named returns (image_hash for images, video_id for videos) cleanly separate this from siblings like zuckerbot_upload_creative or the status-check tools. The account its own distinction.

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?

The description gives an explicit ordering: upload first, then call zuckerbot_create_ad into a target ad set, for an existing (even live) campaign — so the agent knows when to invoke this as the entry point. It also names the one condition to wait: 'if still processing, call zockerbot_get_ad_asset_status until ready=true before creating an ad with the video.' Full continuations are not just implied but named as sibling workflows.

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/DatalisHQ/zuckerbot'

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