# JoggAI — how to use (mcp.ai)

Connect your JoggAI account and use 36 tools for AI content generation straight from your AI agent. Connect with your own API key. JoggAI provides APIs for creating AI avatar, product, lip-sync, template, and translated videos and managing their supporting media assets.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_jogg_ai?ms=1787296080000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `jogg_ai_animate_photo_avatar`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/jogg_ai`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/jogg_ai/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/jogg_ai/animate/photo/avatar` — Create a reusable animated avatar from a photo-avatar image. WARNING: this generation creates persistent media and costs at least 2 JoggAI credits; the 2.0-Pro model costs 3 credits. Call GET_ACCOUNT 
  - body: { name: string, model: string, photo_id?: string, voice_id: string, image_url: string, description?: string, welcome_msg?: string }
- `POST https://api.mcp.ai/api/jogg_ai/animate/product/avatar` — Add motion and a voice to a selected JoggAI product-avatar image generation. WARNING: this call consumes JoggAI credits and creates persistent media; call GET_ACCOUNT first to check the remaining bala
  - body: { name: string, model?: integer, voice_id: string, description: string, aspect_ratio?: string, generation_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/create/asset/upload/url` — Create a signed URL for uploading an asset to JoggAI. This does not upload the file bytes; PUT them to sign_url separately, then use asset_url in a generation request, including as a template image or
  - body: { filename: string, file_size?: integer, content_type: string }
- `POST https://api.mcp.ai/api/jogg_ai/create/lip/sync/video` — Start an asynchronous lip-sync video from publicly reachable video and audio URLs. WARNING: this request consumes JoggAI credits; call GET_ACCOUNT first to check the remaining balance. Returns a task 
  - body: { audio_url: string, video_url: string, playback_type?: string }
- `POST https://api.mcp.ai/api/jogg_ai/create/product` — Create product information from exactly one source: a product page URL, or manually supplied product details. WARNING: this creates a persistent JoggAI product, and API v2 provides no read or delete p
  - body: { url?: string, name?: string, media?: object[], description?: string, target_audience?: string }
- `POST https://api.mcp.ai/api/jogg_ai/create/product/video` — Start a product video using a saved product and nested video, avatar, voice, audio, and script settings. WARNING: this call consumes JoggAI credits and creates persistent media; call GET_ACCOUNT first
  - body: { audio: object, voice: object, avatar: object, script: object, product_id: string, video_spec: object, webhook_url?: string, visual_style?: string, override_script?: string }
- `POST https://api.mcp.ai/api/jogg_ai/create/product/video/previews` — Generate product-video previews for one or more visual styles. WARNING: this call consumes JoggAI preview credits and creates persistent previews; API v2 provides no preview delete endpoint. Call GET_
  - body: { audio: object, voice: object, avatar: object, script: object, product_id: string, video_spec: object, webhook_url?: string, visual_styles: string[], override_script?: string }
- `POST https://api.mcp.ai/api/jogg_ai/create/talking/avatar/video` — Start a talking-avatar video using an avatar and either a text script or hosted audio. WARNING: this call consumes JoggAI credits and creates persistent media; call GET_ACCOUNT first to check the rema
  - body: { voice: object, avatar: object, caption?: boolean, video_name?: string, webhook_url?: string, aspect_ratio: string, screen_style: integer }
- `POST https://api.mcp.ai/api/jogg_ai/create/template/video` — Start rendering a JoggAI v2 template with typed text, script, image, or video variables and optional avatar, voice, captions, and music settings. WARNING: this call consumes JoggAI credits and creates
  - body: { voice_id?: string, avatar_id?: integer, variables: object[], video_name?: string, avatar_type?: integer, template_id: integer, voice_language: string, captions_enabled?: boolean, background_music_id?: integer, disable_all_transitions?: boolean, disable_all_image_effects?: boolean, disable_random_transitions?: boolean, disable_random_image_effects?: boolean }
- `POST https://api.mcp.ai/api/jogg_ai/create/webhook` — Create a JoggAI webhook endpoint with a callback URL, delivery status, and event subscriptions. Returns a one-time sensitive signing secret; store it securely and never log it.
  - body: { url: string, events: string[], status: string }
- `POST https://api.mcp.ai/api/jogg_ai/delete/webhook` — Permanently delete one JoggAI webhook endpoint. WARNING: this operation is irreversible; confirm the endpoint ID before calling it.
  - body: { endpoint_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/generate/ai/scripts` — Start asynchronous AI script generation from a saved product or inline product details. WARNING: this request may consume JoggAI credits; call GET_ACCOUNT first to check the remaining balance. Returns
  - body: { language: string, product_info: object, script_style: string, target_audience?: string, video_length_seconds: string }
- `POST https://api.mcp.ai/api/jogg_ai/generate/photo/avatar/image` — Start AI photo-avatar image generation using JoggAI's exact demographic, style, model, and aspect-ratio modes. WARNING: this call consumes credits and creates persistent media; documented pricing is 0
  - body: { age: string, model: string, gender: string, ethnicity?: string, image_url?: string, appearance?: string, background?: string, aspect_ratio: string, avatar_style: string }
- `POST https://api.mcp.ai/api/jogg_ai/generate/product/avatar/images` — Start asynchronous generation of one to four product-avatar images from a public product image and an existing avatar, reference image, or description. WARNING: this call consumes JoggAI credits for p
  - body: { prompt?: string, quality: string, num_images?: integer, webhook_url?: string, aspect_ratio: string, avatar_source: object, product_image_url: string }
- `POST https://api.mcp.ai/api/jogg_ai/get/account` — Return the connected JoggAI user and remaining credit balance. Use this before a credit-consuming generation request; JoggAI does not expose a plan name.
- `POST https://api.mcp.ai/api/jogg_ai/get/ai/script/task` — Check an AI script generation task and return generated scripts when completed.
  - body: { task_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/get/lip/sync/video` — Check a lip-sync task and return its output URLs and duration when successful.
  - body: { task_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/get/photo/avatar` — Check photo-avatar motion generation and return the reusable avatar details when complete.
  - body: { motion_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/get/photo/avatar/image` — Check photo-avatar image generation and return the generated image URLs and keys when ready.
  - body: { photo_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/get/product/avatar` — Check product-avatar motion generation and return the reusable avatar when complete.
  - body: { motion_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/get/product/avatar/image/task` — Check a product-avatar image generation batch and return its status summary and generated image candidates.
  - body: { batch_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/get/product/video` — Check one product video and return its generated media when available.
  - body: { product_video_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/get/talking/avatar/video` — Check a talking-avatar video and return its media URLs when completed.
  - body: { video_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/get/template/video` — Check a template-rendered video and return its output details when complete.
  - body: { video_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/get/video/translation` — Check a video translation and return translated media when complete.
  - body: { video_translate_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/list/avatars` — List public, instant, photo, or product avatars available for JoggAI video generation. Filters vary by avatar kind; returned IDs can be used in generation tools. This toolkit can create photo and prod
  - body: { age?: string, name?: string, scene?: string, style?: string, cursor?: string, gender?: string, status?: string, ethnicity?: string, page_size?: integer, avatar_kind: string, aspect_ratio?: string }
- `POST https://api.mcp.ai/api/jogg_ai/list/creation/assets` — Browse one music, template, visual-style, or voice catalog used to create JoggAI media. Returns one page for music/voice and complete template/style catalogs.
  - body: { age?: string, cursor?: string, gender?: string, language?: string, use_case?: string, page_size?: integer, asset_kind: string, aspect_ratio?: string }
- `POST https://api.mcp.ai/api/jogg_ai/list/product/previews` — List generated JoggAI product-video previews and their statuses one page at a time. Preserve the returned preview identifier for selective rendering.
  - body: { cursor?: string, status?: integer, sort_by?: string, page_size?: integer, sort_order?: string }
- `POST https://api.mcp.ai/api/jogg_ai/list/product/videos` — List product videos with status and sort filters, one bounded page at a time.
  - body: { cursor?: string, status?: integer, sort_by?: string, page_size?: integer, sort_order?: string }
- `POST https://api.mcp.ai/api/jogg_ai/list/translation/languages` — Return currently supported lowercase target-language identifiers for JoggAI video translation.
- `POST https://api.mcp.ai/api/jogg_ai/list/webhook/events` — Return event identifiers that can be subscribed to by a JoggAI webhook.
- `POST https://api.mcp.ai/api/jogg_ai/list/webhooks` — List webhook endpoints registered on the connected JoggAI account. Signing secrets are never returned by this tool.
- `POST https://api.mcp.ai/api/jogg_ai/render/product/video/preview` — Render one selected product preview into a final video. WARNING: this consumes JoggAI render credits and creates persistent media.
  - body: { preview_id: string }
- `POST https://api.mcp.ai/api/jogg_ai/translate/video` — Start asynchronous video translation with optional audio-only translation, dubbing, lip sync, subtitles, and dynamic duration. WARNING: this call consumes JoggAI credits and creates persistent transla
  - body: { title?: string, video_url: string, callback_url?: string, output_voice?: string, add_subtitles?: boolean, output_language: string, translate_audio_only?: boolean, enable_dynamic_duration?: boolean }
- `POST https://api.mcp.ai/api/jogg_ai/update/product` — Update an existing JoggAI product's descriptive fields. Supplying media replaces the complete media list; pass an empty list to remove all media. JoggAI API v2 has no product read endpoint, so retain 
  - body: { name?: string, media?: object[], product_id: string, description?: string, target_audience?: string }
- `POST https://api.mcp.ai/api/jogg_ai/update/webhook` — Fully replace an existing JoggAI webhook's callback URL, delivery status, and event subscriptions.
  - body: { url: string, events: string[], status: string, endpoint_id: string }

## Example prompts
- "What can I do in JoggAI?"
- "Show me a summary of my JoggAI account"

## More
- Page: https://mcp.ai/jogg_ai
- Agent spec (llms.txt): https://mcp.ai/jogg_ai/llms.txt
- Postman collection: https://mcp.ai/jogg_ai/postman.json
