Skip to content
Agentmart
Submit a tool

Flask

Video review for agents: upload renders, read time-coded feedback, iterate version by version.

Connector by tryflask · GitHub account verified by the MCP Registry

IndexedMITRemote (HTTP)
Write a review

Chalk Labs

Need help deploying Flask?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/tryflask-flask

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://api.flask.do/api/mcp/mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Video review for agents: upload renders, read time-coded feedback, iterate version by version.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
16 read · 9 write · 4 delete
Secrets
None asked for
Install scripts
Nothing to install (hosted)
Runs as
Hosted (remote endpoint)

Tools by what they do 29

From the running server's own tool list (tools/list) on Oct 25, 2026.

Read 16 · Look things up without changing anything.

  • asset_status
  • contents
  • feedback_get
  • feedback_list
  • feedback_stats
  • get_annotated_frames
  • get_frame
  • get_guide
  • members
  • permission_get
  • recent_activity
  • search
Show 4 more tools
  • tags
  • version_download
  • version_notes_get
  • wait_for_feedback

Write 9 · Create, change, send or run things.

  • feedback_post
  • folder_create
  • tag_create
  • upload_file_complete
  • upload_file_start
  • upload_video
  • version_file_upload
  • versions_reorder
  • versions_split

Delete 4 · Delete, drop, revoke or wipe things.

  • feedback_update
  • items_update
  • version_notes_update
  • versions_add

Network hosts it talks to 1

  • api.flask.do · found in remote endpoint, install command

Files it touches

  • Any path the agent passes to its tools

Tools (29)

As the server listed them on Oct 25, 2026. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • asset_statusCheck processing statusread-only

    Check whether an uploaded or imported video is ready. Pass the version id an upload returned (its asset_id) or an asset id (resolves to its current version); a folder id is refused. status is one of: ready; pending_ingest, processing, preparing or waiting (still working - check again in a few seconds; transfer_progress shows an import's download progress, progress the video processing percent); error (terminal - read error_message, stop polling and upload the file again); no_versions (the asset has no media yet). Returns asset_id (the asset), version_id (the version checked), url (current vers…

  • contentsBrowse folders and assetsread-only

    Browse the team's folders and assets one level at a time. No id: the team's top level (root folders and assets; team names the team). folder_id: that folder's child folders and assets. asset_id: that asset's versions (version_id, version number, title, status, which one is current), top first, not paged. Each asset item carries asset_id (the asset), version_id (its current version), version_count, its media fields, url (opens the current version) and version_url. Root and folder listings are paged, folders before assets: limit (default 20, max 100) and offset; total counts every item at that l…

  • feedback_getGet feedbackread-only

    Get a single feedback item with its full reply thread. element_id is the item's id, as feedback_list, recent_activity, search or wait_for_feedback return it. Use it when an item has replies (feedback_list gives reply_count, not the replies) or to read one item again; to list an asset's feedback use feedback_list. Returns the item's text body (for recordings: the AI-organized feedback), tags (by name), author, posted_by_agent, video timestamp, the recording (recording_type voice, camera or screen; its full verbatim transcript; pipeline_status - the transcript is final once it is complete), visu…

  • feedback_listList feedbackread-only

    List top-level feedback on an asset (pass the asset id for its current version, or a version id for that exact version; a folder id is refused - use recent_activity(folder_id)). By default only OPEN feedback (not yet completed) is listed: the feedback that still needs action; counts says how many are open and completed, and status=all lists everything. The response names the version listed: version_id, container_id, title and version number. Each item has its text body, tags (by name), status (open, in-progress or completed: set by the team's status labels, Done is completed), author, timestam…

  • feedback_postPost feedback

    Create a feedback comment on an asset, as the connected user. Pass an asset id (the comment lands on its current version) or a version id (that exact version). content is Markdown (a heading, lists, bold, links, @mentions as links - see the content parameter). PREFER passing timestamp (seconds into the video) whenever the source material has one - e.g. when importing feedback from an email like 'at 0:42 the logo is wrong', convert 0:42 to 42. Without timestamp the comment is a general (non-anchored) note. tags applies the team's EXISTING tags by name (see the tags tool); statuses are tags too.…

  • feedback_statsGet feedback statisticsread-only

    Aggregate feedback statistics across many assets in ONE call - counts per asset and per version (v1, v2, ...), split by type (text/recording), tag, and author, with first/last feedback timestamps. Scope to a folder (folder_id), one asset (asset_id - an asset id or any of its version ids; the whole asset is reported, version by version), or the whole team; narrow the time window with from/to. Items are sorted by feedback count, most first; assets with no feedback in the window are left out unless include_empty is true. Paged: limit (default 50, max 200) and offset; total is the number of items,…

  • feedback_updateUpdate feedbackcan change or delete data

    Edit an existing feedback item. content (Markdown - replaces the whole body; start from the item's current content to keep its mentions and formatting) and timestamp (video time in seconds) can only be changed on the connected user's OWN comments. add_tags / remove_tags apply the team's existing tags by NAME and work on ANY feedback item you can comment on (labels and statuses are collaborative - e.g. add the 'Done' tag to mark feedback resolved), except that replies take no tags: tag the thread's root comment instead. Provide at least one of content, timestamp, add_tags, remove_tags. Returns …

  • folder_createCreate a folder

    Create a folder. parent_folder_id is optional: omit it for the team's top level (root), or pass a folder id from contents or search to nest it. Folders are optional and nestable; assets can also sit at root. This does not check for an existing folder with the same name (the app allows duplicates): call contents first if it may already exist. Returns folder_id and its url. To put assets in it, use items_update with folder_id, or pass folder_id to the upload tools. Needs edit access on the parent folder. Additive: nothing existing changes.

  • get_annotated_framesGet annotated framesread-only

    The visuals of a feedback item, in one call: call it before acting on any item with a visuals field (a recording, a drawing, images). element_id is that item's id, as feedback_list, feedback_get, recent_activity, search or wait_for_feedback return it. For a recording: a frame for EVERY pointing link in its content ([phrase](#rt=S), the reviewer's "this" / "here"), each labelled with the links it shows, the media under review with the reviewer's drawing rendered in, and their shared SCREEN when they demonstrated something (e.g. a Photoshop/Figma mockup); webcam frames are NOT included, and the …

  • get_frameGet frameread-only

    Fallback for ONE moment get_annotated_frames did not show: the exact frame at a recording time (at) or when a word/phrase was spoken (word). get_annotated_frames already shows every [phrase](#rt=S) link in a comment - call it first; use this for a moment the comment doesn't link (something the transcript mentions) or a link it named as not shown. Returns the asset frame at that moment (plus the active shared screen, if any) and a transcript snippet around it. Each frame comes with a Link to it as shown (drawing included) and, when different, Media only (the same moment without the drawing or p…

  • get_guideRead a Flask guideread-only

    Returns one of Flask's usage guides as Markdown: fixed text written by Flask, the same for every user, with no team data in it. "instructions" (about 14 KB) is the playbook for working with Flask: where uploads go (a new asset or a new version), what an agentic edit attaches, how feedback is read, answered and shown, and how sharing works. Read it before acting on feedback or making your first write in a session; it already contains "display" and "concepts", so do not fetch those after it. Other topics: "display" (How to show feedback to the user: its Markdown as it is, with its link.), "conce…

  • items_updateRename, move or share folders and assetscan change or delete data

    Rename, move and/or change the sharing of folders and assets, up to 20 items per call, each with its own result. Per item: id (a folder id, an asset id, or a version id) plus at least one of: title (renames the folder, or the asset; a version id renames its asset), version_title (names that one version, as in the app's version list; version ids only), folder_id (move into this folder, or "root" for the team's top level; a version id moves its whole asset), link_access (what anyone with the item's link can do: comment_and_notes (comment and read version notes and files), comment, view, or none …

  • membersList membersread-only

    List the people on the team: user_id, name, role (admin or member), avatar_url and a ready-made mention link; the result's team field names the team. Email addresses are never returned. Use it to mention someone in feedback_post / feedback_update content: [@Name](https://flask.do/members?user=USER_ID) notifies that person. query keeps names containing it; no match gives an empty list. It lists the whole team, not who can open an item: for an item's access settings, use permission_get.

  • permission_getGet access settingsread-only

    Read the access settings of a folder or an asset. Returns: your own access level (full_access, comment_and_notes, comment, view or none), whether you can read version notes and files (can_view_notes: full_access or comment_and_notes) and whether you are its creator / a member of its team, the creator (name, avatar), the default levels for members and for anyone with the link, and the team's member count. It does NOT list individual people - use members for the team's people. Pass folder_id for a folder, or asset_id for an asset (an asset id or any of its version ids - versions use their asset'…

  • recent_activityGet recent team feedbackread-only

    Get the latest feedback across the whole team or one folder's subtree (team names the team), newest first: text and recording comments on every asset you can view, so you can read feedback across many videos in one call. Each item has a `type` field ("text" or "recording"), author, timestamp, a link that opens the comment, the asset it belongs to (container_id / container_title) and the version it was left on (asset_id = version id, version number). Scope with folder_id to read one client's/project's feedback, narrow the window with since/until, and page with offset = the previous next_offset:…

Show 14 more tools
  • searchSearch folders, assets and feedbackread-only

    Search the team's folders (by name or description), assets (by title) and feedback (by text) at once, when you don't know where something is; to browse a known folder use contents, for one asset's feedback feedback_list, for the latest feedback recent_activity. query matches case-insensitively anywhere in the text. Always returns all three categories, most recent first, each capped at limit (not paged), only items you can view; team names the team searched. Folder hits: id, name, description, parent_folder_id, url. Asset hits have the contents item shape (asset_id, version_id = its current ver…

  • tag_createCreate a team tag

    Create a team tag (label) so feedback can be tagged with it by name in feedback_post and feedback_update. Reuse the team's labels when one fits; create one only when the user wants a new label. Idempotent: if a tag with the same name exists (case-insensitive), it is returned unchanged with created: false. Tags are shared by the whole team; call tags() first to reuse an existing one. Optional color (#RRGGBB).

  • tagsList tags and usageread-only

    List the team's tags and show the share of each tag (plus an 'untagged' bucket) across a scope. Scope defaults to the whole team; pass folder_id to narrow to one folder (its whole subtree), or asset_id to narrow to one asset (an asset id counts feedback across ALL its versions; a version id widens to its asset). Shares are count_with_tag / total_elements and do NOT sum to 100% because elements can carry multiple tags.

  • upload_file_completeFinish local file upload

    Finalize a local file upload started with upload_file_start. Call this only AFTER the upload command (or, for an image or zip, the curl PUT) has finished successfully. Pass exactly one of: asset_id (a video: verifies every part landed in storage and starts video processing), image_url (an image) or upload_id (a live animation zip: checks it has a page to play, else says what to fix). An image or a zip creates the asset here - at the team's top level, in folder_id, or as a new version of version_of - titled title. Safe to retry: a repeat returns the same asset.

  • upload_file_startStart local file upload

    Start uploading a LOCAL video or image file from the user's machine into Flask. It needs a shell that can run curl; without one (a chat app), upload from a public link with upload_video. VIDEO: creates the asset immediately (container_id + shareable url, live before any bytes move) with the file as its version (asset_id / version_id), or a new version of an existing asset with version_of, and returns the shell command (next_step) that sends it while the user watches its progress at the url; then call upload_file_complete(asset_id). IMAGE (content_type image/png, image/jpeg, image/webp or image…

  • upload_videoUpload video from URL

    Upload a video from a public URL (a direct video file link or a Google Drive share link) into Flask. Flask downloads it, stores it, and starts processing. Creates a new asset (container_id + url) with the file as its first version (asset_id / version_id), or a new version of an existing asset with version_of. Share the returned asset URL while processing; poll asset_status(version_id) until status is "ready" before reporting processing complete. folder_id is OPTIONAL: omit it to upload to the team's top level (root). On the free plan new assets are limited (web and agents together); a new vers…

  • version_downloadDownload a version's fileread-only

    Get a download link for a version's file, to work on it locally. Pass a version id (an upload's asset_id / version_id) or an asset id (its current version); a folder id is refused. A video gives its ORIGINAL uploaded file, exactly as uploaded: Flask keeps it for the team's download window, 14 days from upload on Free and Pro (longer on a custom Organizations plan); available_until says until when, after which it is gone for good and this says it expired (the video still plays in Flask). An image gives its stored file, kept for good. Download with curl -fsSL -o <filename> '<download_url>': the …

  • version_file_uploadAdd a file to a version

    Add a file to a version that already exists (for a NEW upload, pass files with the upload call instead: the version then shows them from the start): returns a presigned upload URL for exactly file_size bytes; upload with the curl command from next_step (this needs a shell that can run curl). The file belongs to the version as soon as the bytes land (no complete call); to show it in the notes, put the markdown line it returns on a line of its own at the start of the notes in version_notes_update (it becomes a file block). By convention attach the working files that made the version as ONE archi…

  • version_notes_getRead a version's notes and filesread-only

    Read a version's notes (Markdown) and its files. Notes say what changed in that version and how to continue the work; files are what made it (by convention the working files as one source.zip). Call this before continuing work someone else uploaded: read the current version's notes, download its files, then make the changes the feedback asks for. Each file has name, size and download_url (works without a token for one hour): download with curl -fsSL -o <name> '<download_url>'. Reading them needs full_access, or a link set to comment_and_notes (Can Comment and View Version Notes); comment and v…

  • version_notes_updateWrite a version's notescan change or delete data

    Replace a version's notes with Markdown (the whole text; null or empty clears them). For a NEW upload, pass notes with the upload call instead (upload_file_start, upload_file_complete, upload_video): the version then shows them from the start. Write notes on every revision you upload, so any agent can continue from the Flask link alone: what changed and why (which feedback it answers), how to continue (the tool and versions used, the commands to render), and which file holds the source (its file block goes first). Same Markdown as feedback: Flask links become references. Up to 20,000 character…

  • versions_addAdd assets or versions to an assetcan change or delete data

    Make other assets or versions the NEWEST versions of asset_id (the asset that keeps its title, link and sharing), as dragging one onto another does in the Flask app. Use it when a revision was uploaded as a separate asset. A source asset id brings ALL its versions, and that source asset then stops existing: its title and link go, and its versions take asset_id's sharing. A version id moves just that version (if it was its asset's only version, that asset goes the same way). Sources are added in order; the last becomes the current version. Refused when a source is still uploading, is in another…

  • versions_reorderReorder an asset's versions

    Set the order of an asset's versions: order lists every version id of asset_id exactly once, top first. The top version becomes the current one (what the asset link opens), and version numbers follow the order. Reorder again to undo. No media or feedback is ever deleted; feedback stays on its version. contents(asset_id) lists an asset's versions.

  • versions_splitSplit versions into their own assets

    Move each version in version_ids out of its asset into a new asset of its own, in the same folder, named after the version, with the same sharing. An asset always keeps at least one version; a version that is already alone is reported already_separate. Undo it with versions_add. No media or feedback is ever deleted; feedback stays on its version. contents(asset_id) lists an asset's versions. Results are per version; earlier ones are not undone if a later one fails.

  • wait_for_feedbackWait for feedbackread-only

    Wait for NEW feedback on an asset (comments and replies by others; your own posts are not returned). Blocks up to timeout_seconds (default 45) and returns as soon as new feedback arrives, or times out with an empty list. A recording arrives once its transcript is done; recordings still being made or transcribed are listed in pending (read them later with feedback_get, or keep waiting - they are delivered when done, and feedback newer than them is delivered after them, in order). To listen continuously, call it again with the returned next_since. Use this after uploading a video for review inst…

Signals

Stars
0
Forks
0
Open issues
0
Last commit
Oct 20, 2026 (11 days ago)
Last release
Oct 25, 2026 (6 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.tryflask/flask
Version
1.4.1
Auth
Auth not stated
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 26, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get Flask running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying Flask?

CallGet help
Cite this page

Flask MCP server. Agent Mart. https://agentmart.dev/connectors/tryflask-flask (last updated 2026-10-26)