Connect via MCP

Use Fload from Claude, Cursor, ChatGPT or any MCP client. Ask about installs, reviews and ad spend, draft replies, propose listing changes and set up your agents, all from the AI app you already use. Anything that changes your app still waits for your approval.

What you get

  • Answers from your dataInstalls, revenue, reviews, keywords, competitors and ad results, from every platform you've connected.
  • Work, drafted for youReview replies, listing changes, new languages and Apple Ads changes, proposed to your inbox.
  • Agents, set up from chatTurn agents on or off, change when they run, retry a run and edit their settings and rules.
  • You stay in controlYou choose the permissions when you sign in. Changes still wait for your approval.

Connect in three steps

  1. 01
    https://api.fload.com/mcp
    Add the serverPaste one URL into Claude Code, Claude, ChatGPT, Cursor or VS Code.
  2. 02
    Allow access to Fload? Read apps, ads and reviews Draft changes for approvalAllow
    Sign in and choose what it seesPick the organization and the permissions. Revoke any time.
  3. 03
    Why did installs drop in Germany yesterday?
    Ask awayYour assistant now answers from your real App Store and ads data.

Every AI app connects to the same server: https://api.fload.com/mcp. There's no key to paste. The first time your AI app uses Fload, a browser opens so you can sign in, pick an organization and click Allow.

Run in your terminal, then /mcp in Claude Code to sign in
claude mcp add --transport http --scope user fload https://api.fload.com/mcp
OAuth 2.1Sign in with Fload and pick an organization. No keys to paste.

Set up your AI app

Claude Code

  1. In your terminal, run:
bash
claude mcp add --transport http --scope user fload https://api.fload.com/mcp
  1. Start Claude Code and type /mcp. Pick fload, choose Authenticate, then sign in to Fload in the browser and click Allow.
  2. Ask something like "Which of my apps lost downloads this week?"

--scope user makes Fload available in every project. Leave it out to add Fload to the current project only.

With an API key instead of signing in, for scripts and CI:

bash
claude mcp add --transport http --scope user fload https://api.fload.com/mcp \
  --header "Authorization: Bearer fload_sk_your_key_here"

With the local npm package:

bash
claude mcp add --env FLOAD_API_KEY=fload_sk_your_key_here --transport stdio \
  --scope user fload -- npx -y @fload-ai/mcp

Claude (desktop app and claude.ai)

  1. In Claude, open Settings › Connectors and click Add custom connector.
  2. Name it Fload and paste https://api.fload.com/mcp as the URL. Click Add.
  3. Click Connect, sign in to Fload and click Allow.

On Team and Enterprise plans, an owner adds the connector once under Organization settings › Connectors, and each member then clicks Connect. The Free plan allows one custom connector. A connector you add in Claude also shows up in Claude Code.

Prefer a config file? Claude Desktop's config file runs local servers, so use the npm package with an API key. Add this to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows, then quit Claude completely and open it again:

json
{
  "mcpServers": {
    "fload": {
      "command": "npx",
      "args": ["-y", "@fload-ai/mcp"],
      "env": { "FLOAD_API_KEY": "fload_sk_your_key_here" }
    }
  }
}

ChatGPT

  1. In ChatGPT, add a custom connector (also called a custom MCP server).
  2. Paste https://api.fload.com/mcp as the server URL and choose OAuth sign-in.
  3. Sign in to Fload and click Allow.

Custom connectors depend on your ChatGPT plan. In Business, Enterprise and Edu workspaces, an admin may need to allow them first.

Cursor

Add Fload to ~/.cursor/mcp.json (every project) or .cursor/mcp.json (one project):

json
{
  "mcpServers": {
    "fload": { "url": "https://api.fload.com/mcp" }
  }
}

Cursor opens the Fload sign-in the first time it connects.

VS Code (GitHub Copilot)

Add Fload to .vscode/mcp.json, or to your user configuration with the MCP: Open User Configuration command:

json
{
  "servers": {
    "fload": { "type": "http", "url": "https://api.fload.com/mcp" }
  }
}

Start the server from the file, and VS Code opens the Fload sign-in. Then use Fload from Copilot's agent mode.

Any other MCP client

  • Remote MCP with sign-in: use https://api.fload.com/mcp. The server speaks Streamable HTTP and OAuth 2.1, and registers your client on its own.
  • Remote MCP with a key: send Authorization: Bearer fload_sk_… to the same URL. A key acts as the person who made it, with the key's own permissions. See API keys.
  • No remote MCP: run the local MCP server with an API key.

How long you stay signed in

  • A sign-in gives your AI app access for an hour at a time, and it renews itself in the background, so you don't notice.
  • The connection stays signed in as long as it's used at least once every 30 days. After 30 days without use, you sign in again.
  • Disconnect any app at any time under Settings › Connected Apps in Fload.
  • An API key lasts until the expiry you picked (30 days, 90 days, a year or never) or until you revoke it.

What you approve when you sign in

The sign-in screen shows which app is asking, the account you're signed in with, and every permission it requests, each with a plain description. If you belong to more than one organization, you pick the one this app may use. Access never spans organizations.

PermissionWhat it allows
read:appsRead your apps and their details, and your own notifications and notification settings
read:orgSee your organization's members and pending invitations, with their email addresses, and your apps' share links. Not asked for by default: an AI app has to request it when it connects
read:reviewsRead reviews for your apps
read:analyticsRead metrics, dashboards, reports and market data
read:asoRead keywords, rankings, listing suggestions and experiments
read:adsRead ad campaigns, keywords and results
read:agentsRead agents, their runs, the inbox and the journal
write:reviewsDraft, translate and analyze review replies (uses credits). With write:agents, also send, approve or reject them
write:asoTrack keywords and propose listing changes, custom product pages and experiments. With write:agents, also approve or reject them
write:adsPropose Apple Ads changes (pausing a campaign, bids, negative keywords) and ask for the Ads Agent. With write:agents, also approve or reject them
write:agentsApprove and run: approve or reject inbox items, run, pause and set up agents, create tasks and reports (uses credits)
write:chatSend messages to Fio and save notes to its memory

An AI app or key without read:org can't see your team. It's told so, with how to fix it: the app asks for read:org when it connects, or you use a key with Read team and share links. Keys and connections made before 16 October 2026 with full access or every read permission keep seeing the team.

The sign-in also asks for openid, email, profile and offline_access, so the app knows who you are and stays connected between sessions.


How changes work

  • Changes go to your inboxA listing change, a bid change or a review reply becomes an inbox item, like the agents' own work.
  • Approving needs two permissionsApprove and run, plus that area's permission. Without Apple Ads, an AI app can't approve an Apple Ads change. Stopping a scheduled change only needs Approve and run.
  • Undo, then confirmApproved work goes out after a short undo window. Fload then reads the store to confirm it landed.
  • Retries are safeAn approval, a command or a new task can carry a retry key. Sent again after a timeout, it returns the first result instead of acting twice.
  • Chat follows your permissionsA message to Fio sent through your AI app only uses the tools your permissions allow.
  • Ads access comes from youAsk for the Ads Agent from an AI app you signed in to yourself, with the Apple Ads permission. An API key can't.

Agent setup

With Approve and run, your AI app can turn agents on or off, change when they run, retry a failed run, and edit, switch off or delete learned reply rules. With Reply to reviews it can change the Review Agent's settings, and with Propose ASO changes the ASO Agent's settings.

A few switches stay with people:

  • Turning an agent on needs a signed-in app (this sign-in flow). An API key can't do it.
  • Letting an agent act on its own needs your own sign-in plus Approve and run. That covers ASO auto mode, weekly promotional text and the Review Agent's Auto-mode. Anyone with access can turn them off.
  • Review Agent settings can only be changed by a person: in Fload, or from an AI app you signed in to yourself.

Every tool

Generated from Fload's own tool list, so it matches what the server offers today. Each tool shows the permission your AI app needs for it. Tools marked "Goes to your inbox" wait for your approval before anything changes.

166 tools in 16 areas. Open an area to see its tools. Your AI app sees the ones your permissions allow.

Apps and usagelistAssets, getAppDetails, getUsage3
  • listAssetsList your apps, with the id every other tool takes.Read apps
  • getAppDetailsOne app's store details and which data sources it has.Read apps
  • getUsageYour plan, credits used this month and recent charges.Read apps
Team, notifications and sharingorganization_members, organization_invitations, notifications_list, …5
  • organization_membersWho is in your organization, with each person's role.Read team and share links
  • organization_invitationsInvitations still waiting to be accepted, and when they expire.Read team and share links
  • notifications_listYour own Fload notifications, newest first.Read apps
  • notification_preferencesWhich notifications and emails you get, and where.Read apps
  • share_links_listAn app's share links, with what each one shows and when it expires.Read team and share links
MetricsdiscoverMetrics, getMetricGuidance, checkDimensionCompatibility, …19
  • discoverMetricsList the metrics you can read, by category.Read analytics
  • getMetricGuidanceWhat a metric means and what usually moves it.Read analytics
  • checkDimensionCompatibilityCheck which breakdowns work with a set of metrics.Read analytics
  • suggestRelatedMetricsSuggest metrics to read alongside one you picked.Read analytics
  • getMetricsRead metric values over a date range, with a breakdown and a comparison.Read analytics
  • getDashboardOverviewKey numbers across all your apps.Read analytics
  • getHomeSummaryOne app's Home page: what changed, reach and reviews.Read analytics
  • getDownloadImpactWhether Fload's listing changes moved downloads.Read analytics
  • getPriceCatalogYour app's prices by country.Read analytics
  • getRealizedVsCatalogPricingWhat customers actually paid, against your list prices.Read analytics
  • listAmplitudeEventsList your Amplitude events.Read analytics
  • listAmplitudeEventPropertiesList the properties of one Amplitude event.Read analytics
  • queryAmplitudeEventCount one Amplitude event over a date range.Read analytics
  • getComputedMetricsRatios such as store conversion, subscription rate and Apple Ads costs, day by day.Read analytics
  • getValuationWhat your app is worth as Fload calculates it, and how that has changed.Read apps
  • getCohortsHow the people who downloaded on each day went on to pay or subscribe.Where Cohorts is turned on for your account.Read analytics
  • queryPostHogSessions, page views and what stands out, read live from PostHog.Read analytics
  • queryMixpanelRetention and engagement, read live from Mixpanel.Read analytics
  • metric_dimensionsWhat one app's metrics can be broken down by, such as country or store, and the values.Read analytics
Market datamarket_keyword_demand, market_competitors, market_keyword_rankings, …11
  • market_keyword_demandSearch demand for keywords in a store and country.Read analytics
  • market_competitorsYour app's store competitors and their listing facts.Read analytics
  • market_keyword_rankingsWhich apps rank for a keyword, yours included.Read analytics
  • market_app_performanceEstimated daily downloads and revenue for your app or a competitor.Read analytics
  • market_review_statsDaily review counts and ratings for an app in one country.Read analytics
  • market_category_positionAn app's categories and where it places in their charts.Read analytics
  • market_ranked_keywordsEvery keyword an app ranks for.Read analytics
  • market_localizationWhich languages an app's listing is in, per country.Read analytics
  • market_category_normsWhat's typical for listings in a category.Read analytics
  • market_category_sizeA category's estimated total downloads and revenue.Read analytics
  • market_data_healthHow fresh the market data for your app is.Read analytics
ReportslistReports, getReport, generateReport, …6
  • listReportsList your reports and the kinds you can create.Read analytics
  • getReportRead one report, or its progress while it's being written.Read analytics
  • generateReportStart a new version of a report. Uses credits.Available when report generation is turned on for your account.Approve and run
  • report_exportDownload a finished report as Markdown or PDF.Read analytics
  • report_dataThe tables and figures behind a report.Read analytics
  • report_questionsThe questions a report asks you, and which are answered.Read analytics
ReviewsgetReviews, getReviewAgentStatus, getReviewAnalyses, …12
  • getReviewsList reviews for an app, with filters.Read reviews
  • getReviewAgentStatusWhether review data is ready, and the latest review analysis.Read reviews
  • getReviewAnalysesSaved review analyses: what people like and dislike.Read reviews
  • review_statsRatings, reply speed and reply counts, as the Reviews page shows them.Read reviews
  • generateReviewReplyDraft a reply to one review. Uses credits.Reply to reviews
  • generateReviewRepliesDraft replies to many reviews at once. Uses credits.Reply to reviews
  • translateReviewTranslate one review into English. Uses credits.Reply to reviews
  • translateReviewsTranslate many reviews into English. Uses credits.Reply to reviews
  • generateReviewAnalysisRun a new analysis of recent reviews. Uses credits.Reply to reviews
  • review_syncRead an app's reviews again, or catch up on ones without a reply.Also needs Approve and run.Reply to reviews
  • review_agent_settings_updateChange the Review Agent's settings for an app.Only from your own sign-in, never an API key. Turning on Auto-mode also needs Approve and run.Reply to reviews
  • review_stage_replyPut your own reply to a review in your inbox, ready to approve. Nothing is sent yet.Reply to reviews
Apple Ads and ad campaignsads_campaigns, ads_money, ads_stage_budget, …21
  • ads_campaignsOne app's campaigns on every connected ad platform, with totals.Read Apple Ads
  • ads_moneyEach app's Apple Ads balance, budget and monthly cap.Read Apple Ads
  • ads_stage_budgetPropose a new budget or monthly cap for one app. Goes to your inbox.An owner, admin or editor of your organization approves it in the inbox.Propose Apple Ads changes
  • ads_resultsHow one app's Apple Ads are doing, as the Ads page shows it.Read Apple Ads
  • asa_campaign_overviewApple Search Ads campaign performance at a glance.Read Apple Ads
  • asa_campaign_healthA health score for each Apple Search Ads campaign.Read Apple Ads
  • asa_campaign_breakdownA campaign's results by country, device, age or similar.Read Apple Ads
  • asa_get_campaign_targetingWhere a campaign is targeted.Read Apple Ads
  • asa_top_keywordsYour best-performing Apple Search Ads keywords.Read Apple Ads
  • asa_keyword_breakdownKeyword results by country, device, age or similar.Read Apple Ads
  • asa_search_term_breakdownSearch-term results by country, device, age or similar.Read Apple Ads
  • asa_search_term_miningSearch terms worth adding as keywords.Read Apple Ads
  • asa_wasted_spendSearch terms that cost money without any installs.Read Apple Ads
  • asa_first_time_paid_downloadsFirst-time paid downloads and what they cost.Read Apple Ads
  • asa_bid_suggestionsSuggested bid changes for a campaign.Read Apple Ads
  • asa_pause_campaignPropose pausing a campaign. Goes to your inbox.Propose Apple Ads changes
  • asa_update_bidPropose a new bid for a keyword. Goes to your inbox.Propose Apple Ads changes
  • asa_add_negative_keywordPropose a negative keyword for a campaign. Goes to your inbox.Propose Apple Ads changes
  • asa_promote_search_termPropose turning a search term into a keyword. Goes to your inbox.Propose Apple Ads changes
  • asa_apply_bid_suggestionsPropose the bid suggestions you picked. Goes to your inbox.Propose Apple Ads changes
  • ads_request_accessAsk Fload for the Ads Agent. The team gets in touch about your budget.Only from your own sign-in, never an API key.Propose Apple Ads changes
ASO: listing and keywordsgetAsoSummary, aso_recommendations, aso_get_evidence, …22
  • getAsoSummaryYour listing's health and what the ASO Agent is working on.Read ASO
  • aso_recommendationsRecent ASO suggestions and what came of them.Read ASO
  • aso_get_evidenceThe evidence behind the ASO Agent's decisions.Read ASO
  • aso_listing_screenshotsYour current listing: text, icon and screenshots.Read ASO
  • getAsoListingSnapshotsSaved copies of your listing over time.Read ASO
  • aso_app_store_versionsYour App Store versions and their status.Read ASO
  • aso_sync_statusWhether your listing is syncing right now.Read ASO
  • aso_tracked_keywordsThe keywords you track, with their latest ranks.Read ASO
  • aso_keyword_rank_historyHow your keyword ranks moved over time.Read ASO
  • aso_score_keywordsScore your tracked keywords the way the audit does.Read ASO
  • aso_market_dataCompetitors and popular keywords in your category.Read ASO
  • aso_market_priorityWhich countries to work on first, scored.Read ASO
  • aso_keyword_processHow Fload researches and swaps keywords.Read ASO
  • aso_intent_taxonomyThe kinds of search intent Fload uses.Read ASO
  • aso_ranking_power_checkHow strong your app is at ranking, and what that allows.Read ASO
  • aso_update_listing_textPropose new text for one language of your listing. Goes to your inbox.Propose ASO changes
  • aso_stage_listing_revertPropose restoring your listing to an earlier copy. Goes to your inbox.Propose ASO changes
  • aso_add_tracked_keywordStart tracking a keyword.Propose ASO changes
  • aso_remove_tracked_keywordStop tracking a keyword.Propose ASO changes
  • aso_auto_seed_tracked_keywordsPick keywords to track from your listing again.Propose ASO changes
  • aso_check_keyword_ranksRefresh your keyword ranks.Propose ASO changes
  • aso_refetch_listingRead your store listing into Fload again.Propose ASO changes
ASO: languagesaso_create_locales, aso_locale_draft_update, aso_locale_draft_regenerate_field, …4
  • aso_create_localesWrite listings for new languages. Uses credits.Propose ASO changes
  • aso_locale_draft_updateSave your edit of a language draft.Propose ASO changes
  • aso_locale_draft_regenerate_fieldRewrite one field of a language draft. Uses credits.Propose ASO changes
  • aso_stage_locale_applyPropose publishing language drafts. Goes to your inbox.Propose ASO changes
ASO: experimentsaso_experiments, getAsoExperiments, aso_experiment_detail, …9
  • aso_experimentsYour listing experiments and what each one found.Read ASO
  • getAsoExperimentsList experiments, filtered by status.Read ASO
  • aso_experiment_detailOne experiment in full.Read ASO
  • aso_experiment_createRecord a new experiment as a proposal.Propose ASO changes
  • aso_experiment_updateUpdate an experiment's record.Propose ASO changes
  • aso_experiment_archiveArchive an experiment. Its results are kept.Propose ASO changes
  • aso_experiment_restoreBring an archived experiment back.Propose ASO changes
  • aso_experiment_deleteDelete an experiment that never went live.Propose ASO changes
  • aso_stage_experiment_revertPropose rolling back an experiment. Goes to your inbox.Propose ASO changes
ASO: screenshots and store artaso_screenshot_sets, aso_screenshot_translation, aso_screenshot_translation_quote, …12
  • aso_screenshot_setsYour screenshot sets and the store pages they're on.Where screenshot work is turned on for your account.Read ASO
  • aso_screenshot_translationWhere a screenshot translation has got to.Where screenshot work is turned on for your account.Read ASO
  • aso_screenshot_translation_quoteWhat translating a screenshot set would cost.Where screenshot work is turned on for your account.Read ASO
  • aso_start_screenshot_translationSet up translating a screenshot set, as a task.Publishing needs a person to approve it, never an API key.Propose ASO changes
  • aso_header_searchThe header and search-result art on your store pages.Where screenshot work is turned on for your account.Read ASO
  • aso_header_search_translation_quoteWhat translating header or search art would cost.Where screenshot work is turned on for your account.Read ASO
  • aso_start_header_search_translationTranslate header or search art into more languages. Uses credits.Where screenshot work is turned on for your account. Only from your own sign-in, never an API key.Propose ASO changes
  • aso_show_header_searchPut uploaded or translated header and search art on your store pages.Where screenshot work is turned on for your account. Only from your own sign-in, never an API key.Propose ASO changes
  • aso_asset_libraryAll your store pages and screenshot sets, which languages have their own screenshots, and suggested fixes.Where screenshot work is turned on for your account.Read ASO
  • aso_screenshot_setOne screenshot set in full, by language and device size.Where screenshot work is turned on for your account.Read ASO
  • aso_screenshot_set_historyA screenshot set's past versions, with store conversion while each was live.Where screenshot work is turned on for your account.Read ASO
  • aso_asset_library_refreshRead your screenshots and media again from App Store Connect. Changes nothing at Apple.Where screenshot work is turned on for your account. Only from your own sign-in, never an API key.Propose ASO changes
ASO: custom product pagesaso_list_custom_product_pages, aso_custom_product_page_detail, aso_create_custom_product_page, …4
  • aso_list_custom_product_pagesYour custom product pages and their status.Read ASO
  • aso_custom_product_page_detailOne custom product page in full.Read ASO
  • aso_create_custom_product_pagePropose a new custom product page. Goes to your inbox.Submitting it to Apple needs a person to approve it, never an API key.Propose ASO changes
  • aso_cancel_custom_product_page_reviewPropose cancelling a page's Apple review. Goes to your inbox.Propose ASO changes
ASO: auto mode and settingsaso_auto_mode, aso_auto_mode_set, aso_stop_auto_change, …6
  • aso_auto_modeWhat auto mode is doing: the switch, and what it scheduled.Read ASO
  • aso_auto_mode_setTurn auto mode on or off for an app.Turning it on: only from your own sign-in, with Approve and run.Propose ASO changes
  • aso_stop_auto_changeStop one change auto mode scheduled, before it applies.Needs Approve and run.Approve and run
  • aso_agent_settings_updateChange the ASO Agent's settings for an app.Turning on weekly promotional text: only from your own sign-in, with Approve and run.Propose ASO changes
  • aso_agent_settings_detectSuggest brand voice and guidelines from your listing.Propose ASO changes
  • aso_agent_test_notificationSend a test message to the ASO Agent's Slack and Discord channels.Propose ASO changes
Inbox and tasksgetPendingActions, getActionItem, getTaskLedger, …10
  • getPendingActionsWhat's waiting in your inbox.Read agents and inbox
  • getActionItemOne inbox item in full, as the inbox shows it.Read agents and inbox
  • getTaskLedgerEvery task for an app, in every state.Read agents and inbox
  • getJournalWhat Fload did, day by day.Read agents and inbox
  • listTaskCardsThe tasks you can ask Fload to do for an app.Read agents and inbox
  • preflightTaskCheck a task's cost and whether it can start, without starting it.Read agents and inbox
  • createTaskStart a task, as New task does. Uses credits.Approve and run
  • approvePendingActionApprove an inbox item.Also needs that area's permission. Screenshot and custom product page publishing need your own sign-in, not an API key.Approve and run
  • rejectPendingActionReject an inbox item.Also needs that area's permission.Approve and run
  • commandActionItemsSend an inbox command, like iterate or archive, to one or more items.Acting on a change also needs that area's permission. With an API key: approve, reject, dismiss, acknowledge and check again only.Approve and run
AgentsgetAgentStatus, getAgentRun, compareAgentRuns, …18
  • getAgentStatusYour agents and their status.Read agents and inbox
  • getAgentRunOne agent run in full.Read agents and inbox
  • compareAgentRunsCompare two agent runs side by side.Read agents and inbox
  • getAgentLessonsWhat agents learned from past results.Read agents and inbox
  • getOrchestratorBriefingFio's latest briefing.Read agents and inbox
  • triggerAgentRunRun one agent now. Uses credits.Approve and run
  • runAllAgentsRun all your agents now. Uses credits.Approve and run
  • pauseAgentPause an agent's scheduled runs.Approve and run
  • resumeAgentResume a paused agent.Approve and run
  • agent_activateTurn an agent on for an app.Needs a sign-in, not an API key.Approve and run
  • agent_deactivateTurn an agent off.Approve and run
  • agent_update_scheduleChange when an agent runs.Approve and run
  • agent_retry_runRetry a failed run.Approve and run
  • agent_rules_listThe rules an agent follows: yours and the ones it learned.Read agents and inbox
  • agent_rule_updateEdit a rule, or switch it on or off.Approve and run
  • agent_rule_deleteDelete a rule.Approve and run
  • agent_run_historyAn agent's past runs: when, what started them, what they did, and any error.Read agents and inbox
  • agent_activityAn agent's activity log, newest first.Read agents and inbox
Fio's memory and chatslist_memories, save_memory, list_conversations, …4
  • list_memoriesThe notes Fio has saved about your organization.Read agents and inbox
  • save_memorySave a note for Fio to remember in later chats.Chat with Fio
  • list_conversationsYour own chats with Fio, newest first.Read agents and inbox
  • get_conversationRead one chat with Fio: your own, or one shared with your team.Read agents and inbox

Credits

Reading data over MCP is free. Work that uses AI, such as drafting a reply, a chat message to Fio or a new report, costs the same credits as it does in the app. See Pricing & Credits.


Disconnect

Go to Settings → Connected Apps in Fload and remove the app. It's signed out straight away.


For agent authors and marketplace reviewers

Fload implements the MCP authorization specification: OAuth 2.1 with PKCE (S256) and dynamic client registration for public clients.

Discovery

  • https://api.fload.com/.well-known/oauth-protected-resource: protected resource metadata (RFC 9728)
  • https://api.fload.com/.well-known/oauth-authorization-server: authorization server metadata (RFC 8414)
  • Mirrors at https://fload.com/.well-known/oauth-* for discovery from the apex domain

Endpoints

MCP (Streamable HTTP)https://api.fload.com/mcp
Authorizationhttps://api.fload.com/api/auth/oauth2/authorize
Tokenhttps://api.fload.com/api/auth/oauth2/token
Registrationhttps://api.fload.com/api/auth/oauth2/register
Revocationhttps://api.fload.com/api/auth/oauth2/revoke
Introspectionhttps://api.fload.com/api/auth/oauth2/introspect
UserInfohttps://api.fload.com/api/auth/oauth2/userinfo
JWKShttps://api.fload.com/api/auth/jwks

First contact

A request to https://api.fload.com/mcp without a token gets a 401 with:

text
WWW-Authenticate: Bearer resource_metadata="https://api.fload.com/.well-known/oauth-protected-resource"

Follow it to the authorization server, register a public client, run the authorization code flow with PKCE, and send resource=https://api.fload.com/mcp with the token request.

When a client connects, the server tells it how to work with Fload: call listAssets first and pass the app's id on every call; store data is complete up to two days ago; a missing value is unknown, not zero; and changes are staged in the inbox, not published.