Google Flow MCP Server

October 16, 2026

Table of contents

  1. Endpoint and authorization
  2. Setup
  3. Tools
  4. Long-running work
  5. Approvals and credits
  6. Example prompts
  7. Limits and notes

The useapi.net Google Flow MCP server lets an AI assistant such as Claude Code, Cursor or VS Code Copilot work with Google Flow Agent, the creative assistant built into Google Flow, on your own Google accounts. It is a hosted Model Context Protocol server with 12 tools: chat with the agent, attach images, a video, voices and characters, answer its requests to spend credits, read, list, rename and delete chats, set the project’s approval mode, instructions and default models, list the account’s characters, voices, images and videos, and upload your own images. Each tool calls the Agent API or another Google Flow API endpoint, so the same rules and limits apply. Nothing needs to be installed or hosted.

Endpoint and authorization

https://api.useapi.net/v1/google-flow/mcp
  • Transport: Streamable HTTP.
  • Listed in the official MCP Registry as net.useapi/google-flow, so MCP clients and directories that read the registry can find it by that name.
  • Authorization: your useapi.net API token in the Authorization: Bearer … header, see Setup useapi.net.
  • You need at least one Google account added with Setup Google Flow, and a captcha provider once your free captcha credits run out. Adding and removing accounts is not available over MCP: use POST /accounts or the setup page.

Setup

Replace YOUR_API_TOKEN with your useapi.net API token.

Claude Code

claude mcp add --transport http useapi-google-flow https://api.useapi.net/v1/google-flow/mcp --header "Authorization: Bearer YOUR_API_TOKEN"

Cursor

In ~/.cursor/mcp.json:

{
  "mcpServers": {
    "useapi-google-flow": {
      "url": "https://api.useapi.net/v1/google-flow/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

VS Code

In .vscode/mcp.json:

{
  "servers": {
    "useapi-google-flow": {
      "type": "http",
      "url": "https://api.useapi.net/v1/google-flow/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Windsurf and other clients

Any client that supports remote MCP servers over HTTP with custom headers works. The usual JSON shape:

{
  "mcpServers": {
    "useapi-google-flow": {
      "serverUrl": "https://api.useapi.net/v1/google-flow/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Some clients name the address field url instead of serverUrl.

Test it with curl

curl -s https://api.useapi.net/v1/google-flow/mcp \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'

curl -s https://api.useapi.net/v1/google-flow/mcp \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

The first call answers with the server’s name useapi-google-flow and its instructions for the assistant, the second with the 12 tools.

Tools

Chats are named by their chatId, which carries its account and project, so a follow-up always runs where the chat lives. The tools that work on an account (flow_agent_list_chats, flow_agent_get_settings, flow_agent_update_settings, flow_list_characters, flow_list_voices, flow_list_assets, flow_upload_image) take an optional email, which can be left out when the API token has one Google Flow account.

Chat

Tool What it does Main parameters
flow_agent_chat Sends a message to the agent and returns its answer: the chat’s chatId, the turn’s status (completed, waiting_approval, failed or running), the agent’s text, its tool calls, the media it made with referenceId and link, and a pending request to spend credits. Without chatId it starts a new chat, on email, on the references’ account, or on an account the API picks. Name references in the message as @referenceImage_1, @referenceVideo_1, @referenceAudio_1 or @character_1. Find them with the tools under Your characters, voices and media. They must belong to the chat’s account. message, chatId, email, projectId, referenceImage_1..7, referenceVideo_1, referenceAudio_1..5, character_1..7
flow_agent_get_chat Reads a chat: its status, pending request, last error and latest turns with media status and links. With wait: true it follows the running turn and returns the rest, after the lastEventId of an earlier result. chatId, wait, after, media, limit
flow_agent_answer_approval Answers the agent’s request to spend credits with approve, always (approve and switch the project to auto) or reject, then follows the agent like flow_agent_chat. chatId, decision, wait
flow_agent_list_chats Lists the account’s agent chats with title, dates and whether a turn is running, including chats started in the Flow web app in the same project. email, projectId
flow_agent_rename_chat Renames a chat, also in the Flow web app. chatId, title
flow_agent_delete_chat Deletes a chat’s history. The images and videos it made stay in the project. chatId

The parameters match POST /agent/chats, POST /agent/chats/chatId/messages, POST /agent/chats/chatId/approval and GET /agent/chats/chatId.

Settings

Tool What it does Main parameters
flow_agent_get_settings Reads the project’s approval mode (ask or auto), its instructions and the default image and video model, aspect ratio and count. email, projectId
flow_agent_update_settings Changes them. instructions replaces the whole list of up to 3. email, projectId, approval, instructions, imageDefaults, videoDefaults

The parameters match PUT /agent/settings.

Your characters, voices and media

Tool What it does Main parameters
flow_list_characters Lists the characters saved on the account with their name, voice and character id, to pass as character_N. email
flow_list_voices Lists the 30 built-in voices by name and the account’s own voices with their ids, to pass as referenceAudio_N. email, source
flow_list_assets Lists a project’s images and videos, newest first, with a referenceId for referenceImage_N or referenceVideo_1 and whether each is an upload. Without projectId it lists the account’s main project. Every project includes the account’s uploads. Pass the agent project’s id from flow_agent_get_settings to see what the agent made. Returns 50 by default, up to 200 per call. email, projectId, type, uploadsOnly, limit
flow_upload_image Uploads your own JPEG, PNG or WebP image from a public https URL, or sent as contentBase64, up to 20 MB, and returns its referenceId for referenceImage_N. Upload it to the account you chat on. Uploads stay on the Google account until deleted. url or contentBase64, mimeType, email

The parameters match GET /characters, GET /voices, GET /assets/media/email and POST /assets/email.

The full input schema of every tool comes from tools/list.

Long-running work

MCP clients usually give up on a tool call after about a minute, so a tool waits up to about 50 seconds:

  • Sending waits for Google to accept the turn, usually 3 to 40 seconds. If Google has not confirmed it within 55 seconds, the tool says so and tells the assistant to check the chat before sending again.
  • The tool then follows the agent for the rest of the time. A short answer, an image or a request to spend credits usually comes back in that time.
  • A turn that is still working returns status: "running" and a lastEventId. flow_agent_get_chat with wait: true and after set to that lastEventId returns the rest. Ask the assistant to keep checking until it is done.
  • Videos finish a minute or two after the turn. flow_agent_get_chat without wait shows their status and link.

Clients that ask for progress notifications get one about every 10 seconds while a tool waits.

Media links are Google’s and expire about 6 hours after they are issued. Read the chat again for fresh ones. A media item’s referenceId can go into a later message as referenceImage_N or referenceVideo_1.

Approvals and credits

Chatting with the agent costs no Flow credits. The images and videos it makes cost the usual Flow price. In the ask approval mode the agent stops before it spends credits and says what it costs, and the tool result tells the assistant to ask you before it answers with flow_agent_answer_approval. always, or approval: "auto" with flow_agent_update_settings, lets the agent spend without asking in every chat of the project.

Example prompts

  • “Upload https://example.com/photo.jpg to my Flow account and ask the agent to describe it.”
  • “Ask the Flow agent for three ideas for a 30-second coffee ad, then make the first one as a storyboard of four images.”
  • “Make an 8-second Veo 3.1 Lite video of a paper boat floating on a calm pond. Show me the cost before you approve it.”
  • “Send my character and this product image to the Flow agent and ask for a short video of her holding it, in the Aoede voice.”
  • “Is the video from my last Flow chat ready? Give me the link.”
  • “List my Flow agent chats and delete the ones about the lighthouse.”
  • “Set the Flow agent to use Nano Banana Pro at 9:16 by default, and add an instruction to keep every answer short.”

Limits and notes

  • The tools use your Google accounts and the same rules as the REST API: one turn at a time per chat, at most 3 running turns per account, and Google’s daily limit on agent messages. See Limits.
  • Each turn uses one captcha, the same as a generation request.
  • References in a chat must belong to the chat’s account. Upload images with flow_upload_image to that account.
  • flow_list_assets returns up to 200 items per call, and a large project can take 20 seconds or more to read. A new upload may take a moment to appear in the list.
  • Custom connectors on claude.ai need OAuth sign-in, which this server does not support yet. Use Claude Code or another client that can send an Authorization header.
  • A client may send up to 20 JSON-RPC requests in one batch.
  • If the client sends an MCP-Protocol-Version header, it must be one of the supported versions: 2025-06-18, 2025-03-26 or 2024-11-05.
  • Every tool call shows in your usage stats (bot=google-flow) as model mcp, with the tool name as its status, or failed.