MCP App Store
by KeenEthics

Overview

Create images, video, voiceover and edits with guided presets and your own media. Browse a visual preset gallery, filter by image or video, and open a preset to see examples, estimated cost and the questions it needs answered. Custom widgets keep the workflow inside ChatGPT: fill in text fields, choose options, and select reference images from your NOLGIA library. Search and filter your saved assets in a visual grid, then reuse a logo, product photo or clip in your next creation. Remake a clip you already have with Miroge. Keep its movement and give it a new subject, swap one person or product for another, or move the whole scene into a new world, then compare the remake with your original. Turn one steady take into every camera angle with Multicam. See which angles your clip can have before anything is made, render only the ones you pick, in sync over the original sound, and get a highlight edit that cuts between them. Choose a preset for a YouTube thumbnail, product demo, logo reveal, animation and more, or describe a task directly. Generate supported media, check video job progress, retrieve finished files, and organize assets with projects and tags. Cut short vertical clips from a longer video, make a 3D model from product photos, or edit one image step by step and go back to any earlier version. Some multi-shot productions return a brief for NOLGIA Agent and, where supported, a single preview scene rather than a completed production. A NOLGIA account is required. Browsing presets and your library is free; generation uses NOLGIA credits.

Tools

nolgia_add_chat_files

ChatGPT
Save files the person attached in this chat to their NOLGIA library, so Encore and the other NOLGIA tools can use them by id: photos (JPEG, PNG, WebP, up to 50 MB), clips (MP4, MOV, WebM, up to 300 MB) and songs (MP3, WAV, M4A, OGG, up to 200 MB). Up to 9 at a time. Use it when the person attached the files a form needs; their own files are only read, each is saved as a new asset. Free. Returns each saved file's asset_id, and for any that could not be saved, why (then offer the upload at nolgia.ai).

nolgia_add_project_assets

ChatGPT
File existing assets into a project, up to 100 per call. Use this for work generated before the project existed. The assets must belong to the caller, and ones already in the project are skipped, so repeating the call is safe. Returns {added: true}.

nolgia_cancel_job

ChatGPT
Cancel a queued or running generation job so it stops at the model provider where the provider allows it and is never added to the library. Use this only when the user asks to stop or cancel a generation. A job that had not reached the provider yet is refunded in full. For a started render the result says what the provider did: cancellation.provider_cancel is cancelled (stopped before it started, refunded), stopped_partway (the rendered share charged, the rest refunded), or requested/refused/unsupported/failed, in which case cancellation.settlement stays pending until the provider's final answer: refunded if it stops or fails without billing, charged if it finishes. Tell the user cancellation.message as written; never promise a refund the result does not show. A finished job cannot be canceled (the tool reports it). Canceling twice returns the same result. Returns {job_id, status, cancellation}.

nolgia_create_canvas

ChatGPT
Create a canvas in a project. Omit graph for an empty canvas. Returns the created canvas. A canvas is a node graph production plan for one project, built by the web editor and the NOLGIA Agent. Building a canvas does NOT run anything or spend credits. The customer runs it from the canvas in the web app, where each run shows its credit quote first and calls the ordinary generate endpoints. Use the generate tools directly when the person just wants one result now. Graph {schema_version:1,nodes:[],edges:[],viewport?:{x,y,zoom}}. Maximum 150 nodes and 300 edges, acyclic. Nodes are {id,type,position:{x,y},data:{...}}; ids use 1 to 64 letters, digits, underscores or hyphens. Positions are canvas pixels; lay nodes left to right in run order about 320 px apart. All nodes accept data.label (80 characters). Data by type: prompt takes text (4000 characters); character takes optional character_id UUID; asset takes optional asset_id UUID and required media_type image|video|audio; image_generate, video_generate, audio_generate take optional model, inline prompt (4000 characters), params; output takes only label. Generate model must be a catalog id from nolgia_list_models for that modality. Params holds scalar request fields such as aspect_ratio, duration_seconds, quality, resolution, generate_audio (at most 24 keys, string/finite number/bool only); never put model, prompt or project_id in params. Do not set run, the editor writes it. Ports: prompt has no inputs, output text:text; character has no inputs, output image:image; asset has no inputs, its ONE output port is named by media_type and carries that type. image_generate inputs prompt:text max 1, references:image max 8; output image:image. video_generate inputs prompt:text max 1, start_frame:image max 1, end_frame:image max 1, references:image max 9, video_references:video max 10, audio_references:audio max 10; output video:video. audio_generate input prompt:text max 1; output audio:audio. output input media:image|video|audio max 50, no outputs. Edges are {id,source,source_handle,target,target_handle,type}; type equals the source port's type and must be accepted by the target port. No duplicate edges or self loops.

nolgia_create_character

ChatGPT
Save a reusable character so later generations depict the same subject. Use this when the user wants a recurring person, mascot or creature rather than a one-off picture. The reference images must already exist as image assets, so generate or list them first and pass up to 8 of their ids in display order. Returns the created character; readiness is ready when the main reference shows one face front-on. The face identity check (identity_score on renders) runs only once the user has confirmed consent for the character's photos in the NOLGIA app or CLI; you cannot give that consent, so when face_check.needs_consent is true tell the user to confirm it on the Characters page. Without it the photos are still used as references.

nolgia_create_clips

ChatGPT
Cut chosen video ranges into new clips, with a centered 9:16 crop or the original aspect ratio. Renders in the background without spending credits. Each clip returns a render id; its finished video asset appears in the library. Use nolgia_list_assets to find finished clips.

nolgia_create_edit_session

ChatGPT
Start a chained edit session on one image asset in the user's library, so later edits build on each other instead of starting over. Use this when the user wants to keep editing one picture step by step. Returns the session with the source as its head; then call nolgia_edit_session_step for each change. Costs no credits.

nolgia_create_project

ChatGPT
Create a project to group related assets, typically one per campaign, client or scene. Use this before a batch of generations, so each one can be filed with project_id as it is made instead of being sorted out afterwards. Returns the created project.

nolgia_create_style

ChatGPT
Save a look the user wants to reuse: a short name, a prompt fragment describing the style (lighting, palette, medium, mood, never the subject), up to four reference image asset ids in display order, and an optional model_hint naming the image model it renders best on. Use this when the user says they want to keep or reuse a look; the assets must already exist (generate or upload them first). Returns the saved style. Costs no credits.

nolgia_delete_asset

ChatGPT
Move one asset to the trash. Use this only when the user asks to delete a specific piece of work, never to tidy up on your own. Trashed assets leave every listing and can be restored from the web Library's Trash view for 30 days, after which they are purged permanently. Returns {deleted: true}.

nolgia_delete_character

ChatGPT
Delete a saved character. Use this only on an explicit request. The character's reference image assets are kept and are not deleted with it. Returns {deleted: true}.

nolgia_delete_project

ChatGPT
Delete a project. Use this only on an explicit request. The grouping goes; the member assets are never deleted with it. Returns {deleted: true}.

nolgia_delete_style

ChatGPT
Delete a saved style. Use this only on an explicit request. Its reference image assets are kept. Costs no credits and returns deleted: true.

nolgia_edit_session_step

ChatGPT
Prefer a scoped tweak over a regenerate when the customer's complaint is local. List nolgia_list_tweak_scopes, then pass an available scope and detail without prompt: the server composes the prompt, applies the measured route and defaults to the scope's first allowed model. Inpaint scopes require mask_asset_id; edit scopes use no mask. Otherwise, apply one edit to the session's current head image: the head rides as the single reference of an image edit on model (default: the style's model hint, else the previous step's model, else gpt-image-2) with your prompt, and the result becomes the new head. Spends credits exactly like nolgia_image_to_image. Optional style_id applies a saved style only to unscoped generation and cannot be combined with scope: its prompt fragment and reference images would break the scoped prompt and picked-render-only image input guarantee. Waits for the render and returns the updated session (steps, head, chain_credits); if the render is still running after the wait, the returned step reads queued or running, so read the session again with nolgia_get_edit_session. Refuses with a conflict while the previous step is still generating or after it failed: revert to an earlier step first.

nolgia_encore_cancel

ChatGPT
Stop a running Encore run. Use it only when the person asks to stop or cancel it, and confirm first: a stopped run cannot be resumed, and whatever it would have delivered is lost. A step that had not started is never charged; a step the model had already started finishes and stays on the bill, and a render already running finishes and its files are dropped. Stopping a run that already ended returns it as it was.

nolgia_encore_catalog

ChatGPT
Encore makes a finished, styled edit from the person's own files and words, in one of the Encore styles (a product drop, a travel film, a music video, a talking clip with captions, an edit remade with them in it, and more), on NOLGIA's servers: it keeps going after the chat moves on and lands in their library and in Studio. This lists the styles open to the person, each with its poster, a preview, its modes and what each mode needs (photos, clips, a song, a character, words). It takes no arguments. Free and read-only. Where the host shows this server's cards, the styles are on a card the person picks from, so do not read them back. For one style's whole form, call nolgia_encore_style with its slug.

nolgia_encore_download

ChatGPT
Get one ZIP of a finished Encore run: the edit, its compare file, its poster and any 9:16 copy. Returns a short-lived download link with the file list and size. Free, and it changes nothing in the run or the library: the ZIP is packed once and handed out again. Give the link to the person as it is; changing its query string breaks it.

nolgia_encore_quote

ChatGPT
Encore makes a finished, styled edit from the person's own files and words, in one of the Encore styles (a product drop, a travel film, a music video, a talking clip with captions, an edit remade with them in it, and more), on NOLGIA's servers: it keeps going after the chat moves on and lands in their library and in Studio. This prices a new run of one style from a filled-in form and lists every problem the form still has, field by field, in words to pass on as they are (a clip too short, a word too long, a plan the style needs). Free and read-only: nothing is started or charged, so call it as often as the form changes. ready is true when there are no problems. A mode that cuts the person's own footage generates nothing and costs 0 credits; a generated one says its price, with a reserve held for retakes that is given back when not used. Where the host shows this server's cards, the form, the price and the problems are on the card. Start it with nolgia_encore_start only once the person has agreed to the price and confirmed the consent statement. Scanning the flagship's edit is nolgia_encore_scan_edit, and making shots of a finished run again is nolgia_encore_redo_quote.

nolgia_encore_redo_quote

ChatGPT
A finished Encore run can make some of its shots again where its own check found something to fix: each such residual of the run (nolgia_encore_status) lists the shot ids in its redo list. This prices doing that as a new run: only the named shots are made again, with any logo or text images the person adds, and every other shot of the finished run is kept as it is. It lists every problem in words to pass on as they are. Free and read-only: nothing is started or charged. Start it with nolgia_encore_redo_start only once the person has agreed to the price.

nolgia_encore_redo_start

ChatGPT
This starts a new Encore run that makes the named shots of a finished run again, and spends credits: it is priced again first and starts only at exactly agreed_credits, the price nolgia_encore_redo_quote showed and the person accepted. Nothing starts when the request has a problem, when the balance does not cover it and its retake reserve, or when the price moved. Call it with the same run_id, items and vibe_marks as the quote, consent true only once the person has confirmed the consent statement for any images they add, and agreed_credits. The finished run and the person's files are kept as they are; the new run makes new files. Returns the new run's card; nolgia_encore_status checks its progress.

nolgia_encore_scan_edit

ChatGPT
Encore's flagship (preset encore, "Paste the edit") remakes an edit the person made or holds the rights to, with them in it, in two steps. This is the first: on NOLGIA's servers it reads the edit (its cuts, what each shot shows and the words it sets on screen) and returns a scan run. It makes no edit and adds nothing to the library. Free. The edit is a clip of 4 to 60 seconds with its audio in the person's library: pick it with nolgia_list_assets, save one attached in this chat with nolgia_add_chat_files, or bring it from a direct link with nolgia_encore_link_clip. consent must be true, and only once the person has confirmed the consent statement. Nothing starts when the clip does not fit; the reason comes back in words to pass on. Returns the scan's card; nolgia_encore_status shows its progress and, once finished, the edit's word slots. The remake is then priced with nolgia_encore_quote: preset encore, mode remix or exact, inputs.scan_id set to this run_id, and the person's own words keyed by the scan's word ids.

nolgia_encore_start

ChatGPT
Encore makes a finished, styled edit from the person's own files and words, in one of the Encore styles (a product drop, a travel film, a music video, a talking clip with captions, an edit remade with them in it, and more), on NOLGIA's servers: it keeps going after the chat moves on and lands in their library and in Studio. This starts a new run of one style and spends credits (a footage mode costs 0): the form is priced again first and the run starts only at exactly agreed_credits, the price nolgia_encore_quote showed and the person accepted. Nothing starts when the form still has a problem, when the balance does not cover the run and its retake reserve, or when the price moved. Call it with the same form as the quote, consent true only once the person confirmed the consent statement, and agreed_credits. A run usually takes a few minutes to a quarter of an hour; it makes new files and never changes the person's own. Returns the run's card; nolgia_encore_status checks its progress.

nolgia_encore_status

ChatGPT
Read an Encore run: its status (running, finished, failed or canceled), each step with its state, the first look while it renders, the finished edit with its compare file and any 9:16 copy, what the checks found, and the credits agreed and spent. A finished flagship scan also lists the edit's word slots a remake fills, and a residual with a redo list names shots nolgia_encore_redo_quote can make again. Free and read-only. While status is running, check again every half minute or so rather than in a tight loop. File links are signed and expire; read the run again for fresh ones.

nolgia_encore_style

ChatGPT
Encore makes a finished, styled edit from the person's own files and words, in one of the Encore styles (a product drop, a travel film, a music video, a talking clip with captions, an edit remade with them in it, and more), on NOLGIA's servers: it keeps going after the chat moves on and lands in their library and in Studio. This reads one style's whole form: its file slots with their rules, its words with their limits, its options, and the consent statement every run confirms. Nothing is priced or started. Free and read-only. Where the host shows this server's cards, the form is on a card the person fills in, so do not read it back. Files must be in the person's NOLGIA library: pick them with nolgia_list_assets, save files attached in this chat with nolgia_add_chat_files, or ask them to upload at nolgia.ai. Then price the form with nolgia_encore_quote; for the flagship's scan mode, scan the edit with nolgia_encore_scan_edit instead.

nolgia_estimate_edit_session

ChatGPT
Estimate the cost of the next edit step (next_step_credits, priced by the API for the given or default model, quality and render_quality) and the credits the chain has spent so far (chain_credits). Read-only and free; nothing is generated.

nolgia_generate_3d

ChatGPT
Turn one to four photos of an OBJECT into a textured 3D model (a GLB file) saved to the account's library. Use this for a product, prop, toy or figure the user wants as a 3D asset, to spin in a viewer or to import into Blender; it is not for people or scenes. Pass image_asset_ids (the user's image assets in front, back, left, right order; trellis takes exactly one) or one https image_url, never both. model hunyuan3d-v3 is the quality default (about 21 credits, more with pbr or extra views); trellis is the 2-credit draft. texture defaults to true; pbr adds physically based materials on hunyuan3d-v3 only. A clean front photo of the object on a plain background works best. Spends credits and runs asynchronously (about one to three minutes): returns the QUEUED job, so poll nolgia_list_jobs until it reads succeeded, failed or canceled (canceled: its owner stopped it, nothing is delivered), then find the 3d asset with nolgia_list_assets (modality 3d); its signed_url is the .glb and thumbnail_url a preview image.

nolgia_generate_set

ChatGPT
One run creates 2 to 8 labelled Outputs sharing references and one visual system. Use kind pack for carousel slides or ad variants, or variants with axis for an emotion or concept ladder. Each member is its own image job with its own credit hold and refund. Poll with nolgia_get_set until Ready or Failed. For a catalog preset whose target kind is set, read its members from nolgia_get_preset, fill each labelled slot in every member prompt yourself, then call this tool.

nolgia_get_account

ChatGPT
Get the signed-in account's id and email, and its credit balance. Use this to confirm which NOLGIA account this credential belongs to before acting on the user's behalf, and to answer "how many credits do I have" or estimate whether a generation is affordable: credits.available is what this credential can spend and credits.channel names its pool rule (app: subscription credits first, then top-up credits, which is how the app, the NOLGIA Agent, organization keys and connected assistants such as ChatGPT or Claude spend; api: top-up credits only, a personal access token the user created). credits.available_for_app and credits.available_for_api are the two channel figures. credits.total is the billing-page balance. When credits.scope is organization, these are shared organization balances, further limited by member_budget minus member_spent_this_month when a budget is present (zero means no remaining budget). A balance is not a guarantee that generation will be authorized. credits is absent, rather than zero, when the balance could not be read. Read-only and free.

nolgia_get_asset

ChatGPT
Open one saved asset by id in its media card with inline video/audio playback or an image preview and a download action. Use this to show a completed generation or an existing library item; find the id with nolgia_list_assets first if needed. Returns metadata and a fresh signed media URL. Omit disposition for playback; use disposition=attachment only for a file download. In widget-capable hosts, prefer the card's playback and download controls. Do not alter or add query parameters to signed URLs: that invalidates the signature. Read-only.

nolgia_get_canvas

ChatGPT
Get the full canvas including graph and version. Read before editing; pass the version you last read to nolgia_update_canvas. A canvas is a node graph production plan for one project, built by the web editor and the NOLGIA Agent. Building a canvas does NOT run anything or spend credits. The customer runs it from the canvas in the web app, where each run shows its credit quote first and calls the ordinary generate endpoints. Use the generate tools directly when the person just wants one result now.

nolgia_get_character

ChatGPT
Fetch one character with freshly signed URLs for its reference images. Use this right before generating: pass those URLs as image_url / image_urls to nolgia_image_to_image, or as the start frame for nolgia_image_to_video, to keep the subject consistent. Returns the character, its ordered reference assets and identity verdicts; readiness is ready when the main reference shows one face front-on. Read-only. The face identity check (identity_score on renders) runs only once the user has confirmed consent for the character's photos in the NOLGIA app or CLI; you cannot give that consent, so when face_check.needs_consent is true tell the user to confirm it on the Characters page. Without it the photos are still used as references.

nolgia_get_edit_session

ChatGPT
Read an edit session: its source image, every step with its prompt, status and output asset, which step is the head, and chain_credits, the credits spent on the chain so far. Read-only and free.

nolgia_get_miroge

ChatGPT
Read a Miroge render by job_id: its status (queued, running, succeeded, failed or canceled), the finished video with a fresh link once it succeeded, what it was charged, and for a failure the reason and what to do about it. Pass the source_asset_id and mode given to nolgia_miroge so the card shows the clip beside its remake. Read-only; costs nothing.

nolgia_get_preset

ChatGPT
Fetch one preset in full: what it makes and who it is for, the long description and use cases, worked EXAMPLES with playable image and video URLs you can show the user, its directions (children) or the family it belongs to, and the guided questions it asks, with the credit cost of one run. A SLUG IS ALL THIS NEEDS: when you already have the exact slug from a prior catalog result, a card the person tapped, or a slug they supplied, call this DIRECTLY without calling nolgia_list_presets again. If you only know the display name, resolve its slug from a prior catalog result or call nolgia_list_presets if none is available. Never guess a slug from a display name. Use the catalog also when the person has not chosen a preset. Returns the preset, its examples and its intake steps with each step's allowed answers. Read-only and free. WHEN YOUR HOST DISPLAYS THIS SERVER'S CARDS (ChatGPT does; a plain text client does not), the person can already see the result, and for a guided preset the card ASKS THE QUESTIONS ITSELF: it renders the examples, the directions and a form with a field, chips or a picker over their own library for every step, and a button that sends the answers. In that case, do not ask those same questions in prose. Point at the card, say what it needs in a sentence, and let them fill it in. Ask in the conversation only when the card says to, which is when a step needs something it cannot draw. In a text-only client, explain the preset in text and collect the required intake answers in conversation, using each step's allowed answers, before calling nolgia_run_preset.

nolgia_get_project

ChatGPT
Fetch one project by id, including its current asset count. Use this to confirm a project exists before passing its id as project_id on a generation. Read-only.

nolgia_get_render

ChatGPT
Read a render and its status. Poll until succeeded, then asset_id names the output MP4, or failed, when error explains the reason. Read-only and free.

nolgia_get_set

ChatGPT
Read a set and its ordered Outputs, image jobs, and available assets. Poll this tool while the set is Generating.

nolgia_get_transcript

ChatGPT
Read a saved asset transcript as JSON, SRT or WebVTT. Free and read-only. Subtitle formats return an object with format and content fields.

nolgia_get_usage

ChatGPT
Get this account's generation counts, split into images, videos and audio. Use this when the user asks how much they have made. It reports counts, not a credit balance or an invoice. Read-only.

nolgia_image_to_image

ChatGPT
Generate an image from a text prompt PLUS one or more reference images: restyle a photo, edit part of it with a mask, or keep a subject consistent. Use this whenever the user supplies a picture to work from; for a saved NOLGIA character, fetch its reference URLs with nolgia_get_character and pass them here. Reference inputs are model-gated: gpt-image models and seedream-v5-pro take image_url plus image_urls, the other reference-capable models take a single image_url (see image.reference_images_max on nolgia_list_models). Spends credits. Returns the finished image asset with a signed URL and credits_charged (what this generation cost, from the account's ledger; absent when it could not be read).

nolgia_image_to_video

ChatGPT
Submit a video generation job that starts from a supplied image: image_url is the first frame, and end_image_url / end_image_asset_id pin the last one on models publishing references.end_frame. Use this to animate a photo or an image you just generated. Parameters are gated per model, so check its references block with nolgia_list_models; unsupported ones are rejected with a 400. Spends credits and runs asynchronously: returns the QUEUED job with credits_charged (the credits taken at submit, from the account's ledger; a failed or canceled render is refunded), so poll nolgia_list_jobs until it reads succeeded, failed or canceled (canceled: its owner stopped it, and status_message says what was refunded).

nolgia_list_assets

ChatGPT
List the images, videos and audio this account has generated or uploaded, newest first. Use this to find work the user made earlier, narrowing by search, modality, tag or project_id rather than regenerating something they already have. search matches the name, the prompt or the model, tag is exact, and both filter the WHOLE library rather than the page in hand. Returns a page of assets with freshly signed URLs and a next_cursor to continue. Read-only. THIS TOOL ALONE ANSWERS a question about the person's library. Do not follow it with nolgia_list_projects or nolgia_list_characters to check whether there is more. On a host that draws cards, call it once and STOP. In a text-only client, follow next_cursor with subsequent calls to this tool when more matching assets are needed to answer the request; stop when next_cursor is absent or the request is satisfied. A library question is about their FILES; those other tools answer different questions, how work is grouped and which faces are saved, that nobody asked. WHEN YOUR HOST DISPLAYS THIS SERVER'S CARDS (ChatGPT does; a plain text client does not), the result renders as a GRID of the person's own media: the thumbnail, the name they gave it and its tags, filterable by images, video and audio, and tapping one asks to use that asset. They recognise their own work by looking at it, so do not read the list back as names and ids. Say what is there in a sentence and let them point. In a text-only client, where nothing is drawn, describe the assets in text, because an id alone is not something a person can act on.

nolgia_list_canvases

ChatGPT
List canvas summaries, including version and node_count, optionally filtered by project_id. A canvas is a node graph production plan for one project, built by the web editor and the NOLGIA Agent. Building a canvas does NOT run anything or spend credits. The customer runs it from the canvas in the web app, where each run shows its credit quote first and calls the ordinary generate endpoints. Use the generate tools directly when the person just wants one result now.

nolgia_list_characters

ChatGPT
List the account's saved characters: reusable named subjects (a person, a mascot, a creature) carrying up to 8 reference images each. Use this first whenever the user names a recurring subject, so the next generation matches the last one instead of inventing a new face. Returns each character with its reference assets. Read-only.

nolgia_list_color_presets

ChatGPT
List the built-in color-grade presets (LUT looks) a Studio composition can apply. Use this before writing a colorGrade on a composition element or canvas, so the preset slug you set is one that actually exists. For camera log footage (flat and grey, e.g. Sony S-Log3) also set the grade's log field to the clip's encoding (slog3, logc3, vlog or bmdfilm5): the clip is converted to Rec.709 first, then the adjustments and the preset apply. Returns the catalog version and each preset's slug, name and description. Read-only.

nolgia_list_jobs

ChatGPT
List asynchronous generation jobs newest first, optionally filtered by status or modality. Use this to poll a video job submitted by nolgia_text_to_video, nolgia_image_to_video or nolgia_run_preset until it reads succeeded, failed or canceled, then fetch a succeeded job's result with nolgia_list_assets. Canceled means its owner stopped it: nothing is delivered, and status_message says what was refunded. Returns a page of jobs with status and a next_cursor. Read-only.

nolgia_list_models

ChatGPT
List every model this account can generate with. Use this BEFORE choosing a model or passing any reference, quality, duration or aspect-ratio parameter: the catalog is the source of truth for both capabilities and pricing, and the generate tools reject anything outside the selected model's capabilities with a 400. Returns each model's catalog id (what a generate tool sends), modality, plan floor (min_tier), credit cost and its billing unit, per-quality-tier costs, aspect ratios, durations, and a references block naming the reference inputs it accepts (start_frame, end_frame, video_refs_max, element_refs_max, audio_refs_max, bitrate_modes). Read-only and free.

nolgia_list_presets

ChatGPT
List the NOLGIA preset catalog: outcome-named recipes ("Logo design", "Product photo", "Explainer video") that already know the prompt, the model and the questions to ask. Use this to offer the user a proven starting point instead of assembling a prompt from scratch, then read one with nolgia_get_preset and run it with nolgia_run_preset. Returns each preset's slug, name, description, what it is best for, output type, thumbnail, rough time and credit estimate, whether it asks guided questions, and its family shape: a parent lists its directions, a direction names its parent. Read-only and free. CALL THIS ONCE. It takes no arguments and returns the ENTIRE catalog in one response: there is no pagination, no filter and no second page, so calling it again returns byte-identical data and, on hosts that display it, renders a second, duplicate gallery to the person. WHEN YOUR HOST DISPLAYS THIS SERVER'S CARDS (ChatGPT does, and any MCP Apps host; a plain text client does not), the person can already see a scrollable gallery of cards with artwork, each preset's own description, its credit range and its direction count, and they can filter it and open any card themselves. In that case, do NOT transcribe the catalog into your reply: listing the names in prose duplicates what is on their screen and buries it. Say what the catalog covers in a sentence, name at most three that fit what they asked for, and ask which one they want. In a text-only client, where nothing is drawn, use the returned catalog to answer in text, including the full list when requested; the three-suggestion limit does not apply. Reuse the same result rather than calling again.

nolgia_list_projects

ChatGPT
List the account's projects: named groups of assets, where one asset may sit in several. Use this to see how the user already organizes work by client, campaign or scene before filing anything new. Returns each project with its current asset count. Read-only.

nolgia_list_styles

ChatGPT
List the account's saved styles: reusable looks, each a name, a prompt fragment and up to four reference images, with an optional model hint. Use this before generating when the user mentions their usual look, house style or a style they saved, then pass the style's id as style_id on nolgia_text_to_image, nolgia_image_to_image or nolgia_edit_session_step. Read-only and free.

nolgia_list_tweak_scopes

ChatGPT
List measured, narrow image tweaks with their allowed models and route. Includes known-unavailable scopes and their measured reasons; do not offer unavailable scopes. Use scope and detail on nolgia_edit_session_step when the customer wants one local change. Read-only and free.

nolgia_miroge

ChatGPT
Remake a video from the customer's library with Miroge. Miroge remakes a video the customer already has, in one of three modes: motion (Motion transfer: the clip's moves, timing and camera performed by the customer's photos, characters or product), swap (Swap: replace one person, animal, product or outfit and keep the rest of the shot as filmed; with remove, take one thing out instead) or world (New world: keep the subject and its moves, redraw the place and the light around it). The clip is source_asset_id; the cast is element_asset_ids (photos, @Image1 onwards), character_ids and product_id. To take something out of the clip (a boom mic, a crew member, a coffee cup), send mode swap with remove naming it: everything else comes back exactly as filmed. Miroge writes the instruction for the mode itself, so prompt holds only the customer's own words. The remake is saved as a new video; the customer's clip and photos are never changed. The render is priced first and held to exactly that price. Spends credits and runs asynchronously: returns the queued job with credits_charged (a failed or canceled render is refunded); check it with nolgia_get_miroge and stop it with nolgia_cancel_job. Sending the identical remake again within five minutes returns the render already running instead of charging twice. When the default model cannot edit uploaded footage where the customer is, the next model runs it and the result says so.

nolgia_miroge_options

ChatGPT
List the models that can run a Miroge mode on the customer's clip, each with the exact credits it would charge for this clip, which one is the default, and what it takes (how many photos, which clip lengths, whether the remake keeps the clip's length). Use it when the customer wants to compare prices or models before remaking. Free: nothing is generated or charged. Pass the same photos, characters and product you will remake with so the prices match; a model marked available: false says why in reason. Miroge remakes a video the customer already has, in one of three modes: motion (Motion transfer: the clip's moves, timing and camera performed by the customer's photos, characters or product), swap (Swap: replace one person, animal, product or outfit and keep the rest of the shot as filmed; with remove, take one thing out instead) or world (New world: keep the subject and its moves, redraw the place and the light around it).

nolgia_multicam_cancel

ChatGPT
Stop a running Multicam job. Use it only when the person asks to stop or cancel the job. Angles not sent to the model yet are never charged; a render already running is canceled where the model allows it: refunded in full when it had not started, charged for the share it rendered when it stops partway, charged when it finishes anyway. Angles that finished keep their clips, and the highlight edit is cut from what finished. A stopped job cannot be resumed; start a new one instead. Stopping twice returns the same result.

nolgia_multicam_download

ChatGPT
Get one ZIP of a Multicam job: the original take and every finished angle's clip, named by angle (00-original-take.mp4, 01-wide.mp4 and so on). Returns a short-lived download link with the file list and size. Free, and it changes nothing in the job or the library: the ZIP is packed once and the same file is handed out again until an angle changes. Needs at least one finished angle. Give the link to the person as it is; changing its query string breaks it.

nolgia_multicam_plan

ChatGPT
Multicam turns one locked-off take (a video in the person's library, up to 2 minutes, shot from one fixed camera) into every chosen camera angle, each a full-length clip in sync over the take's own sound, plus a free highlight edit cut between the angles, a Studio timeline with every angle stacked, and a ZIP of every clip. This plans one: it reads the take, lists the angles it can have (grouped by how close, where the camera is and how it moves; on a take with no clear person the angles that need one are hidden and some are marked experimental), the ready-made packs, the highlight edit's cut list and the exact credit price with the person's balance. Free and read-only: nothing is rendered or charged. Pass pack, angles or custom_angles to price a choice; with none, the Auto pack is priced as a suggestion. Where the host shows this server's cards, the plan is a picker the person chooses from, so do not read the angle list back. Start the job with nolgia_multicam_start with the same choice, only once the person agrees to the price.

nolgia_multicam_run

ChatGPT
Read a Multicam job: its status (running, finished or canceled), each angle's state with its clip and poster once ready, the highlight edit, the Studio timeline and the credits agreed. Free and read-only. While status is running, check again every half minute or so rather than in a tight loop. Clip links are signed and expire; read the job again for fresh ones.

nolgia_multicam_start

ChatGPT
Multicam turns one locked-off take (a video in the person's library, up to 2 minutes, shot from one fixed camera) into every chosen camera angle, each a full-length clip in sync over the take's own sound, plus a free highlight edit cut between the angles, a Studio timeline with every angle stacked, and a ZIP of every clip. This starts one and spends credits: the job is priced first (the price nolgia_multicam_plan shows) and started at exactly that price, and when the balance does not cover it nothing starts. Call it only after the person has chosen the angles and accepted the price, with the same take_asset_id, pack, angles, custom_angles, quality, generate_audio and notes as the plan. Up to 16 angles. Each angle renders over the whole take, usually in a few minutes, and the job keeps going after the chat moves on. Returns the job's card; nolgia_multicam_run checks its progress.

nolgia_remove_project_asset

ChatGPT
Take one asset out of a project without deleting the asset itself. Use this to re-file work; removing an asset that is not a member is a no-op. Returns {removed: true}.

nolgia_render_blocks

ChatGPT
Assemble one finished MP4 from ordered clip and narration pairs, one fixed-length block per pair (block_seconds, default 10). Use this to cut a narrated explainer or story together after every narration take and clip exists, instead of hand-placing clips on a timeline. Centers a shorter take, speeds up a longer one with pitch-preserving atempo up to 1.25x, and refuses a longer one with a 400 naming the pair. Trims or holds each clip to its block and mutes clip audio unless keep_video_audio is true. aspect_ratio supports 16:9, 9:16 and 1:1. Up to 60 blocks and 600 seconds. Creates a composition that carries the render, costs no credits, and returns the QUEUED render: poll nolgia_get_render until succeeded (asset_id is the MP4, fetch it with nolgia_get_asset) or failed (error names the reason).

nolgia_revert_edit_session

ChatGPT
Move the session's head back to an earlier step, or to the source image when step_id is omitted. Nothing is deleted: every step and its output stay in the library and the history. The next nolgia_edit_session_step edits from the new head. Costs no credits and returns the updated session.

nolgia_run_preset

ChatGPT
Run a catalog preset end to end: validates one answer per intake step against the preset's schema, then calls the preset's own generation endpoint with the answers bound exactly as the NOLGIA web app binds them (the baked prompt with its labelled slots filled, the chosen option chips, and each asset id on the field its step names). Use this whenever the user picks a preset by name rather than describing raw generation parameters; read the questions first with nolgia_get_preset, and pass dry_run to preview the request without generating (assemble may still charge 1 credit). Presets whose submit kind is agent are productions of several shots on a timeline: this pass never opens an agent session, so it always returns the fenced intake brief to hand to NOLGIA Agent, and where the preset declares one it ALSO renders the single representative scene of that production so the user has something to watch now. Say plainly that the scene is one shot and not the finished piece, which note gives you wording for; pass brief_only to skip rendering it. Spends credits on a generate preset and on an agent preset's scene, at the price quoted for the exact request it sends (estimate, or scene_price for a scene; a footage preset's price follows the clip's length): the run is charged that price or nothing, so quote it to the user before running, or pass dry_run first. Returns the finished asset (image and audio) or the queued job (video), alongside the request that was sent.

nolgia_suggest_clips

ChatGPT
Find strong standalone moments to post as vertical shorts. Transcribe the video with nolgia_transcribe_asset first. Spends about 1 credit. Returns ranked start and end times, titles and hook reasons, ready for nolgia_create_clips.

nolgia_text_to_audio

ChatGPT
Generate speech, music or a sound effect from a text prompt and save it to the account's library. Use this for voiceover, a soundtrack bed or an SFX cue; which one you get is decided by the model you pick, so check nolgia_list_models first. Spends credits. Returns the finished audio asset with a signed URL and credits_charged (what this generation cost, from the account's ledger; absent when it could not be read).

nolgia_text_to_image

ChatGPT
Generate a new image from a text prompt and save it to the account's library. Use this when the user wants a picture made from words alone; use nolgia_image_to_image instead whenever they supply a picture to work from, and nolgia_run_preset when they name a preset. Spends credits. Returns the finished image asset with a signed URL, plus the request id, the seed used and credits_charged (what this generation cost, from the account's ledger; absent when it could not be read).

nolgia_text_to_video

ChatGPT
Submit a video generation job from a text prompt, or from reference videos when video_asset_ids / video_urls are set. Use this when nothing pins the opening frame; use nolgia_image_to_video when the user supplies the first image. Every reference, quality and duration parameter is gated by the model's references block from nolgia_list_models and rejected with a 400 elsewhere. Spends credits and runs asynchronously: returns the QUEUED job with credits_charged (the credits taken at submit, from the account's ledger; a failed or canceled render is refunded), so poll nolgia_list_jobs until it reads succeeded, failed or canceled (canceled: its owner stopped it, and status_message says what was refunded).

nolgia_transcribe_asset

ChatGPT
Transcribe a video or audio asset into text with pause-aligned timestamps. Spends 1 credit per started minute of measured audio when speech is sent to the model, up to 60 minutes. This call can take a minute or two. Returns an existing ready transcript unless force is true.

nolgia_update_asset_tags

ChatGPT
Replace an asset's whole tag set. Use this to label work ('hero', 'draft', 'client-a') so nolgia_list_assets can filter to it later. Pass the tags the asset should END with, not the ones to add: this overwrites, so read the current tags first if you mean to keep them, and pass [] to clear them all. Returns the updated asset.

nolgia_update_canvas

ChatGPT
Update a canvas name or replace its whole graph when given. Optimistic concurrency: pass the version you last read; a stale version is refused, so re-read with nolgia_get_canvas and reapply your edit. Returns the updated canvas. A canvas is a node graph production plan for one project, built by the web editor and the NOLGIA Agent. Building a canvas does NOT run anything or spend credits. The customer runs it from the canvas in the web app, where each run shows its credit quote first and calls the ordinary generate endpoints. Use the generate tools directly when the person just wants one result now. Graph {schema_version:1,nodes:[],edges:[],viewport?:{x,y,zoom}}. Maximum 150 nodes and 300 edges, acyclic. Nodes are {id,type,position:{x,y},data:{...}}; ids use 1 to 64 letters, digits, underscores or hyphens. Positions are canvas pixels; lay nodes left to right in run order about 320 px apart. All nodes accept data.label (80 characters). Data by type: prompt takes text (4000 characters); character takes optional character_id UUID; asset takes optional asset_id UUID and required media_type image|video|audio; image_generate, video_generate, audio_generate take optional model, inline prompt (4000 characters), params; output takes only label. Generate model must be a catalog id from nolgia_list_models for that modality. Params holds scalar request fields such as aspect_ratio, duration_seconds, quality, resolution, generate_audio (at most 24 keys, string/finite number/bool only); never put model, prompt or project_id in params. Do not set run, the editor writes it. Ports: prompt has no inputs, output text:text; character has no inputs, output image:image; asset has no inputs, its ONE output port is named by media_type and carries that type. image_generate inputs prompt:text max 1, references:image max 8; output image:image. video_generate inputs prompt:text max 1, start_frame:image max 1, end_frame:image max 1, references:image max 9, video_references:video max 10, audio_references:audio max 10; output video:video. audio_generate input prompt:text max 1; output audio:audio. output input media:image|video|audio max 50, no outputs. Edges are {id,source,source_handle,target,target_handle,type}; type equals the source port's type and must be accepted by the target port. No duplicate edges or self loops.

nolgia_update_character

ChatGPT
Update a saved character's name, description or reference images (up to 8), primary reference and preferred models. Partial: only the fields you pass change. reference_asset_ids, when passed, REPLACES the whole reference set rather than appending to it, so include the ids you want to keep. Returns the updated character. The face identity check (identity_score on renders) runs only once the user has confirmed consent for the character's photos in the NOLGIA app or CLI; you cannot give that consent, so when face_check.needs_consent is true tell the user to confirm it on the Characters page. Without it the photos are still used as references.

nolgia_update_project

ChatGPT
Rename a project or change its description. Partial: only the fields you pass change. Returns the updated project.

nolgia_upload_asset

ChatGPT
Store an image the user supplied as an asset in their NOLGIA library, so it can be used as a reference by the other tools. Use this when the user attaches or pastes a picture (a logo, a product photo, a screenshot) that does not exist in NOLGIA yet; use nolgia_list_assets instead when the picture is already theirs. PNG, JPEG and WebP up to about 3 MB; larger media goes through the web app or the nolgia CLI. Returns the stored asset, whose id feeds an intake answer or nolgia_run_preset and whose signed_url feeds image_url.

nolgia_validate_mask

ChatGPT
Check a Studio timeline MASK (an Adobe Premiere-style per-clip Opacity mask) and report exactly what the platform would clamp or drop. Use it on every data-mask / overlay mask you author BEFORE pushing it, so a silently dropped field does not surface as a wrong render. A mask is a sparse JSON object: shape ('rectangle' default | 'ellipse' | 'polygon'), x/y (shape CENTER, % of the clip box, -100..200, default 50), width/height (% of the clip box, 0..200, default 100), rotation (degrees clockwise, -180..180), cornerRadius (px, rectangle only, 0..500), points ([[x,y],...] 3..64 vertices, polygon only), feather (edge softness px 0..500), expansion (grow/shrink px -500..500), opacity (0..100, how strongly the OUTSIDE is hidden), inverted (bool: hide the inside instead). Masks attach as data-mask='<json>' on a timed <video>/<img> element or as elements.<key>.mask / additions[].mask in nolgia-edits.json ({} clears an authored mask). Stateless, free and read-only. Returns {mask: canonical sparse mask | null, identity: bool, problems: [{path, message}]}.

nolgia_validate_motion

ChatGPT
Check a Studio timeline MOTION (Adobe Premiere-style per-clip Motion: position, scale, rotation, opacity, anchor, with keyframes) and report exactly what the platform would clamp or drop. Use it on every overlay motion you author BEFORE pushing it. A motion is a sparse JSON object: x/y (where the clip's ANCHOR lands, % of the canvas, -100..200, default 50/50), scale (uniform, 1 = fit-to-frame, 0..10), scaleX/scaleY (per-axis multipliers on top of scale, 0..10, default 1), rotation (degrees clockwise about the anchor, -360..360), opacity (0..100, default 100), anchor {x, y} (the transform origin, % of the CLIP BOX, default 50/50 = center; a constant only). Every property except anchor is a CONSTANT number or a KEYFRAME LIST [{t, v, ease}, ...]: t = seconds from the CLIP START on the timeline (srcOffset does not move it; any finite number, full precision, a frame-snapped keyframe is exactly frame/fps), v = the value in that property's units and range (clamped and rounded like a constant), ease = the curve of the segment STARTING at that keyframe, one of linear | ease-in | ease-out | ease-in-out | hold (the CSS cubic-bezier eases; hold keeps the value and steps at the next keyframe; missing or unknown reads as linear; the last keyframe's ease is carried but unused). Before the first keyframe the first v holds, after the last the last v holds; lists sort by t and a duplicate t keeps the later entry; a one-keyframe list is kept (the stopwatch-on state) and acts as the constant v. Example: {"x": [{"t": 0, "v": 20, "ease": "ease-in-out"}, {"t": 1.5, "v": 80, "ease": "linear"}], "opacity": [{"t": 0, "v": 0, "ease": "ease-out"}, {"t": 0.5, "v": 100, "ease": "linear"}]}. The Studio preview samples per frame and the export samples at the export frame rate with the same curves, so the MP4 matches the editor. Transform order: fit to frame, scale about the anchor, rotate about the anchor, place the anchor at x/y, then opacity; the clip's mask moves with it. Motion lives ONLY in nolgia-edits.json (elements.<key>.motion / additions[].motion, object-level replacement; {} resets to the default placement); there is no data-motion attribute, so never --clear-edits a composition whose motion you have not re-authored. Video and image clips only: text clips are placed by textStyle (x/y/rotation/opacity), a motion on text is ignored with a warning. Stateless, free and read-only. Returns {motion: canonical sparse motion | null (keyframe lists sorted and clamped, every keyframe with an explicit ease), identity: bool, problems: [{path, message}]} where a keyframe problem path reads like scale[2].v.

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

75

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily