Autopo
Run your AI-run company from Claude Code, Codex, Cursor or ChatGPT: inbox, tasks, team, Studio.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (11)
- LOWin list_companies
- LOWin get_briefing
- LOWin get_decision
- LOWin comment_on_decision
- LOWin list_agents
- LOWin get_artifact
- LOWin artifact_feedback
- LOWin studio_settings
- LOWin list_videos
- LOWin import_video_plan
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"@autopo/mcp"
]
}
}
}Ausführbare Pakete
0.5.0stdioRemote-Endpunkte
https://autopoiesis-api-267405155162.us-west1.run.app/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (67)
🟢list_companies
The companies you belong to (id, name, stage, kind). Other tools take `company`: one of these ids.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}🟢founder_home(company)
What needs you, what improved and what is stuck in a company right now: the home screen's digest, the open decisions, running work, delivered work and your requests. Start here for 'what happened'.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
}
},
"required": [],
"additionalProperties": false
}🟢company_overview(company)
The company: its charter, stage, team, budget and gates (GET /companies/{id} and /overview).
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
}
},
"required": [],
"additionalProperties": false
}🟢activity(company, after, limit)
The company's activity feed, newest first (who did what, when). `after`: only events after this ISO time.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"after": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [],
"additionalProperties": false
}🟢list_briefings(company, before)
The CEO's board briefings (spoken updates), newest first, with their text.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"before": {
"type": "string",
"description": "ISO time: older than this"
}
},
"required": [],
"additionalProperties": false
}🟢get_briefing(briefing)
One briefing: its sections, the decisions it asked for, and what was said.
Eingabe-Schema
{
"type": "object",
"properties": {
"briefing": {
"type": "string"
}
},
"required": [
"briefing"
],
"additionalProperties": false
}🟢brief_me_now(company)
Ask the CEO for a fresh briefing since your last one (at most 3 a day). It is written and voiced in the background: read it with get_briefing in a minute.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
}
},
"required": [],
"additionalProperties": false
}🟢list_decisions(company, status, page, page_size)
The Board inbox: cards waiting for you (`status` pending, default), or decided ones. Each card says what the team wants, why, the risk tier and the amount; decide with `decide`.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"status": {
"type": "string",
"description": "pending (default), decided, or a comma list"
},
"page": {
"type": "integer",
"minimum": 1
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [],
"additionalProperties": false
}🟢get_decision(decision)
One inbox card in full: the ask, the agent's case, the options, the work behind it.
Eingabe-Schema
{
"type": "object",
"properties": {
"decision": {
"type": "string"
}
},
"required": [
"decision"
],
"additionalProperties": false
}🔴decide(decision, choice, note, answer, edited_input)
Decide an inbox card as the founder: approve, reject (a `note` is required) or cancel. For a question card, `answer` is the chosen option's value. `edited_input` approves with a change to what was asked.
Eingabe-Schema
{
"type": "object",
"properties": {
"decision": {
"type": "string",
"description": "the card's id"
},
"choice": {
"type": "string",
"enum": [
"approve",
"reject",
"cancel"
]
},
"note": {
"type": "string"
},
"answer": {
"type": "object"
},
"edited_input": {
"type": "object"
}
},
"required": [
"decision",
"choice"
],
"additionalProperties": false
}⚪comment_on_decision(decision, body)
Ask the team something about a card before deciding; the requesting agent answers.
Eingabe-Schema
{
"type": "object",
"properties": {
"decision": {
"type": "string"
},
"body": {
"type": "string"
}
},
"required": [
"decision",
"body"
],
"additionalProperties": false
}🟢list_tasks(company, status, assignee, q, mine, ...)
The work board: tasks by status, assignee role or goal; `q` searches titles; `mine: true` only what you asked for (your requests).
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"status": {
"type": "string"
},
"assignee": {
"type": "string",
"description": "a role key, e.g. engineer"
},
"q": {
"type": "string"
},
"mine": {
"type": "boolean"
},
"page": {
"type": "integer",
"minimum": 1
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [],
"additionalProperties": false
}🟢get_task(task)
One task in full: description, criteria, status, the thread's last comments, its pull requests and deliverables.
Eingabe-Schema
{
"type": "object",
"properties": {
"task": {
"type": "string",
"description": "its id or key (AUTO-12)"
}
},
"required": [
"task"
],
"additionalProperties": false
}🟡create_task(company, title, description, assignee, priority, ...)
Give the team work, or make a request of your own (the CEO routes it when no assignee is named): a title, what done looks like, criteria. `assignee` is an agent id (list_agents).
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"assignee": {
"type": "string"
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"urgent"
]
},
"acceptance_criteria": {
"type": "array",
"items": {
"type": "string"
}
},
"goal": {
"type": "string"
}
},
"required": [
"title"
],
"additionalProperties": false
}🔴update_task(task, title, description, status, priority, ...)
Change a task: its title, description, status, priority, assignee or criteria. To cancel one, use cancel_task.
Eingabe-Schema
{
"type": "object",
"properties": {
"task": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"status": {
"type": "string"
},
"priority": {
"type": "string"
},
"assignee": {
"type": "string"
},
"acceptance_criteria": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"task"
],
"additionalProperties": false
}🟡comment_on_task(task, body)
Write in a task's thread as the founder: the assignee reads it and answers (a comment wakes them).
Eingabe-Schema
{
"type": "object",
"properties": {
"task": {
"type": "string"
},
"body": {
"type": "string"
}
},
"required": [
"task",
"body"
],
"additionalProperties": false
}🔴cancel_task(task, reason, preview)
Cancel a task (and its open subtasks, pending cards and live runs). `preview: true` only says what it would take.
Eingabe-Schema
{
"type": "object",
"properties": {
"task": {
"type": "string"
},
"reason": {
"type": "string"
},
"preview": {
"type": "boolean"
}
},
"required": [
"task"
],
"additionalProperties": false
}🟢list_agents(company)
The team: every agent with its role, title, state and whether it is on. Chat with one through ask_agent.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
}
},
"required": [],
"additionalProperties": false
}⚪ask_agent(company, agent, message, production, wait_seconds)
Start a chat with an agent (list_agents) and wait for the answer. `agent` is the agent's id or role key (ceo, cto, creative…). Beside the Studio, pass `production` (a video id) so the Creative Director sees that video. The reply's `actions` are proposals (a task, media to make, a card): apply one with apply_chat_action. `wait_seconds` (default 90, max 600) is how long to wait for the reply.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"agent": {
"type": "string"
},
"message": {
"type": "string"
},
"production": {
"type": "string"
},
"wait_seconds": {
"type": "integer"
}
},
"required": [
"agent",
"message"
],
"additionalProperties": false
}🟡continue_chat(chat, message, wait_seconds)
Send another message in an existing chat and wait for the reply.
Eingabe-Schema
{
"type": "object",
"properties": {
"chat": {
"type": "string"
},
"message": {
"type": "string"
},
"wait_seconds": {
"type": "integer"
}
},
"required": [
"chat",
"message"
],
"additionalProperties": false
}🟢read_chat(chat, last)
A chat's messages, oldest first (the last reply's status says whether it is still answering).
Eingabe-Schema
{
"type": "object",
"properties": {
"chat": {
"type": "string"
},
"last": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "only the last N messages"
}
},
"required": [
"chat"
],
"additionalProperties": false
}🟢list_chats(company, q, agent)
Your chats across the team (pinned first, then recent); `q` searches titles and content.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"q": {
"type": "string"
},
"agent": {
"type": "string"
}
},
"required": [],
"additionalProperties": false
}🔴apply_chat_action(action, edits, dismiss)
Apply a proposal an agent made in a chat (a task, a note, media to make, a card): the action's id from the reply's `actions`. `edits` changes fields of its payload first. `dismiss: true` declines it.
Eingabe-Schema
{
"type": "object",
"properties": {
"action": {
"type": "string"
},
"edits": {
"type": "object"
},
"dismiss": {
"type": "boolean"
}
},
"required": [
"action"
],
"additionalProperties": false
}🟢list_runs(company, status, agent, page, page_size)
Agent runs: `status` active (queued, running), finished, or a comma list; `agent` an agent id.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"status": {
"type": "string"
},
"agent": {
"type": "string"
},
"page": {
"type": "integer",
"minimum": 1
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [],
"additionalProperties": false
}🟢get_run(run, after_seq, events)
One run: its status, cost, and its events (tool calls, text) from `after_seq`.
Eingabe-Schema
{
"type": "object",
"properties": {
"run": {
"type": "string"
},
"after_seq": {
"type": "integer"
},
"events": {
"type": "boolean",
"description": "include the events (default true)"
}
},
"required": [
"run"
],
"additionalProperties": false
}⚪nudge_run(run, guidance)
Steer a run that is still going: a line of guidance the agent reads at its next step.
Eingabe-Schema
{
"type": "object",
"properties": {
"run": {
"type": "string"
},
"guidance": {
"type": "string"
}
},
"required": [
"run",
"guidance"
],
"additionalProperties": false
}🟢list_artifacts(company, type, status, q, starred, ...)
What the team made: documents, research, decks, tables, videos, designs (`type`), delivered work (`kind`), `q` searches, `starred` only yours.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"type": {
"type": "string"
},
"status": {
"type": "string"
},
"q": {
"type": "string"
},
"starred": {
"type": "boolean"
},
"page": {
"type": "integer",
"minimum": 1
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [],
"additionalProperties": false
}🟢get_artifact(artifact)
One artifact in full (its body, content, version, who made it).
Eingabe-Schema
{
"type": "object",
"properties": {
"artifact": {
"type": "string"
}
},
"required": [
"artifact"
],
"additionalProperties": false
}🟡artifact_feedback(artifact, body)
Ask for a revision of an artifact: a task for the agent who made it; the change lands as a new version.
Eingabe-Schema
{
"type": "object",
"properties": {
"artifact": {
"type": "string"
},
"body": {
"type": "string"
}
},
"required": [
"artifact",
"body"
],
"additionalProperties": false
}🟢studio_overview(company)
The Studio: every model this company can run (what it is for, price, shapes, availability), the voices, the default models and narrator, providers, the team's allowance, and whether this server can check and render code films (`can_render_code`).
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
}
},
"required": [],
"additionalProperties": false
}🟡studio_settings(company, default_models, voice)
Change the Studio's defaults: `default_models` by kind (image, video, voice, music: model keys from studio_overview) and the default narrator `voice` (a voice key).
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"default_models": {
"type": "object"
},
"voice": {
"type": "string"
}
},
"required": [],
"additionalProperties": false
}🟢list_media(company, kind, source, q, starred, ...)
The media library: images, clips, voice lines and music, with filters (`kind` image|video|audio, `source` generated|uploaded|recorded|rendered, `q`, `starred`).
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"kind": {
"type": "string"
},
"source": {
"type": "string"
},
"q": {
"type": "string"
},
"starred": {
"type": "boolean"
},
"purpose": {
"type": "string"
},
"page": {
"type": "integer",
"minimum": 1
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [],
"additionalProperties": false
}🟢get_media(media)
One piece of media: its prompt, model, settings, link and state.
Eingabe-Schema
{
"type": "object",
"properties": {
"media": {
"type": "string"
}
},
"required": [
"media"
],
"additionalProperties": false
}🔴generate_media(company, kind, prompt, model, aspect_ratio, ...)
Make an image, a clip, a voice line or music in the Studio (spends credits): `kind`, a `prompt`, optionally a `model` (studio_overview), `aspect_ratio`, `duration` (seconds, clips), `count` (images), `voice` (a voice key, for kind audio with purpose voice), `purpose` (voice|music for audio), `references` (media ids). Returns the media ids (status queued): read them later with get_media.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"kind": {
"type": "string",
"enum": [
"image",
"video",
"audio"
]
},
"prompt": {
"type": "string"
},
"model": {
"type": "string"
},
"aspect_ratio": {
"type": "string"
},
"duration": {
"type": "number"
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 4
},
"voice": {
"type": "string"
},
"purpose": {
"type": "string",
"enum": [
"voice",
"music"
]
},
"references": {
"type": "array",
"items": {
"type": "string"
}
},
"title": {
"type": "string"
},
"production": {
"type": "string"
},
"shot": {
"type": "string"
}
},
"required": [
"kind",
"prompt"
],
"additionalProperties": false
}🟢list_videos(company)
The Studio's videos (productions): title, status, shape, length.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
}
},
"required": [],
"additionalProperties": false
}🟢get_video(video)
A video's storyboard in full: every shot (picture, line, text, seconds, direction, takes), the style and models it is made with, the presenter, cards, the finished render, and what is missing before it can render. `engine` says how it is cut (ffmpeg: the joiner; remotion: a code film) and `code` where a code film stands (version, checked, errors; get_video_code for the project).
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
}
},
"required": [
"video"
],
"additionalProperties": false
}🟡create_video(company, title, brief, aspect_ratio, seconds, ...)
Start a video: a title, the brief (who it's for, what it must show, the one thing to feel), the shape (16:9, 9:16, 1:1, 4:5) and the length in seconds. The platform drafts the storyboard from the brief (a little model time, billed like an agent's); then shape it with set_video_shots or ask the Creative Director (ask_agent creative, with `production`). `draft: false` makes an empty video to fill yourself.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"title": {
"type": "string"
},
"brief": {
"type": "string"
},
"aspect_ratio": {
"type": "string",
"enum": [
"16:9",
"9:16",
"1:1",
"4:5"
]
},
"seconds": {
"type": "integer",
"minimum": 10,
"maximum": 180
},
"draft": {
"type": "boolean"
},
"style": {
"type": "object"
}
},
"required": [
"title",
"brief"
],
"additionalProperties": false
}🟡set_video_shots(video, shots)
Replace a video's storyboard: shots in order, each {visual: generate|footage|title|presenter, prompt, voiceover, on_screen_text, duration_seconds, media?, voice?, direction?, keep_audio?, notes?}. Send a shot's `id` to keep its media, voice and direction (a `direction` sets only the keys it carries; a key set to null is removed); a shot without one is new. A title's line breaks (\n in on_screen_text) are kept on the card.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
},
"shots": {
"type": "array",
"items": {
"type": "object"
},
"maxItems": 60
}
},
"required": [
"video",
"shots"
],
"additionalProperties": false
}🟡update_video(video, title, brief, aspect_ratio, style)
Change a video: title, brief, shape, or its `style`: music, captions, transition (cut|fade), colours, the narrator `voice`, the `look` (palette, light, camera, texture, mood, type, avoid, brand light|balanced|strong), the music cue (`music_prompt`, `music_bpm`, `beat_sync`), and `models` {clip, keyframe, voice, music, speaking}.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
},
"title": {
"type": "string"
},
"brief": {
"type": "string"
},
"aspect_ratio": {
"type": "string"
},
"style": {
"type": "object"
}
},
"required": [
"video"
],
"additionalProperties": false
}🔴make_video_media(video, what, model, voice)
Make what a video still lacks (spends credits): `what` all (clips and voice lines), visuals, voice, or music (composed from the style's music cue). `model` overrides the clip model for this call.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
},
"what": {
"type": "string",
"enum": [
"all",
"visuals",
"voice",
"music"
]
},
"model": {
"type": "string"
},
"voice": {
"type": "string"
}
},
"required": [
"video"
],
"additionalProperties": false
}🔴video_keyframes(video, shots)
Make the keyframes first (a still of each generate shot's first frame, cents each) so the look is locked before clips are paid for. `shots`: shot ids, default every shot without one.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
},
"shots": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"video"
],
"additionalProperties": false
}⚪critique_video(video, stage)
The critic judges the latest takes (`stage` keyframes or clips) against each shot's direction and puts the best on the shot.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
},
"stage": {
"type": "string",
"enum": [
"keyframes",
"clips"
]
}
},
"required": [
"video",
"stage"
],
"additionalProperties": false
}🟢render_video(video)
Cut the video into one MP4 (free). get_video says what is missing when it refuses; the render takes a minute or two. A code film (`engine` remotion) renders its last checked version through Remotion, so the check must pass first (check_video_code); the refusal names the film's problem.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
}
},
"required": [
"video"
],
"additionalProperties": false
}🔴design_video_cards(video, remove)
Make (or re-sync) the cards drawn over a video's shots, one scene per shot, editable in the Studio's design editor. `remove: true` takes them off.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
},
"remove": {
"type": "boolean"
}
},
"required": [
"video"
],
"additionalProperties": false
}🟢video_plan(video)
A video as a plan (JSON): its shots, presenter, style, media ids. Change it and import it back with import_video_plan.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
}
},
"required": [
"video"
],
"additionalProperties": false
}⚪import_video_plan(company, plan)
A whole video at once from a plan (the shape video_plan returns): title, brief, aspect_ratio, style, presenter, shots.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"plan": {
"type": "object"
}
},
"required": [
"plan"
],
"additionalProperties": false
}⚪export_video(video)
A link to a zip of the video's plan and every file it names (works for a week).
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
}
},
"required": [
"video"
],
"additionalProperties": false
}🔴delete_video(video)
Delete a video (its media stay in the library).
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string"
}
},
"required": [
"video"
],
"additionalProperties": false
}🔴update_media(media, title, starred, action)
Rename, star or delete a piece of media; `retry` makes a failed generation again; `cancel` stops one.
Eingabe-Schema
{
"type": "object",
"properties": {
"media": {
"type": "string"
},
"title": {
"type": "string"
},
"starred": {
"type": "boolean"
},
"action": {
"type": "string",
"enum": [
"delete",
"retry",
"cancel"
]
}
},
"required": [
"media"
],
"additionalProperties": false
}🟡convert_video_to_code(video, note)
Cut a video in code: its storyboard compiles to a Remotion project (`engine` remotion, version 1 from the compiler, checked and built where the server has Node). The storyboard, media and direction stay as they are; from here the picture is drawn by the project's scenes, which you edit with write_video_code. On a film that exists it brings src/film.json up to date. Read read_studio_guide {file: 'film-code/SKILL.md'} before editing.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string",
"description": "the video id (list_videos)"
},
"note": {
"type": "string"
}
},
"required": [
"video"
],
"additionalProperties": false
}🟢get_video_code(video, file)
A video's code film (a Remotion project its storyboard compiles to; API contract §91): the version, the head's files (paths), the scenes, the last check (ok, errors with file and line, warnings), the preview link and the latest versions. With `file` (a path, e.g. src/Film.tsx) one file's content and who wrote it. 404 before convert_video_to_code.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string",
"description": "the video id (list_videos)"
},
"file": {
"type": "string",
"description": "a path of the head, for its content"
}
},
"required": [
"video"
],
"additionalProperties": false
}🟡write_video_code(video, files, note)
Write files of a video's code film: `files` [{path, content}] (content null removes a file; paths under src/ ending .ts, .tsx, .js, .jsx, .css or .json; src/film.json, package.json and tsconfig.json are the compiler's and follow the storyboard). A new version is made and checked at once (tsc, the lint, the scene list, the preview build): `check` says ok, or the errors with file and line. Free. Only `@autopo/film`, react, remotion, `@remotion/*`, zod and the film's own files may be imported; words live in film.json, not in code.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string",
"description": "the video id (list_videos)"
},
"files": {
"type": "array",
"minItems": 1,
"maxItems": 40,
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"content": {
"type": [
"string",
"null"
],
"description": "the file's text, or null to remove it"
}
},
"required": [
"path",
"content"
]
}
},
"note": {
"type": "string",
"description": "what changed, for the version list"
}
},
"required": [
"video",
"files"
],
"additionalProperties": false
}🟢check_video_code(video)
Check a video's code film again without changing it: tsc, the lint, the scene list and the preview bundle run on the head. `check` has ok, errors (file, line, shot, message), warnings (craft: a card over 7 words, no hook by 2 s…) and the running time. Free.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string",
"description": "the video id (list_videos)"
}
},
"required": [
"video"
],
"additionalProperties": false
}⚪video_frames(video, frames, every_seconds)
Draw stills of a video's code film as Studio images (free; seconds after the first build): `frames` (frame numbers at the film's fps) or `every_seconds`; neither: the middle of every shot. Up to 12 a call. Needs a passing check. Each result has a url and thumb_url to look at before a render.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string",
"description": "the video id (list_videos)"
},
"frames": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0
},
"maxItems": 12
},
"every_seconds": {
"type": "number",
"minimum": 0.5
}
},
"required": [
"video"
],
"additionalProperties": false
}🟢video_code_versions(video)
Every version of a video's code film, newest first: number, source (compiler, agent, founder, restore), note, files, who made it and when; `head` is the current one.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string",
"description": "the video id (list_videos)"
}
},
"required": [
"video"
],
"additionalProperties": false
}⚪restore_video_code(video, version)
Bring an earlier version of a video's code film back as a new version (source restore), checked at once.
Eingabe-Schema
{
"type": "object",
"properties": {
"video": {
"type": "string",
"description": "the video id (list_videos)"
},
"version": {
"type": "integer",
"minimum": 1,
"description": "a number from video_code_versions"
}
},
"required": [
"video",
"version"
],
"additionalProperties": false
}🟢brand_brain(company)
The brand brain: what the company says about itself, for whom, against whom, in what voice (every writer reads it).
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
}
},
"required": [],
"additionalProperties": false
}🟢list_posts(company, status, account, limit)
Social posts: upcoming, published or failed (`status`), per `account`.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"status": {
"type": "string"
},
"account": {
"type": "string"
},
"limit": {
"type": "integer"
}
},
"required": [],
"additionalProperties": false
}🟢social_accounts(company)
The company's social accounts and networks, and what each account may post on its own.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
}
},
"required": [],
"additionalProperties": false
}🟡check_posts(company, posts)
Run the pre-publish gate on posts you wrote (nothing is posted): each post's review against the brand.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"posts": {
"type": "array",
"items": {
"type": "object"
}
}
},
"required": [
"posts"
],
"additionalProperties": false
}🔴create_posts(company, posts, schedule_at)
Post as yourself (no card): `posts` [{account, text, media?}], now or at `schedule_at` (ISO).
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"posts": {
"type": "array",
"items": {
"type": "object"
}
},
"schedule_at": {
"type": "string"
}
},
"required": [
"posts"
],
"additionalProperties": false
}🟢marketing_learnings(company, status)
What worked and what didn't: the learnings log, newest first.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"status": {
"type": "string"
}
},
"required": [],
"additionalProperties": false
}🟢budget(company)
The month's spend against the budget, by agent and kind, and the credits left.
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
}
},
"required": [],
"additionalProperties": false
}🟢ledger(company, kind, agent, page, page_size)
Every charge, newest first (`kind`, `agent` filter).
Eingabe-Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "the company id (list_companies); optional when you have one"
},
"kind": {
"type": "string"
},
"agent": {
"type": "string"
},
"page": {
"type": "integer",
"minimum": 1
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [],
"additionalProperties": false
}🔴api_request(method, path, body, query)
Call any endpoint of the Autopo REST API as yourself: `method`, `path` (starts with /api/, ids filled in), optional JSON `body` and `query`. The contract (read_api_contract) is the manual: use it for anything the other tools don't cover. Writes are real.
Eingabe-Schema
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"PATCH",
"PUT",
"DELETE"
]
},
"path": {
"type": "string"
},
"body": {
"type": "object"
},
"query": {
"type": "object"
}
},
"required": [
"method",
"path"
],
"additionalProperties": false
}🟢read_api_contract(section, search)
The REST API contract (docs/API_CONTRACT.md): its table of contents with no arguments; a `section` number (e.g. 17 for the Studio) or a `search` word returns the text.
Eingabe-Schema
{
"type": "object",
"properties": {
"section": {
"type": "string"
},
"search": {
"type": "string"
}
},
"required": [],
"additionalProperties": false
}🟢read_studio_guide(file)
The Creative Director's own guide to the Studio (how films, images, voice and music are made, which model for which job): the index with no `file`, or one of its files. Under `film-code/` (SKILL.md, references/*) her guide to code films: the Remotion project a video's storyboard compiles to, the kit, the contract, the recipes. Read it before convert_video_to_code, get_video_code, write_video_code, check_video_code, video_frames, video_code_versions and restore_video_code; the resources under autopoiesis://film-kit/ carry kit.md and contract.md on their own. Under `swipe-file/` the swipe file: the SaaS and B2B spots a film's concepts cite, as structured notes.
Eingabe-Schema
{
"type": "object",
"properties": {
"file": {
"type": "string"
}
},
"required": [],
"additionalProperties": false
}Community
Nachweis