Skip to main content
Glama
742,126 tools. Updated 2026-11-04 15:04

"A media conversion program (MCP) for video format conversion" matching MCP tools:

  • Submits conversion options and queues a media conversion job. Images and videos in the session are converted to the specified format. The call is idempotent. Requires X-Api-Key header.
    ConnectorNo auth
  • List filament spools with optional filters and sorting. Accounts often have hundreds of spools, so ALWAYS pair sort_by with a limit. Use sort_by=last_used + limit=10 for "most used / most popular spool" questions. Use sort_by=created + limit=N for recently added. Use sort_by=left for emptiest/fullest. Filters (material_type/brand/color) are case-insensitive substring matches. If the user names a specific spool by id or 4-character short id (e.g. "T2SO"), call get_filament instead — do NOT list and grep. Amount-remaining fields: report weight from leftGrams/totalGrams (grams) and percentLeft (%), NOT the raw total/left which are internal filament LENGTH in mm. density (g/cm³) is the value used for the gram conversion; densityIsEstimated=true means the spool has no material profile so a default density was assumed.
    ConnectorNo auth
  • Schedule multiple posts at once from CSV content. USE THIS WHEN: • User has a spreadsheet or list of posts to schedule • Planning a content calendar for a month • Migrating content from another tool CSV FORMAT (required columns): • platform: linkedin, instagram, x, tiktok, threads • scheduled_time: ISO 8601 format (e.g., 2024-02-15T10:00:00Z) • text: Post content/caption OPTIONAL COLUMNS: • media_url: Image or video URL • first_comment: First comment to add (Instagram/LinkedIn) • hashtags: Additional hashtags to append PROCESS: 1. First call with validate_only: true to check for errors 2. Review validation report with user 3. Call again with validate_only: false to execute import
    ConnectorNo auth
  • Convert a wall-clock time between two IANA timezones, and report the ways the conversion can be wrong. ALWAYS use this instead of doing the arithmetic. Timezone conversion looks like addition and is not: the mapping from a local time to an instant is not a function. - On the spring-forward date, an hour of local time DOES NOT EXIST. Asked to convert 02:30 on that date, a model will return a plausible timestamp for a time that never happens. This tool returns null and says why. - On the fall-back date, an hour happens TWICE. There are two correct answers an hour apart; this returns both rather than silently choosing. - The gap between two zones is not constant. Zones start and end daylight saving on different dates, so a cached offset is wrong for weeks each year. - Not all offsets are whole hours: India is +05:30, Nepal +05:45. Input: `time` must be YYYY-MM-DD HH:MM (or with T, and optional seconds) — free-form dates are refused rather than guessed. `from` and `to` must be full IANA names such as "America/New_York". ABBREVIATIONS ARE REJECTED, deliberately, even though most runtimes accept them. Node resolves "BST" to Bangladesh Standard Time (UTC+06:00) when nearly everyone writing it means British Summer Time (UTC+01:00) — a five-hour error that yields a perfectly plausible timestamp. Same for CST, IST, PST, and EST. Returns: the chosen UTC instant (null if the local time does not exist), every candidate instant, both zone readings with the offset and abbreviation that applied on THAT date, the difference between the zones, upcoming clock changes for both, and warnings. Check `warnings` for severity "error" before using the result.
    ConnectorNo auth
  • Read attached evidence through MCP without changing its format. Pass evidenceId from goal-get. Text (text/plain, JSON, NDJSON) returns newline-preserving redacted lines; offset/limit are zero-based line pagination. Images return a native MCP image with original MIME and bytes. For a complete video, PDF, ZIP or other binary, binaryDelivery=link (default) returns a resource_link to the authenticated original download — no base64 and no conversion. If the client cannot open external links, binaryDelivery=base64 embeds the exact original bytes in a resource blob; this expands data by about 33% plus JSON overhead and can consume the client context window, so use it only when needed. byteOffset/byteLimit require binaryDelivery=base64. Text secrets are redacted; binary evidence is unmodified.
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Read attached evidence through MCP without changing its format. Pass evidenceId from goal-get. Text (text/plain, JSON, NDJSON) returns newline-preserving redacted lines; offset/limit are zero-based line pagination. Images return a native MCP image with original MIME and bytes. For a complete video, PDF, ZIP or other binary, binaryDelivery=link (default) returns a resource_link to the authenticated original download — no base64 and no conversion. If the client cannot open external links, binaryDelivery=base64 embeds the exact original bytes in a resource blob; this expands data by about 33% plus JSON overhead and can consume the client context window, so use it only when needed. byteOffset/byteLimit require binaryDelivery=base64. Text secrets are redacted; binary evidence is unmodified.
    ConnectorNo auth
  • PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. WRITE YOUR OWN ffmpeg video filter chain and apply it to the program picture — for the look no preset makes. Presets FIRST: apply_look / add_stylize / set_color_grade / enhance_video cover the common asks; reach here when the user wants something none of them says (a CRT phosphor look, posterize, a slow hue drift, selective channel work). Rules: ONE chain on the single video stream — filters separated by commas, NO ';' or '[labels]', no file access — and it must keep the frame's size and rate. The chain is DRY-RUN on the real footage before it stores: a broken chain returns ffmpeg's own error (fix it, never retry the identical string); an over-heavy one returns its measured cost. start/end are PROGRAM seconds (omit both = whole video; windowed moments follow their footage through later cuts). label = short human name for the look ('CRT green') shown in diffs. Example chain: "hue=s=0.3,curves=green='0/0 0.5/0.6 1/1',noise=alls=8:allf=t". After it lands, LOOK at the window on the next preview — a chain that parses can still look wrong.
    ConnectorOAuth
  • Keyword Research (marketplace term universe): search the FULL Top Search Terms store by phrase - not anchored to any ASIN. Filters: contains (up to 5 substrings, ANDed), department, rank_max, min_volume; period WEEK or MONTH (MONTH = monthly volumes); sort rank | volume | trend. Each term: search_frequency_rank, volume (amazon_sqp = TRUE Amazon volume where any account's SQP covers the term; estimated_from_rank with volume_band otherwise), rank_change vs ~4 periods back, and the top-3 clicked ASINs with click/conversion shares (the term's competitive landscape). The estimator block reports calibration health (pairs, typical error factor, band coverage). Use keyword_finder for ASIN-anchored lookups; this tool for term-first research. For the guided process start with keyword_opportunities.
    ConnectorOAuth
  • Create a complete Google Ads Demand Gen campaign (YouTube, Discover, Gmail, Maps and the Google Display Network) in ONE atomic request: budget, campaign (ALWAYS created PAUSED — activate later with adsap_google_set_entity_status), a typeless ad group with channel controls, ad-group-level location/language targeting, and ONE ad. Use dry_run: true first — Google validates the whole chain without creating anything; show the plan, get confirmation, then execute. Two ad types (ad.ad_type): 'multi_asset' = image ad (1-5 headlines <=30 chars, 1-5 descriptions <=90, business name <=25, 1-5 logos, at least one landscape 1.91:1 or square 1:1 image from adsap_google_upload_asset, optional portrait 4:5 and tall-portrait 9:16, combined images <=20); 'video_responsive' = YouTube video ad (1-5 YouTube video ids, 1-5 headlines <=40, 1-5 long headlines <=90 REQUIRED, 1-5 descriptions <=90, 1-5 logos). Daily budget minimum is 5 (Google enforces a 5 USD local-currency-equivalent floor for Demand Gen). Channels: default ALL_CHANNELS; or channels.selected booleans (youtube_in_stream/youtube_in_feed/youtube_shorts/discover/gmail/display/maps — display: true is how you reach the Google Display Network). bidding_strategy 'auto' picks maximize_conversions when the account has conversion tracking, else maximize clicks; target_roas needs conversion history (Google rejects otherwise). ad_account_id is the bare 10-digit customer ID. For Search use adsap_google_create_search_campaign, for Performance Max adsap_google_create_pmax_campaign; for Meta use adsap_create_campaign.
    ConnectorAPI key
  • Replaces the video or image behind a not-yet-published post (draft, ready, scheduled or failed) with another upload from the same workspace, like the dashboard's "Replace media". The post keeps its schedule, captions, first comments and platform settings; only the media file changes. Set `apply_to_batch: true` to also swap every other post in the same batch (same media, same status and, for scheduled posts, the same scheduled time), which is what you want when one upload was scheduled to several platforms at once. Upload the new file first with create_video_upload_from_url or create_video_upload + finalize_video_upload, then pass its id here. Refuses text posts, carousels, and posts that are queued, processing or published. Platform compatibility of the new file is not re-checked, so pick media that suits every platform in the batch.
    Connector
    Destructive
    OAuth
  • Attach the owner's OWN media from the brand Library to a planned post, exactly as it is, replacing the post's media: one picture, up to 10 pictures as a carousel (in the order given), or one video. Ids come from list_brand_assets (uploads) or list_creations (finished creations). For a Video Studio film use attach_video_to_post; for a just-generated visual, attach_visual_to_post. A cover picture the post already has is kept (pass `keep_cover: false` to clear it). Free.
    Connector
    Destructive
    OAuth
  • Inspects on-chain minimum deposit floors, maximum pool caps, network miner fees, and liquidity reserve depth for any supported pair without calculating conversion amounts. USAGE GUIDELINES: - USE WHEN: Determining whether a planned transaction meets provider thresholds, verifying miner fees, or checking pool liquidity before prompting user for an amount. - DO NOT USE: Calculating live conversion quantities or generating order links (use 'get_swap_quote'). PARAMETER DYNAMICS & EDGE CASES: - Distinct Asset Rule: 'from' and 'to' must represent distinct blockchain networks; identical inputs (e.g., BTC to BTC) are rejected with a structured error object. - Directional Asymmetry: Minimum deposit floors and pool reserves for asset A-to-B differ from B-to-A due to destination blockchain miner fee structures ('network_fee') and independent pool balances. - Ticker Matching: Input symbols are case-insensitive. Specify 'USDT' for TRC20 routing or 'USDTERC' for Ethereum mainnet settlement. Unlisted tickers return an error referring to 'list_supported_currencies'. BEHAVIOR, TIMEOUTS & CACHING: - Strictly read-only with zero state changes. - Edge-cached for 30 seconds. - Returns JSON error object if pair is unsupported or liquidity feed is unreachable.
    ConnectorNo auth
  • Inspects on-chain minimum deposit floors, maximum pool caps, network miner fees, and liquidity reserve depth for any supported pair without calculating conversion amounts. USAGE GUIDELINES: - USE WHEN: Determining whether a planned transaction meets provider thresholds, verifying miner fees, or checking pool liquidity before prompting user for an amount. - DO NOT USE: Calculating live conversion quantities or generating order links (use 'get_swap_quote'). PARAMETER DYNAMICS & EDGE CASES: - Distinct Asset Rule: 'from' and 'to' must represent distinct blockchain networks; identical inputs (e.g., BTC to BTC) are rejected with a structured error object. - Directional Asymmetry: Minimum deposit floors and pool reserves for asset A-to-B differ from B-to-A due to destination blockchain miner fee structures ('network_fee') and independent pool balances. - Ticker Matching: Input symbols are case-insensitive. Specify 'USDT' for TRC20 routing or 'USDTERC' for Ethereum mainnet settlement. Unlisted tickers return an error referring to 'list_supported_currencies'. BEHAVIOR, TIMEOUTS & CACHING: - Strictly read-only with zero state changes. - Edge-cached for 30 seconds. - Returns JSON error object if pair is unsupported or liquidity feed is unreachable.
    ConnectorNo auth
  • Generate an image or a video with FotoAI (fotoai.hu), paid with the user's OWN FotoAI credits. Call fotoai_quote first, tell the user the price, and pass its quote_id here only after the user agrees. Returns the generation id. The finished outputs are saved into this Postemi workspace's media library automatically. With wait_seconds (up to 50) the call waits for a short image and returns media paths directly; otherwise call fotoai_get_generation with the id until status is completed. Attach each media PATH to create_post. Pass an idempotencyKey (a UUID you invent per generation). If a call times out, repeat it with the SAME key: you get the same generation back and nothing is charged twice.
    ConnectorOAuth
  • Build a conversion funnel from the product's own events: distinct users per step, step-to-step conversion %, and drop-off, evaluated in the exact order you pass. Needs product-analytics events flowing; returns empty counts when none match. Pass `steps` as an ordered list of 2+ event names — call it with NO steps first to get the menu of available event names rather than guessing them. Optional product_id and window_days (default 30, valid 1–365). Pairs with analyze_paths to see where the drop-offs go.
    ConnectorNo auth
  • Get transcripts for a YouTube channel's most recent videos (newest first) as timestamped markdown, one section per video. Use for research across a creator's recent output; for one known video use get_transcript. Read-only; requires an API key. Charges 1 credit per video that returns a transcript, including repeat calls; videos without captions are skipped free. A 10-video call typically costs up to 10 credits, so start with a small limit. Rate limit: 5 requests per 10 seconds.
    ConnectorNo auth
  • Get transcripts for a YouTube channel's most recent videos (newest first) as timestamped markdown, one section per video. Use for research across a creator's recent output; for one known video use get_transcript. Read-only; requires an API key. Charges 1 credit per video that returns a transcript, including repeat calls; videos without captions are skipped free. A 10-video call typically costs up to 10 credits, so start with a small limit. Rate limit: 5 requests per 10 seconds.
    ConnectorNo auth
  • Return the current UTC date and time as a formatted string and ISO 8601 timestamp, for grounding time-relative reasoning in the actual clock rather than training-data assumptions. Use when: Use when a task must anchor on the current date or time — computing ages, windows, deadlines, or 'as of today' context. The runtime context block already states the date, so call this only when a specific strftime format or a precise timestamp is needed. Limitations: UTC only — no timezone conversion. An unsupported strftime format silently falls back to the default format instead of erroring. Alternatives: calculate, get_block
    ConnectorNo auth
  • SANDBOX/ONBOARDING ONLY: request the capped trial sandbox faucet for test CPTM (one grant per agent per 24h). Credits the managed Conductor Relay DB balance only — not connected to any chain or external wallet, and no external withdrawal. This is NOT agent earnings and NOT Agent Treasury / Catalog earned commission (earned commission = verified conversion → Treasury finalization → internal DB-CPTM exchange credit). Bearer token required. See /agents/cptm-policy.
    ConnectorNo auth
  • Submit a transcoding job. Args: source: URL of the input video (https://, s3://, or `tus:<uuid>`). outputs: list of format-spec dicts. Each MUST have an `output` field whose value is one of: mp4, webm, advanced_hls, advanced_dash, webm_dash, repack, mp3, m4a, hls_audio, flac, gif, thumbnail, thumbnails, smart_thumbnail, metadata, speech_to_text, vmaf, video_intelligence, ai_detection, waveform. The OUTER array is named `format` in the Qencode schema (this tool wraps it for you). The INNER STRING field naming the type is `output` — NOT `format`. This is the most common composition mistake. Example of a valid entry: { "output": "mp4", "video_codec": "libx264", "audio_codec": "libfdk_aac", "resolution": 720, "optimize_bitrate": 1, "audio_bitrate": 128, "destination": { "url": "<destination_prefix>/<new filename or folder>" } } Media Storage `destination.url` is `{destination_prefix}/{new key}` — a NEW file or folder, never a listed object's `destination_url` (that is the existing file, for reading as `source`). Folder outputs (HLS / STT / VI / thumbnails) take `{destination_prefix}/folder` with no trailing slash. Do not assemble the host. `s3://<bucket>/…` is rejected here (the API would demand `key`/`secret`). Inputs the encoder fetches (`source`, `distorted`, subtitle files, `logo.source`) use `cdn_url` when public and `destination_url` when private. Video Intelligence `source` must be https — `cdn_url` only; a private object cannot be a VI source. For HLS/DASH ABR, put per-rendition params on each entry of an inner `stream[]` array (not on the format object directly). Output-specific required fields (see matching recipe): advanced_hls / advanced_dash / webm_dash / hls_audio — non-empty `stream[]` of objects. A bare `{"output": "advanced_hls"}` is rejected. Fetch `qencode://recipe/hls_abr` (or `audio_outputs` for `hls_audio`) before composing. vmaf — `distorted` URL of the encoded video; `source` is the reference original (encoder v1 is auto-selected). video_intelligence — `mode` one of description, categorization, moderation, search, custom (NOT `features`). Source must be https:// and meet duration minimums (description etc. ≥10s, search ≥4s) — check via metadata or tell user if too short. Example vmaf entry: { "output": "vmaf", "distorted": "https://example.com/encoded.mp4", "destination": {"url": "<destination_prefix>/vmaf.json"} } Example HLS entry (params on `stream[]`, not on the format object): { "output": "advanced_hls", "segment_duration": 6, "stream": [{ "video_codec": "libx264", "audio_codec": "libfdk_aac", "resolution": 720, "framerate": "30", "keyframe": "60", "optimize_bitrate": 1, "audio_bitrate": 128 }] } Example video_intelligence entry: { "output": "video_intelligence", "mode": "description", "destination": {"url": "<destination_prefix>/vi"} } payload: optional opaque callback tag echoed by Qencode. Must be a string (or omitted). A JSON object is not submitted — the tool returns `{"error": "..."}` asking you to retry with a string. It is not the job body (`outputs` is). Do not put `source` or `format` in `payload`. `encoder_version` is injected automatically when omitted: `2` by default, `1` when any output is `vmaf`. Stitch jobs (multi-source `stitch` array) are not supported here — use `start_encode2_raw` with `encoder_version: 2` per `qencode://recipe/stitching`. Other composition defaults in this server's instructions (libfdk_aac, optimize_bitrate, per-stream ABR params, etc.) still belong in each `outputs[]` entry — consult the matching recipe via `search_qencode_docs` + `fetch_qencode_doc` before submitting. After this returns a `task_token`, in the SAME reply call `list_jobs` with that token. If the job is already Done with a playable video URL, also `open_player`. If the deliverable is a json/txt/srt/vtt file, call `fetch_job_result` and give the user both the URL and the extracted content.
    Connector
    Destructive
    OAuth