Developers
MCP server
Connect Claude — or any MCP client — to your account over Streamable HTTP with an ordinary API key, then just ask: “make a site for Maple Street Bakery from the bakery template”, “add an FAQ to Rosie’s catering page”, “what did people send through Hilltop’s quote form this week?”. Every tool is an API operation — same arguments, same checks — so an assistant can do exactly what its key can and nothing more.
POST
https://websites.workflowcorp.com/api/mcpConnect
claude mcp add --transport http website-buddy https://websites.workflowcorp.com/api/mcp \
--header "Authorization: Bearer $WEBSITEBUDDY_API_KEY"{
"mcpServers": {
"website-buddy": {
"type": "http",
"url": "https://websites.workflowcorp.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_WEBSITEBUDDY_API_KEY"
}
}
}
}How it behaves
- tools/list shows only what the key may do: a key with just sites:read sees the read tools; a key with every scope sees all 167.
- Edits change the draft. Nothing is public until
publish_site, which refuses (sample_content, with the list) while made-up sample content would go live unlesspublish_sample_anywayis true.create_siteadds the wholesale fee to your bill. Tools carry read-only and destructive hints so a client can ask before acting — the hints are advice, the key’s scopes are the rule. - Stateless: POST one JSON-RPC message per request. No session id, no event stream.
- Every write tool takes
idempotency_key(required where REST requires the Idempotency-Key header): a new UUID per operation, reused only to retry it. A retried call gets the first answer back, markedwebsitebuddy/idempotent_replayedin_meta, and nothing happens twice. - Requests are capped at 256 KiB and results at 192 KiB — ask for fewer rows if a list is too big. Each MCP request counts toward the key’s 60 a minute.
- Two resources: the API reference (Markdown) and the OpenAPI document.
Tools
Each links to its REST reference.
get_accountGet your accountRead onlylist_templatesList templatestemplates:readRead onlyget_templateGet a templatetemplates:readRead onlylist_packagesList packagestemplates:readRead onlylist_design_stylesList design stylestemplates:readRead onlylist_section_typesList section typestemplates:readRead onlylist_sitesList sitessites:readRead onlyget_siteGet a sitesites:readRead onlycreate_siteCreate a site from a templatesites:createAdds to your billpublish_sitePublish a sitesites:publishChanges the live sitecheck_siteCheck a site before publishingsites:readRead onlytake_down_siteTake a site downsites:publishChanges the live siteput_site_back_upPut a taken-down site back upsites:publishChanges the live sitearchive_siteArchive a sitesites:publishChanges the live siterestore_siteRestore an archived sitesites:publishChanges the draft or a recordlist_pagesList pagessites:readRead onlyget_pageGet a pagesites:readRead onlycreate_pageAdd a pagesites:writeChanges the draft or a recordupdate_pageChange a pagesites:writeChanges the draft or a recorddelete_pageDelete a pagesites:writeDeleteslist_sectionsList a page's sectionssites:readRead onlyget_sectionGet a sectionsites:readRead onlyadd_sectionAdd a sectionsites:writeChanges the draft or a recordupdate_sectionChange a sectionsites:writeChanges the draft or a recorddelete_sectionDelete a sectionsites:writeDeleteslist_saved_sectionsList saved sectionssites:readRead onlyget_saved_sectionGet a saved sectionsites:readRead onlycreate_saved_sectionSave a section for reusesites:writeChanges the draft or a recordupdate_saved_sectionChange a saved sectionsites:writeChanges the draft or a recorddelete_saved_sectionRemove a saved sectionsites:writeDeletesplace_saved_sectionPlace a saved section on a pagesites:writeChanges the draft or a recordread_old_websiteRead a client's current websitesites:createRead onlyimport_siteMake a site from a client's current websitesites:createAdds to your billget_site_importGet a site's import reportsites:readRead onlyrestore_site_from_backupRestore a site from a backupsites:writeChanges the draft or a recordcreate_site_from_backupMake a site from a backupsites:createAdds to your billget_site_settingsGet a site's settingssites:readRead onlyupdate_site_settingsChange a site's settingssites:writeChanges the draft or a recordlist_postsList blog postsblog:readRead onlyget_postGet a blog postblog:readRead onlycreate_postWrite a blog postblog:writeChanges the live siteupdate_postChange a blog postblog:writeChanges the live sitedelete_postDelete a blog postblog:writeDeleteslist_post_commentsList blog commentsblog:readRead onlyapprove_post_commentApprove a blog commentblog:writeChanges the draft or a recorddelete_post_commentDelete a blog commentblog:writeDeleteslist_post_topicsList blog topicsblog:readRead onlylist_mediaList picturesmedia:readRead onlyupload_mediaUpload a picture or videomedia:writeChanges the draft or a recordlist_eventsList eventsevents:readRead onlyget_eventGet an eventevents:readRead onlycreate_eventAdd an eventevents:writeChanges the live siteupdate_eventChange an eventevents:writeChanges the live sitedelete_eventDelete an eventevents:writeDeleteslist_collectionsList collectionscollections:readRead onlyget_collectionGet a collectioncollections:readRead onlycreate_collectionMake a collectioncollections:writeChanges the live siteupdate_collectionChange a collectioncollections:writeChanges the live sitedelete_collectionDelete a collectioncollections:writeDeleteslist_collection_recordsList a collection's recordscollections:readRead onlyget_collection_recordGet a recordcollections:readRead onlycreate_collection_recordAdd a recordcollections:writeChanges the live siteupdate_collection_recordChange a recordcollections:writeChanges the live sitedelete_collection_recordDelete a recordcollections:writeDeleteslist_domainsList a site's domainsdomains:readRead onlyadd_domainConnect a domaindomains:writeChanges the draft or a recordcheck_domainCheck a domaindomains:writeChanges the live siteset_primary_domainMake a domain the main addressdomains:writeChanges the live siteremove_domainDisconnect a domaindomains:writeChanges the live sitelist_redirectsList redirectssites:readRead onlyset_redirectAdd a redirectredirects:writeChanges the live sitedelete_redirectRemove a redirectredirects:writeChanges the live sitesearch_domain_namesSearch for a domain to buydomains:buyRead onlybuy_domain_nameBuy a domain for a sitedomains:buyAdds to your billlist_domain_namesList domains bought through usdomains:readRead onlyget_domain_nameGet a domain bought through usdomains:readRead onlyrenew_domain_nameRenew a domain nowdomains:buyAdds to your billupdate_domain_nameSwitch auto-renew on or offdomains:writeChanges the draft or a recordadd_domain_emailAdd a business email addressdomains:writeChanges the live siteremove_domain_emailRemove a business email addressdomains:writeChanges the live siteget_domain_transfer_codeGet the transfer codedomains:writeChanges the live sitelist_formsList a site's formsforms:readRead onlyupdate_formChange a form's settingsforms:writeChanges the draft or a recordlist_submissionsList form messagesforms:readRead onlyupdate_submissionMark a messageforms:writeChanges the draft or a recordlist_clientsList clientsclients:readRead onlyget_clientGet a clientclients:readRead onlycreate_clientAdd a clientclients:writeChanges the draft or a recordupdate_clientChange a clientclients:writeChanges the draft or a recordget_booking_hoursGet booking hoursbookings:readRead onlyset_booking_hoursSet booking hoursbookings:writeChanges the live sitelist_open_timesList open timesbookings:readRead onlylist_appointmentsList appointmentsbookings:readRead onlyget_appointmentGet an appointmentbookings:readRead onlyconfirm_appointmentConfirm an appointmentbookings:writeChanges the live sitedecline_appointmentDecline an appointmentbookings:writeChanges the live sitecancel_appointmentCancel an appointmentbookings:writeChanges the live sitemove_appointmentMove an appointmentbookings:writeChanges the live sitelist_productsList a site's productsstore:readRead onlyget_productGet a productstore:readRead onlycreate_productAdd a productstore:writeChanges the live siteupdate_productChange a productstore:writeChanges the live siteupdate_product_stockSet an option's stockstore:writeChanges the live sitedelete_productDelete a productstore:writeDeletesupload_product_downloadAdd a download's filestore:writeChanges the live sitelist_gift_cardsList a site's gift cardsstore:readRead onlylist_site_ordersList a site's ordersstore:readRead onlyget_site_orderGet an orderstore:readRead onlyget_cart_remindersGet the forgotten-cart reminderstore:readRead onlyupdate_cart_remindersChange the forgotten-cart reminderstore:writeChanges the live siteupdate_site_orderMove an order alongstore:writeChanges the draft or a recordrefund_site_orderRefund a card-paid orderstore:writeDeleteslist_donationsList a site's giftsdonations:readRead onlyget_donationGet a giftdonations:readRead onlystop_monthly_donationStop a monthly giftdonations:writeChanges the draft or a recordrefund_donation_paymentRefund a gift paymentdonations:writeDeletessend_donation_summariesSend the yearly giving summariesdonations:writeChanges the draft or a recordlist_site_membersList a site's membersmembers:readRead onlyadd_site_memberAdd a membermembers:writeChanges the live siteapprove_site_memberApprove a membermembers:writeChanges the live siteremove_site_memberRemove a membermembers:writeDeletesupdate_site_membersChange who may joinmembers:writeChanges the live siteset_page_members_onlyMake a page members onlymembers:writeChanges the live sitelist_client_loginsList a site's client loginsclients:readRead onlyinvite_client_loginInvite a client loginclients:writeChanges the draft or a recordcreate_sign_in_linkMake a sign-in link for a client loginclients:sign-inChanges the draft or a recordupdate_client_loginChange what a client login may doclients:writeChanges the draft or a recordremove_client_loginRemove a client loginclients:writeDeleteswithdraw_client_invitationWithdraw an invitationclients:writeChanges the draft or a recordlist_invoicesList client invoicesinvoices:readRead onlyget_invoiceGet a client invoiceinvoices:readRead onlycreate_invoiceWrite a client invoiceinvoices:writeChanges the draft or a recordsend_invoiceSend a client invoiceinvoices:writeChanges the live sitemark_invoice_paidMark an invoice paidinvoices:writeChanges the draft or a recordmark_invoice_unpaidMark an invoice unpaidinvoices:writeChanges the draft or a recordvoid_invoiceVoid an invoiceinvoices:writeChanges the draft or a recorddelete_invoiceDelete a draft invoiceinvoices:writeDeletesemail_invoiceEmail an invoice to the clientinvoices:writeChanges the live siteget_monthly_invoicesGet monthly invoice settingsinvoices:readRead onlyupdate_monthly_invoicesChange monthly invoice settingsinvoices:writeChanges the draft or a recordrun_monthly_invoicesMake this month's invoices nowinvoices:writeChanges the live sitelist_autopayList card autopayinvoices:readRead onlystart_autopayStart card autopay for a siteinvoices:writeChanges the draft or a recordstop_autopayStop card autopayinvoices:writeChanges the live siteget_design_choicesGet a site's design choicessites:readRead onlycreate_design_choicesOffer a client design choicessites:writeChanges the draft or a recordwithdraw_design_choicesWithdraw design choicessites:writeChanges the draft or a recordlist_content_requestsList a site's content requestssites:readRead onlyget_content_requestGet a content requestsites:readRead onlycreate_content_requestAsk a client for their contentsites:writeChanges the draft or a recordemail_content_requestEmail a content request's linksites:writeChanges the draft or a recordwithdraw_content_requestWithdraw a content requestsites:writeChanges the draft or a recordlist_preview_linksList a site's preview linkssites:readRead onlycreate_preview_linkMake a preview linksites:writeChanges the draft or a recordswitch_off_preview_linkSwitch off a preview linksites:writeChanges the draft or a recordget_instagramGet a site's Instagram connectionsites:readRead onlyrefresh_instagramRead the Instagram posts again nowsites:writeChanges the live sitedisconnect_instagramDisconnect Instagramsites:writeChanges the live siteget_google_reviewsGet a site's Google reviewssites:readRead onlyrefresh_google_reviewsRead the Google reviews again nowsites:writeChanges the live sitelist_webhooksList webhookswebhooks:manageRead onlycreate_webhookAdd a webhookwebhooks:manageChanges the draft or a recordupdate_webhookChange a webhookwebhooks:manageChanges the draft or a recordroll_webhook_secretRoll a webhook's secretwebhooks:manageChanges the draft or a recorddelete_webhookDelete a webhookwebhooks:manageDeletessend_test_webhookSend a test eventwebhooks:manageChanges the draft or a recordlist_webhook_deliveriesList a webhook's deliverieswebhooks:manageRead only