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 +
Authorizationheader) 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_models → create_session → apply_ops_batch (build
the graph) → auto_layout → estimate_credits → run_flow → wait_for_run.
list_examples returns ready-to-apply op recipes.
Tools (37)
- Sessions —
whoami,create_session,list_sessions,get_dag,copy_session,delete_session - DAG ops —
add_node,add_node_with_inputs,update_node,remove_node,add_edge,update_edge,remove_edge,apply_ops_batch,set_uploaded_assets - Structure —
add_group,move_to_group,ungroup,replace_edge,insert_node_on_edge,bypass_node,list_node_io,auto_layout - Runs —
run_flow,get_run_status,list_runs,wait_for_run,estimate_credits - Generate / catalog —
execute_utility_node,wait_for_task,generate_text,generate_asset,list_models,get_model_schema,upload_asset - Docs —
get_cheatsheet,list_examples(also exposed as MCP resourcesyuuno://cheatsheetandyuuno://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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yuuno_mcp-0.1.4.tar.gz.
File metadata
- Download URL: yuuno_mcp-0.1.4.tar.gz
- Upload date:
- Size: 97.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55faf1a15230de3149a8861b66b6d39cc1118443dacb1132fa0227767f543a34
|
|
| MD5 |
f8314cfbe843defb0c37eb1b7f88a2f7
|
|
| BLAKE2b-256 |
213a7ddb62f60ac86b789607cab2001bb99232bd3a51c423ae0d690270ef97e4
|
File details
Details for the file yuuno_mcp-0.1.4-py3-none-any.whl.
File metadata
- Download URL: yuuno_mcp-0.1.4-py3-none-any.whl
- Upload date:
- Size: 75.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e57619187e4fb7c03064350a218bed6d8e3b55168d6c8efabede737ed44a9832
|
|
| MD5 |
0291c2dbeca4c43f5e46a4357a7685c4
|
|
| BLAKE2b-256 |
f67a39ac51d7c5b44a8524db59d498a447fb207a38a272ef96a0174d1da429c2
|