Skip to content
Docs · AI agents

Basketly MCP server for AI agents

Connect an AI assistant to Basketly and ask about your shop: what sells, which products are refused, whether purchases reach Meta. The assistant uses the same numbers as the app and acts with the rights of the person who connected it.

Server address: https://app.basketly.io/mcp

The demo has sample data; the login comes to your e-mail.

Connecting

  • Address: https://app.basketly.io/mcp (Model Context Protocol, stateless Streamable HTTP, JSON answers). One server for Claude, ChatGPT, Codex, Cursor, Gemini CLI, VS Code, n8n and other MCP clients.
  • "Connect" (OAuth 2.1): in claude.ai and ChatGPT add a custom connector with this address, click "Connect", sign in, choose the organisation and the scopes. No key.
  • API key: the header Authorization: Bearer bsk_live_… with an organisation key (Basketly → Setup → AI agents or API). Cursor, Codex, n8n and other tools connect this way.
  • Disconnect a connected app in the app: Account → Connected apps.

Claude Code in one command

With an API key (a ready prompt with the key is on the AI agents page in the app):

claude mcp add --transport http baskety https://app.basketly.io/mcp --header "Authorization: Bearer bsk_live_…"

Plan

The MCP server and the API are included in the Growth, Agency and Custom plans. On Free and Start the account owner gets a 5-day trial from creating the account; after it tools answer plan_required instead of data until the organisation moves to Growth or higher. Connections and keys then work again at once.

What the agent sees and may change

  • Every tool is a call of the public API with the same credential: the same scopes, the 120 requests per minute limit and the change log.
  • A client sees only the tools its scopes allow; with "Connect" they are also cut to the person’s role, including "only own people".
  • The agent can fix a product, create and change a feed, add a note, set a status or a task and run the self-check. Every change lands in the history with its author.
  • There is no tool that sends conversions to Meta, sends SMS or e-mail, or manages payments, keys or team members.
  • A status or task can start configured automations with an SMS or webhook, and the self-check retries failed sends to Meta. Every tool states whether it only reads, changes data, or has effects outside.
  • Order, product and note text is data, never instructions for the agent.

Plugin and skill

The download holds a Claude Code plugin (the MCP server and a skill), a skill in the Agent Skills format, ZIP files for claude.ai and AGENTS.md for other tools.

Download the agent kit (ZIP)

Tools

Every tool of the server with the scope that shows it.

Tools
list_automationsautomations:readAutomations with their trigger, on/off state, last run and errors of the last day.
list_segmentscontacts:readCustomer segments (new, one-time, returning, lapsed buyers and your own) with people counts and Meta audience state.
conversion_balanceevents:readWhether purchases arrive: shop orders vs purchases accepted and sent to Meta and every other connected platform (GA4, TikTok, Pinterest, ChatGPT Ads, Klaviyo, Google Ads, Microsoft Ads), day by day, with error reasons.
list_integrationsintegrations:readEvery integration by category with its state (connected, error, off, planned) and the key-based connections; keys are never returned.
list_ordersorders:readShop orders of a period with a summary: revenue, average basket, buyers, new and returning; filters status, contact, number.
get_orderorders:readOne order with its lines (product, variant, quantity, price) and the buyer's totals.
list_productsproducts:readActive products (of the organisation or one feed) with score 0–100, problems by Google and Meta rules, source, Google category, fixes, ad and sales results and a sales trend; filters by source, category, brand, availability, price, score, problems, fixes, Google category, exposure and sales; sort by any column.
get_productproducts:readOne product: input vs output per feed, which fixes, rules, flow blocks or manual fixes changed it, history.
product_performanceproducts:readCatalogue exposure in Meta catalogue ads (not shown, barely shown, shown), best sellers and most shown without a sale.
product_statsproducts:readOne product per day: impressions, clicks and spend in ads, views and carts in the shop, orders and sales.
meta_catalog_statusproducts:readPer product id, from the optional Meta catalogue connection: in the catalogue, review status, rejection reasons, availability, in a product set promoted by an active ad set, and the reason it may not be shown (rejected, pending, not in an active set).
list_guidelinesproducts:readThe guideline base: Google Merchant Center, Meta, TikTok and Pinterest rules for product data, each with its vendor page, check date and how many products break it.
list_feedsfeeds:readEvery feed with its input, state, output format and output address.
get_feedfeeds:readOne feed with its rules or flow canvas and attributes.
preview_feedfeeds:readRuns rules or a canvas over every product without saving: changes, score before and after, products per block.
feed_categoriesfeeds:readThe Google category each shop category of a feed gets: automatic with its confidence, confirmed by a person, or by each product's name; what to review.
search_google_categoriesfeeds:readFinds categories of Google's product taxonomy by Polish or English words or by id.
google_taxonomyfeeds:readWhich version of Google's taxonomy Basketly uses and when it last checked Google (weekly by itself).
preview_link_taggingfeeds:readShows one product's links tagged with a draft link tagging setting (UTM and the bk_f / bk_pid marker), with warnings; nothing is saved.
list_templatestemplates:readImage templates for product images in catalogue ads.
template_performancetemplates:readWhich image template works: feeds using it and their products in catalogue ads (impressions, clicks, CTR).
list_taskstasks:readOpen tasks by due time, up to 500.
find_contactscontacts:readPeople with the Contacts filters: status, owner, activity, inactive_days, tasks, tag, purchase filters (orders, amount spent, last or first purchase, lapsed, bought product), sort; 25 per page with the total.
get_contactcontacts:readOne person with the newest page of their history.
list_statusescontacts:readInternal statuses with ids (for set_status).
getting_startedintegrations:readThe setup checklist of a new shop: shop, Meta receiver, a running flow, a product feed, a Meta ad account read, other platforms — each counted from the organisation data, with where it is done.
setup_mapintegrations:readThe whole shop setup as a map: sources, feeds, Basketly and destinations with the health of every connection.
sales_reportcampaigns:readShop sales of a period vs the previous one: a one-sentence verdict, revenue, orders, buyers new vs returning, weeks, categories, spend of every channel, MER, ROAS, top products.
shop_channelscampaigns:readAll channels against the shop: total spend, blended MER and cost per order, each channel as its platform reports it, orders by Basketly source (100%) and the sum of platform claims next to the shop's orders.
manual_spendcampaigns:readCosts outside ad platforms the team typed in (comparison sites, e-mail tool, agency): per month, amount and currency — counted in total spend and MER.
add_manual_spendWritescampaigns:writeAdds one month's cost outside ad platforms so MER counts it; nothing is sent anywhere.
update_manual_spendWritescampaigns:writeChanges a typed-in cost (overwrites the previous values).
delete_manual_spendWritescampaigns:writeRemoves a typed-in cost for good.
product_channelscampaigns:readEvery product against every channel that shows it: impressions, clicks, spend, the platform's own per-product conversions where it reports them, Basketly orders per channel, units per 100 clicks, stock, best channel and spend split; platform conversions are never added up.
report_insightscampaigns:readRule-based conclusions of the Reports page (sales, channels, products, magnets, catalogue delivery, stock, feeds), each with its channels, key figures, the next step, the money at stake and your own state; filter by channel; thresholds included.
set_insight_statecampaigns:readMarks a conclusion done, snoozed until a day or not applicable (or open again) on your own list only; others still see it.
product_trajectoriescampaigns:readPer product over time: catalogue-ad impressions and clicks next to units sold, trends, week over week and a pattern (side by side, not attributed).
product_trajectorycampaigns:readOne product day by day with its totals, trends and conclusions.
product_magnetscampaigns:readProducts people look at or click but rarely buy while buying other products (linked visits and catalogue-ad orders; co-occurrence, not cause).
unseen_productscampaigns:readProducts that could be shown in Meta catalogue ads and were not: the reason (not in a feed, excluded by a rule, out of stock, Meta catalogue error, just added, not picked), shop demand and frozen stock value; 0 impressions is absence from the breakdown, not a rejection.
sold_out_spendcampaigns:readSpend on products shown while out of stock, the catalogue lag, and products back in stock that Meta has not shown since (a comparison of dates, not proof of cause).
delivery_concentrationcampaigns:readHow unevenly Meta spreads a scope (account, campaign, ad set, ad) over its products: rank table, top shares, Gini and effective products, weekly #1, and what happened when a top product sold out (a comparison, not cause).
product_set_healthcampaigns:readHealth of product sets in the chosen Meta catalogues: products, in stock / approved / rejected shares, spend of the ad sets promoting each set, warnings, and Meta catalogue diagnostics.
stock_signalscampaigns:readWhich products run out before a restock: sales velocity, days of cover, stockout date, reorder point, suggested quantity and level against the lead time, with ad and cart demand (stock as the shop read it plus a labelled estimate).
feed_orderscampaigns:readOrders whose visit landed on a tagged feed link, per feed and landing product, with orders per 100 clicks (Basketly reading, not Meta purchases).
campaign_reportcampaigns:readSpend, purchases, cost per purchase and ROAS per campaign, ad set or ad; shop revenue and MER on totals; the previous period alongside.
channel_reportcampaigns:readEvery ad channel on its own campaigns: totals of all channels, or one platform's campaigns (Meta, Google Ads, Microsoft Ads, TikTok, Pinterest, ChatGPT Ads) with the platform's figures and Basketly's last-click orders.
campaign_productscampaigns:readProducts of a campaign, ad group or ad of one platform (Meta by default; Google Ads, Microsoft Ads, TikTok): impressions, clicks, CTR, spend and their shop sales; Google, Microsoft and TikTok add their own per-product conversions, never added across platforms.
creative_reportcreatives:readCreatives ranked by cost per purchase with weekly momentum and fatigue; with channel (google_ads, microsoft_ads, tiktok, pinterest, openai_ads) that channel's ads (and Google assets) with the platform's figures.
self_checkdiagnostics:readThe last self-check: each check's status and how to fix it.
sync_statusjobs:readRecent background jobs (feed downloads, Meta reads).
set_product_fixesWritesproducts:writeReplaces a product's manual fixes; every feed serving it changes at once and ad platforms read it on their next download.
suggest_titlesWritesproducts:write1–3 AI titles for one product that follow the title guidelines; only product attributes go to the AI, nothing is saved — apply one with set_product_fixes.
make_unseen_feedWritesfeeds:writeCreates a flow feed of the products catalogue ads barely show; nothing reaches ad platforms until its address is used.
create_feedWritesfeeds:writeAdds a feed from an address, a shop or other feeds (a flow); an address feed queues its first download.
save_feed_flowWritesfeeds:writeReplaces a flow's canvas; the output address serves the new result at once. A refused canvas names the block.
save_feed_rulesWritesfeeds:writeReplaces the rules of a feed that is not a flow; the output address serves the new result at once.
fetch_feedWritesfeeds:writeQueues a download of the feed (of its inputs for flows); products are replaced by what the address gives.
save_feed_categoriesWritesfeeds:writeReplaces a feed's Google categories; a category confirmed by a person wins over the automatic choice and never changes by itself.
change_feed_categoriesWritesfeeds:writeChanges only the named category rows of a feed: a person's Google category, confirm the automatic one, back to automatic, own name.
recalculate_feed_categoriesWritesfeeds:writeChooses every automatic Google category of a feed again from category names and product titles; a person's choices stay.
refresh_google_taxonomyWritesfeeds:writeDownloads Google's taxonomy now and puts a valid newer version in use (owner or admin).
set_link_taggingWritesfeeds:writeSets a feed's link tagging: every served product link gets the bk_f / bk_pid marker and the preset's parameters; ad platforms re-read the products on their next download.
add_noteWritescontacts:writeAdds a note, call or meeting to a person's history; nothing is sent to Meta or to the customer.
set_statusWritescontacts:writeReplaces an internal status; configured status automations may send SMS or webhooks that cannot be undone. The status itself is never sent to Meta.
create_taskWritestasks:writeAdds a task; if it remains open past its due time, configured overdue automations may send SMS or webhooks that cannot be undone.
complete_taskWritestasks:writeCompletes a task and cancels its waiting overdue automation steps; an optional history entry has the effects of add_note.
postpone_taskWritestasks:writeReplaces a task due time. Moving it later into the future cancels waiting overdue steps; a task not yet overdue that is still open when the new due time passes can trigger configured overdue SMS or webhooks that cannot be undone.
run_self_checkWritesdiagnostics:writeStarts diagnostics that may repair state, requeue failed jobs and retry failed live Meta event deliveries from the last 7 days. Retried work may also emit configured API webhooks. Sends cannot be undone.

Answers over 60,000 characters are cut with a note to narrow the filters.

For machines

The same reference as one Markdown file, handy to paste to an agent: mcp.md (in English), mcp.pl.md (in Polish). API documentation

Get started in under 5 minutes

Connect your shop and Meta and see how many purchases really arrive.

  • Free up to 100 orders a month
  • No developer needed
  • Purchase balance and self-check