Autopo
io.github.Autopoiesis-ai/mcpAutopoiesis-aistreamable-httpv0.6.1Scanned
Run your AI-run company from Claude Code, Codex, Cursor or ChatGPT: inbox, tasks, team, Studio.
76 tools: 6 can delete or cancel things, 1 do something that can't be undone, 47 change things and 22 only read.
- Reads private data · 8
- Reads text others write · 10
- Can send data out · 4
- No findings
Anlyon alternative
54 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
76 tools
Deletes or cancels 6Claude Code: deny
api_requestCall any endpoint of the Autopo REST API as yourself: `method`, `path` (starts with /api/, ids filled in), optional JSON `body` and `query`.No findings
Why it is in this group
- The name "api_request" says "request": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Call any endpoint of the Autopo REST API as yourself: `method`, `path` (starts with /api/, ids filled in), optional JSON `body` and `query`. api_reference is the manual: use this for anything the other tools don’t cover. Reads go straight through; anything else is real, so you confirm it in a dialog first.
Annotations the server declares
- title: Call the API
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
app_decideDecide a card from the inbox view.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Decide a card from the inbox view. Hidden from the model: the click is the confirmation.
Annotations the server declares
- destructiveHint: true
cancel_taskCancel a task (and its open subtasks, pending cards and live runs).No findings
Why it is in this group
- The name "cancel_task" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Cancel a task (and its open subtasks, pending cards and live runs). `preview: true` only says what it would take. You confirm in a dialog before it is final.
Annotations the server declares
- title: Cancel task
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
create_postsPost as yourself (no card): `posts` [{account, text, media?}], now or at `schedule_at` (ISO).Can send data outNo findings
Why it is in this group
- The name "create_posts" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- outboundThe name "create_posts" says "create" and "post": it writes something other people read.
Description, as the server wrote it Post as yourself (no card): `posts` [{account, text, media?}], now or at `schedule_at` (ISO). You confirm in a dialog: a post cannot be unpublished from here.
Annotations the server declares
- title: Post to social
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
decideDecide an inbox card as the founder: approve, reject (a `note` is required) or cancel.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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. You are asked to confirm in a dialog before it is final.
Annotations the server declares
- title: Decide a card
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_videoDelete a video (its media stay in the library).No findings
Why it is in this group
- The name "delete_video" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a video (its media stay in the library). You confirm in a dialog.
Annotations the server declares
- title: Delete video
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
Can't be undone 1Claude Code: ask
continue_chatSend another message in an existing chat and wait for the reply.Can send data outNo findings
Why it is in this group
- The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
What it can reach
- outboundThe description's first verb is "send": it sends or publishes something to other people.
Description, as the server wrote it Send another message in an existing chat and wait for the reply.
Annotations the server declares
- title: Continue chat
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Changes things 47Claude Code: ask
activityThe company's activity feed, newest first (who did what, when).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The company's activity feed, newest first (who did what, when). `after`: only events after this ISO time.
Annotations the server declares
- title: Activity feed
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
api_referenceThe REST API’s reference (OpenAPI): with no arguments, every endpoint in brief (method, path, summary); `search` narrows by words in the path or summary; `path` (+ `method`) gives …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The REST API’s reference (OpenAPI): with no arguments, every endpoint in brief (method, path, summary); `search` narrows by words in the path or summary; `path` (+ `method`) gives one endpoint’s parameters and body.
Annotations the server declares
- title: API reference
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
app_mediaStar, retry or reload media from the gallery view.No findings
Why it is in this group
- The description's first verb is "star": a word for a change.
Description, as the server wrote it Star, retry or reload media from the gallery view.
Annotations the server declares
- destructiveHint: false
app_refresh_inboxReload the pending cards for the inbox view.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Reload the pending cards for the inbox view.
Annotations the server declares
- readOnlyHint: true
app_videoReload a video, or act on it: keyframes, make media, critique, render.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Reload a video, or act on it: keyframes, make media, critique, render. The click is the confirmation.
Annotations the server declares
- destructiveHint: false
apply_chat_actionApply 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`.No findings
Why it is in this group
- The name "apply_chat_action" says "apply": a word for a change.
Description, as the server wrote it 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. Applying can start work or spend credits, so you confirm in a dialog.
Annotations the server declares
- title: Apply a chat proposal
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
artifact_feedbackAsk for a revision of an artifact: a task for the agent who made it; the change lands as a new version.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Ask for a revision of an artifact: a task for the agent who made it; the change lands as a new version.
Annotations the server declares
- title: Ask for a revision
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
ask_agentStart a chat with an agent (list_agents) and wait for the answer.No findings
Why it is in this group
- The description's first verb is "start": a word for a change.
Description, as the server wrote it 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 300) is how long to wait for the reply.
Annotations the server declares
- title: Ask an agent
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
attach_mediaPut a library item on one shot: `media` (an image or clip: the shot's picture, as footage) or `voice` (an audio item: the shot's line).No findings
Why it is in this group
- The name "attach_media" says "attach": a word for a change.
Description, as the server wrote it Put a library item on one shot: `media` (an image or clip: the shot's picture, as footage) or `voice` (an audio item: the shot's line). The other shots stay as they are. `keep_audio: true` keeps the clip's own sound under the voice-over.
Annotations the server declares
- title: Put media on a shot
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
brand_brainThe brand brain: what the company says about itself, for whom, against whom, in what voice (every writer reads it).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The brand brain: what the company says about itself, for whom, against whom, in what voice (every writer reads it).
Annotations the server declares
- title: Brand brain
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
brief_me_nowAsk the CEO for a fresh briefing since your last one (at most 3 a day).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Brief me now
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
budgetThe month’s spend against the budget, by agent and kind, and the credits left.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The month’s spend against the budget, by agent and kind, and the credits left.
Annotations the server declares
- title: Budget
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
buy_creditsOpen a checkout in your browser to add credits to a company (1 credit = $1).No findings
Why it is in this group
- The description's first verb is "open": a word for a change.
Description, as the server wrote it Open a checkout in your browser to add credits to a company (1 credit = $1). Nothing is charged until you pay there.
Annotations the server declares
- title: Buy credits
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
check_postsRun the pre-publish gate on posts you wrote (nothing is posted): each post’s review against the brand.Can send data outNo findings
Why it is in this group
- The name "check_posts" says "post": a word for a change.
What it can reach
- outboundThe name "check_posts" says "post": it sends or publishes something to other people.
Description, as the server wrote it Run the pre-publish gate on posts you wrote (nothing is posted): each post’s review against the brand.
Annotations the server declares
- title: Check posts
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
check_video_codeCheck a video's code film again without changing it: tsc, the lint, the scene list and the preview bundle run on the head.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Check video code
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
comment_on_decisionAsk the team something about a card before deciding; the requesting agent answers.No findings
Why it is in this group
- The name "comment_on_decision" says "comment": a word for a change.
Description, as the server wrote it Ask the team something about a card before deciding; the requesting agent answers.
Annotations the server declares
- title: Comment on a card
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
comment_on_taskWrite in a task's thread as the founder: the assignee reads it and answers (a comment wakes them).No findings
Why it is in this group
- The name "comment_on_task" says "comment": a word for a change.
Description, as the server wrote it Write in a task's thread as the founder: the assignee reads it and answers (a comment wakes them).
Annotations the server declares
- title: Comment on task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
company_overviewThe company: its charter, stage, team, budget and gates.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The company: its charter, stage, team, budget and gates.
Annotations the server declares
- title: Company overview
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
convert_video_to_codeOverride how a video is cut: the Creative Director picks per film (`cut_choice` on get_video), so call this only when the person asks for a code film, and leave a film she chose al…No findings
Why it is in this group
- The name "convert_video_to_code" says "convert": a word for a change.
Description, as the server wrote it Override how a video is cut: the Creative Director picks per film (`cut_choice` on get_video), so call this only when the person asks for a code film, and leave a film she chose alone otherwise. 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 the guide (autopoiesis://guide/code-film) before editing.
Annotations the server declares
- title: Cut in code
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_taskGive 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.No findings
Why it is in this group
- The name "create_task" says "create": a word for a change.
Description, as the server wrote it 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).
Annotations the server declares
- title: Create task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_videoStart 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.No findings
Why it is in this group
- The name "create_video" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create video
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
critique_videoThe critic judges the latest generated takes (`stage` keyframes or clips) against each shot’s direction and puts the best on the shot.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it The critic judges the latest generated takes (`stage` keyframes or clips) against each shot’s direction and puts the best on the shot. `stage` cut is the audience review of the render, for any film, generated or not: the viewer it is made for watches it and answers a fixed checklist, naming the shot and the change for each miss (a little model time, billed like an agent’s).
Annotations the server declares
- title: Critique takes or the cut
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
design_video_cardsMake (or re-sync) the cards drawn over a video’s shots, one scene per shot, editable in the Studio’s design editor.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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 (you confirm in a dialog).
Annotations the server declares
- title: Design the cards
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
export_videoA link to a zip of the video’s plan and every file it names (works for a week).No findings
Why it is in this group
- The description's first verb is "link": a word for a change.
Description, as the server wrote it A link to a zip of the video’s plan and every file it names (works for a week).
Annotations the server declares
- title: Export video
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
founder_homeWhat 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.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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'.
Annotations the server declares
- title: Founder home
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
generate_mediaMake an image, a clip, a voice line or music in the Studio (spends credits; you confirm the cost in a dialog): `kind`, a `prompt`, optionally a `model` (studio_overview), `aspect_r…No findings
Why it is in this group
- The name "generate_media" says "generate": a word for a change.
Description, as the server wrote it Make an image, a clip, a voice line or music in the Studio (spends credits; you confirm the cost in a dialog): `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.
Annotations the server declares
- title: Generate media
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
import_video_planA whole video at once from a plan (the shape video_plan returns: title, brief, aspect_ratio, style, presenter, shots).Reads text others writeCan send data outNo findings
Why it is in this group
- The name "import_video_plan" says "import": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it A whole video at once from a plan (the shape video_plan returns: title, brief, aspect_ratio, style, presenter, shots). Give the `plan` as JSON, or a `path` on this machine (a zip with plan.json and the files it names as file:…, a plan.json with those files beside it, or the folder holding them), or a `url` to such a zip or plan.json. Footage, voice tracks and icons the plan names are uploaded first (in chunks, any size), then the plan is imported with their media ids.
Annotations the server declares
- title: Import a video plan
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
ledgerEvery charge, newest first (`kind`, `agent` filter).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Every charge, newest first (`kind`, `agent` filter).
Annotations the server declares
- title: Ledger
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
make_video_mediaMake what a video still lacks (spends credits; you confirm the cost in a dialog): `what` all (clips and voice lines), visuals, voice, or music (composed from the style’s music cue)…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Make what a video still lacks (spends credits; you confirm the cost in a dialog): `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. Then wait_for_video.
Annotations the server declares
- title: Make the video’s media
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
marketing_learningsWhat worked and what didn’t: the learnings log, newest first.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it What worked and what didn’t: the learnings log, newest first.
Annotations the server declares
- title: Marketing learnings
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
nudge_runSteer a run that is still going: a line of guidance the agent reads at its next step.No findings
Why it is in this group
- The name "nudge_run" says "run": a word for a change.
Description, as the server wrote it Steer a run that is still going: a line of guidance the agent reads at its next step.
Annotations the server declares
- title: Nudge a run
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
open_in_appOpen a place in the Autopo web app in your browser: `what` is home, hive, inbox, task, work, team, chat, studio, video, marketing, social, money, connectors or settings; `id` the c…Reads text others writeNo findings
Why it is in this group
- The name "open_in_app" says "open": a word for a change.
What it can reach
- untrusted-inputThe description's first sentence says "open" and "web": it reads web pages, which anyone can write.
Description, as the server wrote it Open a place in the Autopo web app in your browser: `what` is home, hive, inbox, task, work, team, chat, studio, video, marketing, social, money, connectors or settings; `id` the card, task, chat or video when there is one.
Annotations the server declares
- title: Open in the app
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
render_videoCut the video into one MP4 (free).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Cut the video into one MP4 (free). get_video says what is missing when it refuses; the render takes a minute or two: wait_for_video. 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.
Annotations the server declares
- title: Render video
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_video_codeBring an earlier version of a video's code film back as a new version (source restore), checked at once.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Bring an earlier version of a video's code film back as a new version (source restore), checked at once.
Annotations the server declares
- title: Restore video code
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
set_video_shotsReplace a video's storyboard: shots in order, each {visual: generate|footage|title|presenter, prompt, voiceover, on_screen_text, duration_seconds, media?, voice?, direction?, keep_…No findings
Why it is in this group
- The name "set_video_shots" says "set": a word for a change.
Description, as the server wrote it 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; a shot without one is new.
Annotations the server declares
- title: Set the storyboard
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
social_accountsThe company’s social accounts and networks, and what each account may post on its own.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The company’s social accounts and networks, and what each account may post on its own.
Annotations the server declares
- title: Social accounts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
studio_overviewThe 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 whethe…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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`).
Annotations the server declares
- title: Studio overview
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
studio_settingsChange 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).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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).
Annotations the server declares
- title: Studio settings
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
update_mediaRename, star or delete a piece of media; `retry` makes a failed generation again (it spends credits again: you confirm in a dialog); `cancel` stops one.No findings
Why it is in this group
- The name "update_media" says "update": a word for a change.
Description, as the server wrote it Rename, star or delete a piece of media; `retry` makes a failed generation again (it spends credits again: you confirm in a dialog); `cancel` stops one.
Annotations the server declares
- title: Update media
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
update_taskChange a task: its title, description, status, priority, assignee or criteria.No findings
Why it is in this group
- The name "update_task" says "update": a word for a change.
Description, as the server wrote it Change a task: its title, description, status, priority, assignee or criteria. To cancel one, use cancel_task.
Annotations the server declares
- title: Update task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
update_videoChange 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,…No findings
Why it is in this group
- The name "update_video" says "update": a word for a change.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Update video
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
upload_mediaPut your own files into the Studio library: recordings, screen captures, photos, a voice track, music.Reads text others writeNo findings
Why it is in this group
- The name "upload_media" says "upload": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Put your own files into the Studio library: recordings, screen captures, photos, a voice track, music. Each item is a `path` on the machine this server runs on (a file, or a folder: every image, clip and audio file in it, in name order; you confirm the list in a dialog before anything leaves the machine) or a public `url`. Only images, clips and audio can be uploaded. The server uploads them itself, in 8 MB chunks, straight to the platform. With `video`, the files belong to that video; an item's `shot` (a shot id) puts it on that shot (a clip or image becomes the shot's picture as footage, audio becomes its voice line); `in_order: true` puts the files, in order, on the video's shots that have no picture yet. Returns the media ids (processing for a moment, then ready; wait_for_video waits for them).
Annotations the server declares
- title: Upload your files
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
video_code_versionsEvery 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.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Video code versions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
video_framesDraw 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 eve…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Video frames
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
video_keyframesMake the keyframes first (a still of each generate shot’s first frame, cents each; you confirm in a dialog) so the look is locked before clips are paid for.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Make the keyframes first (a still of each generate shot’s first frame, cents each; you confirm in a dialog) so the look is locked before clips are paid for. `shots`: shot ids, default every shot without one.
Annotations the server declares
- title: Make keyframes
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
video_planA video as a plan (JSON): its shots, presenter, style, media ids.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it A video as a plan (JSON): its shots, presenter, style, media ids. Change it and import it back with import_video_plan.
Annotations the server declares
- title: Video plan
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
write_video_codeWrite 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…No findings
Why it is in this group
- The name "write_video_code" says "write": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Write video code
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 22Show 22 read-only tools
get_artifactOne artifact in full (its body, content, version, who made it).No findings
Why it is in this group
- The name "get_artifact" says "get": a word for reading.
Description, as the server wrote it One artifact in full (its body, content, version, who made it).
Annotations the server declares
- title: Get artifact
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_briefingOne briefing: its sections, the decisions it asked for, and what was said.No findings
Why it is in this group
- The name "get_briefing" says "get": a word for reading.
Description, as the server wrote it One briefing: its sections, the decisions it asked for, and what was said.
Annotations the server declares
- title: Get briefing
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_decisionOne inbox card in full: the ask, the agent's case, the options, the work behind it.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_decision" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "inbox": it reads mail.
- untrusted-inputThe description's first sentence says "inbox": it reads inbound email, which other people can write.
Description, as the server wrote it One inbox card in full: the ask, the agent's case, the options, the work behind it.
Annotations the server declares
- title: Get decision
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_mediaOne piece of media: its prompt, model, settings, link and state.No findings
Why it is in this group
- The name "get_media" says "get": a word for reading.
Description, as the server wrote it One piece of media: its prompt, model, settings, link and state.
Annotations the server declares
- title: Get media
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_runOne run: its status, cost, and its events (tool calls, text) from `after_seq`.No findings
Why it is in this group
- The name "get_run" says "get": a word for reading.
Description, as the server wrote it One run: its status, cost, and its events (tool calls, text) from `after_seq`.
Annotations the server declares
- title: Get run
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_taskOne task in full: description, criteria, status, the thread's last comments, its pull requests and deliverables.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_task" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "thread": it reads messages.
- untrusted-inputThe description's first sentence says "thread": it reads messages, which other people can write.
Description, as the server wrote it One task in full: description, criteria, status, the thread's last comments, its pull requests and deliverables.
Annotations the server declares
- title: Get task
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_videoA 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…No findings
Why it is in this group
- The name "get_video" says "get": a word for reading.
Description, as the server wrote it 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), `cut_choice` who chose that and why (the Creative Director picks per film; `engine` follows when she reaches the cut), and `code` where a code film stands (version, checked, errors; get_video_code for the project).
Annotations the server declares
- title: Get video
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_video_codeA video's code film (a Remotion project its storyboard compiles to): the version, the head's files (paths), the scenes, the last check (ok, errors with file and line, warnings), th…Reads private dataNo findings
Why it is in this group
- The name "get_video_code" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "file": it reads files.
- private-dataThe input names a file (input.file), and the tool reads: it reads files.
Description, as the server wrote it A video's code film (a Remotion project its storyboard compiles to): 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.
Annotations the server declares
- title: Get video code
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_agentsThe team: every agent with its role, title, state and whether it is on.No findings
Why it is in this group
- The name "list_agents" says "list": a word for reading.
Description, as the server wrote it The team: every agent with its role, title, state and whether it is on. Chat with one through ask_agent.
Annotations the server declares
- title: List agents
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_artifactsWhat the team made: documents, research, decks, tables, videos, designs (`type`), delivered work, `q` searches, `starred` only yours.Reads private dataNo findings
Why it is in this group
- The name "list_artifacts" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "document": it reads documents.
Description, as the server wrote it What the team made: documents, research, decks, tables, videos, designs (`type`), delivered work, `q` searches, `starred` only yours.
Annotations the server declares
- title: List artifacts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_briefingsThe CEO's board briefings (spoken updates), newest first, with their text.No findings
Why it is in this group
- The name "list_briefings" says "list": a word for reading.
Description, as the server wrote it The CEO's board briefings (spoken updates), newest first, with their text.
Annotations the server declares
- title: List briefings
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_chatsYour chats across the team (pinned first, then recent); `q` searches titles and content.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_chats" says "list": a word for reading.
What it can reach
- private-dataThe name "list_chats" says "list" and "chat": it reads messages.
- private-dataThe description's first sentence says "chat": it reads messages.
- untrusted-inputThe name "list_chats" says "list" and "chat": it reads messages, which other people can write.
- untrusted-inputThe description's first sentence says "chat": it reads messages, which other people can write.
Description, as the server wrote it Your chats across the team (pinned first, then recent); `q` searches titles and content.
Annotations the server declares
- title: List chats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_companiesThe companies you belong to (id, name, stage, kind).No findings
Why it is in this group
- The name "list_companies" says "list": a word for reading.
Description, as the server wrote it The companies you belong to (id, name, stage, kind). Other tools take `company`: one of these ids. Start here.
Annotations the server declares
- title: List companies
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_decisionsThe Board inbox: cards waiting for you (`status` pending, default), or decided ones.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_decisions" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "inbox": it reads mail.
- untrusted-inputThe description's first sentence says "inbox": it reads inbound email, which other people can write.
Description, as the server wrote it 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`.
Annotations the server declares
- title: Inbox
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_mediaThe media library: images, clips, voice lines and music, with filters (`kind` image|video|audio, `source` generated|uploaded|recorded|rendered, `q`, `starred`).No findings
Why it is in this group
- The name "list_media" says "list": a word for reading.
Description, as the server wrote it The media library: images, clips, voice lines and music, with filters (`kind` image|video|audio, `source` generated|uploaded|recorded|rendered, `q`, `starred`).
Annotations the server declares
- title: Media library
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_postsSocial posts: upcoming, published or failed (`status`), per `account`.Reads text others writeNo findings
Why it is in this group
- The name "list_posts" says "list": a word for reading.
What it can reach
- untrusted-inputThe name "list_posts" says "list" and "post": it reads posts, which other people can write.
- untrusted-inputThe description's first sentence says "post": it reads posts, which other people can write.
Description, as the server wrote it Social posts: upcoming, published or failed (`status`), per `account`.
Annotations the server declares
- title: List posts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_runsAgent runs: `status` active (queued, running), finished, or a comma list; `agent` an agent id.No findings
Why it is in this group
- The name "list_runs" says "list": a word for reading.
Description, as the server wrote it Agent runs: `status` active (queued, running), finished, or a comma list; `agent` an agent id.
Annotations the server declares
- title: List runs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_tasksThe work board: tasks by status, assignee role or goal; `q` searches titles; `mine: true` only what you asked for (your requests).No findings
Why it is in this group
- The name "list_tasks" says "list": a word for reading.
Description, as the server wrote it The work board: tasks by status, assignee role or goal; `q` searches titles; `mine: true` only what you asked for (your requests).
Annotations the server declares
- title: List tasks
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_videosThe Studio's videos (productions): title, status, shape, length.No findings
Why it is in this group
- The name "list_videos" says "list": a word for reading.
Description, as the server wrote it The Studio's videos (productions): title, status, shape, length.
Annotations the server declares
- title: List videos
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
read_chatA chat's messages, oldest first (the last reply's status says whether it is still answering).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "read_chat" says "read": a word for reading.
What it can reach
- private-dataThe name "read_chat" says "read" and "chat": it reads messages.
- private-dataThe description's first sentence says "chat": it reads messages.
- untrusted-inputThe name "read_chat" says "read" and "chat": it reads messages, which other people can write.
- untrusted-inputThe description's first sentence says "chat": it reads messages, which other people can write.
Description, as the server wrote it A chat's messages, oldest first (the last reply's status says whether it is still answering).
Annotations the server declares
- title: Read chat
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
wait_for_videoWait while a video’s media or render is being made (up to `wait_seconds`, default 60, max 120) and return where it stands: shots generating, the render, what is still missing.No findings
Why it is in this group
- The name "wait_for_video" says "wait": a word for reading.
Description, as the server wrote it Wait while a video’s media or render is being made (up to `wait_seconds`, default 60, max 120) and return where it stands: shots generating, the render, what is still missing. Call it again if it is still going.
Annotations the server declares
- title: Wait for the video
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
whoamiThe signed-in person: name, email, preferences, and how many companies they are in.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "whoami" says "whoami": a word for reading.
What it can reach
- private-dataThe description's first sentence says "email": it reads mail.
- untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
Description, as the server wrote it The signed-in person: name, email, preferences, and how many companies they are in.
Annotations the server declares
- title: Who am I
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
320 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 4 outbound tools breaks every one.
- Reads private data8
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write10
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out4
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__autopoiesis-ai__check_posts",
"mcp__autopoiesis-ai__continue_chat",
"mcp__autopoiesis-ai__create_posts",
"mcp__autopoiesis-ai__import_video_plan"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
Tools11 added, 2 removed, 65 changed.+11 added−2 removed~65 changedView diff
- Added:api_referenceChanges things
- Added:app_decideDeletes or cancels
- Added:app_mediaChanges things
- Added:app_refresh_inboxChanges things
- Added:app_videoChanges things
- Added:attach_mediaChanges things
- Added:buy_creditsChanges things
- Added:open_in_appChanges things
- Added:upload_mediaChanges things
- Added:wait_for_videoOnly reads
- Added:whoamiOnly reads
- Removed:read_api_contract
- Removed:read_studio_guide
- Changed:activityChanges thingstitleinputSchemaannotations
- Changed:api_requestDeletes or cancelstitledescriptioninputSchemaannotations
- Changed:apply_chat_actionChanges thingstitledescriptioninputSchemaannotations
- Changed:artifact_feedbackChanges thingstitleinputSchemaannotations
- Changed:ask_agentChanges thingstitledescriptioninputSchemaannotations
- Changed:brand_brainChanges thingstitleinputSchemaannotations
- Changed:brief_me_nowChanges thingstitleinputSchemaannotations
- Changed:budgetChanges thingstitledescriptioninputSchemaannotations
- Changed:cancel_taskDeletes or cancelstitledescriptioninputSchemaannotations
- Changed:check_postsChanges thingstitledescriptioninputSchemaannotations
- Changed:check_video_codeChanges thingstitleinputSchemaannotations
- Changed:comment_on_decisionChanges thingstitleinputSchemaannotations
- Changed:comment_on_taskChanges thingstitleinputSchemaannotations
- Changed:company_overviewChanges thingstitledescriptioninputSchemaannotations
- Changed:continue_chatCan't be undonetitleinputSchemaannotations
- Changed:convert_video_to_codeChanges thingstitledescriptioninputSchemaannotations
- Changed:create_postsDeletes or cancelstitledescriptioninputSchemaannotations
- Changed:create_taskChanges thingstitleinputSchemaannotations
- Changed:create_videoChanges thingstitleinputSchemaannotations
- Changed:critique_videoChanges thingstitledescriptioninputSchemaannotations
- Changed:decideDeletes or cancelstitledescriptioninputSchemaannotations
- Changed:delete_videoDeletes or cancelstitledescriptioninputSchemaannotations
- Changed:design_video_cardsChanges thingstitledescriptioninputSchemaannotations
- Changed:export_videoChanges thingstitledescriptioninputSchemaannotations
- Changed:founder_homeChanges thingstitleinputSchemaannotations
- Changed:generate_mediaChanges thingstitledescriptioninputSchemaannotations
- Changed:get_artifactOnly readstitleinputSchemaannotations
- Changed:get_briefingOnly readstitleinputSchemaannotations
- Changed:get_decisionOnly readstitleinputSchemaannotations
- Changed:get_mediaOnly readstitleinputSchemaannotations
- Changed:get_runOnly readstitleinputSchemaannotations
- Changed:get_taskOnly readstitleinputSchemaannotations
- Changed:get_videoOnly readstitledescriptioninputSchemaannotations
- Changed:get_video_codeOnly readstitledescriptioninputSchemaannotations
- Changed:import_video_planChanges thingstitledescriptioninputSchemaannotations
- Changed:ledgerChanges thingstitleinputSchemaannotations
- Changed:list_agentsOnly readstitleinputSchemaannotations
- Changed:list_artifactsOnly readstitledescriptioninputSchemaannotations
- Changed:list_briefingsOnly readstitleinputSchemaannotations
- Changed:list_chatsOnly readstitleinputSchemaannotations
- Changed:list_companiesOnly readstitledescriptioninputSchemaannotations
- Changed:list_decisionsOnly readstitleinputSchemaannotations
- Changed:list_mediaOnly readstitleinputSchemaannotations
- Changed:list_postsOnly readstitleinputSchemaannotations
- Changed:list_runsOnly readstitleinputSchemaannotations
- Changed:list_tasksOnly readstitleinputSchemaannotations
- Changed:list_videosOnly readstitleinputSchemaannotations
- Changed:make_video_mediaChanges thingstitledescriptioninputSchemaannotations
- Changed:marketing_learningsChanges thingstitledescriptioninputSchemaannotations
- Changed:nudge_runChanges thingstitleinputSchemaannotations
- Changed:read_chatOnly readstitleinputSchemaannotations
- Changed:render_videoChanges thingstitledescriptioninputSchemaannotations
- Changed:restore_video_codeChanges thingstitleinputSchemaannotations
- Changed:set_video_shotsChanges thingstitledescriptioninputSchemaannotations
- Changed:social_accountsChanges thingstitledescriptioninputSchemaannotations
- Changed:studio_overviewChanges thingstitleinputSchemaannotations
- Changed:studio_settingsChanges thingstitleinputSchemaannotations
- Changed:update_mediaChanges thingstitledescriptioninputSchemaannotations
- Changed:update_taskChanges thingstitleinputSchemaannotations
- Changed:update_videoChanges thingstitleinputSchemaannotations
- Changed:video_code_versionsChanges thingstitleinputSchemaannotations
- Changed:video_framesChanges thingstitleinputSchemaannotations
- Changed:video_keyframesChanges thingstitledescriptioninputSchemaannotations
- Changed:video_planChanges thingstitleinputSchemaannotations
- Changed:write_video_codeChanges thingstitleinputSchemaannotations
Install
Pinned to version 0.6.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http autopoiesis-ai https://autopoiesis-mcp-267405155162.us-west1.run.app/mcp --header 'Authorization: <your-authorization>'claude mcp add --transport http autopoiesis-ai https://autopoiesis-mcp-267405155162.us-west1.run.app/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__autopoiesis-ai__list_companies",
"mcp__autopoiesis-ai__whoami",
"mcp__autopoiesis-ai__list_briefings",
"mcp__autopoiesis-ai__get_briefing",
"mcp__autopoiesis-ai__list_decisions",
"mcp__autopoiesis-ai__get_decision",
"mcp__autopoiesis-ai__list_tasks",
"mcp__autopoiesis-ai__get_task",
"mcp__autopoiesis-ai__list_agents",
"mcp__autopoiesis-ai__read_chat",
"mcp__autopoiesis-ai__list_chats",
"mcp__autopoiesis-ai__list_runs",
"mcp__autopoiesis-ai__get_run",
"mcp__autopoiesis-ai__list_artifacts",
"mcp__autopoiesis-ai__get_artifact",
"mcp__autopoiesis-ai__list_media",
"mcp__autopoiesis-ai__get_media",
"mcp__autopoiesis-ai__list_videos",
"mcp__autopoiesis-ai__get_video",
"mcp__autopoiesis-ai__wait_for_video",
"mcp__autopoiesis-ai__get_video_code",
"mcp__autopoiesis-ai__list_posts"
],
"ask": [
"mcp__autopoiesis-ai__founder_home",
"mcp__autopoiesis-ai__company_overview",
"mcp__autopoiesis-ai__activity",
"mcp__autopoiesis-ai__brief_me_now",
"mcp__autopoiesis-ai__comment_on_decision",
"mcp__autopoiesis-ai__create_task",
"mcp__autopoiesis-ai__update_task",
"mcp__autopoiesis-ai__comment_on_task",
"mcp__autopoiesis-ai__ask_agent",
"mcp__autopoiesis-ai__continue_chat",
"mcp__autopoiesis-ai__apply_chat_action",
"mcp__autopoiesis-ai__nudge_run",
"mcp__autopoiesis-ai__artifact_feedback",
"mcp__autopoiesis-ai__studio_overview",
"mcp__autopoiesis-ai__studio_settings",
"mcp__autopoiesis-ai__generate_media",
"mcp__autopoiesis-ai__create_video",
"mcp__autopoiesis-ai__set_video_shots",
"mcp__autopoiesis-ai__upload_media",
"mcp__autopoiesis-ai__attach_media",
"mcp__autopoiesis-ai__update_video",
"mcp__autopoiesis-ai__make_video_media",
"mcp__autopoiesis-ai__video_keyframes",
"mcp__autopoiesis-ai__critique_video",
"mcp__autopoiesis-ai__render_video",
"mcp__autopoiesis-ai__design_video_cards",
"mcp__autopoiesis-ai__video_plan",
"mcp__autopoiesis-ai__import_video_plan",
"mcp__autopoiesis-ai__export_video",
"mcp__autopoiesis-ai__update_media",
"mcp__autopoiesis-ai__convert_video_to_code",
"mcp__autopoiesis-ai__write_video_code",
"mcp__autopoiesis-ai__check_video_code",
"mcp__autopoiesis-ai__video_frames",
"mcp__autopoiesis-ai__video_code_versions",
"mcp__autopoiesis-ai__restore_video_code",
"mcp__autopoiesis-ai__brand_brain",
"mcp__autopoiesis-ai__social_accounts",
"mcp__autopoiesis-ai__check_posts",
"mcp__autopoiesis-ai__marketing_learnings",
"mcp__autopoiesis-ai__budget",
"mcp__autopoiesis-ai__ledger",
"mcp__autopoiesis-ai__buy_credits",
"mcp__autopoiesis-ai__api_reference",
"mcp__autopoiesis-ai__open_in_app",
"mcp__autopoiesis-ai__app_refresh_inbox",
"mcp__autopoiesis-ai__app_video",
"mcp__autopoiesis-ai__app_media"
],
"deny": [
"mcp__autopoiesis-ai__decide",
"mcp__autopoiesis-ai__cancel_task",
"mcp__autopoiesis-ai__delete_video",
"mcp__autopoiesis-ai__create_posts",
"mcp__autopoiesis-ai__api_request",
"mcp__autopoiesis-ai__app_decide"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as autopoiesis-ai. Review it before you use it.
Capability tags behind 15 rules
- mcp__autopoiesis-ai__whoami private-data, untrusted-input
- mcp__autopoiesis-ai__list_decisions private-data, untrusted-input
- mcp__autopoiesis-ai__get_decision private-data, untrusted-input
- mcp__autopoiesis-ai__get_task private-data, untrusted-input
- mcp__autopoiesis-ai__continue_chat outbound
- mcp__autopoiesis-ai__read_chat private-data, untrusted-input
- mcp__autopoiesis-ai__list_chats private-data, untrusted-input
- mcp__autopoiesis-ai__list_artifacts private-data
- mcp__autopoiesis-ai__upload_media untrusted-input
- mcp__autopoiesis-ai__import_video_plan untrusted-input, outbound
- mcp__autopoiesis-ai__get_video_code private-data
- mcp__autopoiesis-ai__list_posts untrusted-input
- mcp__autopoiesis-ai__check_posts outbound
- mcp__autopoiesis-ai__create_posts outbound
- mcp__autopoiesis-ai__open_in_app untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.github.Autopoiesis-ai/mcp/verify?hash=e9f088d7a60bb0d32aad38a2250e3b96874e79a614f4151690724bb233ac4a4f" | jq -e '.changed == false'Pinned hash e9f088d7a60b, from Nov 2, 2026, 11:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.github.Autopoiesis-ai/mcp/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.github.Autopoiesis-ai/mcp)Source: MCP Registry. Synced Nov 2, 2026, 11:17 UTC.