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 incontent[0], so clients that read either channel get the same answer. Both carry a_metablock (last sync time, currency, plan window) and a_tenant_contextmarker. Responses are capped at 500 KB and arrays at 100 items - narrow your query if you see_truncated: true. - Every tool also publishes an
outputSchemaintools/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
titleplusreadOnlyHint: true,destructiveHint: false,idempotentHint: trueandopenWorldHint: falseintools/list, both at the top level and insideannotationsso 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-DDend_date(string, required) -YYYY-MM-DDcompare_to(enum, optional) -previous_periodorprevious_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, orcountry
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 categoryinclude_capex(boolean, optional, defaulttrue)
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 codesinclude_spend_without_orders(boolean, optional, defaulttrue)sort_by(enum, optional) -dashboard,net_profit,revenue,orders,spend,net_margin_pct,roas,poas,caclimit(integer, optional, 1-100, default50)
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-2start_date(string, required)end_date(string, required)limit(integer, optional, 1-100, default50)include_bundles(boolean, optional, defaulttrue)
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 emailorder_number(string, optional) - with or without the leading#sku(string, optional)limit(integer, optional, 1-100, default20)
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 timezoneend_date(string, required) -YYYY-MM-DD, in your store's timezoneproduct_ids(array of strings, optional, max 25) - get these fromresolve_productsmin_quantity(integer, optional) - basket contains at least this many units acrossproduct_idsexact_quantity(integer, optional) - basket contains exactly this many units. Mutually exclusive withmin_quantityregion_codes(array of strings, optional, max 50) - ISO 3166-1 alpha-2 shipping countriessales_channel(string, optional)group_by(string, optional) - one ofnone,shipping_country,sales_channel,month. Defaultnonelimit(integer, optional, 1-100, default50) - 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 SKUlimit(integer, optional, 1-25, default10)
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, orunitslimit(number, optional, 1-50, default10)
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) -profitormargin_pctlimit(number, optional, 1-50, default10)exclude_below_units(number, optional, default0) - 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, defaulttrue)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, default0)
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 ofmeta,google,snapchat,tiktokgroup_by(enum, optional, defaultplatform) -platform,campaign, orcountry
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, defaultlast_click) -first_click,last_click, orrule_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, orrevenueperiod(enum, required) -monthlyorweekly
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, orcountry. Defaults tochannelwhen attribution is enabled, otherwisecountry.
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, defaultmonth) -today,week,month, orquarter
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, default7)severity(enum, optional) -low,medium, orhigh
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, default24)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, default12) - 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, default30d) -7d,30d,90d, or1ylimit(integer, optional, 5-100, default50)
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, default90d) -30d,90d, or1y
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, default50)
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, default2)
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, default30)
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 fromsearch_ordersor 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, default90)
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, default7)min_level(enum, optional, defaultMEDIUM) -LOW,MEDIUM, orHIGH
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, default2)limit(integer, optional, 5-200, default50)
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, default1)
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, default50)
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, default100)
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, default180)min_body_chars(integer, optional, 0-500, default100)
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, default7)
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, default90)min_lifetime_spend(number, optional, zero or greater, default100)limit(integer, optional, 10-500, default100)
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, default1000)regular_spend_threshold(number, optional, zero or greater, default300)window_days(integer, optional, 30-1825, default365)
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, default30)
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, default14)
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) -templateorcustominclude_archived(boolean, optional, defaultfalse)
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 fromlist_reportstemplate_key(enum, optional) -pnl,product_performance,marketing_overview,order_summary,expense_breakdown,month_over_month,week_over_week, oryear_over_yearstart_date(string, optional) - defaults to the report's own default timeframe ending todayend_date(string, optional)comparison_mode(enum, optional) -none,previous_period, orprevious_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 matcheffective_from(string, optional)effective_to(string, optional)page(number, optional, 1 or greater, default1)page_size(number, optional, 1-100, default50)
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 idvariant_id(string, optional) - the commerce platform's variant id (for example the Shopify variant id), not an internal UUIDon_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 beforeend_dateend_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 agoend_date(string, optional) -YYYY-MM-DD, defaults to todayreporting_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
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 fromsearch, shapedproduct:<uuid>ororder:<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.
| Scope | Tools it unlocks |
|---|---|
mcp:pnl:read | P&L, revenue, expenses, bank balance, MCA, date-range summary, Markets, order search, basket analytics |
mcp:products:read | Top/bottom products, product detail, COGS gaps, viability simulation, product name/SKU resolution |
mcp:ads:read | Ad performance, channel ROAS, attribution, unattributed revenue |
mcp:customers:read | Cohorts, LTV, CAC payback |
mcp:valuation:read | Business valuation |
mcp:north-star:read | North Star KPI status |
mcp:activity:read | Anomalies, recent activity, integration status |
mcp:inventory:read | Stock velocity, dead stock, inventory valuation, multi-location audit |
mcp:orders:read | Fulfillment digest, order lookup, repeat rate, high-risk orders, duplicate customers |
mcp:store:read | Image, SEO, collection, completeness, redirect, page, and gift card audits |
mcp:marketing:read | Abandoned carts, win-backs, spend tiers, sales by channel, WISMO digest, discount code performance |
mcp:reports:read | Listing and generating saved and template reports |
mcp:cogs:read | COGS listing, per-item cost history, coverage reporting |
mcp:customers:read | Cohorts, 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.
| Plan | Per minute | Heavy per minute | Per hour | Per day |
|---|---|---|---|---|
| Trial | 60 | 10 | 300 | 2,000 |
| Starter | 60 | 10 | 300 | 2,000 |
| Pro | 90 | 15 | 600 | 5,000 |
| Plus | 150 | 20 | 1,200 | 10,000 |
| Agency | 150 | 20 | 1,200 | 10,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-DDinclude_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.
Related
Last updated: August 29, 2026
Last updated on
MCP Security and Data Handling
What an AI client connected to MerchantFlow can and cannot do: read-only scopes, tenant isolation, PII redaction, what gets logged, token lifetimes, and how to revoke access.
15 Example Prompts to Ask Claude About Your MerchantFlow Store
Copy-paste prompts that show off what MerchantFlow MCP makes easy. Use these as-is or adapt them to your store.