GoodBarber is a no-code app builder, and this server turns your published eCommerce, Community, or Membership app into something Claude can manage through conversation. It uses OAuth against GoodBarber's Public API and exposes tools for catalog management, order processing, customer segmentation, promo campaigns, subscription audits, and push notifications. The real value is in the 41 included skills, markdown files that chain these tools into workflows like RFM segmentation, reorder planning based on sales velocity, or identifying orphaned products not in any collection. If you run a GoodBarber storefront or membership site and want to pull reports, spot inventory gaps, or broadcast a promo without opening the backoffice, this gives you a natural language interface over the whole operation.
Public tool metadata for what this MCP can expose to an agent.
meta_get_tool_planRetrieve full guidance for one tool name, including the recommended discover/call/verify sequence and failure policy.1 paramsRetrieve full guidance for one tool name, including the recommended discover/call/verify sequence and failure policy.
tool_namestringshop_list_collectionsList shop collections (paginated). Returns count/previous/next/collections.4 paramsList shop collections (paginated). Returns count/previous/next/collections.
pageintegersortstringalpha · alpha_desc · first_added · last_addedkeywordstringper_pageintegershop_get_collectionRetrieve one collection by id. Returns collection object.1 paramsRetrieve one collection by id. Returns collection object.
collection_idintegershop_list_optionsList variant options (paginated). Returns count/previous/next/options.3 paramsList variant options (paginated). Returns count/previous/next/options.
pageintegersearchstringper_pageintegershop_create_optionCreate a new variant option for product variants.1 paramsCreate a new variant option for product variants.
namestringshop_update_optionUpdate the name of a variant option.2 paramsUpdate the name of a variant option.
namestringoption_idintegershop_delete_optionDelete a specific variant option.1 paramsDelete a specific variant option.
option_idintegershop_list_productsList products (paginated). Returns count/previous/next/products.5 paramsList products (paginated). Returns count/previous/next/products.
pageintegerstatusstringDEMO · DRAFT · INVISIBLE · PUBLISHEDkeywordstringper_pageintegercollectionarrayshop_create_productCreate a product. Returns created product object.16 paramsCreate a product. Returns created product object.
slugstringtagsarraybrandstringmediaintegertitlestringstatusstringDRAFT · PUBLISHED · INVISIBLEsummarystringhighlightbooleanmeta_titlestringcollectionsarrayproduct_refstringvisibility_endstringmeta_descriptionstringvisibility_startstringshow_similar_productsbooleanset_custom_similar_productsarrayshop_get_productRetrieve one product by id. Returns product object with variants/slides.1 paramsRetrieve one product by id. Returns product object with variants/slides.
product_idintegershop_update_productUpdate a product in the shop.17 paramsUpdate a product in the shop.
slugstringtagsarraybrandstringmediaintegertitlestringstatusstringDRAFT · PUBLISHED · INVISIBLEsummarystringhighlightbooleanmeta_titlestringproduct_idintegercollectionsarrayproduct_refstringvisibility_endstringmeta_descriptionstringvisibility_startstringshow_similar_productsbooleanset_custom_similar_productsarrayshop_delete_productDelete a specific product from the shop.1 paramsDelete a specific product from the shop.
product_idintegershop_list_paragraphsList product description paragraphs sorted by position.1 paramsList product description paragraphs sorted by position.
product_idintegershop_create_paragraphAdd a description paragraph to a product.5 paramsAdd a description paragraph to a product.
htmlbooleancontentstringpositionintegerproduct_idintegerparagraph_typestringTEXT · QUOTE · PHOTO · EMBEDshop_update_paragraphUpdate a product description paragraph.7 paramsUpdate a product description paragraph.
htmlbooleancontentstringmedia_idintegerpositionintegerproduct_idintegerparagraph_idstringparagraph_typestringTEXT · QUOTE · PHOTO · EMBEDshop_delete_paragraphDelete a specific product description paragraph.2 paramsDelete a specific product description paragraph.
product_idintegerparagraph_idstringshop_create_paragraph_mediaCreate a media object for a paragraph. For PHOTO: pass media_type=PHOTO and image_file. For EMBED: pass media_type=EMBED and content.6 paramsCreate a media object for a paragraph. For PHOTO: pass media_type=PHOTO and image_file. For EMBED: pass media_type=EMBED and content.
contentstringimage_filestringmedia_typestringPHOTO · EMBEDproduct_idintegerfocal_pointstringparagraph_idstringshop_get_paragraph_mediaRetrieve the details of a paragraph media object.3 paramsRetrieve the details of a paragraph media object.
media_idintegerproduct_idintegerparagraph_idstringshop_update_paragraph_mediaUpdate a paragraph media object (content, type, focal point, and/or image_file).7 paramsUpdate a paragraph media object (content, type, focal point, and/or image_file).
contentstringmedia_idintegerimage_filestringmedia_typestringPHOTO · EMBEDproduct_idintegerfocal_pointstringparagraph_idstringshop_delete_paragraph_mediaDelete a paragraph media object.3 paramsDelete a paragraph media object.
media_idintegerproduct_idintegerparagraph_idstringshop_upload_product_pdfDownload a PDF from a URL and attach it to a product (multipart upload).3 paramsDownload a PDF from a URL and attach it to a product (multipart upload).
pdfstringpdf_namestringproduct_idintegershop_delete_product_pdfDelete the PDF file associated with a product.1 paramsDelete the PDF file associated with a product.
product_idintegershop_upload_product_slideUpload an image file as a product slide (multipart form-data).4 paramsUpload an image file as a product slide (multipart form-data).
positionintegerimage_filestringproduct_idintegerfocal_pointstringshop_update_product_slideUpdate a slide (position, focal_point and/or replacement image via image_file).5 paramsUpdate a slide (position, focal_point and/or replacement image via image_file).
positionintegerslide_idintegerimage_filestringproduct_idintegerfocal_pointstringshop_delete_product_slideDelete a specific product slide.2 paramsDelete a specific product slide.
slide_idintegerproduct_idintegershop_create_variantCreate a new variant for a product. IMPORTANT: all variants of the same product MUST share the exact same set of option_ids. When you introduce a new option on one variant, you must also add that option (with an appropriate value) to every other existing variant via shop_updat...9 paramsCreate a new variant for a product. IMPORTANT: all variants of the same product MUST share the exact same set of option_ids. When you introduce a new option on one variant, you must also add that option (with an appropriate value) to every other existing variant via shop_updat...
skustringmediaintegerpricestringstockintegerweightstringpositionintegercompare_atstringproduct_idintegeroption_valuesarrayshop_get_variantRetrieve the details of a product variant.2 paramsRetrieve the details of a product variant.
product_idintegervariant_idintegershop_update_variantUpdate the details of a product variant.10 paramsUpdate the details of a product variant.
skustringmediaintegerpricestringstockintegerweightstringpositionintegercompare_atstringproduct_idintegervariant_idintegeroption_valuesarrayshop_delete_variantDelete a specific product variant.2 paramsDelete a specific product variant.
product_idintegervariant_idintegershop_list_tagsList all tags used in the shop catalog.3 paramsList all tags used in the shop catalog.
pageintegersortstringalpha · last_created · most_taggedper_pageintegershop_validate_jwtValidate a front-end JWT for a shop customer.2 paramsValidate a front-end JWT for a shop customer.
jwtstringuser_idstringshop_list_customersList customers of the shop.2 paramsList customers of the shop.
pageintegerper_pageintegershop_get_customerRetrieve the details of a specific shop customer.1 paramsRetrieve the details of a specific shop customer.
customer_idintegershop_list_prospectsList prospects (newsletter subscribers) of the shop.2 paramsList prospects (newsletter subscribers) of the shop.
pageintegerper_pageintegershop_get_prospectRetrieve the details of a specific shop prospect.1 paramsRetrieve the details of a specific shop prospect.
user_idstringshop_create_push_broadcastSend a push notification broadcast to all shop app users.3 paramsSend a push notification broadcast to all shop app users.
actionobjectmessagestringscheduleobjectshop_create_push_notificationSend a shop push notification with optional user targeting, scheduling, and tap action.4 paramsSend a shop push notification with optional user targeting, scheduling, and tap action.
actionobjectmessagestringscheduleobjecttargetingobjectshop_list_ordersList orders of the shop. Supports filtering by status and date range.7 paramsList orders of the shop. Supports filtering by status and date range.
pageintegerstatusvalueper_pageintegercreation_date_tostringdelivery_date_tostringcreation_date_fromstringdelivery_date_fromstringshop_get_orderRetrieve the details of a specific order.1 paramsRetrieve the details of a specific order.
order_idintegershop_get_order_shippingGet the shipping information (status, tracking number, tracking URL) of an order.1 paramsGet the shipping information (status, tracking number, tracking URL) of an order.
order_idintegershop_update_order_shippingUpdate the shipping information of an order. Status can only go PENDING → FULFILLED → DELIVERED.4 paramsUpdate the shipping information of an order. Status can only go PENDING → FULFILLED → DELIVERED.
statusstringFULFILLED · DELIVEREDorder_idintegershipping_tracking_numstringshipping_tracking_urlstringshop_get_loyaltyRetrieve the loyalty points details of a shop user.1 paramsRetrieve the loyalty points details of a shop user.
user_idintegershop_update_loyaltyUpdate the loyalty points of a shop user.2 paramsUpdate the loyalty points of a shop user.
user_idintegerpoints_countintegershop_get_promocodeRetrieve the details of a specific promocode.1 paramsRetrieve the details of a specific promocode.
promocode_idintegershop_list_promocodes_amountList promocodes based on order amount.2 paramsList promocodes based on order amount.
pageintegerper_pageintegershop_create_promocode_amountCreate a promocode based on order amount.16 paramsCreate a promocode based on order amount.
codestringnamestringvaluenumberend_atstringend_datestringmax_usesintegerstart_atstringmax_pricenumbermin_pricenumberconditionsstringNONE · PRICE_RANGE · NUMBER_OF_PRODUCTSmin_quantityintegerdiscount_typestringPERCENT · ABSOLUTEone_use_by_userbooleanregistered_onlybooleanspecific_registered_idsarrayspecific_registered_onlybooleanshop_list_promocodes_collectionsList promocodes based on dedicated collections.2 paramsList promocodes based on dedicated collections.
pageintegerper_pageintegershop_create_promocode_collectionsCreate a promocode based on dedicated collections.17 paramsCreate a promocode based on dedicated collections.
codestringnamestringvaluenumberend_atstringend_datestringmax_usesintegerstart_atstringmax_pricenumbermin_pricenumberconditionsstringNONE · PRICE_RANGE · NUMBER_OF_PRODUCTSmin_quantityintegerdiscount_typestringPERCENT · ABSOLUTEcollection_idsarrayone_use_by_userbooleanregistered_onlybooleanspecific_registered_idsarrayspecific_registered_onlybooleanshop_list_promocodes_productList promocodes based on a dedicated product.2 paramsList promocodes based on a dedicated product.
pageintegerper_pageintegershop_create_promocode_productCreate a promocode based on a dedicated product.17 paramsCreate a promocode based on a dedicated product.
codestringnamestringvaluenumberend_atstringend_datestringmax_usesintegerstart_atstringmax_pricenumbermin_pricenumberconditionsstringNONE · PRICE_RANGE · NUMBER_OF_PRODUCTSproduct_idintegermin_quantityintegerdiscount_typestringPERCENT · ABSOLUTEone_use_by_userbooleanregistered_onlybooleanspecific_registered_idsarrayspecific_registered_onlybooleanshop_list_promocodes_tagsList promocodes based on dedicated tags.2 paramsList promocodes based on dedicated tags.
pageintegerper_pageintegershop_create_promocode_tagsCreate a promocode based on dedicated tags.17 paramsCreate a promocode based on dedicated tags.
codestringnamestringtagsarrayvaluenumberend_atstringend_datestringmax_usesintegerstart_atstringmax_pricenumbermin_pricenumberconditionsstringNONE · PRICE_RANGE · NUMBER_OF_PRODUCTSmin_quantityintegerdiscount_typestringPERCENT · ABSOLUTEone_use_by_userbooleanregistered_onlybooleanspecific_registered_idsarrayspecific_registered_onlybooleanshop_list_downloadsList app download statistics for the shop.3 paramsList app download statistics for the shop.
end_datestringplatformstringall · android · ipad · iphonestart_datestringshop_list_downloads_globalList global (all-time) app download statistics for the shop.1 paramsList global (all-time) app download statistics for the shop.
platformstringall · android · ipad · iphoneshop_list_launchesList app launch statistics for the shop.3 paramsList app launch statistics for the shop.
end_datestringplatformstringall · android · html5 · ipad · iphonestart_datestringshop_list_unique_launchesList unique app launch statistics for the shop.3 paramsList unique app launch statistics for the shop.
end_datestringplatformstringall · android · html5 · ipad · iphonestart_datestringshop_list_page_viewsList page view statistics for the shop.3 paramsList page view statistics for the shop.
end_datestringplatformstringall · android · html5 · ipad · iphonestart_datestringshop_list_page_views_per_weekdayList page views broken down by day of the week for the shop.2 paramsList page views broken down by day of the week for the shop.
end_datestringstart_datestringshop_list_session_timesList session time statistics for the shop.2 paramsList session time statistics for the shop.
end_datestringstart_datestringcms_list_sectionsList app sections for the current app by section type. This generic section catalog can return CMS content sections, content sections powered by other providers, and non-content sections. Use type='commerce' for eCommerce sections because commerce sections are not MCMS section...1 paramsList app sections for the current app by section type. This generic section catalog can return CMS content sections, content sections powered by other providers, and non-content sections. Use type='commerce' for eCommerce sections because commerce sections are not MCMS section...
typestringcms_list_cms_sectionsList CMS content sections for the current app by CMS content type. Use this to discover CMS-created article, maps, video, photo, agenda, or sound sections before listing CMS content that requires category ids. The response includes each section's id and title and its categorie...1 paramsList CMS content sections for the current app by CMS content type. Use this to discover CMS-created article, maps, video, photo, agenda, or sound sections before listing CMS content that requires category ids. The response includes each section's id and title and its categorie...
typestringarticle · maps · video · photo · agenda · soundcms_list_articlesList CMS articles for the current app. Optionally filter by one or more category ids (use cms_list_cms_sections first to discover them); omit category to list across every article category. Also filter by publication status, article title search terms, article ids, pagination,...8 paramsList CMS articles for the current app. Optionally filter by one or more category ids (use cms_list_cms_sections first to discover them); omit category to list across every article category. Also filter by publication status, article title search terms, article ids, pagination,...
idarraypageintegersortstringrecent · alphaorderstringASC · DESCsearcharraystatusstringdraft · published · stock · scheduledcategoryarrayper_pageintegercms_get_articleRetrieve one CMS article for the current app by article id. Use cms_list_articles first when the article id is unknown. The response fields accessTier and maxFreeParagraphs apply only to in-app-purchase items: maxFreeParagraphs is the number of body paragraphs shown as a free...1 paramsRetrieve one CMS article for the current app by article id. Use cms_list_articles first when the article id is unknown. The response fields accessTier and maxFreeParagraphs apply only to in-app-purchase items: maxFreeParagraphs is the number of body paragraphs shown as a free...
idintegercms_create_articleCreate one CMS article for the current app. Use cms_list_cms_sections first to discover article category ids.15 paramsCreate one CMS article for the current app. Use cms_list_cms_sections first to discover article category ids.
datestringmetaobjectslugstringtitlestringauthorstringleadinstringpinnedbooleanstatusstringpublished · draft · stockaccessTierstringfree · premiumcategoriesarraypublishedDatestringcommentsEnabledbooleanmaxFreeParagraphsintegerpublicationEndDatestringdisplaySummaryInListbooleancms_update_articleUpdate one CMS article for the current app by article id. Provide at least one field to change.16 paramsUpdate one CMS article for the current app by article id. Provide at least one field to change.
idintegerdatestringmetaobjectslugstringtitlestringauthorstringleadinstringpinnedbooleanstatusstringpublished · draft · stockaccessTierstringfree · premiumcategoriesarraypublishedDatestringcommentsEnabledbooleanmaxFreeParagraphsintegerpublicationEndDatestringdisplaySummaryInListbooleancms_delete_articleDelete one CMS article for the current app by article id. Use cms_get_article or cms_list_articles first to confirm the target.1 paramsDelete one CMS article for the current app by article id. Use cms_get_article or cms_list_articles first to confirm the target.
idintegercms_list_article_paragraphsList body paragraphs for one CMS article, sorted by paragraph position.1 paramsList body paragraphs for one CMS article, sorted by paragraph position.
idintegercms_create_article_paragraphCreate one body paragraph under a CMS article. Paragraph type must be text, photo, quote, or embed. Required fields depend on the paragraph type.8 paramsCreate one body paragraph under a CMS article. Paragraph type must be text, photo, quote, or embed. Required fields depend on the paragraph type.
idintegertypestringtext · photo · quote · embedcaptionstringcontentstringembedUrlstringpositionintegerisThumbnailbooleanoriginalThumbnailstringcms_get_article_paragraphRetrieve one body paragraph by article id and paragraph id.2 paramsRetrieve one body paragraph by article id and paragraph id.
idintegerparagraph_idintegercms_update_article_paragraphUpdate one body paragraph under a CMS article. Provide at least one paragraph field to change.7 paramsUpdate one body paragraph under a CMS article. Provide at least one paragraph field to change.
idintegercaptionstringcontentstringembedUrlstringisThumbnailbooleanparagraph_idintegeroriginalThumbnailstringcms_delete_article_paragraphDelete one body paragraph from a CMS article by article id and paragraph id.2 paramsDelete one body paragraph from a CMS article by article id and paragraph id.
idintegerparagraph_idintegercms_reorder_article_paragraphsReorder all body paragraphs for one CMS article. Pass a full ordered list of paragraph ids.2 paramsReorder all body paragraphs for one CMS article. Pass a full ordered list of paragraph ids.
idintegerparagraph_idsarraycms_list_mapsList CMS map (point of interest) items for the current app. Optionally filter by one or more category ids (use cms_list_cms_sections with type='maps' first to discover them); omit category to list across every map category. Also filter by publication status.8 paramsList CMS map (point of interest) items for the current app. Optionally filter by one or more category ids (use cms_list_cms_sections with type='maps' first to discover them); omit category to list across every map category. Also filter by publication status.
idarraypageintegersortstringrecent · alphaorderstringASC · DESCsearcharraystatusstringdraft · published · stock · scheduledcategoryarrayper_pageintegercms_get_mapRetrieve one CMS map item for the current app by map item id. Use cms_list_maps first when the map item id is unknown. The response fields accessTier and maxFreeParagraphs apply only to in-app-purchase items: maxFreeParagraphs is the number of body paragraphs shown as a free p...1 paramsRetrieve one CMS map item for the current app by map item id. Use cms_list_maps first when the map item id is unknown. The response fields accessTier and maxFreeParagraphs apply only to in-app-purchase items: maxFreeParagraphs is the number of body paragraphs shown as a free p...
idintegercms_create_mapCreate one CMS map (point of interest) item for the current app. Use cms_list_cms_sections with type='maps' first to discover map category ids.17 paramsCreate one CMS map (point of interest) item for the current app. Use cms_list_cms_sections with type='maps' first to discover map category ids.
metaobjectslugstringemailstringtitlestringleadinstringstatusstringpublished · draft · stockaddressstringwebsitestringlatitudenumberlongitudenumberaccessTierstringfree · premiumcategoriesarrayphoneNumberstringpublishedDatestringcommentsEnabledbooleanuseThumbAsPinIconbooleanpublicationEndDatestringcms_update_mapUpdate one CMS map item for the current app by map item id. Provide at least one field to change.18 paramsUpdate one CMS map item for the current app by map item id. Provide at least one field to change.
idintegermetaobjectslugstringemailstringtitlestringleadinstringstatusstringpublished · draft · stockaddressstringwebsitestringlatitudenumberlongitudenumberaccessTierstringfree · premiumcategoriesarrayphoneNumberstringpublishedDatestringcommentsEnabledbooleanuseThumbAsPinIconbooleanpublicationEndDatestringcms_delete_mapDelete one CMS map item for the current app by map item id. Use cms_get_map or cms_list_maps first to confirm the target.1 paramsDelete one CMS map item for the current app by map item id. Use cms_get_map or cms_list_maps first to confirm the target.
idintegercms_list_map_paragraphsList body paragraphs for one CMS map item, sorted by paragraph position.1 paramsList body paragraphs for one CMS map item, sorted by paragraph position.
idintegercms_create_map_paragraphCreate one body paragraph under a CMS map item. Paragraph type must be text, photo, quote, or embed. Required fields depend on the paragraph type.8 paramsCreate one body paragraph under a CMS map item. Paragraph type must be text, photo, quote, or embed. Required fields depend on the paragraph type.
idintegertypestringtext · photo · quote · embedcaptionstringcontentstringembedUrlstringpositionintegerisThumbnailbooleanoriginalThumbnailstringcms_get_map_paragraphRetrieve one body paragraph by map item id and paragraph id.2 paramsRetrieve one body paragraph by map item id and paragraph id.
idintegerparagraph_idinteger44 AI-powered skills to manage your GoodBarber app with any MCP-compatible client — eCommerce, Community, Membership, and CMS.
These skills connect to the GoodBarber MCP server and give your AI assistant structured workflows to manage your products, orders, customers, promotions, subscriptions, content, analytics, and more — all from a conversational interface.
Skills are instruction files (.md) that teach an AI assistant how to perform specific tasks using your GoodBarber app's API via MCP (Model Context Protocol). Instead of manually calling API tools one by one, a skill orchestrates the full workflow — from data retrieval to formatted report — in a single natural-language request.
For example, asking "Show me my best sellers this month" triggers the best-sellers skill, which automatically fetches your orders and catalog, computes rankings, and returns a formatted report.
You need to add the GoodBarber MCP server as a custom connector in your client. The MCP server uses Server-Sent Events (SSE).
MCP Server URLs:
| Setup | URL |
|---|---|
| Single app | https://mcp.goodbarber.dev/mcp/sse |
| Multiple apps | https://mcp.goodbarber.dev/<app_id>/mcp/sse |
Replace <app_id> with your GoodBarber app ID if you manage multiple apps.
Authentication: the GoodBarber MCP server uses a browser-based OAuth flow.
When your MCP client connects to the SSE endpoint, it may open an authorization page on
mcp.goodbarber.dev. On that page, you will be asked to paste your GoodBarber Public API key and validate the authorization. Generate your Public API key from your app's GoodBarber backoffice, on the Public API / MCP server page.Important:
- Do not open the
/authorizeURL manually in your browser.- Start from the MCP client by connecting to the SSE endpoint.
- The client generates the full authorization request parameters automatically (
redirect_uri,client_id,state,code_challenge, etc.).If you open the authorization page manually without those parameters, the authentication will fail.
Claude Desktop (Cowork):
Claude Code (CLI):
# Single app
claude mcp add goodbarber --transport sse https://mcp.goodbarber.dev/mcp/sse
# Multiple apps
claude mcp add goodbarber --transport sse https://mcp.goodbarber.dev/<app_id>/mcp/sse
Then start a Claude Code session — on the first GoodBarber tool call, the CLI will open the GoodBarber authorization page in your browser. Paste your Public API key there and validate to complete the OAuth flow.
Cursor / VS Code / Windsurf:
Add to your MCP configuration file (.cursor/mcp.json, .vscode/mcp.json, etc.):
{
"mcpServers": {
"goodbarber": {
"url": "https://mcp.goodbarber.dev/mcp/sse"
}
}
}
The first connection from your client triggers the OAuth flow in your browser — paste your Public API key on the GoodBarber authorization page and validate.
Any other MCP-compatible client:
Point your client to the SSE endpoint above. The GoodBarber MCP server follows the standard MCP protocol and works with any compliant client.
Clone this repo and copy only the skills for your app type:
git clone https://github.com/goodbarber/goodbarber-skills.git
Note: the examples below use Claude's local skills directory (
~/.claude/skills/). If you use another client, copy the skill folders to the directory expected by that client.
eCommerce app:
cp -r goodbarber-skills/skills/ecommerce/* ~/.claude/skills/
Community app:
cp -r goodbarber-skills/skills/community/* ~/.claude/skills/
Membership app:
cp -r goodbarber-skills/skills/membership/* ~/.claude/skills/
CMS / Content (any app with content sections):
cp -r goodbarber-skills/skills/cms/* ~/.claude/skills/
Tip: CMS skills are cross-cutting — install them alongside any app type that has content sections (articles, agenda, maps, galleries, videos, sounds).
Tip: If your GoodBarber app combines multiple types (e.g. eCommerce + Membership), install skills from both directories.
Warning: some skill names are shared across app types (for example
weekly-digest,traffic-report,push-broadcast, orpush-targeted). If you install skills from multiple directories into the same destination, rename them or place them in separate namespaces to avoid collisions.
Ask your AI assistant: "What skills do you have?" — it should list the installed GoodBarber skills.
| Skill | Description |
|---|---|
best-sellers | Rank products by sales volume and revenue over a given period |
catalog-audit | Detect incomplete product sheets (missing images, descriptions, variants) |
low-performers | Identify products with zero or very low sales |
orphan-products | Find products not assigned to any collection |
product-launch | Guided creation of a full product with variants, images, and SEO |
stock-check | Audit stock levels — flag out-of-stock and low-stock items |
reorder-planner | Generate a supplier-ready replenishment queue based on sales velocity |
| Skill | Description |
|---|---|
order-followup | To-do list of orders to process (pending, to ship, to deliver) |
customer-insights | Segment customers into VIP, loyal, dormant, and one-shot profiles |
rfm-segmentation | Recency / Frequency / Monetary customer segmentation |
prospect-nurture | Prioritize prospects and suggest conversion actions |
| Skill | Description |
|---|---|
promo-campaign | Create a promo code + send an announcement push in one workflow |
promo-performance-review | Analyze promo impact: before, during, and after the campaign |
| Skill | Description |
|---|---|
traffic-report | App-level analytics: page views, launches, sessions, platforms |
kpi-monitor | Threshold-based daily/weekly KPI health alerts |
weekly-digest | Automated weekly business recap |
push-broadcast | Compose, preview, schedule, and send a push notification to all customers |
push-targeted | Compose, preview, schedule, and send a push to specific customers or prospects |
| Skill | Description |
|---|---|
traffic-report | App analytics: page views, launches, sessions by platform |
push-broadcast | Send a push to everyone or to specific community groups |
push-targeted | Send a push to specific community users |
device-landscape | Platform distribution, top devices, OS versions |
weekly-digest | Weekly community activity recap |
| Skill | Description |
|---|---|
subscription-audit | Active vs expired, churn rate, at-risk subscribers, winback opportunities |
expiration-calendar | Upcoming subscription expirations timeline |
longest-subscribers | Identify your most loyal long-term subscribers |
internal-subscription-grant | Create, update, or revoke internal subscriptions |
| Skill | Description |
|---|---|
prospect-followup | Prioritize membership prospects for conversion |
traffic-report | App analytics: page views, launches, sessions by platform |
push-broadcast | Send a push notification to all eligible users |
push-targeted | Send a push to specific users or subscription-status audiences |
device-landscape | Platform distribution, top devices, OS versions |
weekly-digest | Weekly membership business recap |
Skills for managing editorial content — articles, agenda events, map points of interest, photo galleries, videos, and sounds. Work with any GoodBarber app that has CMS content sections.
| Skill | Description |
|---|---|
article-publish | Guided creation of a full article: body paragraphs, category, slug, scheduling, paywall |
event-publish | Create an agenda event with start/end datetime, location, and body content |
place-publish | Create a map point of interest (address + coordinates) with description |
gallery-builder | Batch-upload images into a photo gallery and set titles/status |
article-restructure | Reorder, clean, and fix the body paragraphs of an existing article |
| Skill | Description |
|---|---|
content-audit | Detect incomplete content across all types (no cover, empty body, missing dates/coords) |
draft-review | Surface stale drafts and unfinished content with a recommended next step |
paywall-audit | IAP apps: check premium content has a coherent free preview (accessTier, maxFreeParagraphs) |
stale-content-refresh | Rank aging articles as refresh, re-promote, or retire candidates |
| Skill | Description |
|---|---|
editorial-calendar | Forward view: scheduled publications, upcoming events, expiring content |
weekly-digest | What published this week + what's scheduled next week, by content type |
Note:
weekly-digest,traffic-report,push-broadcast, andpush-targetednames recur across app types. The CMS skills are namespaced by acms-prefix in their frontmatter (e.g.cms-weekly-digest) to avoid collisions — keep them in a separate folder if you install skills from multiple directories.
"Show me my best sellers this month"
→ best-sellers
"Any products running low on stock?"
→ stock-check
"Create a 20% promo code for summer and notify everyone"
→ promo-campaign
"How's my churn rate looking?"
→ subscription-audit
"Send a push to the Paris group: meetup Friday at 7pm"
→ push-broadcast (community)
"Send a push to Marie and Alex: your item is back in stock"
→ push-targeted (eCommerce)
"Notify expired subscribers about the renewal offer tomorrow at 9am"
→ push-targeted (membership)
"Give me my weekly digest"
→ weekly-digest
"Write and publish an article about our new opening hours"
→ article-publish (cms)
"What content is scheduled to go live next week?"
→ editorial-calendar (cms)
"Audit my content for missing covers and empty posts"
→ content-audit (cms)
All skills follow these rules:
These skills work with any MCP-compatible AI client, including:
goodbarber-skills/
├── README.md
└── skills/
├── ecommerce/
│ ├── best-sellers/SKILL.md
│ ├── catalog-audit/SKILL.md
│ ├── customer-insights/SKILL.md
│ ├── ...
│ ├── push-targeted/SKILL.md
│ └── weekly-digest/SKILL.md
├── community/
│ ├── device-landscape/SKILL.md
│ ├── push-broadcast/SKILL.md
│ ├── push-targeted/SKILL.md
│ ├── traffic-report/SKILL.md
│ └── weekly-digest/SKILL.md
├── membership/
│ ├── subscription-audit/SKILL.md
│ ├── expiration-calendar/SKILL.md
│ ├── ...
│ ├── push-broadcast/SKILL.md
│ ├── push-targeted/SKILL.md
│ └── weekly-digest/SKILL.md
└── cms/
├── article-publish/SKILL.md
├── content-audit/SKILL.md
├── editorial-calendar/SKILL.md
├── ...
└── weekly-digest/SKILL.md
Want to add a skill? Create a folder in skills/<app-type>/ with a SKILL.md file. Follow the existing format: YAML frontmatter (name, description, compatibility) + markdown instructions with tool workflow, input/output contracts, and guardrails.
The Unlicense — public domain, no restrictions.