{"server":{"name":"ai.infinicia/create","title":"Infinicia","version":"0.1.0","description":"Short videos with sound, songs, pictures, presentations and voices on the person's Infinite People account.","websiteUrl":"https://infinicia.ai","icons":[{"src":"https://api.infinitepeople.ai/v1/mcp/icon/48.png","mimeType":"image/png","sizes":["48x48"]},{"src":"https://api.infinitepeople.ai/v1/mcp/icon/96.png","mimeType":"image/png","sizes":["96x96"]},{"src":"https://api.infinitepeople.ai/v1/mcp/icon/192.png","mimeType":"image/png","sizes":["192x192"]},{"src":"https://api.infinitepeople.ai/v1/mcp/icon/512.png","mimeType":"image/png","sizes":["512x512"]}],"documentationUrl":"https://infinicia.ai/mcp/","apiDocumentationUrl":"https://infinicia.ai/api/index.md","toolsUrl":"https://api.infinitepeople.ai/v1/mcp/tools","remotes":[{"type":"streamable-http","url":"https://api.infinitepeople.ai/v1/mcp/crea","protocolVersions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26","2024-11-05"]}],"authentication":{"type":"oauth2","resourceMetadata":"https://api.infinitepeople.ai/.well-known/oauth-protected-resource/v1/mcp/crea","authorizationServer":"https://api.infinitepeople.ai/.well-known/oauth-authorization-server","scopes":["studio"],"alternative":"a bearer key made in the app (Account > API access)"}},"instructions":"Infinicia makes short videos with sound, songs, pictures, presentations and voices on the person's Infinite People account, and keeps them in projects. Start with get_account (what the plan allows, the week left) and list_projects (what is kept, each item with a handle). Every trade answers the same shape: one creation reads with get_creation (trade + id), the account's creations list with list_creations, and manage_creation deletes, cancels or restores. Creations are polled: call get_creation again right away while keep_polling is true — it holds the connection up to 25 s — and never sleep between calls. Every answer carries 'next': do what it says. A creation answers the fields that decide what to do next; ask for `full` when you need the whole record. With the tasks extension declared, a long creation comes back as a task handle to poll with tasks/get instead. Everything costs on the person's week as in the app; ask before launching anything that spends, before deleting, and before sharing.","tools":[{"name":"get_account","title":"The account","description":"The account behind the key: the plan, the share of the week left and when it starts again, what each trade allows, the terms. Call it first when unsure what is possible.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"set_account","title":"Change a setting","description":"Change one setting of the account: how long the next creations are kept (retention), where the work may run (confidentiality), or the name others see. One setting per call; ask the person first.","inputSchema":{"type":"object","properties":{"retention":{"type":"string","description":"subscription: while subscribed; month: 31 days; ephemeral: 48 h.","enum":["subscription","month","ephemeral"]},"confidentiality":{"type":"string","description":"low, medium or high — where the work may run (get_account says what each allows).","enum":["low","medium","high"]},"name":{"type":"string","description":"The name others see on a shared creation.","maxLength":40}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"list_creations","title":"The creations","description":"The account's creations, newest first, every trade or one; in the bin (trash) or shared with the person (shared) when asked. A trade alone also shows what is being made.","inputSchema":{"type":"object","properties":{"trade":{"type":"string","description":"video, song, image, deck (a presentation), voice, review (the jury), export (a montage's) or characters (3D).","enum":["video","song","image","deck","voice","review","export","characters"]},"trash":{"type":"boolean","description":"What left the account less than 48 hours ago, still restorable."},"shared":{"type":"boolean","description":"What others shared with the person, each with the role and the owner."},"offset":{"type":"integer","description":"The next page (next says it).","minimum":0},"full":{"type":"boolean","description":"Whole records; useful fields by default."}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_creation","title":"A creation","description":"One creation of any trade, held up to 25 s, answered on any change. Call it again right away while keep_polling is true; ready: result.url is the file, with its poster or cover if any. A character's track: its progress per line and stage.","inputSchema":{"type":"object","properties":{"trade":{"type":"string","description":"video, song, image, deck (a presentation), voice, review (the jury), export (a montage's) or characters (3D).","enum":["video","song","image","deck","voice","review","export","characters"]},"id":{"type":"string","description":"The creation's id (a review's is a number)."},"montage_id":{"type":"integer","description":"For an export: the montage it belongs to."},"wait":{"type":"integer","description":"Seconds to hold, 0..25 (25 by default).","minimum":0,"maximum":25},"full":{"type":"boolean","description":"The whole record (the request as it was resolved, the lineage, the timings); the useful fields only by default."}},"required":["trade","id"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The creation's id."},"status":{"type":"string","description":"queued, in_progress, done, failed or cancelled."},"ready":{"type":"boolean","description":"The files are there: read result.url."},"keep_polling":{"type":"boolean","description":"Call get_creation again at once while true; never wait."},"result":{"type":"object","description":"url, and what the trade adds.","additionalProperties":true},"next":{"type":"string","description":"What to do now: do what it says."}},"required":["status"],"additionalProperties":true},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"manage_creation","title":"Delete or restore","description":"Delete a creation (to the bin for 48 hours; a creation still being made is cancelled instead), take one back from the bin, or change how long it is kept. Ask the person first.","inputSchema":{"type":"object","properties":{"action":{"type":"string","description":"delete (the default), restore, or keep_for.","enum":["delete","restore","keep_for"]},"creation_id":{"type":"integer","description":"The registry's id (list_creations): what delete, restore and keep_for act on."},"trade":{"type":"string","description":"video, song, image, deck (a presentation), voice, review (the jury), export (a montage's) or characters (3D).","enum":["video","song","image","deck","voice","review","export","characters"]},"id":{"type":"string","description":"With 'trade', the id of a creation still being made, to cancel it."},"retention":{"type":"string","description":"For keep_for.","enum":["subscription","month","ephemeral"]}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false}},{"name":"share_creation","title":"Share","description":"Share a creation with one person: 'link' makes a one-time link to hand over (role view: see, listen, download; role edit: the trade's editing gestures too), 'who' says who has it, 'revoke' withdraws one. What the person makes from it is theirs and comes back shared. Ask before sharing.","inputSchema":{"type":"object","properties":{"action":{"type":"string","description":"link (the default), who, or revoke.","enum":["link","who","revoke"]},"creation_id":{"type":"integer","description":"The registry's id (list_creations, or 'creation_id' on the creation)."},"role":{"type":"string","description":"For link: view or edit.","enum":["view","edit"]},"share_id":{"type":"integer","description":"For revoke: the share's id (action 'who' lists them)."}},"required":["creation_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"list_projects","title":"The projects","description":"The account's projects with what each keeps for good: pictures, videos, songs and elements (a voice, a music), each with a handle (picture:5, video:12, song:3, element:7:voice) the bench takes.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_project","title":"A project","description":"One project in full: its pictures, videos, songs and elements with their handles, and its montages.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"The project's id (list_projects)."}},"required":["project_id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"manage_project","title":"A project","description":"Make a project (a folder that keeps pictures, videos, songs and montages for good), rename it, or delete it with everything it keeps. Ask the person before deleting.","inputSchema":{"type":"object","properties":{"action":{"type":"string","description":"create (the default), rename or delete.","enum":["create","rename","delete"]},"project_id":{"type":"integer","description":"For rename and delete: the project (list_projects)."},"name":{"type":"string","description":"The project's name.","maxLength":80}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false}},{"name":"keep_in_project","title":"Keep in a project","description":"Keep something in a project for good, or take it out: a picture by its address on our media host (a frame, an edited picture), or a finished creation by its trade and id (video, song, voice, an edited picture, a presentation, a 3D head). Answers the item with its handle (picture:5, video:12, song:3, element:7:voice, image:4, deck:2) the bench takes; 'handle' alone takes it out.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"The project's id (list_projects)."},"url":{"type":"string","description":"A picture's address on media.infinitepeople.ai."},"trade":{"type":"string","description":"The creation's trade: video, song, voice, image, deck or characters.","enum":["video","song","voice","image","deck","characters"]},"job_id":{"type":"string","description":"The finished creation's id."},"handle":{"type":"string","description":"To take out: picture:5, video:12, song:3, element:7, image:4 or deck:2 (list_project_assets names them)."}},"required":["project_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"list_project_assets","title":"What a project keeps","description":"Everything a project keeps, in one vocabulary: the handle, the trade, the title, the files, how long it is kept and whether the project holds it.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"The project's id (list_projects)."}},"required":["project_id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"make_video","title":"Make a video","description":"A short video with sound from a scene and, optionally, pictures: a creation to poll with get_creation (trade 'video'). Counts on the week once launched. The scene is written for the engine by the studio (its own format) before the render. A start picture it should open on is made first with make_picture (the clip's shape), then given as first_frame_url.","inputSchema":{"type":"object","properties":{"scene":{"type":"string","description":"Who, what happens, where, the tone, in plain words and in the person's language. Say little: the engine knows how people and the world move, and every extra word constrains it. With a start picture, what moves and changes, not what the picture shows."},"camera":{"type":"string","description":"One move in a few words (a slow push-in, a tracking shot), or nothing: the framing then comes by itself."},"dialogue":{"type":"array","maxItems":12,"description":"Each line, spoken word for word: who speaks and how they sound (a voice off screen says so), and the words in their language. A line should fill its moment (~12 words for 5 s), else the engine invents speech around it.","items":{"type":"object","properties":{"speaker":{"type":"string","description":"Who, and how they sound."},"line":{"type":"string","description":"The words."}},"required":["speaker","line"]}},"music":{"type":"string","description":"\"none\" when the person wants no music, or the music in a few words; left out, the genre decides."},"first_frame_url":{"type":"string","description":"The picture the clip opens on."},"last_frame_url":{"type":"string","description":"The picture the clip lands on (the same as the first: a loop)."},"reference_urls":{"type":"array","items":{"type":"string"},"maxItems":9,"description":"Up to 9 pictures of who or what appears in a new scene; not with a start or end picture."},"voice_url":{"type":"string","description":"With reference_urls only: a kept voice (voice:<id>) says the clip's lines, in the language the scene asks (fr, en, es, de, it, pt) or the words it dictates."},"duration_s":{"type":"number","description":"5 unless the person asks for longer: 10 and 15 take that much more of their week.","enum":[5,10,15]},"definition":{"type":"string","description":"low (480p) unless the person asks for more: high (768p) takes about four times as long. A liked take is regenerated at 768p by edit_video (upscale): motion kept, details may change.","enum":["low","high"]},"quality":{"type":"string","description":"medium unless the person asks otherwise. high: 2 times as long, for a take they already like. low is the turbo of high definition: 25 to 35 % less of their week, another take that follows the start picture less closely; offer it, never pick it for them (at low definition it renders as medium). A replacement: left out, the plan's (low to Starter, then medium). Say which one you picked.","enum":["low","medium","high"]},"aspect":{"type":"string","description":"16:9, 9:16, 1:1, 4:3, 3:4, 21:9, or auto (the start picture's).","enum":["16:9","9:16","1:1","4:3","3:4","21:9","auto"]},"audio":{"type":"boolean","description":"The soundtrack, on by default."},"declarations":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Only after an answer rights_declaration_needed: the ids of the declarations the person accepted, once you showed them each text word for word and they said yes. Never accept one for them."},"source_video_url":{"type":"string","description":"Replacing characters: the clip whose people become those of reference_urls (photos), as scene says. Unclear who is who: answered recast_unclear with the question to ask."},"source_start_s":{"type":"number","description":"Replacing characters: where the zone starts in the clip (s).","minimum":0},"song_url":{"type":"string","description":"A sung clip: their finished song (song:<id>) or a recording of theirs (send_file's URL), sung by the person of first_frame_url, lips on its voice; no dialogue."},"song_start_s":{"type":"number","description":"A sung clip: where the excerpt starts in the song (s), duration_s long.","minimum":0},"recast_mode":{"type":"string","description":"Replacing characters: high draws faces closer to the photos, for more of the week.","enum":["normal","high"]},"title":{"type":"string","description":"A short title for the library; written from the scene when absent."},"seed":{"type":"integer","description":"Fix it to reproduce a take."}},"required":["scene"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"make_tour","title":"360° turn","description":"A 360° turn round a person's picture, 3 s, a loop: a creation (trade 'video'), counted on the week. One centred person, a plain background and a square picture turn best (edit_picture first).","inputSchema":{"type":"object","properties":{"first_frame_url":{"type":"string","description":"The picture."},"reverse":{"type":"boolean"},"definition":{"type":"string","description":"low (640 px) unless asked: high (1024 px).","enum":["low","high"]}},"required":["first_frame_url"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"take_frame","title":"Take a frame","description":"A still of a video at t seconds, on our media host: keep it in a project (keep_in_project), edit it (the image trade), or start a new video on it (first_frame_url).","inputSchema":{"type":"object","properties":{"job_id":{"type":"string","description":"The video's id."},"t":{"type":"number","description":"Seconds into the video.","minimum":0}},"required":["job_id","t"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"edit_video","title":"Act on a video","description":"Act on a video the account has. retake: the same request rendered again with a new seed — another take, when the one they got is nearly right. retry: render a failed one again as it was asked. upscale: high regenerates it at 768p (motion kept, details may change), or full_hd — 1080p from the finished video itself, frame by frame, the take and its soundtrack kept; that is how a clip becomes fine, not a bigger first render. sound: which soundtrack an upscaled one plays (the source's or the engine's). rate: 1 to 5 and a word, which we read. retake, retry and upscale answer a creation to poll with get_creation, and count on the week.","inputSchema":{"type":"object","properties":{"action":{"type":"string","description":"What to do; the fields below say what each one reads.","enum":["retake","retry","upscale","sound","rate"]},"job_id":{"type":"string","description":"The video's id."},"definition":{"type":"string","description":"For upscale: high (768p, rendered again) or full_hd (1080p, the video enlarged).","enum":["low","high","full_hd"]},"id":{"type":"string","description":"For sound: original (the source's, kept) or new (the engine's).","enum":["original","new"]},"rating":{"type":"integer","description":"For rate: 1 (bad) to 5 (great).","minimum":1,"maximum":5},"comment":{"type":"string","description":"For rate: what was right or wrong, up to 500 characters."},"declarations":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"For retake and retry, only after an answer rights_declaration_needed: the ids the person accepted once shown each text word for word."}},"required":["action","job_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"ask_song_questions","title":"Questions for a song","description":"Five short questions that make the song personal, each with three choices and a free field; the first asks the style, or the named act's reference song. Answers to write_song; the cover's (for=cover) to make_song. A light cloud step, subscribers only.","inputSchema":{"type":"object","properties":{"request":{"type":"string","description":"What the song is about, in the person's words.","maxLength":1500}},"required":["request"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"write_song","title":"Write a song","description":"Our director writes a song from what it is about: a style line, title, lyrics, caption (the sound, set apart by a producer), tempo, key, length. Nothing is queued: review the words, then make_song with them. A cloud step, subscribers only.","inputSchema":{"type":"object","properties":{"request":{"type":"string","description":"What the song is about, in the person's words.","maxLength":1500},"language":{"type":"string","description":"The vocals' language; picked from the request when absent."},"duration_s":{"type":"number","description":"10 to 240 seconds.","minimum":10,"maximum":240},"answers":{"type":"array","description":"What the person answered to ask_song_questions: [{question, answer}]; a skipped question is left out.","items":{"type":"object","properties":{"question":{"type":"string","description":"The question's text."},"answer":{"type":"string","description":"The answer, a choice or free text."}},"required":["question","answer"]},"maxItems":15},"instrumental":{"type":"boolean","description":"No vocals: the piece is drawn with section tags only (instruments, dynamics)."},"level":{"type":"string","description":"Quality of the words: low Rapide, medium Équilibrée (default), high Haute (slower, dearer).","enum":["low","medium","high"]},"music":{"type":"string","description":"An element id: written in the spirit of what the planner heard in it."},"previous":{"type":"object","description":"A rework: the draft to change, with 'notes'."},"notes":{"type":"string","description":"What to change in 'previous'.","maxLength":1000}},"required":["request"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"review_song","title":"The judge reads a draft","description":"The judge reads a draft and fixes what does not sing: one issue per line changed {n, was, now, why}, scores (rhymes, meter, structure, singability, story, 0-10), a summary, and 'revised' — the draft with the fixes, to sing with make_song. A light cloud step, subscribers only.","inputSchema":{"type":"object","properties":{"draft":{"type":"object","description":"A draft as write_song answered it (edited or not)."}},"required":["draft"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"make_song","title":"Sing a song","description":"Sing a song from its words: the draft of write_song as it is, or your own. A creation to poll with get_creation (trade 'song'). With 'source' and 'edit' it reworks a finished song: repaint (from_s, to_s), extend (add_s), restyle (caption, fidelity), or resing (the revised words on the same music).","inputSchema":{"type":"object","properties":{"title":{"type":"string","description":"The title."},"lyrics":{"type":"string","description":"The words, sections in brackets ([Verse], [Chorus]…); tags only for an instrumental."},"caption":{"type":"string","description":"Style, comma-separated English tags (genre, mood, voice, instruments, era, language last)."},"language":{"type":"string","description":"Vocals' language."},"duration_s":{"type":"number","description":"10 to 240 s."},"bpm":{"type":"number","description":"Tempo."},"keyscale":{"type":"string","description":"Key, e.g. G major."},"timesignature":{"type":"integer","description":"3, 4 or 6."},"instrumental":{"type":"boolean","description":"No vocals."},"cover_note":{"type":"string","description":"The cover question's answer.","maxLength":200},"voice":{"type":"string","description":"An element id: the take's timbre and manner."},"music":{"type":"string","description":"An element id: the take sings on its music (length follows it)."},"mode":{"type":"string","description":"fast (~30 s) or normal (~60 s, richer), as the plan allows.","enum":["fast","normal"]},"source":{"type":"string","description":"A finished song's id to rework ('edit' says how)."},"edit":{"type":"string","description":"how to rework the source.","enum":["repaint","extend","restyle","resing"]},"from_s":{"type":"number","description":"repaint: passage start (s)."},"to_s":{"type":"number","description":"repaint: passage end (3 to 90 s)."},"add_s":{"type":"number","description":"extend: seconds added, 5 to 60 (30 default)."},"fidelity":{"type":"number","description":"restyle: how close to the source, 0 to 1 (0.5 default).","minimum":0,"maximum":1},"declarations":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"After rights_declaration_needed only: the ids the person accepted, each text shown to them. Never accept for them."}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"split_song","title":"Separate voice and music","description":"Separate a finished song of the account into its elements — the voice and the music — to sing with that voice, on that music, or to place one of them on the bench. A creation to poll with get_creation (trade 'song') (its result holds voice, music, voice_ref).","inputSchema":{"type":"object","properties":{"from_job":{"type":"string","description":"The finished song's id."},"title":{"type":"string","description":"A name for the element.","maxLength":120},"hear":{"type":"boolean","description":"Also ask the planner what it hears (style, tempo, key), needed to write in its spirit; ~25 s more."}},"required":["from_job"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"ask_review","title":"Ask the jury","description":"Ask the jury's opinion on a text, or on a file of ours (its URL on media.infinitepeople.ai). A creation to poll with get_creation (trade 'review'), a minute or two. Never automatic: ask the person first.","inputSchema":{"type":"object","properties":{"room":{"type":"string","description":"novel, comic, video, music, photo or other; the file's type decides when absent.","enum":["novel","comic","video","music","photo","other"]},"title":{"type":"string","description":"The work's title.","maxLength":200},"text":{"type":"string","description":"The text to judge (novel, other), 50 characters at least."},"file_url":{"type":"string","description":"The file to judge, on our media host."},"content_type":{"type":"string","description":"The file's type (video/mp4, audio/mpeg, image/jpeg, application/pdf...)."},"source":{"type":"object","description":"The studio creation it comes from, for the record: {trade, ref}.","additionalProperties":true},"turbo":{"type":"boolean","description":"The same critique, about 4x sooner."}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"send_review_version","title":"Send a new version","description":"The reworked work back to the same jury, which reads it with what it said before (six versions at most in a lineage): a new review to poll.","inputSchema":{"type":"object","properties":{"review_id":{"type":"integer","description":"The review answered."},"text":{"type":"string","description":"The reworked text."},"file_url":{"type":"string","description":"The reworked file, on our media host."},"content_type":{"type":"string","description":"The file's type."},"title":{"type":"string","description":"A new title, if any.","maxLength":200},"turbo":{"type":"boolean"}},"required":["review_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"send_review_feedback","title":"A word on the verdict","description":"After the verdict is reported: whether a juror cited something that is not in the work (accuracy: yes, no, unknown), once per review. Ask the person before sending.","inputSchema":{"type":"object","properties":{"review_id":{"type":"integer","description":"The review."},"accuracy":{"type":"string","description":"yes, no or unknown.","enum":["yes","no","unknown"]},"comment":{"type":"string","description":"The person's own words, if they want them passed on."}},"required":["review_id","accuracy"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"make_picture","title":"Make a picture","description":"A picture from words, a creation to poll with get_creation (trade 'image'); references keep the people and objects they show. Counts on the week.","inputSchema":{"type":"object","properties":{"request":{"type":"string","description":"The picture, in your words.","maxLength":1000},"shape":{"type":"string","description":"square, landscape (default), portrait, wide or WxH."},"style":{"type":"string","description":"A style in a few words, when it matters.","maxLength":200},"references":{"type":"array","items":{"type":"string"},"maxItems":4,"description":"Our pictures of people or objects to keep."},"quality":{"type":"string","description":"low (default, our machine), medium (~1.2x the week) or high (~1.6x; 2x from words).","enum":["low","medium","high"]},"declarations":{"type":"array","items":{"type":"string"},"description":"The ids of a 409 the person accepted."}},"required":["request"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"edit_picture","title":"Change a picture","description":"Change a picture of ours: 'edit' as asked, the person kept; 'extend' widens the frame; 'upscale' enlarges it 2-4x. A creation to poll with get_creation (trade 'image'); counts on the week.","inputSchema":{"type":"object","properties":{"action":{"type":"string","description":"edit by default.","enum":["edit","extend","upscale"]},"image_url":{"type":"string","description":"The picture, on our media host."},"request":{"type":"string","description":"edit: what it becomes, in your words; extend: what the new bands show.","maxLength":1000},"references":{"type":"array","items":{"type":"string"},"maxItems":4,"description":"Our pictures of people or objects to keep."},"shape":{"type":"string","description":"square, landscape (default), portrait, wide or WxH."},"quality":{"type":"string","description":"low (default, our machine), medium (~1.2x the week) or high (~1.6x; 2x from words).","enum":["low","medium","high"]},"factor":{"type":"number","description":"extend: how much wider, both sides; upscale: 2, 3 or 4."},"declarations":{"type":"array","items":{"type":"string"},"description":"The ids of a 409 the person accepted."}},"required":["image_url"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"make_deck","title":"Make a deck","description":"Slides (deck by default), with a QR code room (live), a scrolling page (site), a quiz, a poster, a chart, an A4 letter, report or worksheet (document). Poll get_creation (trade 'deck'); result.url: the page. Counts on the week.","inputSchema":{"type":"object","properties":{"prompt":{"type":"string","description":"Subject, audience, length, tone, look, content.","maxLength":3000},"shape":{"type":"string","enum":["deck","live","site","quiz","poster","chart","document"]},"pictures":{"type":"array","items":{"type":"object"},"description":"To draw: [{slide, prompt, why}], ≤ 4."},"media":{"type":"array","items":{"type":"object"},"description":"To place: [{url, title}]."},"quality":{"type":"string","description":"low (default) a meeting, medium a client, high a board.","enum":["low","medium","high"]},"language":{"type":"string","description":"When not the request's."},"confidentiality":{"type":"string","description":"high: our machines only (Standard, Pro).","enum":["low","high"]}},"required":["prompt"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"rework_deck","title":"Rework a deck","description":"A new version of a finished page, to poll with get_creation. Counts on the week.","inputSchema":{"type":"object","properties":{"job_id":{"type":"string","description":"Its id."},"instruction":{"type":"string","description":"What changes.","maxLength":3000},"slide":{"type":"integer","description":"This slide alone (from 1)."},"scope":{"type":"string","description":"page: all slides, even one named.","enum":["page"]},"look":{"type":"object","description":"{ground: light|dark, colours: [#rrggbb] ≤ 4}, set by the page."},"media":{"type":"array","items":{"type":"object"},"description":"To place: [{url, role: logo|opening}]."},"quality":{"type":"string","description":"The page's when absent.","enum":["low","medium","high"]}},"required":["job_id","instruction"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"export_deck","title":"Export a deck","description":"A finished page as PowerPoint (a document: Word), native (editable, default) or image (photographed, searchable). PDF: result.url?print=1. HTML: /v1/deck/jobs/{id}/html. Free.","inputSchema":{"type":"object","properties":{"job_id":{"type":"string","description":"Its id."},"mode":{"type":"string","enum":["native","image"]},"fonts":{"type":"boolean","description":"Embed fonts (PPTX)."}},"required":["job_id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_voices","title":"The voices","description":"The account's voices, each with a sample and the id say_text takes.","inputSchema":{"type":"object","properties":{"stock":{"type":"boolean","description":"Add ready-made voices, every language (medium/high only)."},"language":{"type":"string","description":"Theirs in one language (fr, ko…)."}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"design_voice","title":"Design a voice","description":"A voice from a description ('an older man, gravelly and slow'), kept on the account, able to say any text. A recording of one's own voice is kept from the app.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"The voice's name.","maxLength":60},"description":{"type":"string","description":"Age, grain, pace, accent.","maxLength":500},"language":{"type":"string","description":"Its language (fr, it…); for an accent, the accent's."}},"required":["name","description"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"send_file","title":"Send a file","description":"A file of theirs from a public https link put on our host (a picture, a recording, a clip, a document): answers an attachment's url, or a document's id. Never a platform's page.","inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The direct link to the file."}},"required":["url"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"keep_voice","title":"Keep their voice","description":"Their own voice kept from their recording (3-60 s, on our media host), free; only on their word that it is theirs or the speaker agreed.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Its name.","maxLength":60},"file_url":{"type":"string","description":"The recording."},"rights_confirmed":{"type":"boolean","description":"Their word, asked."}},"required":["name","file_url","rights_confirmed"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"say_text","title":"Say a text","description":"A kept voice says a text in one call (6000 chars; longer: say_dialogue with a title): a creation to poll with get_creation (trade 'voice'), result.url is the wav.","inputSchema":{"type":"object","properties":{"voice":{"type":"string","description":"A voice's id (list_voices)."},"text":{"type":"string","description":"What it says.","maxLength":6000},"quality":{"type":"string","description":"standard (ours); medium ~3-6x the week, high ~6-12x: moods, not at high confidentiality.","enum":["standard","medium","high"]},"mood":{"type":"string","description":"Medium/high only.","enum":["joy","sadness","calm","whisper","enthusiasm","tenderness","anger"]}},"required":["voice","text"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"say_dialogue","title":"Voices in turns","description":"Voices take turns: a conversation (3 voices, 6000 chars), or with a title a document read aloud (6 voices, ~1 h, mp3; part opens a chapter). Poll with get_creation (trade 'voice').","inputSchema":{"type":"object","properties":{"turns":{"type":"array","items":{"type":"object"},"description":"[{voice, text, mood?, part?}]"},"title":{"type":"string","description":"Makes it a reading."},"quality":{"type":"string","description":"As say_text.","enum":["standard","medium","high"]}},"required":["turns"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"convert_voice","title":"Say it in a voice","description":"A recording said again in a kept voice, word for word and with its pace: a file on our media host (file_url) or a finished voice creation (source).","inputSchema":{"type":"object","properties":{"voice":{"type":"string","description":"The kept voice's id (list_voices)."},"file_url":{"type":"string","description":"The recording, on media.infinitepeople.ai."},"source":{"type":"string","description":"Or a finished voice creation of the account."},"rights_confirmed":{"type":"boolean","description":"The person holds the rights on the recording: ask them, then true."},"declarations":{"type":"array","items":{"type":"string"},"description":"The ids of a 409 the person accepted."}},"required":["voice"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"send_feedback","title":"Tell us","description":"Tell us what is clumsy, what is missing, what went wrong: a bug, a wish, a word on a creation. We read every one.","inputSchema":{"type":"object","properties":{"subject":{"type":"string","description":"api, video, song, image, deck, app or other.","enum":["api","video","song","image","deck","app","other"]},"message":{"type":"string","description":"What you want to tell us."},"job_id":{"type":"string","description":"The creation concerned, if any."}},"required":["subject","message"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}}],"next":"Add the server (the card's 'remotes'), sign in through the OAuth door or paste a key made in the app, then call tools/list on the endpoint itself: this list is the same, without the account."}