Autopo MCP
Run your AI-run company from Claude Code, Codex, Cursor, Claude Desktop or ChatGPT.
Briefings, the Board inbox, tasks, the team, the Studio, marketing, money: as you, with your permissions.
you › make a 20-second teaser for our launch
› brand_brain · create_video · ask_agent creative · video_keyframes (confirm $0.09) · critique_video
› make_video_media (confirm $1.20) · wait_for_video · render_video · open_in_app
you › approve the hosting card and tell Kaveh to go
Connect in a minute
- In the app: Connectors → MCP → Make the token. Copy it; it is shown once.
- Paste one line into your tool.
Claude Code
claude mcp add --transport http autopoiesis https://autopoiesis-mcp-267405155162.us-west1.run.app/mcp --header "Authorization: Bearer apk_…"
Codex (~/.codex/config.toml, then export AUTOPOIESIS_TOKEN=apk_…)
[mcp_servers.autopoiesis]
url = "https://autopoiesis-mcp-267405155162.us-west1.run.app/mcp"
bearer_token_env_var = "AUTOPOIESIS_TOKEN"
Cursor (~/.cursor/mcp.json, or the Add to Cursor button on the Connectors page)
{ "mcpServers": { "autopoiesis": { "url": "https://autopoiesis-mcp-267405155162.us-west1.run.app/mcp", "headers": { "Authorization": "Bearer apk_…" } } } }
Claude Desktop (claude_desktop_config.json): inline views render here.
{ "mcpServers": { "autopoiesis": { "command": "npx", "args": ["-y", "@autopo/mcp"], "env": { "AUTOPOIESIS_TOKEN": "apk_…" } } } }
Prefer to run the server on your machine with any tool? npx -y @autopo/mcp with AUTOPOIESIS_TOKEN set is the whole install.
What it does
| 94 tools | the company at a glance, briefings, the inbox, tasks, the team's chats (and coworkers in them), runs, knowledge (your own artifacts and public links), the Studio (with your own footage uploaded from your machine, and videos cut as code), marketing and the competitor radar, money and the plan, errands Peyk runs on the web, the Shopify store, and api_request for every other endpoint of the REST API with api_reference as the manual |
| Asks before it spends | anything that spends credits or cannot be undone opens a confirmation dialog in your tool, with the cost: generate media, keyframes, clips, decide a card, post, cancel, delete |
| Inline views | the inbox, a video's storyboard, the media library, your home, the money page and an artifact card (its page in Autopo and its public link) render inside Cursor, Claude Desktop and ChatGPT (MCP Apps); Claude Code and Codex CLI get the same results as text |
| Docs | docs.autopoiesis.app: quickstart per client, guides, the tool reference, the REST API |
| Prompts | /autopoiesis:make_a_teaser, morning_review, decide_inbox, studio_status, weekly_marketing |
| Resources | the Studio guide, the teaser guide, the code-film guide, a company's home and brand brain, the API's OpenAPI document |
| Both protocol eras | the stateless 2026-07-28 revision and the 2025 initialize handshake today's clients speak, from one endpoint |
Everything happens as you: your permissions, member access areas, limits and billing hold exactly as in the app, and it all shows in the app as you did it. A token can be scoped to one company and revoked at any time; it can never make tokens, delete the account or hand a company over.
The teaser loop
brand_brain → create_video {title, brief, seconds: 20}
→ get_video → ask_agent {agent: "creative", production: <id>, message: "tighten the shots"} → apply_chat_action
→ studio_overview → update_video {style: {models}} (only if the defaults don't fit)
→ video_keyframes (you confirm the cents) → wait_for_video → critique_video {stage: "keyframes"}
→ make_video_media (you confirm the cost) → wait_for_video → critique_video {stage: "clips"}
→ render_video (free) → wait_for_video → the render link, or open_in_app {what: "video", id}
The make_a_teaser prompt runs this for you, step by step, stopping at every dialog.
Code films
Rose picks how each film is cut, and you can override her. In code, a storyboard compiles to a small Remotion project you edit file by file from your terminal, checked on every write, with free stills and renders. The same seven tools, with the same names and arguments, are on the hosted server.
convert_video_to_code {video} → version 1 from the compiler, the scenes, the first check
→ get_video_code {video} · {video, file: "src/Film.tsx"}
→ write_video_code {video, files: [{path, content}], note} (a new version, checked at once: tsc + the lint, file:line)
→ check_video_code → video_frames {frames | every_seconds} (up to 12 stills, free)
→ render_video (free) → wait_for_video · video_code_versions / restore_video_code to go back
The guide: autopoiesis://guide/code-film, or docs.autopoiesis.app/guides/code-film.
Run it yourself
npx -y @autopo/mcp # stdio, for a tool on this machine (AUTOPOIESIS_TOKEN)
npx -y @autopo/mcp --http # Streamable HTTP on PORT, one token per request (Authorization: Bearer)
| Variable | What it is |
|---|---|
AUTOPOIESIS_TOKEN | your personal access token (stdio only; HTTP takes it per request) |
AUTOPOIESIS_API_URL | the platform API (default: the production API) |
AUTOPOIESIS_APP_URL | the web app, for links (default https://app.autopoiesis.app) |
AUTOPOIESIS_MCP_URL | this server's public address when hosted (names the Claude sandbox domain for the views) |
AUTOPOIESIS_MEDIA_DOMAINS | extra origins the views may load media from, comma separated |
A Dockerfile builds the hosted server (Cloud Run: PORT is set for you; run one instance, because 2025-era sessions and their dialogs live in one instance's memory).
Develop
The source lives in Autopo's repository; this package ships the built server and views.
npm install
npm run typecheck # server + views
npm test # the server against an in-memory API, both protocol eras
npm run build # dist/ (server) and dist/ui/*.html (the views, one file each)
npm run docs:tools # docs/tools/*.mdx from the server's own tool list
npm run dev # the stdio server from source (tsx)
npx @modelcontextprotocol/inspector node dist/cli.js
Layout: src/tools/* (the tools, grouped the way the app is), src/kit.ts (sessions, elicitation, the define() wrapper), src/apps.ts (the inline views' resources and the app-only tools their buttons call), src/http.ts (the hosted server, both protocol legs), ui/* (the views, React, built to one HTML file each), docs/ (the documentation site, Mintlify), test/ (an in-memory API and the end-to-end tests).
Security
- The token is a hashed secret the platform checks on every call; this server forwards it and never stores it.
- Every tool is a thin wrapper over the public REST API, so nothing here can do what you could not do in the app.
- Confirmations are host-enforced dialogs (MCP elicitation), not instructions the model may skip. Hosts that cannot show them get a refusal, never a silent spend.
- Each tool, resource and prompt call is recorded in your account's activity on the platform: its name, how it ended, and its arguments with secrets masked and long text cut. Results are not kept.
- Report a vulnerability to [email protected].
MIT © Autopoiesis. Questions: [email protected]