MerchantFlowMerchantFlow Docs
IntegrationsMCP Server

MerchantFlow MCP Tool Reference

Complete list of the 64 MCP tools MerchantFlow exposes, with parameters, defaults, and required scopes, plus the built-in prompts and resources available to compatible MCP clients.

MerchantFlow MCP Tool Reference

This is the complete tool catalog for MerchantFlow's 64 read-only tools. Four of them depend on per-channel attribution, which is not enabled by default, so a typical connection lists 60. Each entry shows the tool name, what it does, its parameters, and an example prompt that will make Claude, Cursor, Windsurf, or another MCP client call it.

Tools are grouped by the OAuth scope they require. A token that was granted mcp:read:all can call every tool; a token scoped to individual permissions can only call the tools in the matching sections.

How to read this page

  • Required parameters must be supplied or the call fails with invalid_params.
  • All dates are ISO 8601 calendar dates (YYYY-MM-DD) interpreted in your store's timezone.
  • Every tool returns its payload twice: as structuredContent (a real JSON object) and as JSON text in content[0], so clients that read either channel get the same answer. Both carry a _meta block (last sync time, currency, plan window) and a _tenant_context marker. Responses are capped at 500 KB and arrays at 100 items - narrow your query if you see _truncated: true.
  • Every tool also publishes an outputSchema in tools/list, so a client can validate and type the response instead of treating it as opaque JSON. The schema describes the truncation shapes above as well, so a truncated response still validates.
  • Tools marked heavy draw from a smaller per-minute rate-limit budget (see rate limits).
  • Customer PII (emails, phones, addresses) is redacted in every response by default.
  • Every tool advertises a title plus readOnlyHint: true, destructiveHint: false, idempotentHint: true and openWorldHint: false in tools/list, both at the top level and inside annotations so older clients read them too. There is no write scope, so no tool can modify your store or your MerchantFlow data.

Financial and P&L tools

Scope: mcp:pnl:read

get_pnl_summary

Get a profit and loss summary over a date range, broken down by revenue, COGS, ad spend, expenses, fees, and net profit. Optionally compare to the previous period or previous year for percentage deltas.

  • start_date (string, required) - YYYY-MM-DD
  • end_date (string, required) - YYYY-MM-DD
  • compare_to (enum, optional) - previous_period or previous_year

Summarise this week's P&L with comparison to last week.

get_revenue_breakdown

Get revenue broken down by source, channel, or country over a date range.

  • start_date (string, required)
  • end_date (string, required)
  • group_by (enum, required) - source, channel, category, or country

category is accepted by the schema but is not implemented in this release -- it returns an empty row set with a note pointing you at get_top_products with rank_by='revenue' instead.

Stores without per-channel attribution enabled see only country in the tool schema, and source or channel are rejected if passed anyway.

Show me revenue by country for the last 30 days.

get_expenses_breakdown

Get OPEX and CAPEX expenses broken down by category and vendor, including recurring expenses and CAPEX amortisation.

  • start_date (string, required)
  • end_date (string, required)
  • category (string, optional) - restrict to one expense category
  • include_capex (boolean, optional, default true)

What did I spend on software in the last month?

get_bank_balance

Current bank balance, burn rate, and projected runway in days. The balance is your cash across every active account, converted into your workspace currency, with a per-account breakdown alongside it. last_recorded_at is the oldest of the per-account dates, so it reflects how stale your weakest account is.

If an account cannot be converted, current_balance and projected_runway_days come back null and unconverted_accounts is above zero, rather than a partial total being reported as complete.

  • runway_periods (number array, optional, default [30, 60, 90]) - burn windows in days

What's my bank runway at current burn?

get_mca_status

Active revenue-based funding (MCA) agreements, repayment schedule, and impact on the current period P&L.

Each agreement carries a repaid_basis of actual or estimated. actual means you have logged real remittances and the figure is authoritative; estimated means nobody has logged a repayment and the figure is only a projection of the revenue share. Also returns the agreement currency, any monthly_remittance_cap and how much has been remitted against it this month.

  • No parameters.

How much do I still owe on my MCA, and what's the daily deduction?

get_date_range_summary

High-level rollup of revenue, profit, orders, ad spend, and key metrics for an arbitrary date range. Best for quick time-period comparisons.

  • start_date (string, required)
  • end_date (string, required)

Give me a quick summary of Q1 2026.

get_markets

The Markets dashboard table for a date range: real geo ad spend, blended fallback spend, revenue, net profit, margins, ROAS, POAS, CAC, and markets with spend but no orders.

  • start_date (string, required)
  • end_date (string, required)
  • country_codes (string array, optional, max 50) - ISO 3166-1 alpha-2 codes
  • include_spend_without_orders (boolean, optional, default true)
  • sort_by (enum, optional) - dashboard, net_profit, revenue, orders, spend, net_margin_pct, roas, poas, cac
  • limit (integer, optional, 1-100, default 50)

Which countries are profitable for me this quarter, sorted by POAS?

get_market_products

Country drilldown for the Markets view, ranked by variant and bundle contribution margin.

  • country_code (string, required) - ISO 3166-1 alpha-2
  • start_date (string, required)
  • end_date (string, required)
  • limit (integer, optional, 1-100, default 50)
  • include_bundles (boolean, optional, default true)

What sells best in Germany this month, and at what margin?

search_orders

Search orders by date range, customer email, order number, or product SKU. Returns a summary of matching orders with profit per order.

  • start_date (string, optional)
  • end_date (string, optional)
  • customer_email (string, optional) - must be a valid email
  • order_number (string, optional) - with or without the leading #
  • sku (string, optional)
  • limit (integer, optional, 1-100, default 20)

At least one filter is required, and results are hard-capped at 100.

Find the last 5 orders from the customer with email [email protected].

query_order_basket_analytics

Analyse orders filtered by what is in the basket - which products, and how many units - broken down by region, channel or month. Answers questions that per-order search and the pre-computed dashboard views cannot, such as "orders containing two chairs, average shipping per country".

  • start_date (string, required) - YYYY-MM-DD, in your store's timezone
  • end_date (string, required) - YYYY-MM-DD, in your store's timezone
  • product_ids (array of strings, optional, max 25) - get these from resolve_products
  • min_quantity (integer, optional) - basket contains at least this many units across product_ids
  • exact_quantity (integer, optional) - basket contains exactly this many units. Mutually exclusive with min_quantity
  • region_codes (array of strings, optional, max 50) - ISO 3166-1 alpha-2 shipping countries
  • sales_channel (string, optional)
  • group_by (string, optional) - one of none, shipping_country, sales_channel, month. Default none
  • limit (integer, optional, 1-100, default 50) - maximum groups returned

Each group returns the order count, net revenue, and both shipping figures: avg_shipping_charged and median_shipping_charged (what the customer paid, which is revenue) and avg_fulfillment_cost and median_fulfillment_cost (your actual outlay), plus fulfillment_cost_coverage_percent.

The cost figures come from your fulfilment data, which is only recorded when a 3PL is connected or per-product fulfilment costs are configured. When coverage is 0, avg_fulfillment_cost is returned as null, never as 0 - "not tracked" and "free shipping" are different answers.

min_quantity and exact_quantity require product_ids.

Look at all orders with two chairs in them across all regions and give me the average shipping cost.

resolve_products

Resolve a product name, category word, or SKU to concrete product IDs in your catalog. Call this before query_order_basket_analytics whenever a question names a product in words rather than by ID. Requires scope mcp:products:read.

  • query (string, required, 1-200 chars) - product name, category word, or SKU
  • limit (integer, optional, 1-25, default 10)

Matching runs exact SKU first, then a name/SKU substring pass, then trigram similarity over the catalog. Each match returns a match_score and match_type so the client can tell you which products it interpreted your question as referring to.

Which of my products count as chairs?

Product intelligence tools

Scope: mcp:products:read

get_top_products

Top N products ranked by revenue, profit, margin, or units sold, using the same order-based product profit math as the dashboard.

  • start_date (string, required)
  • end_date (string, required)
  • rank_by (enum, required) - revenue, profit, margin_pct, or units
  • limit (number, optional, 1-50, default 10)

What are my 10 most profitable products this month?

get_bottom_products

Bottom N products ranked by profit or margin. Useful for finding SKUs that are losing money.

  • start_date (string, required)
  • end_date (string, required)
  • rank_by (enum, required) - profit or margin_pct
  • limit (number, optional, 1-50, default 10)
  • exclude_below_units (number, optional, default 0) - drop low-volume noise

Which products are losing money after ad spend?

get_product_detail

Detailed profitability for a specific product including current catalogue price, variant-level pricing, COGS, and a 90-day trend.

  • product_id (string, required)

Tell me everything about product {id}.

find_cogs_gaps

Products or variants with missing or stale COGS data that are affecting P&L accuracy. Returns product titles, SKUs, and the gap reason.

  • include_zero_cost (boolean, optional, default true)
  • stale_older_than_days (number, optional)

Find any COGS gaps in my catalog.

run_product_viability (heavy)

Simulate a new product launch: given a proposed price, COGS, and ad spend per unit, compute break-even ROAS, contribution margin, and sensitivity against store averages.

  • price (number, required, must be positive)
  • cogs (number, required, zero or greater)
  • expected_ad_spend_per_unit (number, required, zero or greater)
  • expected_volume_per_month (number, optional, zero or greater)
  • shipping_cost (number, optional, zero or greater, default 0)

I'm thinking of launching a product at $49 with $12 COGS and $8 ad spend per unit. Is it viable?

Ads and marketing tools

Scope: mcp:ads:read

get_ad_performance

Ad spend performance across Meta, Google, Snapchat, and TikTok with spend, ROAS, orders, and attributed revenue.

  • start_date (string, required)
  • end_date (string, required)
  • platforms (array of enum, optional) - any of meta, google, snapchat, tiktok
  • group_by (enum, optional, default platform) - platform, campaign, or country

Results respect the workspace's campaign selection: Meta campaigns excluded from profit under Settings > Integrations are not returned, and their spend is not part of any total.

How are my Meta campaigns doing vs Google this month?

get_channel_roas

Blended MER (Marketing Efficiency Ratio) and per-platform ROAS, with optional comparison to the previous period.

  • start_date (string, required)
  • end_date (string, required)
  • compare_to (enum, optional) - previous_period

What's my blended MER across all paid channels this week?

get_attribution_breakdown

Attributed revenue by channel using MerchantFlow's attribution rules, including organic, paid, email, referral, and direct.

  • start_date (string, required)
  • end_date (string, required)
  • attribution_model (enum, optional, default last_click) - first_click, last_click, or rule_based

Only available when per-channel attribution is enabled for your store. Otherwise the tool is hidden from tools/list.

Break down my attributed revenue by channel.

get_unattributed_revenue

Revenue MerchantFlow could not attribute to a known channel, with order count, percentage of total revenue, and recent examples.

  • start_date (string, required)
  • end_date (string, required)

Only available when per-channel attribution is enabled for your store.

How much revenue did I leave unattributed last month?

Customer intelligence tools

Scope: mcp:customers:read

get_cohort_analysis

Cohort analysis showing LTV, repeat purchase rate, or revenue by cohort month or week.

  • cohort_start_date (string, required)
  • cohort_end_date (string, required)
  • metric (enum, required) - ltv, repeat_rate, or revenue
  • period (enum, required) - monthly or weekly

Show me LTV by cohort month for the last 6 months.

get_ltv_summary

Customer lifetime value summary including average LTV, LTV by segment, and LTV:CAC ratio.

  • start_date (string, required)
  • end_date (string, required)
  • segment_by (enum, optional) - channel, first_product, or country. Defaults to channel when attribution is enabled, otherwise country.

Stores without attribution cannot segment by channel.

What's my LTV by acquisition channel?

get_cac_payback

Customer acquisition cost and payback period, showing how long it takes to recoup CAC from first-order profit.

  • start_date (string, required)
  • end_date (string, required)

What's my CAC payback on Meta vs Google?

`list_customers`

Customers ranked by lifetime value, with order count, first and last order date, and lifetime spend. Names and email addresses are redacted like every other response.

  • `sort_by` (enum, optional, default `lifetime_value`)
  • `limit` (number, optional, default 25, max 100)
  • `page` (number, optional, default 1)

Who are my twenty most valuable customers?

`get_customer_detail`

Full history for one customer: lifetime value, order count, average order value, and their orders over time.

  • `customer_id` (string, required)

Show me the order history behind customer cus_123.

North Star tools

Scope: mcp:north-star:read

get_north_star_status

Current status of all configured North Star KPIs with target, actual, delta, and trend direction.

  • period (enum, optional, default month) - today, week, month, or quarter

How am I tracking against my North Star KPIs this month?

Monitoring and activity tools

list_capabilities

Report this connection's plan tier, how far back its history reaches, whether cross-store tools are available, current rate-limit headroom, and the known limits of the data. Ask for this first when you want to know what can be answered before asking for it.

  • No parameters.

What can you actually see for this store, and how far back?

Scope: mcp:activity:read

get_anomalies

Recent anomalies detected by MerchantFlow (profit drops, spend spikes, missing sync data, attribution issues).

  • since_days (number, optional, 1-30, default 7)
  • severity (enum, optional) - low, medium, or high

What are the top anomalies in my store this week?

get_recent_activity

Chronological feed of recent tenant activity: syncs, large orders, and integration events.

  • since_hours (number, optional, 1-168, default 24)
  • activity_types (string array, optional)

What happened in my store in the last 24 hours?

get_integration_status

Connection status of all integrations (Shopify, WooCommerce, GA4, ad platforms, SpeedFulfill) including last sync time and any errors.

  • No parameters.

Which of my integrations haven't synced in the last 24 hours?

Valuation tools

Scope: mcp:valuation:read

run_business_valuation (heavy)

Full SDE-multiple valuation based on current P&L data, growth, margin, MER, and risk scoring. Returns a valuation range with sensitivity analysis.

  • lookback_months (number, optional, 1-36, default 12) - 6 or fewer uses the 6-month dashboard mode, otherwise 12-month

Run a business valuation and tell me what's dragging the multiple down.

Inventory tools

Scope: mcp:inventory:read

run_stock_velocity

Rank products by units sold in the selected timeframe and classify them as fast, steady, slow, or dead.

  • timeframe (enum, optional, default 30d) - 7d, 30d, 90d, or 1y
  • limit (integer, optional, 5-100, default 50)

Which SKUs are my fastest movers over the last 90 days?

run_dead_stock_report

Products with zero sales in the window and, when Shopify is connected, their current on-hand inventory.

  • timeframe (enum, optional, default 90d) - 30d, 90d, or 1y

What inventory hasn't sold at all this quarter?

run_inventory_valuation (heavy)

Total dollar value of inventory currently on hand (on-hand quantity multiplied by recorded COGS per SKU).

  • top_n (integer, optional, 10-200, default 50)

How much capital is tied up in inventory right now?

run_multi_location_inventory_audit (heavy)

Variants that are out of stock at some locations but available at others - candidates for transfers.

  • min_locations (integer, optional, 2-20, default 2)

Which products should I transfer between warehouses?

Order intelligence tools

Scope: mcp:orders:read

run_fulfillment_digest

Digest of open orders by fulfillment status and age. Surfaces orders stuck for more than 3 days.

  • days (integer, optional, 1-180, default 30)

Which orders are stuck in fulfillment?

lookup_order

Look up a single order by number and return its line items, margin, fulfillment state, and refund history.

  • order_number (string, required) - with or without the leading #, so a number copied from search_orders or from your storefront resolves either way

Pull up order #1042 and tell me if it was profitable.

run_repeat_purchase_rate

Percentage of customers in the window who placed two or more orders.

  • days (integer, optional, 7-730, default 90)

What's my repeat purchase rate over the last 90 days?

run_high_risk_order_report (heavy)

Shopify-flagged orders with medium or high fraud risk in the recent window.

  • days (integer, optional, 1-30, default 7)
  • min_level (enum, optional, default MEDIUM) - LOW, MEDIUM, or HIGH

Any high-risk orders I should review before fulfilling?

find_duplicate_customers

Group orders by customer email hash to find customers appearing under multiple names or phone numbers.

  • min_orders (integer, optional, 2-20, default 2)
  • limit (integer, optional, 5-200, default 50)

Do I have duplicate customer records skewing my LTV?

Store and catalog audit tools

Scope: mcp:store:read

run_product_image_audit (heavy)

Products without a featured image or with fewer than N total images.

  • min_images (integer, optional, 1-10, default 1)

Which products are missing images?

run_seo_metadata_audit (heavy)

Products missing an SEO title or with an SEO description shorter than the threshold.

  • min_description_length (integer, optional, 0-500, default 50)

Audit my product SEO metadata.

run_collection_membership_audit

Every collection in the store with product count and last-updated date. Flags empty collections.

  • No parameters.

Are any of my collections empty or stale?

run_product_completeness_score (heavy)

Scores every product 0-100 based on images, SEO fields, description length, and taxonomy.

  • limit (integer, optional, 10-500, default 100)

Score my catalogue for completeness and show me the worst offenders.

run_url_redirect_audit

Lists every URL redirect and flags loops, empty targets, and redirect chains.

  • No parameters.

Are any of my store redirects broken?

run_page_content_audit

Store pages flagged by content thinness, unpublished status, or staleness.

  • stale_days (integer, optional, 30-730, default 180)
  • min_body_chars (integer, optional, 0-500, default 100)

Which store pages are thin or out of date?

run_gift_card_balance_report

Outstanding gift card balance grouped by currency, plus redemption percentage against initial issuance.

  • No parameters.

How much outstanding gift card liability do I have?

Marketing operations tools

Scope: mcp:marketing:read

run_abandoned_cart_identifier

Recent abandoned checkouts with recoverable value. Read-only - it does not send messages.

  • days (integer, optional, 1-30, default 7)

How much revenue is sitting in abandoned carts this week?

run_win_back_candidates

Valuable customers who haven't purchased in the last N days.

  • inactive_days (integer, optional, 30-730, default 90)
  • min_lifetime_spend (number, optional, zero or greater, default 100)
  • limit (integer, optional, 10-500, default 100)

Build me a win-back list of lapsed high spenders.

run_customer_spend_tier_classifier

Classify customers into VIP, regular, casual, and one-time tiers based on lifetime spend and order count.

  • vip_spend_threshold (number, optional, zero or greater, default 1000)
  • regular_spend_threshold (number, optional, zero or greater, default 300)
  • window_days (integer, optional, 30-1825, default 365)

How many VIP customers do I have, and what share of revenue do they drive?

run_sales_by_channel_report

Revenue, orders, profit, and AOV broken down by acquisition channel.

  • days (integer, optional, 7-365, default 30)

Only available when per-channel attribution is enabled for your store.

Break down sales by acquisition channel for the last 30 days.

run_wismo_digest

"Where Is My Order" digest - in-flight orders with tracking status, age, and destination.

  • days (integer, optional, 1-90, default 14)

Which shipments are running late and likely to generate support tickets?

Report tools

Scope: mcp:reports:read

list_reports

List every report available to this store: saved template reports, custom reports, and the built-in template catalogue. Use the returned report id (or a template key) with generate_report.

  • type (enum, optional) - template or custom
  • include_archived (boolean, optional, default false)

What reports do I have saved in MerchantFlow?

generate_report (heavy)

Generate the data for any report over a date range - the same numbers the dashboard shows. Pass exactly one of report_id or template_key.

  • report_id (string, optional) - a saved or custom report id from list_reports
  • template_key (enum, optional) - pnl, product_performance, marketing_overview, order_summary, expense_breakdown, month_over_month, week_over_week, or year_over_year
  • start_date (string, optional) - defaults to the report's own default timeframe ending today
  • end_date (string, optional)
  • comparison_mode (enum, optional) - none, previous_period, or previous_year

Passing both report_id and template_key, or neither, returns invalid_params. Generating a template you have never opened materialises that template's report row in your workspace the first time.

Run my month-over-month comparison report for the last two months.

`get_discount_code_performance`

Revenue, orders, discount cost and margin for each discount code, so you can see which promotions actually paid for themselves.

  • `timeframe` (enum, optional) - `7d`, `30d`, `90d` or `1y`. Faster, because these are cached.
  • `start_date` / `end_date` (string, optional) - a custom range. Supply both or neither.
  • `sort_by`, `sort_order`, `page`, `page_size` (optional)

Which discount codes lost me money last quarter?

get_tax_insights

Per-country tax exposure over a trailing window, using your configured tax rules, so you can see where estimated tax is eating margin.

  • days (number, optional, default 30, 1 to 365)

Where is tax costing me the most margin?

get_organic_revenue

Organic versus paid versus direct revenue, classified from the UTM parameters and referrer captured on the order at checkout - not from Google Analytics sessions, pageviews or traffic. Includes an attribution-confidence score and an optional daily trend.

  • start_date (string, required)
  • end_date (string, required)

Only available when per-channel attribution is enabled for your store. Otherwise the tool is hidden from tools/list.

How much of last month came from organic rather than paid?

COGS tools

Scope: mcp:cogs:read

list_cogs

List cost-of-goods-sold entries for all items and variants, newest effective date first, enriched with the matching product and variant.

  • sku_contains (string, optional) - case-insensitive substring match
  • effective_from (string, optional)
  • effective_to (string, optional)
  • page (number, optional, 1 or greater, default 1)
  • page_size (number, optional, 1-100, default 50)

List every COGS entry I have recorded for SKUs containing "HOODIE".

get_item_cogs

Current COGS and full cost history for one item.

  • sku (string, optional)
  • product_id (string, optional) - MerchantFlow's internal product id
  • variant_id (string, optional) - the commerce platform's variant id (for example the Shopify variant id), not an internal UUID
  • on_date (string, optional) - return the cost effective on that date

At least one of sku, product_id, or variant_id is required.

What has my cost been over time for SKU ABC-123?

get_cogs_coverage

How much of the catalogue, units sold, and revenue is covered by COGS data, including margin distribution and the top products still missing costs.

  • start_date (string, optional) - defaults to 30 days before end_date
  • end_date (string, optional) - defaults to today

What percentage of my revenue has accurate COGS behind it?

Multi-store tools

Scope: mcp:store:read

These require a plan that covers more than one store. On a single-store plan they return a structured message pointing at the upgrade rather than an error.

get_store_list

List the stores linked to this account with each store's platform, currency, timezone, connection state and last sync time. Use it to discover which stores exist before asking for combined figures.

  • No parameters.

Which stores are connected to this account?

get_combined_pnl

Combined profit and loss across every linked store for a date range, converted into a single reporting currency.

  • start_date (string, optional) - YYYY-MM-DD, defaults to 30 days ago
  • end_date (string, optional) - YYYY-MM-DD, defaults to today
  • reporting_currency (string, optional) - ISO 4217 code to convert every store into. Defaults to the primary store's currency.
  • per_store (boolean, optional) - also return the per-store breakdown

Combine last month's P&L across all my stores in AUD, with the per-store split.

ChatGPT connector tools

Scope: mcp:products:read (order results additionally require mcp:orders:read)

search and fetch are the two tools ChatGPT's standard Connectors surface expects. They are a retrieval pair, not an analytics one: they find records and return them. For profit, ad, cohort or valuation figures, use the dedicated tools above - they are available in ChatGPT developer mode and in every other MCP client.

Order documents returned here carry money, dates and status only, never customer names, emails or addresses.

Search this store for products and orders matching a query. Returns documents with id, title and url.

  • query (string, required) - free text

Find my products matching "merino beanie".

fetch

Retrieve the full record for a document id returned by search.

  • id (string, required) - an id from search, shaped product:<uuid> or order:<uuid>

Open that first result and show me the details.

Scopes

Each tool requires exactly one scope. Granting mcp:read:all (the default on the consent screen) expands to all of them.

ScopeTools it unlocks
mcp:pnl:readP&L, revenue, expenses, bank balance, MCA, date-range summary, Markets, order search, basket analytics
mcp:products:readTop/bottom products, product detail, COGS gaps, viability simulation, product name/SKU resolution
mcp:ads:readAd performance, channel ROAS, attribution, unattributed revenue
mcp:customers:readCohorts, LTV, CAC payback
mcp:valuation:readBusiness valuation
mcp:north-star:readNorth Star KPI status
mcp:activity:readAnomalies, recent activity, integration status
mcp:inventory:readStock velocity, dead stock, inventory valuation, multi-location audit
mcp:orders:readFulfillment digest, order lookup, repeat rate, high-risk orders, duplicate customers
mcp:store:readImage, SEO, collection, completeness, redirect, page, and gift card audits
mcp:marketing:readAbandoned carts, win-backs, spend tiers, sales by channel, WISMO digest, discount code performance
mcp:reports:readListing and generating saved and template reports
mcp:cogs:readCOGS listing, per-item cost history, coverage reporting
mcp:customers:readCohorts, lifetime value, CAC payback, customer list and detail

Calling a tool your token was not scoped for returns an insufficient_scope error telling you to re-authorize with broader permissions.

Rate limits

Rate limits are per workspace and split into two buckets. Standard tools and heavy tools each get their own per-minute budget, so a runaway valuation loop cannot starve your P&L queries.

PlanPer minuteHeavy per minutePer hourPer day
Trial60103002,000
Starter60103002,000
Pro90156005,000
Plus150201,20010,000
Agency150201,20010,000

Agency workspaces also share a book-wide budget of 25,000 calls per day across every client store, so one busy client cannot exhaust the rest.

The limits exist to stop a looping agent, not to ration normal use - driving an AI client by hand will not reach them. The daily bucket is shared, so heavy calls count against it too, and OAuth clients and personal access tokens draw from the same buckets.

Exceeding a limit returns a rate_limited error with the number of seconds to wait.

Built-in prompts

Compatible MCP clients can also surface these guided prompts:

weekly_briefing

Generate a structured weekly P&L briefing with revenue, profit, top products, ad performance, and recommendations.

  • week_start (required) - Monday of the target week, YYYY-MM-DD
  • include_recommendations (optional)

find_profit_leaks

Audit COGS coverage, unprofitable products, inflated expense categories, and ad efficiency gaps. Returns a prioritised list of profit leaks to investigate. No arguments.

product_launch_check

Run a viability simulation for a proposed product and return a launch recommendation with sensitivity analysis.

  • proposed_price (required)
  • expected_cogs (required)
  • expected_ad_spend_per_unit (required)

month_end_close

Walk through the month-end close checklist: missing COGS, outstanding expenses, integration sync gaps, and anomalies to resolve before closing the books. No arguments.

growth_opportunity_scan

Identify products with good margins but low ad spend, ad efficiency gaps, and customer segments with good LTV but underused retention. No arguments.

exit_readiness_check

Run the business valuation plus a diligence-style checklist (COGS coverage, integration coverage, margin trend, customer concentration). No arguments.

Resources

Compatible MCP clients can also read these resources:

merchantflow://tenant/summary

Store name, platform, currency, timezone, subscription tier, creation date, and last sync time, so the AI can orient itself before calling tools.

merchantflow://help/tool-guide

Markdown guide generated live from the tool registry, explaining what each tool available to your store does and when to use it.

merchantflow://integrations/status

Registered but currently returns placeholder content. Use the get_integration_status tool for live integration health.

merchantflow://north-star/definitions

Registered but currently returns placeholder content. Use the get_north_star_status tool for live KPI values.


Last updated: August 29, 2026

Last updated on

On this page

MerchantFlow MCP Tool ReferenceHow to read this pageFinancial and P&L toolsget_pnl_summaryget_revenue_breakdownget_expenses_breakdownget_bank_balanceget_mca_statusget_date_range_summaryget_marketsget_market_productssearch_ordersquery_order_basket_analyticsresolve_productsProduct intelligence toolsget_top_productsget_bottom_productsget_product_detailfind_cogs_gapsrun_product_viability (heavy)Ads and marketing toolsget_ad_performanceget_channel_roasget_attribution_breakdownget_unattributed_revenueCustomer intelligence toolsget_cohort_analysisget_ltv_summaryget_cac_payback`list_customers``get_customer_detail`North Star toolsget_north_star_statusMonitoring and activity toolslist_capabilitiesget_anomaliesget_recent_activityget_integration_statusValuation toolsrun_business_valuation (heavy)Inventory toolsrun_stock_velocityrun_dead_stock_reportrun_inventory_valuation (heavy)run_multi_location_inventory_audit (heavy)Order intelligence toolsrun_fulfillment_digestlookup_orderrun_repeat_purchase_raterun_high_risk_order_report (heavy)find_duplicate_customersStore and catalog audit toolsrun_product_image_audit (heavy)run_seo_metadata_audit (heavy)run_collection_membership_auditrun_product_completeness_score (heavy)run_url_redirect_auditrun_page_content_auditrun_gift_card_balance_reportMarketing operations toolsrun_abandoned_cart_identifierrun_win_back_candidatesrun_customer_spend_tier_classifierrun_sales_by_channel_reportrun_wismo_digestReport toolslist_reportsgenerate_report (heavy)`get_discount_code_performance`get_tax_insightsget_organic_revenueCOGS toolslist_cogsget_item_cogsget_cogs_coverageMulti-store toolsget_store_listget_combined_pnlChatGPT connector toolssearchfetchScopesRate limitsBuilt-in promptsweekly_briefingfind_profit_leaksproduct_launch_checkmonth_end_closegrowth_opportunity_scanexit_readiness_checkResourcesmerchantflow://tenant/summarymerchantflow://help/tool-guidemerchantflow://integrations/statusmerchantflow://north-star/definitionsRelated