{
  "markdown": "# Flask plugin for Claude Code\n\n[Flask](https://flask.do) is the feedback layer for video, built for the agentic\nloop: your agent uploads a render and shares the link instantly. The reviewer\ndoesn't type - they hit record and talk through the video (voice, camera, screen,\ndrawing on frames), and Flask turns the recording into structured, timestamped\ncomments with transcripts. The agent reads that feedback and iterates, pushing\neach revision as a new version of the same asset. Typed comments work too -\nrecordings are the advantage, not a requirement.\n\nThis plugin connects the [Flask MCP server](https://flask.do/mcp) and teaches the\nagent the full review loop.\n\n## Install\n\nOne command connects the Flask MCP server (Claude Code, Cursor) and installs\nthe review-loop skill for any agent that reads skills:\n\n```\nnpx flask-feedback\n```\n\nPrefer to wire things yourself? Per-client instructions below.\n\n### Claude Code\n\n```\n/plugin marketplace add tryflask/skills\n/plugin install flask@flask\n```\n\nThen authenticate once: `/mcp` -> `flask` -> complete the browser sign-in.\n\nNo plugin manager? Connect the MCP server directly:\n\n```\nclaude mcp add --transport http flask https://api.flask.do/api/mcp/mcp\n```\n\n### Cursor, Codex, and other agents\n\nInstall the review-loop skill (works across skills-compatible clients):\n\n```\nnpx skills add tryflask/skills\n```\n\nThen connect the MCP server:\n\n- **Cursor**: [![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=flask&config=eyJ1cmwiOiJodHRwczovL2FwaS5mbGFzay5kby9hcGkvbWNwL21jcCJ9)\n- **claude.ai / Claude Desktop**: Settings -> Connectors -> add `https://api.flask.do/api/mcp/mcp`\n- **Any MCP client**: Streamable HTTP at `https://api.flask.do/api/mcp/mcp` (OAuth sign-in opens in the browser on first use)\n\n## What the agent can do\n\n| Tool | What it does |\n|---|---|\n| `contents`, `search`, `recent_activity` | Browse folders/assets, search, latest team feedback |\n| `feedback_list`, `feedback_get` | Read feedback with tags, timestamps, recording transcripts (`transcript: \"full\"` for whole recording) |\n| `wait_for_feedback` | Long-poll - returns new feedback the moment it's left |\n| `get_annotated_frames` | Returns the video frames a recording pointed at / drew on, as images with the drawing rendered in, plus the transcript marked `[FRAME N]` - resolves \"this\"/\"here\"/drawn-circle references to actual pixels |\n| `upload_file_start` / `upload_file_complete` | Upload a local video (5GB max) via presigned URL; share link available the instant the upload starts |\n| `upload_video` | Import from a public URL or Google Drive link |\n| `version_of` (param on uploads) | Upload as a new version of an existing asset - one stable link for the whole iteration |\n| `asset_status`, `tags`, `permission_get` | Processing status, tag distribution, folder access |\n\nThe server is read-only except for uploads - it can never edit or delete anything.\n\n## The loop in practice\n\n```\nagent renders video -> upload_file_start -> user gets flask.do link instantly\nuser records feedback on the video -> wait_for_feedback returns it (transcribed)\nagent implements changes -> uploads v2 with version_of -> same link shows v2\n```\n\n## Docs and support\n\n- Server documentation: https://flask.do/mcp\n- Support: hello@flask.do\n\nThis repo is kept in sync with the MCP server. Tool list and behavior described\nhere mirror https://flask.do/mcp, which is the source of truth.\n",
  "bytes": 3454,
  "sha": "01b87cde7698f020a4942bcecc0aae16cb1b58a727c6d0b1a1bc0d2f22f2ce65",
  "repo_slug": "tryflask/skills",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_tryflask_flask_50c31a6a/readme"
}