Connect an AI agent (MCP)
Connect Claude, ChatGPT, Claude Code, Hermes Agent, Codex, Cursor or VS Code to FlashBoards, approve access, and let an agent work on your open board.
FlashBoards runs a remote MCP server for AI clients. Connect once, approve access, and ask your agent to find references, inspect a board, or start an image or video generation.
NotePublic beta
MCP is in public beta and available to active FlashBoards accounts. Client features and workspace permissions vary.
| Setting | Value |
|---|---|
| Server URL | https://flashboards.yaroflasher.com/api/mcp |
| Transport | Streamable HTTP |
| Sign-in | OAuth (browser) or API key |
| Cost to connect | Free. Generations use your FlashBoards balance. |
You'll also find the server URL in Settings → Developer, with a Copy button.
Connect your client
Add the connector
Open Claude's add-connector form with the name and URL filled in. Choose Add, then Connect. If FlashBoards is already listed, use that entry.
Approve access
Sign in to FlashBoards if asked, then approve the consent screen (see Approve access).
Use it
Return to your conversation and enable FlashBoards in the tools menu if needed.
Manual setup: Customize → Connectors → + → Add custom connector. Enter FlashBoards and the server URL. Leave client ID, secret and headers empty.
Start from the menu
Once connected, say flashboards (or start) to open the FlashBoards start menu. Pick a mode, such as Reels, Music video, Cartoon, Ad, Character, Animate, Film scene, Upscale, Avatar, YouTube & podcast or Music, then what to make. Choose Anything to describe what you want in your own words. The agent then reads that mode's guided workflow and asks for anything it still needs.
- In Claude, and in the Codex desktop app, the menu is a card you click; the agent also names the options by number in one line, so you can answer with a number. ChatGPT and other clients show the card or a numbered list, depending on what they support.
- Claude Code in a terminal shows a numbered list. In the Claude Desktop Code tab, a server you added with
claude mcp addalso shows the list, while the claude.ai connector shows the card. Answer with a number or a name. You can also run/flashboards:start(the name before the colon is whatever you named the server). - Motion (motion design drawn by code and rendered on your computer) is offered only to agents that can run commands on your computer, such as Claude Code, the Claude Desktop Code tab and Codex.
- Opening the menu is free and starts nothing. Paid steps that follow use your balance as usual.
Let an agent set it up for you
Hand your agent the setup guide and it picks the right steps for your client. Open the guide, or add ?download=1 to save it as FlashBoards-MCP-Agent-Setup.md. It covers ChatGPT, Claude Desktop and web, Claude Code, Cursor, VS Code, Codex, Hermes Agent and other clients, plus an API-key fallback and a verification step. Recipes follow each client's documentation; not every client has been tested live.
Approve access
The first time a client connects, FlashBoards asks you to sign in, then shows a consent screen titled with the app's name and wants to access your FlashBoards account, with the account you're signed in as.
Check who is asking
The screen shows the app's name and client ID, and where Allow sends you: a website (for example "Allow sends you to claude.ai"), an app on this computer, or a named app. For Claude, ChatGPT, Cursor and Windsurf it confirms when the destination is where that app's connections return. For other apps it says the app chose its own name and FlashBoards doesn't verify it. If you didn't just start this connection yourself, close the page.
Review what it can do
Under It will be able to act as you, the screen lists: Start paid runs (images, video, audio, Describe and Transcribe, charged to your balance), Work on boards you have open, Upload files and use media tools, Publish boards and manage sharing, See your name and email address and Stay connected until you revoke access in Settings → Developer. The app never gets your password.
In detail, an approved app acts on your behalf with your full account. It can run paid generations, run Describe and Transcript, read your shared boards, read, edit, delete items on and export boards in your open tabs, run media tools on their items, and unpublish boards or revoke access. Publishing, invites and link access also need your approval in an open FlashBoards tab (see Share and publish). There is no spending ceiling for connected apps: one can keep spending until your balance runs out or you revoke it. Some models and tools accept an optional per-request maximum, maxCostUsd (for example GPT Image 2.5, Nano Banana 2 Lite, H3 Max video, speech and sound effects, and image or video enhancement); requests estimated above it are rejected.
Allow or deny
Click Allow (it reads Authorizing… while working) or Deny. Either way you return to your client.
WarningOnly allow connections you started
Approve only clients you trust and connections you started. Connected apps act as your account, including spending your balance.
A link with no authorization code shows Invalid authorization link: restart the connection from your client. An expired link still loads, but Allow or Deny shows "Could not complete authorization. Please restart the connection from your app." A network problem shows "Network error completing authorization. Please try again."
Live board tools
Some tools act on a board in your browser and need an open, signed-in FlashBoards tab.
- Keep a board tab open. It connects on its own within a few seconds while your agent uses MCP tools; there's nothing to pair. Demo mode doesn't connect.
- More than one tab. The agent reads the most recently active tab by default, but must pick a tab before changing or exporting anything. Tell it which board you mean.
- Read first. The agent takes a snapshot of the board before changing it, then adds media, runs board actions (which you can undo), runs media tools or exports a PNG image.
- Panel models. On a live board the agent can read the full model list from your generation panel, with each model's availability, settings and input slots. This list is larger than the one for generating without a board.
- No tab open. The agent sees: "No live FlashBoards tab found. Open FlashBoards in a browser and keep it open." Open a board, then ask again. Image and video generation still works without a tab; results can be placed on a board later.
- Timeouts. After a timeout, the agent should re-read the board before retrying, so it doesn't repeat an edit.
NotePaid generation happens in two steps
To generate in the real panel, the agent first stages the generation on your board (prepare_board_generation), then starts it once (generate_on_board). Check the model, inputs and price on your board before it goes.
Edit a board
Board edits go through execute_board_action and work on the active local board in your open tab. Each change to the board's items is one Undo step, so you can reverse it with ⌘Z. Creating and renaming boards change your board list and aren't on the Undo stack.
The agent reads get_board_snapshot first and passes its board id as expectedBoardId, so an edit never lands on a board you switched to in the meantime. With more than one live tab it also names the tab with sessionId. The snapshot gives item ids, the board's revision, groups, item rotation (in full mode), the items each arrow is attached to, and busy: true on items that are still generating or importing. describe_board_action returns the exact arguments of any action; it's read-only and needs no tab.
Shared boards are read-only here. An edit on one is refused with "This edit requires an editable local board", and delete_board_items and undo_board_edit refuse it with INVALID_INPUT. Nothing changes.
| What | Actions |
|---|---|
| Notes | addTextNote adds a note. updateTextNote changes an existing note's text and title, their fonts, the font size, the text, title, background and border colors, the padding and the alignment. null clears the title, the title font, the title color or the border color. |
| Shapes | createShape, updateShape, scaleArtwork |
| Arrows | createArrow draws an arrow between two items or points, with a style, as one Undo step. updateArrow changes its ends or style. If an end or style is refused, no arrow is drawn. |
| Groups | groupItems groups 2 to 100 items, with an optional name. An item that is already in a group is refused (ITEM_ALREADY_GROUPED). ungroupItems takes item ids or a group id and keeps the items. |
| Layout | Move, nudge, resize and scale, align, pack, stack and grid, duplicate, select and focus. Layout patches also take rotation in degrees (0 to 360). Arrows can't be rotated. |
| Copy to another board | copyItemsToBoard copies items to another of your boards and returns the new ids (copiedItemIds). The current board stays open. Items that are still generating or importing are skipped and listed (skippedItemIds). |
Manage boards
- List and switch.
listLocalBoardslists the boards in that browser.activateLocalBoardsaves the open board, then switches to another one. - Create.
createBoardfollows your plan's board limit, like New in the app. At the limit it fails withBOARD_LIMIT_REACHEDand creates nothing. See Manage boards. - Rename.
renameBoardrenames the active board. - Not for agents. Deleting a board stays with you in the app.
Delete items and undo
Deleting and undoing are separate tools, so your client can ask you before they run. Both need expectedBoardId and the expectedRevision from the latest snapshot.
delete_board_itemsremoves 1 to 50 items by id. It is all or nothing: if one id is missing (ITEM_NOT_FOUND), an item is still generating, importing or running a media job (ITEMS_BUSY), the board changed since the snapshot (STALE_REVISION) or you are dragging or typing (BOARD_BUSY), nothing is removed. The delete is one Undo step, and the media files stay in your library.undo_board_editreverts the agent's own edits as one new Undo step, so you can still reverse the undo with ⌘Z. Deleted items come back in place, with their groups and attached arrows. Each connected app or API key can undo only its own edits (EDIT_NOT_OWNED), never yours.listAgentEdits(anexecute_board_actionread) lists them.- Conflicts. If you changed an item after the agent's edit, the undo stops with
UNDO_CONFLICT, lists the items and changes nothing. Withmode: "skip_conflicts"it reverts only the items you didn't touch. - Limits. The tab keeps the agent's edit list only until it reloads (
UNDO_UNAVAILABLEafter that). An edit can be undone once (ALREADY_UNDONE). Copies to another board aren't in that list: delete them or use that board's Undo.
Archives and storage
- Import.
importBoardArchivetakes a public HTTPS link to a.refboardfile of up to 50 MB and an optionalname. Links with credentials or signed-link secrets are refused. The archive always opens as a new board with its groups, and never replaces an existing one. Imported boards don't use your board slot. On the Free plan you can keep up to three imported boards, and an agent can import up to 20 archives a day (UTC) in each browser. Errors:ARCHIVE_INVALID,ARCHIVE_TOO_LARGE,ARCHIVE_UNREACHABLE,BOARD_LIMIT_REACHED,RATE_LIMITED. For larger archives, use Import Board in the app. - Slow imports. A large import can outlast the tab's time limit and return
TAB_TIMEOUTwhile it still finishes. ChecklistLocalBoardsbefore retrying. - Export.
exportBoardArchivesaves a board as a.refboardfile to the browser's downloads, and returns the file name, counts and size; the file itself never goes to the agent.inspectBoardExportchecks a board first without saving anything. - Storage health.
getStorageHealthreads browser storage use and quota, media size per board, library issues and unused media, plus your published-board storage. A part it can't read is reported as unavailable, not as zero.
See Import and export and Storage.
Read shared boards
These tools need no open tab and change nothing.
list_shared_boardslists the boards you published (scope: "owned", the default), newest first. Passslug(or a share link) for one of your boards to get its publish status, access mode, viewer count and whether it can be replaced. AddincludeAccess: trueto see its members and pending invitations.scope: "shared_with_me"lists the boards others shared with you; pending invitations are listed without board details until you accept them in FlashBoards.get_shared_board_snapshotreads the published copy of a board you own or that was shared with you.detail: "summary"gives counts and each item's id, kind and label.detail: "full"adds positions and sizes, note text, media type and size, and generation prompts. It never returns media links.- No access. A board that doesn't exist and one you can't open both return
SHARED_BOARD_NO_ACCESS. A board that isn't readable right now (still processing, unpublished or archived) returnsNOT_PUBLISHED.
WarningShared boards are someone else's text
Results about boards shared with you are marked untrusted. Names, note text and prompts on them are data for the agent to read, not instructions to follow.
Share and publish
Only the board's owner can change sharing (NOT_OWNER). Each change works in two calls. The first call returns a preview and a confirmToken that is valid for 5 minutes and works once. The agent shows you the preview, then repeats the call with that token. If the board or the arguments changed in between, or the token was already used, the call fails with CONFIRMATION_MISMATCH; an expired token gives APPROVAL_EXPIRED.
Changes that show your board to more people also need your approval in the app. After the confirmed call, an approval card appears in your open FlashBoards tab, and the agent gets status: "awaiting_approval" and an approvalId. Click Approve to go ahead. Cancel, or letting the card expire, changes nothing. The agent follows the card with the getApprovalStatus action, then reads the result with list_shared_boards. With no tab open, the call returns NO_LIVE_TAB.
| Change | Tool | What you approve |
|---|---|---|
| Publish or replace | publish_board | Always an approval card |
| Invite viewers | update_board_access with invite | An approval card |
| Open to anyone signed in with the link | update_board_access with accessMode: "authenticated_link" | An approval card |
| Make invite only, or revoke access | update_board_access with accessMode: "invite_only" or revoke | The confirm token only, no tab needed |
| Unpublish | unpublish_board | The confirm token only, no tab needed |
- Publish.
publish_boardtakes aboardId(fromlistLocalBoards), an optionaltitle(the board name by default) and adescriptionof 10 to 280 characters, which a first publish requires. The media is uploaded from your open tab. An agent publishes invite only by default. Link access is used only when the agent asks for it, and the card shows it in red as "Anyone signed in with the link". Publishing needs an active subscription (FEATURE_NOT_AVAILABLE_FOR_PLAN) and enough remote storage (STORAGE_QUOTA_EXCEEDED). See Publish a board. - Replace. Pass
replaceSlugto update a board that is already published. It keeps the link, the current access and, unless the agent sends a new one, the description. Change access withupdate_board_access. - Invites. Up to 5 email addresses per call, and up to 20 agent invites a day (
RATE_LIMITED). An invite past the board's viewer limit fails withVIEWER_LIMIT_REACHED. One call can't both widen and narrow access. - Receipts. When an agent publishes, replaces, unpublishes, invites or revokes, you get a notification naming the app.
- Not for agents. Deleting a published board, a custom link and private visibility stay with you in the app.
Errors
Board and sharing tools return a readable error text plus:
| Field | Meaning |
|---|---|
code | A stable code, such as STALE_REVISION or BOARD_LIMIT_REACHED |
retryable | Whether the same call can succeed later without changes |
fields | For INVALID_INPUT: up to 50 issues, each with a path, code and message |
details | Extra data, such as the items in conflict or the link to open |
docsUrl | A link to this section |
Common codes:
| Code | What to do |
|---|---|
NO_LIVE_TAB | Open FlashBoards in a browser and keep the tab open. details has the link to open |
AMBIGUOUS_SESSION | More than one tab is open. Pick one with list_board_sessions and pass its sessionId |
TAB_OUTDATED | The open tab was loaded before this action existed. Reload the FlashBoards tab, then try again |
TAB_TIMEOUT | The tab didn't answer in time. Re-read the board before retrying; the edit may have happened |
BOARD_CHANGED | The active board in the tab isn't the one the agent expected. Re-read it |
BOARD_BUSY | You are dragging, typing or drawing. Retry in a moment |
STALE_REVISION | The board changed since the snapshot. Take a new snapshot and use its revision |
ITEM_KIND_MISMATCH | The action doesn't fit that item, for example updateTextNote on an image |
Media tools
An agent can run the transforms from Media tools on items in your open board tab: split a video into equal parts, at scene changes or into ranges, trim, join, resize, convert, compress, extract a frame, remove or extract audio, convert or split audio, join or mix audio tracks, add room reverb, replace a video's soundtrack, and make a collage.
- Board media tools keep the originals. Media outputs are added as new items next to the sources; scene detection in metadata mode returns cut information without adding items. Use
list_media_toolsfor available transforms. The app’s Crop → Replace action is not astart_media_tooloperation. - Tools run in your browser tab by default, with no upload. Scene detection, collage and the audio join, mix, reverb and soundtrack tools run on FlashBoards compute, which uploads the media and needs the same access as compute tools in the app.
- Local-runner outputs are limited to 1 GB each and 2 GB per run; server tools have their own limits.
- A run lives in that tab. If you close or reload it mid-run, check the board before asking the agent to start again.
Attach media from a chat
In clients that pass attached files to tools, such as ChatGPT, an agent can use an attached image or video directly, with no open board: as a reference for image generation or compatible video models, or for Describe. It can also check an attached file first, which uploads nothing and is free.
If your client doesn't pass attachments to tools but supports in-chat apps, the agent can open a FlashBoards media upload picker in the chat. Choose an image (PNG, JPEG or WebP, up to 50 MiB; large photos are scaled down to fit 8 MiB when stored), a video (MP4, MOV or WebM, up to 100 MiB), or an audio file (WAV, MP3, FLAC or OGG, up to 15 MiB and 5 minutes), and click Upload. These are upload limits; individual generation and enhancement tools can require smaller files or fewer formats. Uploading doesn't start or charge anything; generating takes a separate request. An uploaded image can be the source for an image edit, an uploaded video can be a video reference or the source for video enhancement, and uploaded audio can be the source for audio models, voice changes and audio finishing.
Never paste a file's contents or base64 into the chat. To pass a file from your computer, the agent asks for a one-time upload link with create_upload_link (free; the link expires after 15 minutes, with the same size limits as the picker). An agent that can run commands on the computer that has the file, such as Claude Code or Codex, uploads it itself. Otherwise it gives you an upload page to open in your browser, then checks it with get_upload once you say it's done. In ChatGPT, import_chat_file turns a file you attached into the same kind of receipt. The agent then passes the receipt to the tool that needs the file.
Use your earlier results
You don't need a public link to reuse your own work. The agent can pass one of your completed results as the input of the next step: an image as a reference for image edits, or as a video's first or last frame (H3 Max and H3 Max Turbo; a last frame needs a first frame), a song for stem separation, a clip to continue, or speech as a video's soundtrack. FlashBoards checks that the result is yours and reads it on the server. A reference from a reference search can be used for image edits the same way.
- Video references. Your own videos can be video references for MiniMax H3 Max Reference to Video. That model needs 16:9 or 9:16 clips at a constant 24 fps of exactly 2, 5, 10 or 15 seconds, so the agent conforms a clip first (see Finish audio and video without a board).
- Seedance. Your own images can be Seedance references (@Image1 in the prompt), and your own audio results, such as speech, can be references for Seedance 2.5 and Seedance 2.0 Omni (@Audio1).
- Describe and Transcript can read your own image, video and audio results directly, including trimmed, joined or conformed videos.
Enhance a video
An agent can upscale and restore one MP4 or MOV video with no open board: a video attached in the chat (up to 8 MiB), an uploaded video (up to 100 MiB), or one of your own finished videos, such as a joined cut (up to 100 MiB). It checks the price first with estimate_video_enhancement, which is free, then starts the paid run with enhance_video and follows it like any generation. The result can be placed on a board afterwards.
Prepare images without a board
arrange_images, crop_image and pad_image run without an open board. Use one of your completed image results (generationId, with optional outputIndex), an image upload receipt (imageReceipt), or a previewHandle of a film frame or reference search picture (valid for 30 minutes). These tools do not take arbitrary image URLs or attached-file objects directly.
- Arrange images. Lay 1–12 images out in equal grid cells, with
containorcoverfitting. The complete grid must fit within 4096 pixels per side and 16,777,216 pixels. - Crop an image. Keep a rectangle using
x,y,widthandheightas fractions of the source dimensions; the rectangle must stay inside the image. - Pad an image. Centre an image on a canvas 16–4096 pixels per side. Use
containto fit it, ornoneto keep its size; without scaling, the image must fit the canvas. - Extract a video frame.
extract_video_frametakes a video, not an image: your completed video result, your completed video-finishing task, or a video upload receipt. SetatSecondsto a moment inside the video.
This is free compute for any signed-in account, subject to rate limits. Each request needs a requestId of 8–120 letters, digits, underscores or hyphens. Reuse it only for the same input. Results are PNG, or JPEG if PNG exceeds the 8 MiB output budget; larger results are refused. A completed result has an image generationId; check its status with get_generation.
See generated images in the chat
In Claude and ChatGPT, an image made by the agent shows in a Generated image viewer right in the conversation, along with the usual result details. The agent shows the image as a separate step after the run finishes, so the result details stay readable even if the viewer doesn't load. Showing an image never starts or charges anything.
Audio and voice
An agent can make and edit audio without an open board. Every paid step has a free price check first.
- Speech and sound effects. Turn text into speech, or describe a sound effect or ambience and its length. Speech from
generate_audiotakes a default voice (a premade voice name or adefault:voice id). Shared library voices and your own saved voices speak throughgenerate_voice_audioinstead. - Voices. Use a default or shared public-library voice directly with
generate_voice_audioorchange_voice_audio; library voices need no saving and use no saved-voice slot. Design a new voice from a description (you get three previews to choose from), then save a preview withsave_audio_voice, or clone a voice from a recording with the speaker's consent. Your own cloned or designed voices use up to three slots, including pending or unverified creations.delete_audio_voicedeletes one of your own voices and frees its slot; default and shared library voices cannot be deleted. - Change a voice. Re-voice a recording, or just one span of an earlier result, such as one line of an isolated dialogue track.
- Music and analysis. Generate songs and music, extend or cover a song, split a track into stems, isolate a voice from noise, and describe what's in a recording.
Results are saved privately to your account. Download links expire, so save files you want to keep.
To do the same by hand, the Audio voices page lets you search the public voice library, design and save a voice, make speech and change the voice of a recording. It's linked from the MCP help page, not from the board.
Finish audio and video without a board
These tools run on FlashBoards compute and cost nothing. Audio tools work for any signed-in account; video tools need an active plan or a positive balance.
- Audio. Mix up to 12 tracks into one track of up to 3 minutes, with an offset, volume and loop for each. Join tracks end to end (about 11 minutes at most per join, so join longer scenes in parts). Cut a span out of a track, or speed a track up or slow it down to an exact length without changing its pitch.
- Video. Trim a video, join up to 12 videos end to end, lay a new soundtrack over a video, conform it (a constant 15, 24, 25 or 30 fps, no sound, an exact 16:9 or 9:16 centre crop, or one exact range), find its cuts, pull out its soundtrack as audio, or compare how much fine detail several versions keep against the original. Audio of up to 3 minutes can also get room or hall reverb. To save a frame as an image, see Prepare images without a board.
- Use the results. Each finished video gets a video ID like any generation, so the agent can describe or transcribe it, use it in the next step, or place it on your board with a name you choose.
- Plan the edit. From a transcript with word timings, an agent can find the speech, the pauses and each script line, and plan where to cut. This is free and only reads the transcript. It can also measure a song's beats and plan clips that line up with the bars.
Upscale and enhance images and video
An agent can list the available image and video enhancements (upscaling and skin retouching, for example), check the exact price for your file, then run one. Results are saved privately and can be placed on a board later.
To run one by hand, use the Enhance images and video page: pick a model, check the price, then create the result. It's linked from the MCP help page, not from the board.
Film frames and music references
Where film-frame search is enabled, ask the agent to use search_movie_frames to find frames from real films by text, find similar frames from a resultHandle, or browse a film or shot term. Use a returned previewHandle with get_movie_frame_preview to view a frame. Search handles expire after 30 minutes and are tied to the creating credential; search again if they expire. Film browsing is not a scene-by-scene or timecode listing. Server availability, access checks and rate limits apply.
For music research, search_music_artist, list_music_genre_artists and search_music_recordings look up MusicBrainz snapshot metadata. When a recording's song has a music video listed on IMVDb, search_music_recordings also returns its IMVDb page, the YouTube link when known, and the year. describe_music_style and describe_music_vibes return words describing a style, not audio. Data availability and rate limits apply; results include a data licence. These research tools are separate from paid music generation.
Research with vidIQ
Ask the agent to research what already works before you make something: breakout YouTube videos on a topic, Instagram Reels and TikTok posts that beat their creator's usual views, trending videos, similar videos, keyword ideas or a YouTube channel's public numbers.
list_vidiq_research_toolslists the available research and packaging tools, their inputs and current prices. It's free. Pass up to three tool names to get their full input schemas.vidiq_researchruns one research tool:outliers,instagram_tiktok_outlier_search,youtube_search,trending_videos,keyword_research,similar_videos,trend_categories,channel_stats,channel_videos,channel_performance_trendsorget_channels_by_ids.vidiq_packaginggenerates title ideas (generate_titles), scores a title (score_title) or scores the current thumbnail of a published YouTube video (score_thumbnail). It cannot score an unpublished thumbnail image. Scores are predictions, not measured click-through rates.
Research and packaging need an active subscription or a positive balance without a payment issue, including when a cached answer is available. Discover the price and approve it before the first paid call. FlashBoards holds the price while a paid call runs, then charges for the answer. If vidIQ refuses or its call fails, FlashBoards releases the hold instead. trend_categories is free. Research with the same tool and input can reuse an available shared answer for 12 hours at no charge (cached: true); a cache miss can make a new paid call. Packaging does not use that cache. There is a short per-minute limit, not a free daily search allowance.
Both calls require a requestId (1–120 letters, digits, underscores or hyphens). Retry the exact same question with the same ID to reuse its stored answer without another charge. Changing the tool or input creates a new question that can charge again, even with the same ID. Read billing.chargedUsd in the result. An interrupted response or unexpected server error does not prove that nothing was charged: check the original request and your balance before starting another attempt.
Results are public YouTube, Instagram and TikTok data. An Instagram result names its reel by shortcode; the link is https://www.instagram.com/reel/<shortcode>/.
Build reusable local tools
The Customization SDK lets an agent author bounded reusable behavior, with an optional panel. Read the flashboards-sdk guide with get_skill. Discovering live extension schemas through execute_board_action needs an eligible pilot account and open local-board tab. Installation and invocation also need your plugin consent. It is a limited rollout; connecting MCP does not enable it.
Video references and guided workflows
- Video references. Browse the video reference library by category, search it, and get a playback link for one clip. Anyone with the link can play it for 24 hours, so don't share it.
- Guided workflows. FlashBoards publishes step-by-step workflows for characters, animation, Reels, upscaling, music videos, film scenes, ads, talking avatars, cartoons and songs. An agent can list and read them for free, then follow the steps with the tools above.
What an agent can do
- Work with boards. Inspect a live board, edit notes, shapes, arrows and groups, delete items and undo its own edits, and create, rename or switch boards (needs an open tab). See Edit a board.
- Share boards. Read your shared boards and boards shared with you, and publish, invite or unpublish with your approval. See Share and publish.
- Generate in context. Discover models with their starting prices and typical generation times, check inputs and the exact price, start image, video and audio generations or enhancements, and follow their status. Recent generations can be found again for 48 hours.
- Edit media. Split, trim, join, convert and otherwise transform media on your open board. See Media tools. Without a board, mix, join and cut audio, trim, join and conform videos, save frames, and crop or arrange images. See Finish audio and video without a board.
- Make audio. Speech, sound effects, voices, music and stems. See Audio and voice.
- Search references. Find image references by prompt or image and show them as a gallery in supporting clients, and search the video reference library. No board or tab needed. In the app, the same library is in References.
Agents in your browser (WebMCP)
In browsers that support WebMCP, an open, signed-in FlashBoards tab offers a few tools directly to an AI agent in that browser, without the MCP server. They work on the active local board only. Shared boards and demo mode don't offer these tools.
| Tool | What it does |
|---|---|
get_board_snapshot, get_local_board_layout | Read the board and its layout, with its revision |
arrange_local_board | Arrange items as a single Undo step |
board_action | The free editing set: notes, shapes, arrows, groups, layout and rotation, select and focus. It can also list your boards (listLocalBoards) and its own edits (listAgentEdits) |
delete_board_items | Delete 1 to 50 items by id, with the current revision |
undo_board_edit | Undo this page agent's own edits |
selective_edit | Compose an existing source image and RAW result already on the board using a marked region, then explicitly place the composed image as a separate Undo step |
- Free editing only. A page agent can't start paid runs or set up a generation (prompt, model or inputs), run media tools, import images or archives, use extensions, change sharing, or create, switch, rename or copy to other boards. Use the MCP server for those.
- Selective composition is free.
selective_editblends existing images and returns a composition ID before placement. It does not generate a new RAW image or start the paid run used by Guided edit. - Its own undo. A page agent can undo only its own edits, never yours or another agent's. You can always use the board's Undo.
- Receipts, not content.
board_actionreturns the touched item ids, the newrevisionand the selection, never note text, media links or prompts. - Refusals come back as data (
ok: falsewith acode, such asSTALE_REVISIONorUNDO_CONFLICT), so the agent can see why a call failed.
Stay in control
WarningGeneration tools spend your balance
Review the model, inputs and price before approving a generation tool call. Some tools accept an optional maxCostUsd; its scope varies by tool, so check the schema. This does not set a spending limit for the connected app. Check your client's approval settings, and inspect Generation History and your balance before retrying an uncertain submission.
- Connections act as your account. Revoke apps and API keys you no longer use or don't recognize in Settings → Developer (see below).
- Never paste API keys, passwords or tokens into a chat.
- Connecting and board tools are free. Generations use your FlashBoards balance, and your AI client's own charges are separate.
- Free lookups, such as your account, the model list, price checks and reference searches, are marked read-only, so your client may run them without asking. Result checks, such as reading a generation's status, aren't marked read-only, because they can finish saving a run you already approved, so your client may still ask.
Revoke access
Open Developer settings
Open Settings → Developer.
Find the app
Every connected app, including Claude and ChatGPT, is listed under Connected apps. Each row shows the app name (or client ID) with its icon when FlashBoards recognizes it, an active badge while it holds a current token, when you authorized it, where it returns (for example "returns to claude.ai") and full account access.
Revoke
Click Revoke app access on a row and confirm, or click Revoke all to remove every app. The app can't make new calls from then on and must be approved again to reconnect. Reference preview links it already received work until they expire (about 24 hours).
API keys are revoked separately. See Public API.
Troubleshooting
Check that the connection is enabled and selected in the chat, then refresh tool discovery in your client before restarting it.
An initial 401 challenge is normal. Opening the server URL in a browser returns 405 because only POST is accepted, so it isn't a valid connection test. A persistent 401 means sign-in didn't complete. Use Streamable HTTP, not legacy SSE.
Delete only that failed connector and create it again for a fresh sign-in. Don't reset a connection that works.
Some clients keep the tool list from when you first connected. FlashBoards may tell the agent that its tools are out of date and ask the client to refresh them. If tools are still missing, reload or reconnect FlashBoards in your client's MCP settings, or start a new agent session. In Claude Code, use /mcp to reconnect; in Codex, start a new session or restart Codex.
The result says why, as a category (content policy, invalid input, timeout, provider error or unknown), and what to do next. That attempt is closed, so repeating it only repeats the failure: fix the inputs, or reword the prompt after a content refusal, and start a new attempt. When FlashBoards can confirm the failed attempt wasn't charged, the result says so.