Flask MCP Integration
Connect Flask to Claude and other AI assistants via the Model Context Protocol.
How to connect
- In Claude (claude.ai or Claude Code), open the connector / integration settings and add a new MCP server.
- Use the connection details below. You'll be redirected to Flask to authorize access to your team.
- Once connected, ask Claude things like “summarize the feedback on our latest cut” or “what has the team been working on this week?”
| Server URL | https://api.flask.do/api/mcp/mcp |
| Authentication | OAuth 2.0 with Dynamic Client Registration (RFC 7591) |
| Transport | Streamable HTTP (POST only; SSE not supported) |
| Capabilities | Read + write: reads your data, uploads videos (from a URL or a local file), and creates/edits feedback comments as you, under the same permission rules as the app; it cannot delete anything |
| Requirements | Free or paid Flask account |
Quick connect by client
One command connects the server to Claude Code and Cursor and installs the review-loop skill:
Claude Code:
Cursor: Add to Cursor (one-click install)
claude.ai / Claude Desktop: Settings → Connectors → add the server URL above.
Agent skill
The review-loop playbook (upload, share the link right away, wait for feedback, iterate with versions) is also an installable skill for Claude Code, Cursor, Codex, and any other agent that reads skills:
Available tools
Most tools are read-only. The tools that write are the upload tools (upload_video imports a video from a URL, and upload_file_start / upload_file_complete upload a local file from your machine) and the feedback tools (feedback_post creates a comment, feedback_update edits one). Every write acts as your user under the exact permission rules the app enforces: commenting requires comment access, editing a comment's text is author-only, and tags are your team's existing tags. The MCP never deletes anything, and never creates recordings, drawings, or image attachments.
Browse
- contents: list root-level project folders, or open a folder to see its child folders and assets
Feedback
- feedback_list: list top-level feedback on an asset (text comments + voice/screen recordings), each with its tags by name; items also flag attached images and standalone drawings so the agent knows to fetch the visuals
- feedback_get: get a single feedback item with its full reply thread, including the AI summary and the transcript for that recording segment; pass
transcript: "full"for the recording's complete transcript - wait_for_feedback: long-poll that returns new feedback the moment it's left (blocks up to ~45s per call); lets agents listen for your review in near real time instead of polling
- feedback_post (write): create a comment on an asset as you, optionally anchored to a video timestamp, tagged with your team's existing tags, or threaded as a reply — e.g. importing feedback from an email with timestamps into the right moments of the video
- feedback_update (write): edit a feedback item — text and timestamp on your own comments; tags/statuses (like marking feedback “Done”) on any item you can comment on
- get_annotated_frames: returns curated supplementary visuals with the transcript marked
[FRAME N]: the media under review with the reviewer's drawing rendered in, plus their shared screen when they demonstrated something (e.g. a Photoshop or Figma mockup they pulled up). Also works on text comments: standalone drawings are rendered onto the exact frame they were drawn over, and attached images are returned as frames. The transcript is the primary feedback; webcam frames are not included - get_frame: drill into a recording for more visual detail: the exact frame at a specific recording time, or when a particular word or phrase was spoken, plus a transcript snippet around that moment. Use when get_annotated_frames did not resolve a “this”, “here”, “that” reference
Every feedback item includes its tags as readable names. Recordings are split into segments; each carries the transcript for its own segment plus a play_url, a deep link that opens the recording at the right moment.
Search & activity
- search: unified search across folders, assets, and feedback in one call
- recent_activity: the latest feedback (text + recording) across the whole team, newest first
Tags & permissions
- tags: list the team's tags and the share of feedback each tag covers, scoped to the team, a folder, or a single asset
- permission_get: see who has access to a folder and at what level
Media
- asset_status: check the processing status and progress of a video asset
- upload_video (write): import a video into a folder from a public URL (direct file link or Google Drive); returns an asset to poll with
asset_status - upload_file_start (write): start uploading a local video file (up to 5GB); returns the shareable link immediately plus a presigned upload URL
- upload_file_complete (write): finalize a local upload and start processing; the video is watchable via preview playback while it processes
All upload tools accept version_of to upload as a new version of an existing asset (or version stack) instead of a separate asset; the stack's link always shows the newest version.
Uploading via MCP is free for up to 100 assets, no subscription required. Beyond that, upgrade at flask.do/plan.
Use cases
Catch up on team feedback
See what your team has been giving feedback on, with links to jump into each conversation.
Summarize feedback on a video
Get a structured summary grouped by theme, with verbatim quotes, timestamps, and clickable links back to each item.
Turn voice notes into action items
AI transcripts of every voice/screen recording mean Claude can pull concrete action items straight out of casual feedback.
Upload a video from your workflow
Hand Claude a link or a local file (a finished cut, an agent-rendered video) and have it uploaded straight into the right folder, ready for feedback. The share link works immediately, and in an interactive session with a desktop browser the agent can open it for you automatically, for the first upload and every new version.
Find specific feedback across projects
Search across folders, assets, and feedback at once.
Import feedback from anywhere
Feedback arriving outside Flask — an email, a Slack thread, meeting notes — gets posted onto the asset as timestamped comments, so it lands at the exact moments it refers to.
Triage by tag
Use tag distribution to spot the busiest themes across a folder or asset.
Data handling
- The server only accesses data explicitly requested by the user via a tool call; no background sync, no proactive scraping
- The MCP route is stateless: a fresh server is created per request and no per-request data is persisted beyond OAuth tokens and rate-limit counters
- All data transmission is encrypted via HTTPS/TLS
- The MCP only writes when you ask it to — uploading a video (from a URL or a local file) or creating/editing a feedback comment as you, under the same permission rules as the app; it cannot delete any existing data in your Flask team
- Email addresses are never exposed in MCP responses (only display name and avatar)
- Tool discovery (initialize / tools list) is public and returns only the static tool catalog, so directory health checks can inspect the server; every actual tool call requires OAuth
Support
If you run into any issues with the Flask MCP integration, reach out at hello@flask.do.
For more about how we handle your data, see our Privacy Policy.