VidGuy

Create short-form videos and images, manage brands, and schedule social content with VidGuy.

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноМожет изменять данные

Что умеет

  • Get Credits: Check the account's current credit balance, plan allotment, and recent credit transactions. Call this before a credit-spending generation (create_video, generate_snacks, generate_meme, st
  • Buy Credits: Get the offer for a pay-as-you-go credit top-up: the exact URL to POST, the USD price, and which rails this deployment accepts (x402 USDC on Base/Solana; Stripe MPP for Shared Payment Tok
  • List Brands: List the brands (end-customers) registered under your account. Paginated. Call this first to find a brandId before generating snacks.

Какие данные видит

Нужен ли аккаунт

Не нужен: сервер работает без входа

Create short-form videos and images, manage brands, and schedule social content with VidGuy. Connect your account with OAuth to use the hosted MCP service. Generation may consume credits; social publishing affects your connected accounts. The linked repository contains public client configuration and documentation.

Список инструментов сервера (60)

Технические названия из tools/list. Нужны только разработчикам.

get_creditsCheck the account's current credit balance, plan allotment, and recent credit transactions. Call this before a credit-spending generation (create_video, generate_snacks, generate_meme, studio_*, seedance_*, create_slides/ai_story, post-processing) to confirm there's enough balance. Read-only; no credits spent.
buy_creditsGet the offer for a pay-as-you-go credit top-up: the exact URL to POST, the USD price, and which rails this deployment accepts (x402 USDC on Base/Solana; Stripe MPP for Shared Payment Token cards and Tempo USDC). POST the returned url with your API key in X-Api-Key and no payment header to receive the 402 challenge (PAYMENT-REQUIRED for x402, WWW-Authenticate for MPP), pay it with your wallet, and retry the same request with the payment header. Credits land on settlement and never expire. Pass `required` (from an insufficient-credits error) to get the smallest size that covers it. Read-only; this tool itself never moves money.
list_brandsList the brands (end-customers) registered under your account. Paginated. Call this first to find a brandId before generating snacks.
get_brandFetch a single brand by its id.
create_brandRegister a new brand (one of your end-customers) when none of the existing brands fit. `description` should be a few sentences — short descriptions hurt content quality. If you omit `targetAudience` we derive it. Free (no credits). Returns the brand's `id` — pass that to generate_snacks.
update_brandUpdate fields on an existing brand. Pass only the fields that change; pass null on a nullable field to clear it. Free (no credits).
delete_brandDelete a brand. Existing snack posts referencing it are preserved (their brandId becomes null). This cannot be undone.
estimate_snack_costEstimate the credit cost of a snack generation BEFORE running it. Base is 23 credits; excluding 'ai-ugc' saves 5; server-side render adds 3. No credits spent, no I/O.
generate_snacksKick off an ASYNC snack generation job for a brand. SPENDS CREDITS (18–26 — call estimate_snack_cost first). Requires a brandId: call list_brands first, or create_brand if the brand doesn't exist yet. Returns immediately with a jobId; then poll get_job. GENERATION TAKES AT LEAST ~2 MINUTES (typically 2–3 min) — set the user's expectations and don't poll as if it'll be instant. Pass render=true if you want viewable MP4/PNG assets shown inline in chat; without render the result is a layered manifest you open via the dashboard viewUrl. Credits are refunded automatically if generation fails.
generate_memeCreate memes from a plain-language prompt — a pasted changelog line, blog title, or launch note works; you do not need to write the joke. Choose meme-edit (rewrites a familiar reaction clip, 3 credits each), meme-greenscreen (keys a person over a background with a hook, 2 credits each), or meme-comic (an illustrated comic strip, 2 credits each). count accepts 1–5 and produces that many variations of the selected type. brandId is OPTIONAL: omit it for a brandless meme driven purely by the prompt, or pass one from list_brands to fold in that brand's voice. ASYNC: returns a jobId immediately; poll get_job, and expect generation to take ~1–3 minutes. Credits refund automatically on failure. Individual slots can silently skip — especially meme-edit, which needs a source clip whose caption rewrites cleanly — so fewer than count memes may land.
list_snacksList previously generated snack posts, optionally scoped to one brand. Paginated.
get_snackFetch a single snack post (with its manifest) by id. Returns a dashboard viewUrl and attaches the scene visuals as resource links so they preview inline (these are source clips/images — text overlays + greenscreen compositing are applied at render time; open the viewUrl for the burned-in result).
create_videoKick off an ASYNC full video production job (the Quick Create flow). SPENDS CREDITS (dynamic, ~50–200 by duration/type — the exact amount comes back as creditsReserved). Returns a jobId; poll get_job until completed. For UGC video types ('ugc','brainrot','ugc-broll','ugc-demo') you MUST supply characterId (from list_characters or list_character_library) and a script. Credits refunded automatically on failure.
get_jobPoll ANY async VidGuy job by its id — the universal poller. Covers: jobIds from generate_snacks / generate_meme / create_video / create_slides / create_ai_story / create_tiktok_carousel (whose slide URLs come back on the job itself, no second call), Studio + SeedDance generations (jobId from studio_generate_video / seedance_generate_video / seedance_generate_image), and AI Edit / Character Swap projects (projectId from create_ai_edit / create_character_swap). status is queued|processing|completed|failed (Studio/SeedDance report 'succeeded' when done). Generations take ≥~2 minutes — poll every ~10s and don't treat an early 'processing' as a failure. TikTok Carousels are the exception: they paint in seconds, so poll those every ~3s. Completed outputs (videos, images, snack dashboard links) are attached as resource links so they display inline. Only exceptions: influencer vault builds / snack packs (get_influencer_vault_build / get_influencer_snack) and dubs (get_dub_status) have dedicated pollers.
list_videosList your video projects, newest first. Use this to find a completed project's projectId for post-processing (upscale_video / voice_enhance / dub_video) or to check generation status. Filter by status (e.g. 'completed'). Paginated.
get_videoFetch one video project by its id: status, outputUrl, the brief, and per-format assets (slides tiles). The output video is attached as a resource link when available. For a Character Swap project it also returns `characterSwap` — the exact settings it ran with (r2Keys, keepOriginalVisualRanges, resolution, sceneMatch, saveAudio) plus signed previews — so you can replay the same cut with a different character.
create_slidesGenerate a portrait 5-slide deck varied from a single reference image. ASYNC — returns a jobId; poll get_job until completed (per-slide assets via get_video). SPENDS ~20 credits. Requires a public referenceImageUrl.
create_ai_storyGenerate a dialogue-first short drama from a single reference image — the image becomes the cast for a 5-scene 'short' or 9-scene 'medium' sequence. ASYNC — returns a jobId; poll get_job until completed. SPENDS CREDITS (50 short / 80 medium). Requires a public referenceImageUrl.
list_carousel_templatesList the carousel layouts on this account, each with the exact row schema it expects (variable keys, text vs image, an example per key). FREE. Call this before create_tiktok_carousel — the row keys come from here, never from guesswork.
create_tiktok_carouselRender a batch of TikTok photo carousels from a template: swipeable 1080x1920 slides, real library photos, the copy composited as REAL text (never generated into the image, so it says exactly what you write). ASYNC — returns a jobId; poll get_job until completed, and the slide URLs come back on the job itself. SPENDS 1 CREDIT PER CAROUSEL. Max 12 per call. Keys in `values` must come from list_carousel_templates; unknown ones are reported in ignoredKeys, not rejected. Image slots take either a `collection:<pool>` key (stock photos, see the template's examples) or a direct image URL. For candid phone-shot backgrounds that match each slide's line, generate them first with studio_generate_image (modelKey 'replicate-pruna-p-image-ideogram', 1 credit, aspectRatio '9:16', prompt like 'candid iPhone photo of a laptop showing a blurred inbox at night, phone-camera grain, no people, no readable text, no logos') and pass the returned URL.
import_asset_from_urlFetch a public image or video URL and store it on VidGuy, returning a stable hosted URL you can pass as a reference image (e.g. referenceImageUrl for slides/ai-story). Use this when you have a URL but the asset isn't already hosted with us. Free. Max 50MB.
create_uploadGet a presigned PUT URL to upload an image/video directly, plus the public URL it will have. Upload the bytes with HTTP PUT to uploadUrl, then pass publicUrl to a generation call. Prefer import_asset_from_url when you already have a URL.
create_characterCreate a new saved character/actor for UGC video — the API equivalent of adding an actor in the dashboard. Supply ONE of: fromLibraryId (clone a preset from list_character_library into the user's saved actors — FREE, name/voice default to the preset's); imageUrl (a public/hosted image — use import_asset_from_url or create_upload first if you only have raw bytes — saved for FREE); or a text prompt to AI-generate a 9:16 portrait (SPENDS 1 credit). Returns characterId to pass as the UGC characterId on create_video. Optionally set defaultVoiceId. NOTE: a library preset can already be used directly as a UGC characterId — only clone it here when the user wants their own editable copy (e.g. a custom voice).
list_charactersList your saved characters (actors) for UGC video. Each has an id to pass as the UGC character. Thumbnails are attached so you can show the options.
list_character_libraryList VidGuy's preset character/actor library (with tags + thumbnails) for UGC video when you don't have your own character. Use a library entry's id as the UGC character.
list_influencersList your saved AI influencers (the persistent identities from the Influencer Vault — /dashboard/influencers). Distinct from list_characters (UGC actors): an influencer owns a persona, visual identity, voice, and a vault of generated assets. Each item includes id, name, status (draft/building/ready/failed), and a coverUrl thumbnail. Use the id with get_influencer, build_influencer_vault, list_influencer_assets, etc.
get_influencerFetch one influencer profile by id (persona, visual identity, voice, status, metadata). Call list_influencers first to get the id.
create_influencerCreate a new persistent AI influencer identity (the Influencer Vault equivalent of the dashboard's 'New influencer'). FREE — this just creates the profile row; generating the look (generate_influencer_look) and the vault (build_influencer_vault) are the steps that spend credits. Plan-gated: starter allows 1, pro 5, enterprise 10 (free tier: 0). Returns the new influencer id. To start from the user's own photo, call attach_influencer_reference next and pass its returned asset id to generate_influencer_look or build_influencer_vault as seedImageAssetId.
update_influencerEdit an influencer's profile fields (name, description, persona, visual identity, voice, brand). Also the way to ARCHIVE one: set status='archived' (archived influencers stop appearing in list_influencers). Only the fields you pass are changed.
attach_influencer_referenceAttach the user's own image to an influencer as its identity reference. FREE. The image must have a stable public/hosted URL; use import_asset_from_url when starting from a public URL, or create_upload when starting from raw bytes. Returns a vault asset id to pass as seedImageAssetId to generate_influencer_look or build_influencer_vault. For an already-approved real photo, you can skip the paid look preview and build directly from this asset id.
generate_influencer_lookGenerate a single cheap 'look preview' portrait for an influencer so the user can approve the face BEFORE the full vault build (which then seeds from this look so the whole vault matches). SPENDS 1 credit (refunded on failure). Returns the preview image and its vault asset id. To anchor the look to the user's own photo, first call attach_influencer_reference and pass its returned asset id as seedImageAssetId.
build_influencer_vaultKick off an ASYNC build of an influencer's vault — the character/reference sheet plus on-camera stills, faceless 'phone-dump' b-roll, and short video clips that future snacks draw from. SPENDS CREDITS (≈25 per b-roll clip, plus a flat premium when starterBundle=true; the exact amount comes back as creditsReserved, and is refunded automatically on failure). Returns a build job immediately — poll get_influencer_vault_build with the returned id until status is 'completed'. BUILDS TAKE SEVERAL MINUTES; don't poll as if it'll be instant. For the very first build after create_influencer, pass starterBundle=true to charge the flat starter-vault bundle price.
get_influencer_vault_buildPoll the status of a vault build started by build_influencer_vault. Returns progress (status, progressPercent, creditsReserved/credits, error if any). When status is 'completed', call list_influencer_assets to see the new vault assets.
list_influencer_assetsList the generated assets in an influencer's vault (portraits, on-camera stills, faceless b-roll, video clips). Thumbnails are attached. Optionally filter by role.
list_influencer_snacksList the snack content packs generated for one influencer (the dashboard 'Content' tab). Each entry includes the validated, media-normalized manifest. Use get_snack for full detail on any returned id.
generate_influencer_snackKick off an ASYNC snack content pack generated IN THE VOICE OF a specific influencer (the '+ New content' action on the influencer's Content tab). Draws on the influencer's persona + vault assets. Brand context is automatic: if the influencer is tied to a tenant brand it uses that; if it's account-wide (no tenant brand) it falls back to the account's main brand (your social brand) — so you do NOT need to attach a brand first. (It only errors if the account has no brand at all, e.g. a brand-new un-onboarded account.) SPENDS CREDITS (the same flat snack-generation cost; comes back as creditsReserved, refunded on failure). Rate-limited to 10 packs/hour. Returns a jobId — poll get_influencer_snack until status is 'completed'. GENERATION TAKES AT LEAST ~2 MINUTES; don't poll as if it's instant. This is the influencer-scoped sibling of generate_snacks (which is brand-scoped).
get_influencer_snackPoll a snack pack started by generate_influencer_snack. Returns status/progress; when completed, the rendered assets are attached as resource links and the result carries the dashboard viewUrl. Then list_influencer_snacks will include the finished pack.
get_influencer_agentFetch the autonomous posting agent attached to an influencer: settings (enabled, autonomy mode, posting cadence, budget, target accounts), recent runs, content DRAFTS awaiting decision (with live post metrics once published), trust scorecards, the learned playbook, today's trend brief, and the owner knowledge base. Call this FIRST — before updating settings, deciding drafts, or answering its questions. Read-only.
update_influencer_agentEnable/resume (enabled=true) or reconfigure an influencer's posting agent: autonomy ('copilot' = every draft needs owner approval; 'auto_approve' = drafts publish THEMSELVES after the veto window — switching this ON authorizes live publishing without human clicks, so only do it on an explicit user instruction), posting cadence (postingPersonality/snacksPerDay), internal credit budget, target accounts (managed or connected), and the standing systemPrompt steer. Pass only what changes. To stop the agent, use pause_influencer_agent.
pause_influencer_agentTurn an influencer's posting agent OFF: disables it, clears the next scheduled wake, and stops new drafts. Already-scheduled approved posts are NOT cancelled — reject them via decide_influencer_drafts if the user wants those pulled too. Resume later with update_influencer_agent enabled=true.
decide_influencer_draftsApprove or reject an influencer agent's proposed content drafts. APPROVING PUBLISHES (or schedules) REAL POSTS to the configured live accounts — this is the human-in-the-loop gate, so only call it after the user has seen the drafts (get_influencer_agent) and explicitly said which to approve; never bulk-approve on your own judgment. 'reject' also vetoes approved-but-unpublished scheduled drafts, and an optional reason teaches the agent. scheduledAt (ISO-8601) overrides the publish time and is only valid with a single draftId.
list_influencer_messagesThe two-way owner ↔ agent inbox for one influencer (oldest first, last 100). The agent leaves notes and QUESTIONS here between wakes; owner messages land as 'unread' and are consumed on its next wake. Unanswered agent questions have status 'unread' — answer them via send_influencer_message with answerToMessageId.
send_influencer_messageDrop a message in the influencer agent's inbox — direction, feedback, or an answer to one of its questions (set answerToMessageId to mark that question answered). ASYNC: the agent reads it on its next scheduled wake, so this shapes future content rather than getting an immediate reply. For a live back-and-forth, use chat_with_influencer instead.
update_influencer_knowledgeUpsert the owner knowledge base that binds EVERY caption the agent writes (composed into each generation): brand_facts, voice, audience, do_dont. Pass only the fields to change (≤4000 chars each). Read the current values via get_influencer_agent (the 'knowledge' field).
chat_with_influencerHave a live conversation with the influencer's agent brain — the SAME persistent thread and memory as the dashboard Chat tab, so anything discussed here carries into its future posting. Advice-only toolset: it can discuss strategy, its vault, and its plans, but cannot publish from chat. SYNCHRONOUS and slow (typically 15–90s per reply; can approach 4 min) — send ONE message per call and wait. For fire-and-forget direction, prefer send_influencer_message.
list_content_agentsList the authenticated user's deployed Companion teammates. Returns each agent's id, role, status, configuration, summary statistics, and latest task, plus tasks that currently need owner attention. Read-only. Use get_content_agent with a returned id when the user asks about one agent's work, runtime, history, messages, knowledge, clips, or signals.
get_content_agentFetch one content-team agent by id with its complete read-only dashboard context: configuration, tasks, runtime and budget state, recent runs, owner messages, knowledge, source files, review clips, Editor projects, and Spy signals where applicable. Call list_content_agents first to resolve the id. This tool never changes the agent or its work.
generate_influencer_studio_imageGenerate ONE on-identity image of an influencer (Nano Banana 2 Lite, 1 credit, SYNC — the asset URL is in the result, typically ~10–30s). The influencer's character reference sheet is injected server-side automatically so face/hair/body stay consistent — describe the SCENE, outfit, or action, not the person. Up to 4 extra referenceImages (https or data URLs: location, product, outfit). Results land in the influencer's studio gallery; keepers are promoted to the vault from the dashboard.
list_influencer_studio_imagesThis influencer's past studio generations (newest first, ≤60), each with url, prompt, and a `saved` flag marking the ones already promoted to the vault. Thumbnails attached as resource links.
delete_influencer_studio_imageRemove a generation from the influencer's studio gallery by generationId (preferred) or url. Only the gallery row is deleted — the underlying file and any vault copy promoted from it stay intact.
studio_generate_imageGenerate a single image via the Studio model catalog (call list_studio_models for keys/pricing). SYNC — the asset URL comes back in the result. SPENDS CREDITS (per-model, see creditCost). Reference images can be passed as URLs (use import_asset_from_url / create_upload first if needed). negativePrompt applies only to models whose capabilities include supportsNegativePrompt (e.g. NOT BytePlus/Seedream); on other models it is ignored, not an error.
studio_generate_videoGenerate a single video clip via the Studio model catalog (call list_studio_models for keys). ASYNC — returns a jobId; poll get_job until status is succeeded/failed. SPENDS CREDITS. firstFrame/referenceImages accept URLs (import them first if needed).
studio_generate_audioGenerate audio via the Studio model catalog (call list_studio_models with mode='audio' for keys). Seed Audio makes dialogue, sound effects, music, or speech; MiniMax Music 3.0 and ElevenLabs Music make full songs and instrumentals with optional lyrics (ElevenLabs Music also takes `duration` in seconds); ElevenLabs v3 is expressive text-to-speech — the prompt is the script, inline tags like [whispers] work, and `voice` is any ElevenLabs voice id. SYNC — the audio URL comes back in the result. SPENDS CREDITS (per-model, see creditCost).
list_studio_modelsList the Studio image/video/audio model catalog (keys, pricing, capabilities, min plan). Pass a model's `key` to studio_generate_image/video/audio.
seedance_generate_videoGenerate a video with BytePlus Seedance 2.0. ASYNC — returns a jobId; poll get_job. SPENDS CREDITS. Tip: call optimize_seedance_prompt first for best results. Supports multimodal references (≤9 images, ≤3 videos, ≤3 audio clips) — pass library rows from list_seedance_library / list_seedance_actors as {source, id}, or a public URL as {url, mediaType}. Each reference is appended to the prompt as `@Image N` / `@Video N` / `@Audio N`; you can also cite those tokens yourself in the prompt text. Audio references must be ≤15 seconds and drive dialogue/lipsync — keep generateAudio=true when using them.
seedance_generate_imageGenerate an image with BytePlus Seedream 5.0. ASYNC — returns a jobId; poll get_job (imageUrls in the result). SPENDS CREDITS. Modes: image-single (default), image-storyboard (4-beat grid), image-character-sheet.
optimize_seedance_promptRun VidGuy's SeedDance 2.0 prompt-engineering skill to expand a short idea into a production-grade prompt before generating. Returns the optimized prompt. Mode tailors the skill: video / image-single / image-storyboard / image-character-sheet.
list_seedance_actorsList the curated SeedDance digital actor catalogue (with thumbnails). Filter by query/gender/nationality/tag. Use an actor when composing a SeedDance generation.
list_seedance_libraryList everything usable as a seedance_generate_video reference besides actors: your uploads + AI generations, your main-Studio outputs (including Seed Audio clips from studio_generate_audio), and the admin-curated asset catalogue. Each row's {source, id} pair plugs straight into the references param. Filter by mediaType (image|video|audio) or a name search. Audio rows may include durationSeconds — Seedance rejects reference audio longer than 15s.
upscale_videoUpscale a video to 1080p (Topaz). SYNC. Costs 10 credits. Two source modes: pass `projectId` (a COMPLETED project from list_videos; 0 credits if already upscaled), OR pass `r2Key` to upscale a raw uploaded clip with no project — get the key from create_upload (then PUT the bytes) or import_asset_from_url. Returns the upscaled URL.
VidGuy: подключить к Claude, ChatGPT, Cursor · Connectors.fun