mcpbeat

Flask MCP Server

io.github.tryflask/flask
not responding

Flask is listed as active in the registry but did not answer our last check. It exposes 16 tools. Last commit 8 Jul 2026.

Feedback layer for video. Reviewers talk through feedback; agents read it as structured comments.

Uptime history 40 hours of history · worst hour 0%
40 hours agonow
0.0%
Uptime 24h
0 of 91 checks
16
Tools
read from the server
164 ms
Response time
average over 24h
0
Stars
last commit 8 Jul 2026

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 6 min ago.

run in your terminal
claude mcp add flask --transport http https://api.flask.do/api/mcp/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "flask": {
      "url": "https://api.flask.do/api/mcp/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.flask]
url = "https://api.flask.do/api/mcp/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "flask": {
      "url": "https://api.flask.do/api/mcp/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "flask": {
      "url": "https://api.flask.do/api/mcp/mcp"
    }
  }
}

Available tools 16

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

feedback
feedback_get
Get a single feedback item with its full reply thread. Returns the item's text body, tags (by name), author, video timestamp, recording summary/transcript, visual attachments (images / has_drawing - render them with get_annotated_frames), and all nested replies. Pass transcript: "full" to get the recording's complete transcript instead of just this segment's slice (replies always carry their own segment slice).
feedback_list
List top-level feedback on an asset. Returns each item's text body, tags (by name), author, timestamp, and reply_count. Recording items also include the recording's AI summary and the transcript for that segment of the recording. Items with visual attachments carry images (attached image files) and/or has_drawing: true (a drawing made on the asset) - call get_annotated_frames to see them. Use feedback_get to read full reply threads.
feedback_post
Create a feedback comment on an asset, as the connected user. 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. Use reply_to to reply in an existing thread. Cannot attach recordings, drawings, or images.
feedback_update
Edit an existing feedback item. content (replaces the text) 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). Provide at least one of content, timestamp, add_tags, remove_tags.
upload
upload_file_complete
Finalize a local file upload started with upload_file_start. Call this only AFTER the curl PUT has finished successfully. Verifies the file landed in storage and starts video processing. Safe to retry.
upload_file_start
Start uploading a LOCAL video file from the user's machine into Flask. Returns the shareable Flask link immediately, plus a presigned upload URL. After calling this, upload the file bytes with the curl command from next_step, then call upload_file_complete. folder_id is OPTIONAL: omit it to upload to the team's top level (root). Max file size 5GB. Free to use for up to 100 MCP uploads; beyond that the user needs a plan at https://flask.do/plan. You still need edit access on the folder if one is given.
upload_video
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. Returns the new asset_id — poll asset_status(asset_id) until status is "ready" before linking to it. folder_id is OPTIONAL: omit it to upload to the team's top level (root). Free to use for up to 100 MCP uploads; beyond that the user needs a plan at https://flask.do/plan. You still need edit access on the folder if one is given. For a LOCAL file on disk, use upload_file_start instead.
annotated
get_annotated_frames
Supplementary visuals for a feedback item. For recording items: the media under review with the reviewer's drawing rendered in, plus their shared SCREEN when they demonstrated something (e.g. a Photoshop/Figma mockup); webcam frames are NOT included, and the transcript is returned marked [FRAME N]. Also works for text comments that carry visuals: a standalone drawing (has_drawing: true) is rendered onto the frame it was drawn over, and attached images (images array) are returned as frames. If a visual reference is still unclear, call get_frame to drill into a specific moment (at) or spoken word/phrase (word). Returns up to 12 images.
asset
asset_status
Check the processing status of a video asset. Returns progress percentage for videos being processed, or confirms the asset is ready.
contents
contents
Browse contents. Without folder_id: lists what's at the team's top level (root) — both folders and assets that live directly at root. With folder_id: opens that folder and returns its child folders and assets (videos/media). Each item includes its URL.
frame
get_frame
Drill into a recording for MORE visual detail: get the exact frame at a specific time (at) or when a specific word/phrase was spoken (word). Use when get_annotated_frames did not show what a reference ('this','here','that') means, or to see a moment the transcript mentions. Returns the asset frame at that moment (plus the active shared screen, if any) and a transcript snippet around it.
permission
permission_get
See who has access to a folder and their permission levels (full_access, comment, view, none). Returns team members with their roles, plus link and team-member default access levels.
recent
recent_activity
Get the latest comments across your team, newest first. Returns a mix of text and recording comments with author, timestamp, and a link to jump into the conversation. Each item has a `type` field ("text" or "recording") so you can filter client-side if needed.
search
search
Search across your team's folders, assets, and feedback by text. Always returns all three categories together.
tags
tags
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, or asset_id to narrow to one asset. Shares are count_with_tag / total_elements and do NOT sum to 100% because elements can carry multiple tags.
wait
wait_for_feedback
Wait for NEW feedback on an asset. Blocks up to timeout_seconds (default 45) and returns as soon as feedback newer than `since` arrives, or times out with an empty list. To listen continuously, call it again with the returned next_since. Use this after uploading a video for review instead of repeatedly calling feedback_list.

Endpoints

URLTransportStateLatencyChecked
https://api.flask.do/api/mcp/mcp streamable-http answering 164 ms 6 min ago

Flask — questions

Answers built from our own checks of this server.

What can Flask do?
It exposes 16 tools, read directly from the server on our last check. Among them: asset_status, contents, feedback_get, feedback_list, feedback_post, feedback_update and 10 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Flask mostly used for?
Its tools cluster around feedback and upload. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Flask working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 0 of 91 checks got a reply (0.0%), average response time 164 ms. The bar chart above shows every period we have measured.
The registry lists Flask as active — why does it not respond?
The official MCP registry stores what the author submitted; it does not verify that the server still runs. We check the endpoint ourselves, and this one does not answer. Catalogues that copy the registry without checking will show it as working.
How do I connect Flask?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Flask need an API key?
No. Flask completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 16 of them are readable on this page. This is what we observed, not what the docs claim.
Is Flask open source?
Yes — it is published under the MIT licence, written in JavaScript and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.