NestDaddy

Berrys AI

io.github.GeneralBerrys/berrys-canvas · v0.3.5

Your agent turns product photos into on-brand listing images, ads, and short videos on one canvas.

Connect Remote server

Terminal
claude mcp add --transport http berrys-canvas https://app.berrys.io/api/mcp
~/.cursor/mcp.json
{
  "mcpServers": {
    "berrys-canvas": {
      "url": "https://app.berrys.io/api/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "berrys-canvas": {
      "type": "http",
      "url": "https://app.berrys.io/api/mcp"
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://app.berrys.io/api/mcp

Tools 70 found in our last check

  • playground_projects_list

    List Playground workflows that this OAuth client may read for the current user. Returns accessible project IDs, names and effects, with a truncation indicator.

  • playground_connected_sources_list

    List active Drive, Shopify, Meta Ads, and Gmail accounts and read-only operation names. Uses the signed-in user’s connected accounts and project access. Returns connected accounts and available read operations.

  • playground_connected_source_schema

    Get the current exact input schema and tool version for one selected account and allowlisted read operation. Returns the operation version, input schema and pagination guidance.

  • playground_connected_source_read

    Execute one allowlisted read with the exact connected account ID and discovered tool version. Returns bounded source data and a receipt; no external write or export is possible. Returns bounded source data, a provenance receipt and an optional next-page token.

  • playground_external_link_inspect

    Fetch bounded metadata for an explicitly supplied HTTPS social-platform link. This does not watch its video or audio. Requires a creative-task grant because it invokes an external scraper. Returns source metadata, coverage, provenance and a content hash; it does not imply full v…

  • playground_project_skill_propose

    Submit instructional Markdown for human review in Playground. The proposal is inactive and grants no tools, connections, or billing rights. Returns skill and proposal IDs, version and proposed status.

  • playground_canvas_read

    Read the current node graph and revision for a Berrys Canvas Playground workflow. Returns the graph, current revision and Playground URL with a canvas preview.

  • playground_node_types_list

    Discover every Playground node type, what it consumes and produces, and which agent actions are currently supported. Use this before planning graph changes.

  • playground_nodes_search

    Search node IDs, types, titles, text, and prompts. Returns bounded summaries with pagination.

  • playground_video_quote

    Quote a supported text-to-video model for one prepared clip. This is read only and does not submit a job. Returns model pricing and the quoted video settings.

  • playground_video_batch_quote

    Read the exact prepared text-to-video shot inputs and total credit ceiling in the requested order. This does not submit or approve jobs. Returns per-node video quotes and the total credit cost.

  • playground_image_quote

    Read the current credit cost for one image and up to three image references. Does not submit a job. Returns model pricing and the quoted image settings.

  • playground_media_jobs_list

    List recent agent image and video dispatch receipts for an authorized Playground project. Returns media job receipts and their current statuses.

  • playground_media_job_get

    Reconcile and read one media dispatch receipt by ID. Completed images include a native image preview, original media link and Playground URL; display the native image content when supported. Pass waitSeconds (up to 25) to have the server wait for the job to finish (completed, fa…

  • playground_media_job_cancel

    Cancel one queued agent image or video job and release its credit hold. A processing provider job cannot be cancelled by this tool. Requires project edit access.

  • playground_memory_list

    Read approved project-shared memory and this user’s private memory. Requires project view access. Returns the project’s available memories.

  • playground_output_feedback_list

    Read this user’s accept/change verdicts for media still attached to the Playground project. Requires project view access. Returns recorded output feedback for the project.

  • playground_memory_propose

    Remember a user decision or verified project fact, with optional source node citations. It takes effect immediately: the Playground agent reads remembered notes in every later turn, the same way it remembers what users tell it. Requires project edit access.

  • playground_approvals_list

    Read pending proposals, exact scopes, expiry, and price ceilings for the current user and project.

  • playground_generation_confirm

    After explicit user confirmation of exact inputs and total credits, submit all selected direct-generation approvals from one run in one call. Pass confirmation.items and totalCredits from the prepared request as items and maxCredits. Validates all client/user/run bindings before…

  • playground_approval_decide

    After showing the exact prompts, references and total credits in chat and receiving the user’s explicit confirmation, approve or reject one direct generation request created by this client. Approval submits a paid job. Pass its inputFingerprint and maxCredits from the prepared r…

  • playground_run_cancel

    Stop further agent effects for a run. Provider jobs already submitted may continue and retain their receipts and charges.

  • playground_film_assembly_retry

    After two failed assembly attempts, validate the ordered Playground clips and queue another bounded FFmpeg assembly attempt. This does not submit a paid media generation job.

  • playground_run_delivery

    Read a run’s final response and persisted canvas or media receipts, with native image previews (up to four) and original media links. Display the native image content when supported; canvasUrl is a link, not a command to open a browser. For more than four images, follow previewP…

  • playground_media_upload_begin

    Create a short-lived signed URL for one image, video, or audio reference. Upload bytes to signedUrl with the declared Content-Type, then call playground_media_upload_complete. The URL is scoped to your user, project, and OAuth client. For a file attached in chat, prefer playgrou…

  • playground_media_upload_complete

    Verify the signed upload by server-owned path, actual byte size and media signature, then add one editable file node at the current canvas revision. Repeating the same upload ID returns the original node receipt. Returns the created node ID, canvas revision and replay status.

  • playground_storyboard_prepare

    Create ready-to-generate video shot nodes connected to text nodes inside a selected text group. This only prepares nodes; it does not submit paid video jobs. Requires the latest canvas revision. Returns shot node IDs, source node ID, optional stitch/group IDs and revision.

  • playground_canvas_add_text

    Add an editable text node to a Playground workflow. Supply the latest canvas revision; stale edits are rejected. Returns the text node ID, updated revision and replay status.

  • playground_canvas_update_text

    Replace the editable text content of an existing text node. Requires project edit access, the node ID and the current expectedRevision from canvas_read. Reuse idempotencyKey only for an identical retry. On revision_conflict, read the canvas and rebuild the change. Returns the no…

  • playground_canvas_update_node_layout

    Update only the common title and/or canvas position of any user-facing Playground node. This is non-paid, revision-checked, idempotent, and returns the previous values for a follow-up undo command. Node-specific content is not changed.

  • playground_canvas_apply_operations

    Apply one atomic, revision-checked, idempotent batch of non-paid canvas edits: create_node (text, image, video, video-stitch, comment, image-compare, output-gallery, video-frame-grab, list-node), update_node, connect, disconnect, group, ungroup, delete and tidy. Refer to nodes c…

  • playground_run_revert

    Undo every canvas change one agent run made, newest first, as one new revision. If someone has edited those nodes since, nothing changes and the conflicting node/edge IDs are returned; pass force=true only after confirming the later edits may be discarded. Generated media and cr…

  • playground_canvas_snapshots_list

    List recent whole-canvas snapshots taken before agent runs, MCP writes, reverts and restores. Read-only. Returns snapshot IDs, revisions, reasons and node counts.

  • playground_canvas_snapshot_restore

    Replace the whole canvas with a snapshot, as one new revision. The current canvas is snapshotted first, so the restore can itself be undone. Discards every change made after the snapshot; prefer playground_run_revert for undoing one run.

  • playground_capabilities_discover

    Discover what you can make with Berrys without selecting or reading a project. Omit projectId for a general overview. For a chosen project, include projectId to check permissions before editing. Internal flags are for tool routing; explain only task-relevant limits to the user.…

  • playground_model_resolve

    Read-only. Resolve user shorthand such as Seedream 5.0, Nano Banana 2 or Seedance 2 Mini against enabled models. Case, punctuation and trailing .0 are normalized. Unique matches return canonical IDs; ambiguous names and typos return suggestions for clarification. Never silently…

  • playground_models_list

    Discover enabled image and/or video models with aspect ratios, durations, reference requirements, whether the agent can run them, and price: baseCredits (one image, or the cheapest supported video duration) and creditsByDuration for videos. Prices are list prices for planning; g…

  • playground_node_get

    Read one node by ID with its incoming and outgoing connections, its group children, and the current canvas revision. Cheaper than reading the whole graph.

  • playground_web_page_read

    Fetch a public HTTPS page (product page, article, landing page, or social post) with private-network, size and type checks, and return its title, description, card, JSON-LD product data, headings, main text and images with source URL, retrieval time and content hash. Social link…

  • playground_canvas_arrange

    Arrange loose nodes as a block, or re-lay out a group’s children, as one revision-checked, idempotent, non-paid revision (the tidy operation of playground_canvas_apply_operations). Give nodeIds or groupId.

  • playground_memory_search

    Search approved project-shared memory and this user’s private memory by words in their content, with offset/limit pagination. Requires the memory:read grant. Returns matching memories, total count and next-page offset.

  • playground_canvas_open

    Return the authorized project URL focused on selected node IDs. If your host has an in-app browser, open it beside chat and reuse that project tab. Otherwise show the link. This tool does not itself control a browser or prove the user is signed in.

  • playground_context_current

    Use only when the user asks to work on their open project or selection. Return lightweight context from an authorized editor active in the last 2 minutes. Never choose a recent or unrelated project. General questions about Berrys do not need this tool. Does not open or render a…

  • playground_project_create

    Create a new, empty Playground project owned by the signed-in user. For a fresh generation request with no named, linked or conversation-established project, create one automatically with a concise name from the brief; do not ask for separate project-creation permission or inspe…

  • playground_brands_list

    List brands owned by the connected account. Use when the user wants to choose existing brand rules. Does not select an active brand, open a project or spend credits. Returns the user’s saved brands and their identifying details.

  • playground_brand_get

    Read the connected account’s selected brand and saved Brand DNA. Does not change the account’s active brand or apply the rules to a generation. Returns the selected brand’s saved Brand DNA and creative guidance.

  • playground_skills_discover

    Explore built-in playbooks without opening or creating a project. Search by query/category and follow nextOffset. Include projectId only to include that project’s private skills after an access check. Skills teach a method; they do not grant permissions or spend credits. Returns…

  • playground_skill_load

    Load exact versioned instructions. Built-in skills need no projectId. Private project skills require projectId and scope: project, with current read access. Does not generate media or grant permissions.

  • playground_actions_discover

    Discover implemented media editing and canvas actions. No project needed to browse; include projectId to check its permissions. By default, omit unavailable actions. Does not inspect a canvas, enable a feature, edit media or spend credits. Follow each action’s tool schema when a…

  • playground_node_run

    Run the generation already configured on 1–20 existing image, video or audio nodes. Image: prompt (its Text node), modelId, aspectRatio, wired references. Video: instructions, modelId, aspectRatio, duration, wired references and first/last frames. Audio: the node's own instructi…

  • playground_media_generate

    Batch-generate 1–20 images, videos or audio tracks in one request. Each image/video item becomes a new node, with its prompt Text node and wired referenceNodeIds; each audio item becomes an audio node holding its words (prompt), modelId (default minimax:speech-2.8-hd), voice or…

  • playground_content_prepare

    The easiest way to start making content. Give a short brief and one entry per output you need; intendedUse is optional. You write each image or video prompt yourself: look at the reference image, describe the product (type, colour, material, details that must not change) and the…

  • playground_workflow_search

    Find accessible saved project workflows by name. Returns workflow IDs for inspection and staged execution. This does not search public templates.

  • playground_workflow_inspect

    Read typed source input contracts, generation dependencies, completed outputs, pending/active work and blockers. Returns the next ready stage without spending. Use before running a saved campaign. Returns typed editable inputs, dependencies, stages and workflow readiness.

  • playground_workflow_inputs_set

    Save text/List inputs, prompts, formats, durations, audio settings and image reference choices from workflow_inspect. Free, atomic, revision checked and idempotent. Completed, active and approved steps are read-only, including their shared inputs. Does not generate or approve an…

  • playground_workflow_quote

    Quote only the next ready empty steps from workflow_inspect, up to 20 outputs. Does not edit the canvas, prepare approval or submit generation. Safe for the chat workflow form. Returns the exact stageNodeIds, revision and quoteId for a later chat-confirmed playground_workflow_ru…

  • playground_workflow_run

    Run a saved workflow through its ready image/video/audio stages. quote:true prices up to 20 ready nodes including connected List batches. Pass the returned stageNodeIds, expectedRevision, quoteId and a NEW idempotencyKey with quote:false to prepare chat confirmation. Does not au…

  • playground_media_retry_quote

    Read fresh receipts for one run and quote replacements only for confirmed failed items, including individual List outputs. Completed, pending, active, uncertain and changed-reference items are excluded. Optional dispatchIds selects failed items explicitly. Quote only: no canvas…

  • playground_brief_start

    Start the Berrys agent on a brief and return at once with runId and canvasUrl; it never waits. Follow it with playground_run_events (afterSeq, optionally waitSeconds) for progress, approvals and the final response, and playground_run_diagnose if it fails. projectId defaults to t…

  • playground_run_events

    Return only what changed in a run since afterSeq: compact events, a status line, pending approvals, the final response once it ends, nextAfterSeq, and retry_after_seconds (wait that long before polling again; null once the run has ended). Give runId, or conversationId for the la…

  • playground_run_diagnose

    One report for a run: verdict (succeeded, failed, waiting_approval, running, cancelled), the failed step, the last good step, failed media jobs with errors, and the suggested next action. Read-only.

  • playground_run_steer

    Add a note to a production plan that is running: it applies to steps that have not started and later outputs are reviewed against it. Steps already generating are unchanged. Ended runs cannot be steered; send playground_brief_start with the run’s conversationId instead. Requires…

  • playground_memory_proposal_review

    Approve or reject one proposed memory note for this project, as the user would in Berrys. Approved notes are read by the Berrys agent on later turns; rejected ones are archived. External apps cannot approve memory proposals; the user must review them in Berrys.

  • playground_video_extract_frames

    Take the first and/or last frame of a finished clip and place each on the canvas as a Frame Grab node wired from the clip, holding a real stored image. A frame node can then feed an image → video node as first_frame or last_frame (playground_canvas_apply_operations connect with…

  • playground_media_compose

    Stitch 2–12 finished video nodes, in the given order, into one film. Creates an "Assemble film" (video-stitch) node wired from the clips and queues the existing FFmpeg film worker, which normalizes the clips, concatenates them and attaches the MP4 to that node. Clips must be gen…

  • playground_video_trim

    Cut a finished video node to [startSeconds, endSeconds] on the server. Creates a "Clip" (video-result) node wired from the source, as the in-app Clip tool does, and queues the existing FFmpeg film worker, which cuts the stored clip (re-encoded, frame accurate) and attaches the M…

  • playground_media_compare

    Compare 2–4 images or 2–4 videos side by side on the canvas. Two images fill a Compare (image-compare) node's A/B slots; three or four images feed a Picks (output-gallery) node; videos are grouped in one titled row. Inputs stay where they are except videos, which move into the n…

  • playground_video_analyze

    Read-only facts about one video node: its clip URL, model and settings, frame nodes already taken from it, objective FFmpeg measurements (duration, black segments, silence, loudness) when the server has FFmpeg, and any visual analysis the Berrys agent already made of this exact…

  • playground_asset_import

    Add one image (PNG, JPEG, WebP, ≤8 MB), video (MP4, ≤16 MB) or audio file (MP3 or WAV, ≤12 MB) to the canvas as a file node that can feed image and video generation. Pass exactly one source: file for a file the user attached in this chat (Berrys downloads it itself; no upload st…

  • playground_drive_image_import

    Copy one explicitly selected PNG/JPEG/WebP image (up to 8 MB) from your connected Google Drive account into Berrys reference storage, where generation providers can fetch it. Returns a File nodeId: pass it in referenceNodeIds to use it. Requires a connected Drive account belongi…

Details

Endpointhttps://app.berrys.io/api/mcp (Streamable HTTP)
First published11 Nov 2026
Last updated11 Nov 2026
Registry nameio.github.GeneralBerrys/berrys-canvas

More ai and media servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.