Skip to main content

MCP server for yuuno.tech adflow — build and run AI media canvases from Claude/Cursor.

Project description

yuuno-mcp

MCP server for yuuno.tech adflow — drive the node-based AI media canvas from an MCP client (Claude Code, Claude Desktop, Cursor, …). You become an agent on the board: create sessions, wire up image/video/audio/text generation nodes, run flows, and read results — the same canvas the in-app chat edits, so your changes appear live in the browser.

Get an API key

Mint a workspace key at app.yuuno.tech → Settings → Organization → API (https://app.yuuno.tech/settings/organization/api). It's a 40-character hex string scoped to your workspace. Rotating it (Reset) invalidates the previous key for every connected client in that workspace.

Connect

Claude Code

Local (stdio, recommended — works everywhere):

claude mcp add yuuno -e YUUNO_API_KEY=<your-40-hex-key> -- uvx yuuno-mcp

Hosted (Streamable HTTP — no local install):

claude mcp add --transport http yuuno https://mcp.yuuno.tech/mcp \
  --header "Authorization: Bearer <your-40-hex-key>"

Claude Desktop

Add to claude_desktop_config.json (stdio; Desktop connectors don't pass custom headers, so use stdio):

{
  "mcpServers": {
    "yuuno": {
      "command": "uvx",
      "args": ["yuuno-mcp"],
      "env": { "YUUNO_API_KEY": "<your-40-hex-key>" }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (or a project .cursor/mcp.json):

{
  "mcpServers": {
    "yuuno": {
      "url": "https://mcp.yuuno.tech/mcp",
      "headers": { "Authorization": "Bearer ${env:YUUNO_API_KEY}" }
    }
  }
}

Cursor also supports stdio ("command": "uvx", "args": ["yuuno-mcp"]).

Client support note: remote (hosted HTTP + Authorization header) works today in Claude Code and Cursor. Claude Desktop and claude.ai custom connectors don't pass static headers — use stdio (uvx) for Desktop; OAuth for claude.ai is a later release.

First moves for the agent

Call get_cheatsheet once at the start of a session — it explains the 18 node types, the DAG op rules, the run lifecycle, and model selection. Then a typical build is: list_modelscreate_sessionapply_ops_batch (build the graph) → auto_layoutestimate_creditsrun_flowwait_for_run. list_examples returns ready-to-apply op recipes.

Tools (37)

  • Sessionswhoami, create_session, list_sessions, get_dag, copy_session, delete_session
  • DAG opsadd_node, add_node_with_inputs, update_node, remove_node, add_edge, update_edge, remove_edge, apply_ops_batch, set_uploaded_assets
  • Structureadd_group, move_to_group, ungroup, replace_edge, insert_node_on_edge, bypass_node, list_node_io, auto_layout
  • Runsrun_flow, get_run_status, list_runs, wait_for_run, estimate_credits
  • Generate / catalogexecute_utility_node, wait_for_task, generate_text, generate_asset, list_models, get_model_schema, upload_asset
  • Docsget_cheatsheet, list_examples (also exposed as MCP resources yuuno://cheatsheet and yuuno://examples/<name>)

Configuration

var default purpose
YUUNO_API_KEY workspace API key (40 hex), stdio mode
YUUNO_BACKEND_URL https://api.yuuno.tech Django backend base URL
YUUNO_APP_URL https://app.yuuno.tech SPA base URL (canvas links)
YUUNO_WORKSPACE_ID optional workspace uuid (X-API-ID), stdio only
YUUNO_JWT dev fallback: SimpleJWT access token
MCP_HTTP_HOST / MCP_HTTP_PORT 127.0.0.1 / 8765 --transport http bind

In hosted HTTP mode the key is never held server-side — each request carries its own Authorization: Bearer <key>, verified against the backend, and the server proxies that exact key to Django (no cross-tenant state).

Development

cd mcp
python3.12 -m venv .venv
.venv/bin/pip install -e '.[dev]'
.venv/bin/python -m pytest tests -q

The contract-parity test (tests/test_parity.py) imports adflow.dag_protocol.constants from the monorepo root and asserts the mirrored constants match; it auto-skips outside the monorepo. Deploy artifacts (systemd units, nginx config, operator runbook) are under deploy/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yuuno_mcp-0.1.0.tar.gz (85.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yuuno_mcp-0.1.0-py3-none-any.whl (68.8 kB view details)

Uploaded Python 3

File details

Details for the file yuuno_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: yuuno_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 85.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for yuuno_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 423e9e17d82acc68780def03d92869b7b3cec3f10960509dc6ddba95dd011d10
MD5 054842b8f239acdd5b1b22d2e516dac9
BLAKE2b-256 771648228b9b3b3d93bfd9713d8d7b29a4a185b05135cf9efecd9d3ff651fad3

See more details on using hashes here.

File details

Details for the file yuuno_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: yuuno_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 68.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for yuuno_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 85ea541aae47dcc509f3ef5d7c283eb0506a1a757140eec7631227275abcf3dd
MD5 9f2d48aebac9a152adc52f69d0c03dd0
BLAKE2b-256 9cc65847fbb25716d54e106c1a9b7efc9302d5b5647433b7a2c054a1139b979f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page