{"name":"com.budgetpixel/mcp","slug":"budgetpixel-mcp","title":null,"description":"Generate AI images, video, music, and sound effects, and upscale them, from any MCP client.","url":"https://mcp.market/server/budgetpixel-mcp","rating":null,"grade":"B","score":79,"certified":false,"status":"active","category":"media","tags":["media"],"presence":{"score":29,"stars":3,"forks":0,"downloads_week":null,"last_push_at":"2026-08-29T04:37:55.000Z","license":"MIT"},"uptime":{"percent":100,"checks":8,"ok":8,"last_checked_at":"2026-09-21T07:36:04.490Z","last_ok_at":"2026-09-21T07:36:04.490Z","latency_ms":391},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/budgetpixel-ai/budgetpixel-mcp","website":"https://budgetpixel.com/mcp","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://mcp.budgetpixel.com/mcp"}],"packages":[],"tools":[{"name":"check_generation_status","description":"Use this after calling generate_image, generate_video, generate_music, or generate_sound_effect to poll for results. Pass a job_id to check a specific job — numeric = image, uuid = video, and for MUSIC / SOUND-EFFECT jobs also pass type \"music\" / \"sound_effect\" (their ids are numeric too) — or omit job_id to list all active jobs. Completed IMAGE jobs return the finished image(s) inline (as image content) plus a full-resolution link — display the image AND share the link (some chat UIs don't show inline images). Completed VIDEO, MUSIC and SOUND-EFFECT jobs return a watch/listen link — always share it with the user (chat UIs can't embed players). Poll every few seconds for images and sound effects (~15 s), every 15–30 seconds for videos and music (they take minutes). Call repeatedly until status is 'completed' or 'failed'.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"string","description":"Optional job ID to check — a number for image/music/sound-effect jobs, a uuid for video jobs. If omitted, returns all active generation jobs (images, videos, music, and sound effects)."},"type":{"type":"string","enum":["image","video","music","sound_effect"],"description":"Which pipeline the job_id belongs to. REQUIRED as \"music\" for music jobs and \"sound_effect\" for sound-effect jobs (their numeric ids would otherwise be read as image jobs). Optional otherwise: uuids are detected as video, plain numbers default to image."}},"additionalProperties":false}},{"name":"create_social_post","description":"Publish a post to the user's PUBLIC BudgetPixel community feed — visible to everyone and labeled \"via MCP\". ONLY use this when the user EXPLICITLY asks to post/share/publish; never post proactively. Costs 10 credits per post (anti-spam, charged on publish — same as the developer API) with an hourly posting cap. media: 1–6 images, or 1 video + up to 3 images, or exactly 1 audio track — pass the URLs you got from generations (check_generation_status links) or upload_media, or any public URL/base64. Images can carry optional model/prompt generation info. Audio posts accept song_name, genre (a fixed list — see the enum), lyrics, AND cover_image (cover art goes in its own field, never as a second media item). Returns the public post URL — share it with the user. Posts are moderated after publish (NSFW/spam rating affects feed visibility; the charge is not refunded for hidden posts).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"content":{"type":"string","description":"The post's text/caption (optional — media-only posts are fine)."},"media":{"type":"array","minItems":1,"maxItems":6,"items":{"type":"object","properties":{"file":{"type":"string","description":"The media file — a URL (generation result link, upload_media URL, or any public URL), a data URI, or raw base64."},"model":{"type":"string","description":"Optional generation info: the model that made this image (images only)."},"prompt":{"type":"string","description":"Optional generation info: the prompt that made this image (images only)."}},"required":["file"],"additionalProperties":false},"description":"1–6 media items. Rules: 1–6 images, OR 1 video plus up to 3 images, OR exactly 1 audio track (audio can't mix)."},"song_name":{"type":"string","description":"Audio posts only: the track's display name."},"genre":{"type":"string","enum":["Pop","Rock","Hip-Hop & Rap","R&B & Soul","Electronic & Dance","Lo-fi & Chill","Ambient","Jazz","Classical","Country","Folk & Acoustic","Metal","Blues","Latin","K-Pop & J-Pop","Reggae","Soundtrack & Cinematic","Other"],"description":"Audio posts only: the track's genre — EXACTLY one of these values. Omit to have it classified automatically after publishing."},"lyrics":{"type":"string","description":"Audio posts only: lyrics to show with the track."},"cover_image":{"type":"string","description":"Audio posts only: cover art — an image URL (generation link / upload_media URL), data URI, or base64 (max 15MB). Goes in THIS field, never as a media item."}},"required":["media"],"additionalProperties":false}},{"name":"generate_image","description":"Use this to create or edit an AI image. Text-to-image from a prompt, OR image-to-image / editing / multi-reference by passing input_images (URLs, data URIs, or base64) — e.g. edit or restyle an image the user just generated by passing its URL. Input support is per-model: some take 1 image, some several, some none (check each model's max_input_images via list_models). Submits an async job and returns a job_id — then call check_generation_status to poll (usually ready in seconds); when complete it returns the finished image inline for you to display. Costs credits from the user's plan (their discounts and free-model perks apply automatically). Default model: seedream-5.0-pro; call list_models to see every available model with prices and input limits.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"prompt":{"type":"string","description":"Text prompt describing the image to generate"},"aspect_ratio":{"type":"string","enum":["1:1","4:3","3:4","16:9","9:16","3:2","2:3","21:9"],"description":"Aspect ratio of the generated image"},"num_images":{"type":"integer","minimum":1,"maximum":4,"description":"Number of images to generate (1-4)"},"model":{"type":"string","description":"AI model id. Omit for the default (seedream-5.0-pro — premium flagship: top quality, strongest identity preservation, great for edits). For fast & cheap drafts pick flux-2-klein (free on Pro/Ultra plans). Other strong picks: gpt-image-2.5-sunburst (OpenAI precision edits, premium quality), gpt-image-2.5-flare (fast OpenAI everyday model), seedream-4.5 (photorealism), gpt-image-2 (text in images), nano-banana-2 (premium editing), qwen-image-3.0 (all-rounder). Call list_models for the full catalog with prices and input limits."},"negative_prompt":{"type":"string","description":"What to avoid in the generated image"},"seed":{"type":"integer","description":"Seed for reproducible generation"},"input_images":{"type":"array","items":{"type":"string"},"description":"Optional input image(s) for image-to-image / editing / multi-reference — each a public image URL, a data URI, or raw base64. Per-model support: some models take 1, some several, some none (see max_input_images in list_models). Omit for text-to-image. To edit an image the user just generated, pass its URL here."},"resolution":{"type":"string","description":"Optional output size (per-model options, e.g. seedream-5.0-pro: 1K/2K; gpt-image-2 & nano-banana-2: up to 4K — see list_models). Omit for the model default. Larger costs more."},"quality":{"type":"string","description":"Optional rendering quality for models that support it (gpt-image-2: low/medium/high; gpt-image-2.5-sunburst and gpt-image-2.5-flare: low/medium/high/xhigh/max; grok-imagine-image-2: low/medium — no high tier). Higher costs more. On grok-imagine-image-2 quality x resolution sets the price (low 1K=50, low 2K=80, medium 1K=80, medium 2K=100 credits). Omit for default."}},"required":["prompt"],"additionalProperties":false}},{"name":"generate_music","description":"Use this to create an AI music track (full songs with vocals, or instrumentals). Three models: music-3.0 (default, 200 credits — songs from a prompt and/or lyrics, lyrics optimizer on by default so a prompt alone works), mureka-v9 (60 credits — sings the user's EXACT lyrics verbatim, or instrumental/BGM), and lyria-3 (100 credits — high-fidelity from a rich prompt, can condition on up to 10 reference images), and sonilo-music (instrumental/background music of an EXACT length via duration, 5–360 s — priced PER SECOND at 4 credits/s with a 10-second minimum, no vocals). VIDEO-TO-MUSIC: pass a `video` URL (upload_media first for local files) and sonilo-video-music composes a licensed soundtrack for the clip's content, pacing and mood — priced per second of the video's measured length (15 credits/s, 10 s minimum, ≤360 s). Flat price per track (per second for the Sonilo models), charged on success only; the user's plan discounts apply automatically. Submits an async job and returns a numeric job_id — music takes a minute or three: poll check_generation_status with the job_id AND type \"music\" every 15–30 seconds, then share the finished track's listen/download link with the user (chat can't embed audio players).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"prompt":{"type":"string","description":"Style/mood description of the track. Required for lyria-3 (10–2000 chars) and for instrumental tracks; optional on music-2.6/music-3.0 when lyrics are given."},"lyrics":{"type":"string","description":"Lyrics to sing. mureka-v9 sings them VERBATIM ([verse]/[chorus] tags supported); music-2.6/music-3.0 polish them unless lyrics_optimizer is false; lyria-3 treats them as optional guidance."},"model":{"type":"string","description":"Music model id. Omit for the default (music-3.0 — latest MiniMax, all-purpose songs, 200 credits; passing a video auto-selects sonilo-video-music). Alternatives: music-2.6 (previous generation, same price), mureka-v9 (sings exact lyrics, cheapest at 60), lyria-3 (high-fidelity, image conditioning, 100), sonilo-music (instrumental/background music of an exact length, priced per second — pass duration). Call list_models for details."},"video":{"type":"string","description":"Video-to-music: URL of a video (≤360 s, ≤30 MB for public URLs) to compose a licensed soundtrack FOR — the music follows the clip's content, pacing and mood, and matches its length. Must be a URL — upload local files with upload_media first. Uses sonilo-video-music: 15 credits per second of the video's measured duration (10-second minimum). prompt becomes optional direction (genre/mood/instrumentation); no lyrics or duration."},"duration":{"type":"integer","minimum":5,"maximum":360,"description":"sonilo-music only: track length in seconds (5–360, default 30). Billed per second with a 10-second minimum (4 credits/s → 30 s = 120 credits). Other music models ignore length (sonilo-video-music sizes the music to the video)."},"instrumental":{"type":"boolean","description":"Generate an instrumental track (no vocals). music-2.6/music-3.0 and mureka-v9 (mureka requires a prompt in this mode)."},"lyrics_optimizer":{"type":"boolean","description":"music-2.6/music-3.0 only. Write/polish lyrics from the prompt — DEFAULT TRUE (matches web/API). Set false to sing the provided lyrics as-is."},"vocal_gender":{"type":"string","enum":["auto","female","male"],"description":"mureka-v9 only: preferred vocal gender for songs (default auto)."},"format":{"type":"string","description":"music-2.6/music-3.0 only: output audio format, wav (default) or mp3."},"images":{"type":"array","items":{"type":"string"},"description":"lyria-3 only: up to 10 reference images to condition the mood — each a URL, data URI, or raw base64 (upload local files with upload_media)."}},"additionalProperties":false}},{"name":"generate_sound_effect","description":"Use this to create sound effects (NOT music). TEXT mode: describe the sound — Foley, ambience, UI sounds, whooshes/transitions, impacts, action sounds — with sonilo-sfx: 1–180 seconds, mp3 or wav, PRICED PER SECOND of the requested duration (5 credits/s, 3-second minimum → 5 s = 25, 10 s = 50, 30 s = 150 credits). VIDEO mode: pass a video URL (upload local files with upload_media first) to get frame-accurate effects synced to the clip's visible events with sonilo-video-sfx — billed per second of the VIDEO's measured length (15 credits/s, 3-second minimum, up to 360 s) and returns both the SFX track and the video with the effects mixed in. Charged on success only; the user's plan discounts apply automatically. Keep text clips as short as the sound needs and confirm cost for long videos. Submits an async job and returns a numeric job_id — text clips finish within ~15 seconds, video jobs can take a few minutes: poll check_generation_status with the job_id AND type \"sound_effect\" every 5–15 seconds, then share the finished link(s) with the user (chat can't embed players). For songs or background music use generate_music instead.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"prompt":{"type":"string","description":"Description of the sound effect — Foley, ambience, UI sounds, transitions, impacts, action (e.g. 'heavy rain on a tin roof with distant thunder'). Up to 1000 characters."},"duration":{"type":"integer","minimum":1,"maximum":180,"description":"Text mode: length of the clip in seconds (1–180, default 10). Billed per second with a 3-second minimum — 10 s = 50 credits on the default model. Ignored when a video is given."},"video":{"type":"string","description":"Optional INPUT VIDEO URL to sync the effects to (frame-accurate Foley/ambience/impacts for the clip's visible events). Must be a URL — upload local files with upload_media first; public URLs OK (≤30 MB, ≤360 s). Uses sonilo-video-sfx: 15 credits per second of the video (3-second minimum); returns the SFX track AND the video with the effects mixed in. prompt becomes optional direction."},"format":{"type":"string","enum":["mp3","wav"],"description":"Output audio format: mp3 (default, small) or wav (lossless, for editing)."},"model":{"type":"string","description":"Sound-effect model id. Omit for the default (sonilo-sfx for text; sonilo-video-sfx is selected automatically when video is given). Call list_models for details."}},"additionalProperties":false}},{"name":"generate_video","description":"Use this to create or edit an AI video. Text-to-video from a prompt; image-to-video by passing image (start frame, + optional end_image); reference-to-video by passing reference_images; or video-to-video editing by passing video (an input video URL — upload local files with upload_media first). IMPORTANT — cost: video is priced per SECOND and by resolution (default model seedance-2.5: 480p=150, 720p=330, 1080p=750 credits/sec, plus 80/160/375 per second of reference-video INPUT), so e.g. 5s at 720p ≈ 1,650 credits and 5s at 1080p ≈ 3,750; confirm with the user before expensive combos (long durations or many reference clips). Charged on success only; plan discounts apply. Submits an async job and returns a job_id (uuid) — video takes MINUTES: poll check_generation_status every 15–30 seconds until it returns the finished video link, then share that link with the user. Default model: seedance-2.5; call list_models for available video models and prices.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"prompt":{"type":"string","description":"Text prompt describing the video to generate (or the edit to apply, when passing an input video)"},"model":{"type":"string","description":"Video model id. Omit for the default (seedance-2.5 — flagship multimodal: text-to-video, image-to-video, reference images/videos/audio; pass a clip as reference_videos to edit/extend; 480p/720p/1080p, up to 30s). wan-3.0-video is the Alibaba all-in-one alternative — same modes, up to 30s, and ALL input media free (480p 60 / 720p 120 / 1080p 240 credits/sec output-only; wan-3.0-video-prime is the same model generating much faster at 85/170/340). For cheaper drafts pick seedance-2.0-mini (480p 60 / 720p 120 credits/sec). Call list_models for per-resolution prices."},"image":{"type":"string","description":"Optional START FRAME for image-to-video — a public image URL, a data URI, or raw base64. Can't be combined with reference_images or video."},"end_image":{"type":"string","description":"Optional END FRAME used together with image (the start frame) — the video interpolates between the two."},"reference_images":{"type":"array","items":{"type":"string"},"description":"Optional reference images guiding the video (subject consistency) — each a URL, data URI, or base64. seedance-2.5: up to 15; wan-3.0-video / wan-3.0-video-prime: up to 10 (free); seedance-2.0: up to 9 alone, 6 alongside an input video. Can't be combined with image/end_image."},"video":{"type":"string","description":"Optional INPUT VIDEO for video-to-video editing (2-15s) — must be a URL (upload local files with upload_media first). Can't be combined with image/end_image. On the seedance-2.0 family the INPUT seconds are billed at half the output per-second rate on top of the output."},"audio":{"type":"string","description":"Optional reference audio URL (MP3/WAV/OGG; upload local files with upload_media). Must accompany an image, reference_images, or video input. Not for minimax-h3 / seedance-2.5 / wan-3.0-video(-prime) — use reference_audios there."},"reference_videos":{"type":"array","items":{"type":"string"},"description":"minimax-h3 / seedance-2.5 / wan-3.0-video(-prime) only: reference VIDEO clip URLs guiding motion/identity — on seedance-2.5 and wan-3.0-video(-prime) also how you edit/extend a clip (h3: ≤3, 15s combined; 2.5: ≤5, 30s combined; wan-3.0(-prime): ≤5, 15s combined, and input + output ≤ 30s; upload local files with upload_media). h3 and 2.5 bill INPUT seconds on top of the output (h3 160/s; 2.5 80/160/375 per s at 480p/720p/1080p); wan-3.0-video(-prime) input is FREE. Can't be combined with image/end_image."},"reference_audios":{"type":"array","items":{"type":"string"},"description":"minimax-h3 / seedance-2.5 / wan-3.0-video(-prime) only: reference AUDIO clip URLs (WAV/MP3; h3 ≤3/15s combined, 2.5 ≤5/30s combined, wan-3.0(-prime) ≤5/15s combined; free; upload local files with upload_media). Can't be combined with image/end_image."},"aspect_ratio":{"type":"string","description":"Aspect ratio (seedance-2.5: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 — default 16:9). On minimax-h3 it applies to TEXT-TO-VIDEO only. On seedance-2.5 it applies to t2v AND jobs with reference images/audio; a start/end frame or a reference VIDEO forces adaptive (output follows the input's frame). On wan-3.0-video (and -prime) it is honored in EVERY mode (even with a first frame or reference media) and also accepts 'adaptive' (its default — the model picks a suitable ratio from the inputs)."},"resolution":{"type":"string","description":"Output resolution — PRICING VARIES A LOT (seedance-2.5: 480p=150, 720p=330, 1080p=750 credits per SECOND, default 720p; seedance-2.0: 1080p=550/4k=1250). Prefer 480p unless asked."},"duration_seconds":{"type":"integer","description":"Video length in seconds (seedance-2.5: 4–30, default 5; seedance-2.0: 4–15). Cost scales linearly."},"negative_prompt":{"type":"string","description":"What to avoid in the generated video"},"generate_audio":{"type":"boolean","description":"Whether the model should generate audio with the video (no price impact on seedance-2.5/2.0)."}},"required":["prompt"],"additionalProperties":false}},{"name":"get_credit_balance","description":"Use this when the user asks about their remaining credits, subscription plan, or usage. Returns monthly credit balance, extra credits, total available, and plan name.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"get_generation_history","description":"Get the user's recent generations made through this connector or the developer API — images by default, or pass type \"video\", \"music\", or \"sound_effect\". Outputs are kept for about 24 hours (they are never saved to the user's asset storage unless save_to_assets is called), so rows older than that show as expired with no link. Returns prompts, models, status, and result links: image URLs (reusable as input_images on generate_image to edit/restyle one — e.g. \"make the third one wintery\"), video watch links, or music / sound-effect listen links (also reusable as create_social_post media). Every row's job_id works with check_generation_status (music and sound effects also need their type) and with save_to_assets. Generations the user made on the BudgetPixel website are in their gallery, not here.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"type":{"type":"string","enum":["image","video","music","sound_effect"],"description":"Which history to fetch: image (default), video, music, or sound_effect."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Number of recent generations to return (1-50, default 10)"},"offset":{"type":"integer","minimum":0,"description":"Offset for pagination (default 0)"}},"additionalProperties":false}},{"name":"list_models","description":"List the AI image, video, music, and sound-effect models available on BudgetPixel with base credit prices and capabilities. Featured models come first with a one-line role hint (when to pick each). Video models are priced per SECOND by resolution; music models are flat per track; sound effects are per second with a 3-second minimum. Prices are base rates — the user's plan discounts and free-model perks apply automatically when generating.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"save_to_assets","description":"Keep a generation permanently. Outputs made through this connector expire about 24 hours after generation and are NOT stored in the user's BudgetPixel assets by default. Call this when the user wants to keep, reuse later, or find a result in their gallery / workshops — it copies the output into their assets (this counts against their storage like a website generation). Pass the job_id (and type for video / music / sound_effect). Safe to call twice: an already-saved job just reports already_saved.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"string","description":"The generation to keep — the job_id from generate_image / generate_music / generate_sound_effect / check_generation_status / get_generation_history (numeric), or the video job uuid from generate_video."},"type":{"type":"string","enum":["image","video","music","sound_effect"],"description":"What kind of generation job_id is: image (default), video, music, or sound_effect."},"folder_id":{"type":"integer","description":"Optional asset folder id to save into (defaults to Uncategorized)."}},"required":["job_id"],"additionalProperties":false}},{"name":"upload_media","description":"Upload a local image, video, or audio file to BudgetPixel and get back a short-lived URL (valid ~24h) to use as a generation input: pass it as an input_images value on generate_image, or as image / end_image / reference_images / video / audio on generate_video. Use this when the user has a LOCAL file: read the file and pass its base64 as 'file'. Not charged; max 50MB. Video/audio inputs REQUIRE this (generate_video takes them by URL only). If you already have a public URL, pass it straight to the generate tool instead.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"file":{"type":"string","description":"The file to upload, as raw base64 or a data URI (data:image/png;base64,...). Read the local file and pass its base64 here. Max 50MB. Images: PNG/JPEG/WebP/GIF · Video: MP4/WebM · Audio: MP3/WAV/OGG."}},"required":["file"],"additionalProperties":false}},{"name":"upscale_image","description":"Use this to upscale an image to a higher resolution. Default model p-image-upscale (Pruna AI) returns results in seconds and is priced by the target resolution: 4 MP = 10, 8 MP = 15, 16 MP = 30, 32 MP = 60 credits. Alternative clarity-upscaler does creative detail enhancement (steer with prompt/creativity) at a flat 30 credits and takes ~60 seconds. Pass the image as a URL (a generated image's URL, or upload_media for local files), a data URI, or base64. Charged on success only. The tool waits for the result and returns the upscaled image's URL — share it with the user.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"image":{"type":"string","description":"The image to upscale: an http(s) URL (a generated image's URL, or one from upload_media for local files), a data URI, or raw base64. Max ~20MB."},"model":{"type":"string","description":"Upscale model: p-image-upscale (default — Pruna AI, results in seconds, priced by target resolution 4/8/16/32 MP = 10/15/30/60 credits) or clarity-upscaler (creative detail enhancement, flat 30 credits, ~60s)."},"target":{"type":"integer","enum":[4,8,16,32],"description":"p-image-upscale only: target output resolution in megapixels (sets the price: 4=10, 8=15, 16=30, 32=60 credits; default 4)."},"enhance_details":{"type":"boolean","description":"p-image-upscale only: enhance textures and fine detail (may increase contrast)."},"enhance_realism":{"type":"boolean","description":"p-image-upscale only: improve realism — recommended for AI-generated images."},"prompt":{"type":"string","description":"clarity-upscaler only: optional guiding prompt describing the image content."},"creativity":{"type":"number","description":"clarity-upscaler only: how much new detail the model may invent (0.3-0.9, default 0.35)."}},"required":["image"]}},{"name":"upscale_video","description":"Use this to upscale a video to 1080p or 4K (30 or 60 fps) with Topaz Labs professional-grade AI. Priced per second of the INPUT video: 1080p = 15 (30fps) / 30 (60fps) credits/s, 4K = 60 / 120 credits/s — so a 10s clip to 1080p30 costs 150 credits; confirm cost with the user for 4K. Input up to 20 seconds (pass a URL; upload_media for local files). Charged on success only. Jobs take a few MINUTES: the tool returns a job_id — call upscale_video again with just job_id every 30-60 seconds until it returns the finished video URL, then share it with the user.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"video":{"type":"string","description":"The video to upscale: an http(s) URL (a generated video's URL, or one from upload_media for local files). Up to 20 seconds, ≤100MB. Required unless job_id is set."},"target_resolution":{"type":"string","enum":["1080p","4k"],"description":"Target output resolution (default 1080p). 4K costs 4x: 1080p = 15/30 credits per input second (30/60fps), 4K = 60/120."},"target_fps":{"type":"integer","enum":[30,60],"description":"Target frame rate (default 30). 60 fps doubles the per-second rate."},"job_id":{"type":"integer","description":"A previously returned upscale job id — pass it alone to check progress and fetch the finished video URL."}}}}],"scan":{"score":79,"grade":"B","scanned_at":"2026-09-21T05:09:33.516Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-21T05:09:33.524Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 194ms"]},"poisoning":{"score":15,"max":15,"notes":["13 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 6 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 23 days ago"]},"identity":{"score":6,"max":10,"notes":["namespace and repository owner differ","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://mcp.budgetpixel.com/mcp","reachable":true,"authRequired":false,"latencyMs":194,"serverInfo":{"name":"budgetpixel","version":"0.1.0"}}],"packages":[],"repo":{"found":true,"owner":"budgetpixel-ai","repo":"budgetpixel-mcp","archived":false,"pushedAt":"2026-08-29T04:37:55Z","stars":3,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/321675005?v=4","ownerCreatedAt":"2026-08-27T06:32:45Z","license":"MIT"},"icon":{"url":"https://budgetpixel.com/favicon.ico","source":"site","width":256,"height":256},"presence":{"stars":3,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-29T04:37:55.000Z","score":29}}}},"grade_history":[],"reviews":[]}