A repo to list the BrushCue MCP
BrushCue MCP Server
BrushCue MCP is the Model Context Protocol server for BrushCue, a node-based, GPU-accelerated image editing system. It lets MCP clients work with BrushCue projects, assets, graph nodes, renders, and publishing workflows through the same core editing model used by brushcue.com.
Public endpoint:
https://api.brushcue.com/mcp
The server uses OAuth for public MCP clients. Compatible clients should discover the authorization flow and prompt users to sign in with their BrushCue account.
Capabilities
- Browse organizations and projects available to the authenticated BrushCue user.
- Create and rename BrushCue projects.
- Create editing sessions from project revisions.
- Inspect the current project graph, including nodes and connections.
- Add, connect, rename, configure, delete, and collapse graph nodes.
- Create primitive constants for graph inputs, including numbers, strings, vectors, RGB, and RGBA colors.
- Create new nodes from BrushCue node definitions loaded through
brushcue_context. - Set expression inputs and slider inputs on graph node slots.
- Upload, list, and retrieve image, video, and font assets.
- Execute graph nodes locally for primitive outputs.
- Render composition outputs asynchronously through BrushCue cloud rendering.
- Poll render status and retrieve completed render download URLs.
- Show inline preview and upload widgets in MCP clients that support MCP app resources.
- Publish an editing session as the latest BrushCue project revision.
- Inspect generated WGSL shader source for custom shader nodes.
MCP Tools
Context
| Tool | Capability |
| --- | --- |
| brushcue_context | Loads the BrushCue editing context, including node types, operations, options, and expression syntax. |
Organizations and Projects
| Tool | Capability |
| --- | --- |
| list_organizations | Lists organizations the authenticated user belongs to. |
| list_projects | Lists projects across the user's organizations. |
| create_project | Creates a new project in an organization. |
| rename_project | Renames an existing project. |
| create_session | Creates an editing session for a project revision. |
| publish_session | Saves the current session as a new project revision and makes it the latest revision. |
Assets
| Tool | Capability |
| --- | --- |
| list_assets | Lists ready assets, optionally filtered by image, video, or font. |
| get_asset | Gets asset metadata and a presigned download URL. |
| create_asset | Creates an asset record and returns a presigned upload URL. |
| finish_upload_asset | Marks an uploaded asset as ready. |
| render_upload_widget | Opens an upload widget for clients that support MCP app UI resources. |
Project State and Rendering
| Tool | Capability |
| --- | --- |
| get_project_state | Returns the current graph state for a session, including nodes and connections. |
| run_node | Executes a node. Primitive outputs return immediately; composition outputs create an async cloud render. |
| get_run | Polls an async render and returns status plus a download URL when complete. |
| render_run_preview | Displays a completed render in an inline preview widget for supported clients. |
Graph Editing
| Tool | Capability |
| --- | --- |
| make_connection | Connects one node's output to another node's input slot. |
| make_node_with_definition | Creates a node by BrushCue node definition name. |
| make_int_constant | Creates an integer constant node. |
| make_float_constant | Creates a float constant node. |
| make_string_constant | Creates a string constant node. |
| make_vector2i_constant | Creates a two-component integer vector constant node. |
| make_vector2f_constant | Creates a two-component float vector constant node. |
| make_rgb_constant | Creates an RGB color constant node. |
| make_rgba_constant | Creates an RGBA color constant node. |
| set_expression | Sets an expression input on a node slot. |
| set_slider | Sets a slider input on a node slot. |
| set_name | Sets a node display name. |
| delete_or_collapse | Deletes a node, or collapses a composition node into its dependency when possible. |
| view_custom_shader_source | Shows generated WGSL source for custom shader nodes. |
Typical Workflow
- Call
list_projectsorcreate_project. - Call
create_sessionfor the project. - Call
brushcue_contextto load available node definitions and expression syntax. - Call
get_project_stateto inspect the current graph. - Use graph editing tools to add, connect, and configure nodes.
- Call
run_nodeand pollget_runfor render output. - Call
render_run_previewwhen an inline preview is useful. - Call
publish_sessionto save the session back to BrushCue.
Related Links
- BrushCue website: brushcue.com
- BrushCue tools: brushcue.com/tools
- Python documentation: brushcue.com/docs/py
- MCP endpoint: api.brushcue.com/mcp