Content & Publishing

25
bulk_find_replace/mcpFind `find` text across content and replace with `replace`.

Find `find` text across content and replace with `replace`. Set post_type='product' to run it on WooCommerce PRODUCTS (a product is a post) or any CPT; default 'post' = blog posts. dry_run=True (default) only REPORTS which items would change (does NOT edit). Run with dry_run=False to actually apply. Always dry-run first, show the user, then apply.

ParameterTypeDefault
find requiredstring
replace requiredstring
dry_runbooleanTrue
statusstringpublish,draft
limitinteger200
post_typestringpost
sitestring
bulk_schedule_posts/mcpSchedule MANY posts at once. `schedule_json` is a JSON array of {"post_id": N, "datetime_iso": "2026-07-15T09:00:00"} (site-local time).

Schedule MANY posts at once. `schedule_json` is a JSON array of {"post_id": N, "datetime_iso": "2026-07-15T09:00:00"} (site-local time). Sets each to status=future. Returns per-post result.

ParameterTypeDefault
schedule_json requiredstring
sitestring
create_cpt_item/mcpCreate an item in ANY custom post type (e.g. post_type='service'). content is HTML. `terms` assigns custom-taxonomy terms as 'taxonomy:id[,id];taxonomy2:id' -…

Create an item in ANY custom post type (e.g. post_type='service'). content is HTML. `terms` assigns custom-taxonomy terms as 'taxonomy:id[,id];taxonomy2:id' - e.g. 'service_hub:12' puts it in the 'lessons' hub (find IDs with list_taxonomies). Use list_post_types to get the post_type slug first.

ParameterTypeDefault
post_type requiredstring
title requiredstring
contentstring
statusstringdraft
excerptstring
termsstring
featured_media_idinteger0
sitestring
create_page/mcp /mcp/storeCreate a new page. status defaults to draft. content is HTML (Gutenberg block markup works too).

Create a new page. status defaults to draft. content is HTML (Gutenberg block markup works too).

ParameterTypeDefault
title requiredstring
content requiredstring
statusstringdraft
sitestring
create_post/mcp /mcp/storeCreate a post - content is HTML, category_ids and tag_ids are COMMA-SEPARATED ID STRINGS like '3,7' (never arrays or ints), status defaults to draft, and you…

Create a post - content is HTML, category_ids and tag_ids are COMMA-SEPARATED ID STRINGS like '3,7' (never arrays or ints), status defaults to draft, and you should always pass a short hyphenated `slug`. featured_media_id = media ID for the thumbnail. slug = a short, keyword-rich, hyphenated URL slug (e.g. 'watercolor-lighthouse-drawing', not the long auto-slug WordPress builds from the title).

ParameterTypeDefault
title requiredstring
content requiredstring
statusstringdraft
excerptstring
category_idsstring
tag_idsstring
featured_media_idinteger0
slugstring
sitestring
delete_cpt_item/mcpDelete an item of ANY custom post type.

Delete an item of ANY custom post type. Default = Trash (recoverable). permanent=True deletes forever.

ParameterTypeDefault
post_type requiredstring
item_id requiredinteger
permanentbooleanFalse
sitestring
delete_page/mcp /mcp/storeDelete a PAGE.

Delete a PAGE. Default = move to Trash (recoverable). permanent=True = delete forever. Use list_pages to find the page ID. (For posts, use delete_post.)

ParameterTypeDefault
page_id requiredinteger
permanentbooleanFalse
sitestring
delete_post/mcp /mcp/storeDelete a post.

Delete a post. Default = move to Trash (recoverable). permanent=True = delete forever.

ParameterTypeDefault
post_id requiredinteger
permanentbooleanFalse
sitestring
duplicate_post/mcp /mcp/storeClone a post (great for templates): copies title, content, excerpt, categories and tags into a NEW draft.

Clone a post (great for templates): copies title, content, excerpt, categories and tags into a NEW draft. Pass new_title to rename the copy. Returns the new post id. For a CUSTOM post type (e.g. 'service'), pass post_type - the copy is created in the same type.

ParameterTypeDefault
post_id requiredinteger
new_titlestring
post_typestring
sitestring
fix_missing_excerpts/mcp /mcp/storeFind published posts with an EMPTY excerpt.

Find published posts with an EMPTY excerpt. With apply=False reports them. With apply=True, generates a ~30-word excerpt from the first paragraph of each (your theme uses excerpt for meta description).

ParameterTypeDefault
limitinteger100
applybooleanFalse
sitestring
get_page/mcp /mcp/storeGet one page's full raw HTML content + title, status.

Get one page's full raw HTML content + title, status.

ParameterTypeDefault
page_id requiredinteger
sitestring
get_post/mcp /mcp/storeGet one post's FULL raw content (HTML) + title, excerpt, status, categories, tags, featured image id.

Get one post's FULL raw content (HTML) + title, excerpt, status, categories, tags, featured image id. Read this before editing. For a CUSTOM post type (e.g. 'service'), pass post_type so it reads from the right endpoint - otherwise only normal posts work.

ParameterTypeDefault
post_id requiredinteger
post_typestring
sitestring
list_cpt_items/mcp /mcp/storeList items of ANY custom post type (e.g. post_type='service').

List items of ANY custom post type (e.g. post_type='service'). Returns id, title, status, link, slug + any taxonomy term ids. Use list_post_types first to find the post_type slug.

ParameterTypeDefault
post_type requiredstring
searchstring
statusstringpublish,draft
per_pageinteger15
pageinteger1
sitestring
list_pages/mcp /mcp/storeList pages (About, calculators, etc.).

List pages (About, calculators, etc.). Returns id, title, status, link.

ParameterTypeDefault
searchstring
statusstringpublish,draft
per_pageinteger20
sitestring
list_post_types/mcp /mcp/storeList every REST-enabled post type on the site (built-in AND custom, e.g. 'service', 'product', 'portfolio') with its slug, label, and REST base.

List every REST-enabled post type on the site (built-in AND custom, e.g. 'service', 'product', 'portfolio') with its slug, label, and REST base. Use this FIRST to discover custom post types before creating/editing their items with the *_cpt_item tools.

ParameterTypeDefault
sitestring
list_posts/mcp /mcp/storeList posts.

List posts. Filter by `search` text and `status` (publish,draft,pending,private,future). Returns id, title, status, link, categories, tags. Use to find a post ID before editing.

ParameterTypeDefault
searchstring
statusstringpublish,draft
per_pageinteger10
pageinteger1
sitestring
list_revisions/mcp /mcp/storeList a post's saved revisions (id, date, snippet).

List a post's saved revisions (id, date, snippet). Use restore_revision to roll back if an edit went wrong.

ParameterTypeDefault
post_id requiredinteger
sitestring
publish_full_article/mcp /mcp/storeOne-shot publisher: creates a post AND (optionally) sets author, categories, tags, excerpt, a short keyword-rich `slug`, generates+attaches a Gemini featured…

One-shot publisher: creates a post AND (optionally) sets author, categories, tags, excerpt, a short keyword-rich `slug`, generates+attaches a Gemini featured image, and returns suggested internal links for the topic so you can weave them in. `content_html` should be the full article HTML (include your schema script if you have one). ALWAYS pass a short `slug` (3-6 words) for a clean SEO URL. Use status='draft' to review first, 'publish' to go live.

ParameterTypeDefault
title requiredstring
content_html requiredstring
statusstringdraft
author_idinteger0
category_idsstring
tag_idsstring
excerptstring
internal_link_topicstring
slugstring
generate_imagebooleanTrue
sitestring
read_reference_page/mcpFetch a PUBLIC web page (e.g. a reference article the user linked) and return its ACTUAL structure so you can analyze it before writing something similar: page…

Fetch a PUBLIC web page (e.g. a reference article the user linked) and return its ACTUAL structure so you can analyze it before writing something similar: page title, meta description, the H1/H2/H3 heading outline, word count, image count, and the readable body text (trimmed). USE THIS whenever the user gives a URL to 'follow the structure of' / 'write like this post' - never claim you matched a reference you haven't actually read. Returns JSON. Only http/https public pages; not for the user's own WP admin (use get_post for that).

ParameterTypeDefault
url requiredstring
schedule_post/mcp /mcp/storeSchedule a post to auto-publish at a future time. `datetime_iso` must be site-local time in ISO format, e.g. '2026-07-15T09:00:00'.

Schedule a post to auto-publish at a future time. `datetime_iso` must be site-local time in ISO format, e.g. '2026-07-15T09:00:00'. Sets status=future.

ParameterTypeDefault
post_id requiredinteger
datetime_iso requiredstring
sitestring
search_site/mcp /mcp/storeSearch across all posts & pages by keyword.

Search across all posts & pages by keyword. Returns id, title, url, type. Great for finding internal-linking targets before editing an article.

ParameterTypeDefault
query requiredstring
per_pageinteger15
sitestring
update_cpt_item/mcpEdit an item of ANY custom post type.

Edit an item of ANY custom post type. Only non-empty fields change. `terms` = 'taxonomy:id[,id]' to (re)assign custom-taxonomy terms (find IDs with list_taxonomies). Pass status='publish' to make a draft live. `slug` changes the URL and 301-redirects the old one automatically (needs the Redirection plugin). `author_id` sets the author (use list_authors for the id) - this is how you set the author on a custom post type, since set_post_author only works on normal posts.

ParameterTypeDefault
post_type requiredstring
item_id requiredinteger
titlestring
contentstring
statusstring
excerptstring
termsstring
featured_media_idinteger0
slugstring
author_idinteger0
sitestring
update_page/mcp /mcp/storeEdit a page by ID.

Edit a page by ID. Only non-empty fields change. content replaces whole body (HTML). `slug` changes the page's URL - the OLD url is automatically 301-redirected to the new one (needs the Redirection plugin) so rankings and links are preserved.

ParameterTypeDefault
page_id requiredinteger
titlestring
contentstring
statusstring
slugstring
sitestring
update_post/mcp /mcp/storeEdit a post by ID - only non-empty fields change, content REPLACES the whole HTML body, category_ids/tag_ids are COMMA-SEPARATED ID STRINGS like '3,7' (never…

Edit a post by ID - only non-empty fields change, content REPLACES the whole HTML body, category_ids/tag_ids are COMMA-SEPARATED ID STRINGS like '3,7' (never arrays), status='publish' makes a draft live; use update_post_body_keep_schema instead if the post has JSON-LD schema you must preserve. `slug` changes the post's URL - the OLD url is automatically 301-redirected to the new one (needs the Redirection plugin) so rankings and links are preserved.

ParameterTypeDefault
post_id requiredinteger
titlestring
contentstring
statusstring
excerptstring
category_idsstring
tag_idsstring
featured_media_idinteger0
slugstring
sitestring
write_article_html/mcp /mcp/storeGenerate a HIGH-QUALITY, full-length article BODY in clean HTML using the premium writing model (Gemini 3.1 Pro), so the expensive model is used ONLY for the…

Generate a HIGH-QUALITY, full-length article BODY in clean HTML using the premium writing model (Gemini 3.1 Pro), so the expensive model is used ONLY for the final writing while your cheaper model does all the research/planning. Use this to WRITE the article once you have the plan: pass a detailed `brief` (topic, angle, the exact section outline / headings to cover, any facts or reference-structure notes from read_reference_page), the `target_words` to hit, `section_count` (e.g. 28 to match a reference), optional `tone` and comma-separated `keywords`. Returns publish-ready HTML (h2/h3, paragraphs, lists) - NO title tag, NO surrounding html/body. Then pass the returned HTML to create_post / p

ParameterTypeDefault
title requiredstring
brief requiredstring
target_wordsinteger1500
section_countinteger0
tonestring
keywordsstring

Images & Media

15
bulk_optimize_images/mcp /mcp/storeCompress the media library's JPEG/PNG images (and optionally convert to WebP) to speed up the site. `quality` 40-95 (default 80). to_webp=True writes .webp…

Compress the media library's JPEG/PNG images (and optionally convert to WebP) to speed up the site. `quality` 40-95 (default 80). to_webp=True writes .webp copies. apply=False previews sizes; apply=True actually processes (backs up originals first when compressing in place). To keep each run fast and safe, apply processes at most 25 images per call - since it always starts from the still-unoptimized images, just call it again to continue the next batch. Returns bytes saved. Requires wptaskify Studio.

ParameterTypeDefault
limitinteger30
qualityinteger80
to_webpbooleanFalse
applybooleanFalse
sitestring
delete_media/mcp /mcp/storePermanently delete a media item by id.

Permanently delete a media item by id.

ParameterTypeDefault
media_id requiredinteger
sitestring
delete_unused_media/mcp /mcp/storeFind media (images) NOT used as any post's featured image and NOT referenced in any post body. apply=False previews; apply=True deletes them (frees space).

Find media (images) NOT used as any post's featured image and NOT referenced in any post body. apply=False previews; apply=True deletes them (frees space). Be careful - deletion is permanent. Scans up to `limit` media items.

ParameterTypeDefault
limitinteger200
applybooleanFalse
sitestring
fix_missing_alt_text/mcp /mcp/storeFind media items with empty alt text.

Find media items with empty alt text. With apply=False (default) just reports them. With apply=True, sets alt text from each image's title (cleaned). Good for accessibility + image SEO.

ParameterTypeDefault
limitinteger100
applybooleanFalse
sitestring
generate_alt_text_ai/mcp /mcp/storeAI alt-text generator: for images with EMPTY alt text ONLY (it never touches images that already have alt - safe to re-run), use Gemini VISION to look at each…

AI alt-text generator: for images with EMPTY alt text ONLY (it never touches images that already have alt - safe to re-run), use Gemini VISION to look at each image and write a proper descriptive alt text (better than the title-based fix_missing_alt_text).

ParameterTypeDefault
limitinteger20
applybooleanFalse
offsetinteger0
sitestring
generate_image_standalone/mcp /mcp/storeGenerate a realistic image with Gemini from a free-text prompt and upload it to the media library (NOT attached to any post).

Generate a realistic image with Gemini from a free-text prompt and upload it to the media library (NOT attached to any post). Returns media id + url. Use when you just need an image in the library.

ParameterTypeDefault
prompt requiredstring
filenamestringai-image
sitestring
insert_in_article_image/mcp /mcp/storeGenerate an image with Gemini and INSERT it inside a post's body as an <img>.

Generate an image with Gemini and INSERT it inside a post's body as an <img>. If `after_text` is given, the image is placed right after the first occurrence of that text; otherwise appended before the schema block. Preserves schema.

ParameterTypeDefault
post_id requiredinteger
prompt requiredstring
after_textstring
alt_textstring
sitestring
list_media/mcp /mcp/storeList media library items (images).

List media library items (images). Returns id, title, source_url, mime_type.

ParameterTypeDefault
searchstring
per_pageinteger10
sitestring
server_upload_media/mcpDownload a file from a URL straight onto the server.

Download a file from a URL straight onto the server.

ParameterTypeDefault
url requiredstring
path requiredstring
sitestring
set_site_icon/mcp /mcp/storeSet the site's FAVICON (browser-tab / bookmark icon, aka Site Icon). `image` is either a public image URL (it gets uploaded) or an existing media id.

Set the site's FAVICON (browser-tab / bookmark icon, aka Site Icon). `image` is either a public image URL (it gets uploaded) or an existing media id. WordPress wants a square image at least 512x512. Works on any theme (it's a core setting).

ParameterTypeDefault
image requiredstring
sitestring
update_media/mcp /mcp/storeEdit a media item's metadata: title, caption, description, or alt text.

Edit a media item's metadata: title, caption, description, or alt text. Only non-empty fields change. (To just set alt text on many images use fix_missing_alt_text.)

ParameterTypeDefault
media_id requiredinteger
titlestring
captionstring
descriptionstring
alt_textstring
sitestring
upload_media_from_url/mcp /mcp/storeDownload an image from a public URL and upload it to the WP media library.

Download an image from a public URL and upload it to the WP media library. Returns the new media id (use it as featured_media_id when creating/updating a post).

ParameterTypeDefault
image_url requiredstring
filenamestring
alt_textstring
sitestring

SEO & Meta

36
audit_seo_fields/mcp /mcp/storeScan published posts and report which are MISSING their SEO meta title, description, or focus keyword.

Scan published posts and report which are MISSING their SEO meta title, description, or focus keyword. Great for finding posts to optimize.

ParameterTypeDefault
limitinteger100
sitestring
backendstringauto
bulk_generate_meta/mcp /mcp/storeGenerate SEO meta with AI: meta TITLE (<=60 chars), meta DESCRIPTION (<=155 chars) and a FOCUS KEYWORD - not just the description.

Generate SEO meta with AI: meta TITLE (<=60 chars), meta DESCRIPTION (<=155 chars) and a FOCUS KEYWORD - not just the description. Set post_type='product' to run it on WooCommerce PRODUCTS (a product is a post), or any CPT. `fields` = comma list of which to fill (default all three; e.g. 'title,description' to skip the keyword). apply=False previews; apply=True saves via the SEO backend (update_post_seo under the hood). Only items with real prose are processed.

ParameterTypeDefault
limitinteger30
applybooleanFalse
fieldsstringtitle,description,focus_keyword
post_typestringpost
sitestring
only_missingbooleanTrue
offsetinteger0
clean_aioseo_leftovers/mcpDelete ALL leftover _aioseo_* meta from every post (cleans old All in One SEO data so only your theme's _cwg_seo_* SEO fields remain).

Delete ALL leftover _aioseo_* meta from every post (cleans old All in One SEO data so only your theme's _cwg_seo_* SEO fields remain). Pass confirm=True to run. This does NOT touch your _cwg_seo_* fields or post content. Run scan_aioseo_leftovers first to see what will be removed. IMPORTANT: if you still need the AIOSEO data, run migrate_aioseo_meta(apply=true) BEFORE this - cleaning is irreversible.

ParameterTypeDefault
confirmbooleanFalse
sitestring
compare_competitor_post/mcpCompare ONE of your posts/pages against a competitor URL that outranks it - a content-depth scorecard so you can make YOUR page demonstrably more complete (the…

Compare ONE of your posts/pages against a competitor URL that outranks it - a content-depth scorecard so you can make YOUR page demonstrably more complete (the #1 lever on actual ranking). Fetches the competitor's public page and compares, side by side: word count, heading count, does it have an FAQ, images, schema (Article/FAQ), lists/tables, and the subtopics (H2/H3 headings) THEY cover that you don't. Pure code, no paid data - it can't show their backlinks/traffic/ keywords, and says so. Use this before refreshing a post so you know exactly what to add.

ParameterTypeDefault
post_id requiredinteger
competitor_url requiredstring
post_typestring
sitestring
create_redirect/mcp /mcp/storeCreate a redirect (e.g. fix a 404). source_url = old path like '/old-page/'; target_url = new path or full URL. 301 = permanent (default).

Create a redirect (e.g. fix a 404). source_url = old path like '/old-page/'; target_url = new path or full URL. 301 = permanent (default).

ParameterTypeDefault
source_url requiredstring
target_url requiredstring
http_codeinteger301
sitestring
delete_redirect/mcp /mcp/storeDelete a redirect by its ID (find it with list_redirects).

Delete a redirect by its ID (find it with list_redirects). Removes it from the Redirection plugin permanently. Use for duplicate/stale redirects.

ParameterTypeDefault
redirect_id requiredinteger
sitestring
edit_robots_txt/mcpGet or set the site's robots.txt (served via WordPress).

Get or set the site's robots.txt (served via WordPress). Pass get_only=True to just read it. Setting it controls what search engines can crawl - be careful not to block the whole site.

ParameterTypeDefault
contentsstring
get_onlybooleanFalse
delete_physicalbooleanFalse
sitestring
find_and_replace_meta/mcpFind & replace text across an SEO meta field on many posts. `field` is one of: meta_title, meta_description, focus_keyword. apply=False previews matches…

Find & replace text across an SEO meta field on many posts. `field` is one of: meta_title, meta_description, focus_keyword. apply=False previews matches; apply=True writes the changes. Great for bulk rebrands/typos in SEO fields.

ParameterTypeDefault
field requiredstring
find requiredstring
replace requiredstring
limitinteger300
applybooleanFalse
sitestring
find_decaying_content/mcpFind posts that are LOSING search traffic/position so you can refresh them - the single highest-ROI SEO activity.

Find posts that are LOSING search traffic/position so you can refresh them - the single highest-ROI SEO activity. If Google Search Console is connected, it compares the last `days` to the previous `days` and flags pages whose clicks or position dropped. If GSC is NOT connected, it falls back to a content-age heuristic (older posts that are also thin get flagged as refresh candidates). Returns a ranked 'refresh these first' list; then use improve_old_post to fix them.

ParameterTypeDefault
daysinteger90
limitinteger15
sitestring
find_duplicate_titles/mcp /mcp/storeFind posts with identical or near-identical titles (possible duplicate/competing content).

Find posts with identical or near-identical titles (possible duplicate/competing content). Returns groups of posts sharing a title.

ParameterTypeDefault
limitinteger300
sitestring
find_thin_content/mcp /mcp/storeScan posts and flag THIN content (fewer than `min_words` words of visible text, schema/HTML stripped).

Scan posts and flag THIN content (fewer than `min_words` words of visible text, schema/HTML stripped). Thin pages hurt SEO. Returns id, title, word_count, url sorted shortest first.

ParameterTypeDefault
min_wordsinteger600
limitinteger300
sitestring
generate_sitemap/mcp /mcp/storeReturn the site's XML sitemap URL (wptaskify serves one automatically).

Return the site's XML sitemap URL (wptaskify serves one automatically). NOTE: Google (June 2023) and Bing both RETIRED the old sitemap-ping URLs, so there is no reliable ping endpoint anymore - reliable resubmission is done via Google Search Console (Site Kit). This confirms the sitemap and, if the old ping endpoints happen to still respond, reports that too.

ParameterTypeDefault
sitestring
get_any_post_meta/mcpLow-level: read ANY custom meta field on a post by exact key name.

Low-level: read ANY custom meta field on a post by exact key name. Use the diagnostic /wg-seo/v1/keys endpoint names. For advanced/edge cases.

ParameterTypeDefault
post_id requiredinteger
key requiredstring
sitestring
get_author_seo/mcp /mcp/storeRead the SEO meta title + description for an AUTHOR archive page.

Read the SEO meta title + description for an AUTHOR archive page. WordPress makes the author archive but gives it no SEO meta - this does. Requires the wptaskify plugin. Use list_authors / list_users to find user IDs.

ParameterTypeDefault
user_id requiredinteger
sitestring
get_post_schema/mcp /mcp/storeExtract ONLY the JSON-LD schema block(s) from a post's content.

Extract ONLY the JSON-LD schema block(s) from a post's content. Use this to read/inspect a post's structured data without the full article. For a CUSTOM post type (e.g. 'service'), pass post_type.

ParameterTypeDefault
post_id requiredinteger
post_typestring
sitestring
get_post_seo/mcp /mcp/storeRead a post's SEO meta fields (meta title, description, focus keyword, keywords).

Read a post's SEO meta fields (meta title, description, focus keyword, keywords). Works on ANY site - auto-detects wptaskify, Yoast, Rank Math, or the wg-seo bridge. Returns current values + length hints (+ score if the wptaskify plugin is installed).

ParameterTypeDefault
post_id requiredinteger
sitestring
get_seo_settings/mcpRead the SITE-WIDE SEO settings (wptaskify plugin): Knowledge Graph identity (Organization vs Person, name, logo, sameAs social profiles, knowsAbout topics)…

Read the SITE-WIDE SEO settings (wptaskify plugin): Knowledge Graph identity (Organization vs Person, name, logo, sameAs social profiles, knowsAbout topics), homepage SEO title/description, and the default social (OG) image. Requires the wptaskify plugin. Use update_seo_settings to change them.

No parameters.

get_term_seo/mcpRead the SEO meta title + description for a TERM archive (category, tag, or custom taxonomy term).

Read the SEO meta title + description for a TERM archive (category, tag, or custom taxonomy term). WordPress makes these archive pages but gives them no SEO meta - this does. Requires the wptaskify plugin. Use list_categories / list_tags to find term IDs.

ParameterTypeDefault
term_id requiredinteger
sitestring
keyword_research/mcp /mcp/storeFREE multi-source keyword research: real GOOGLE + BING Autocomplete suggestions, grouped into questions / comparisons / buyer-intent / modifiers, then…

FREE multi-source keyword research: real GOOGLE + BING Autocomplete suggestions, grouped into questions / comparisons / buyer-intent / modifiers, then (use_ai=True) blended by AI into a prioritized topic plan. No paid SEO tool needed. `seed` = a topic/keyword (e.g. 'commuter e-bike'); `region` = 2-letter country (us, in, uk...). These are real search suggestions, NOT exact volumes - label any volume as an estimate.

ParameterTypeDefault
seed requiredstring
regionstringus
use_aibooleanTrue
list_404_log/mcpList recent 404 errors visitors hit (from Redirection plugin's 404 log).

List recent 404 errors visitors hit (from Redirection plugin's 404 log). Great for finding broken URLs to redirect. Returns url + hit count.

ParameterTypeDefault
per_pageinteger25
sitestring
list_redirects/mcp /mcp/storeList existing redirects (Redirection plugin) with their ID, source URL, target, and hit count.

List existing redirects (Redirection plugin) with their ID, source URL, target, and hit count. Use `search` to filter by URL. Get the ID here, then delete_redirect to remove a duplicate/unwanted one.

ParameterTypeDefault
searchstring
per_pageinteger50
sitestring
migrate_aioseo_meta/mcpOne-shot migration: copy old All-in-One-SEO (_aioseo_*) meta into your theme's SEO fields (_cwg_seo_*), for ALL posts + pages in a SINGLE server-side pass (no…

One-shot migration: copy old All-in-One-SEO (_aioseo_*) meta into your theme's SEO fields (_cwg_seo_*), for ALL posts + pages in a SINGLE server-side pass (no per-post loop). SAFE: only fills EMPTY target fields (never overwrites SEO you set manually), resolves AIOSEO template tags (#post_title, #site_title, #separator_sa) into real text, and flags anything with an unresolved tag.

ParameterTypeDefault
applybooleanFalse
sitestring
ping_search_engines/mcp /mcp/storeAsk search engines to re-crawl.

Ask search engines to re-crawl. IMPORTANT: Google and Bing RETIRED their sitemap-ping endpoints in 2023, so there is no working "ping" anymore. The reliable way to get new content crawled is Google Search Console (Site Kit) - submit your sitemap once and use "Request indexing" for a specific URL. This tool now returns those instructions instead of hitting dead endpoints.

ParameterTypeDefault
post_urlstring
sitestring
scan_aioseo_leftovers/mcpCount leftover _aioseo_* meta data still stored in the database (from the old All in One SEO plugin).

Count leftover _aioseo_* meta data still stored in the database (from the old All in One SEO plugin). These can conflict with your theme's _cwg_seo_* fields.

ParameterTypeDefault
sitestring
seo_audit_post/mcp /mcp/storeFull on-page SEO audit of ONE post in a single report: title length, excerpt/meta length, word count, heading structure (H1-H6), internal vs external link…

Full on-page SEO audit of ONE post in a single report: title length, excerpt/meta length, word count, heading structure (H1-H6), internal vs external link counts, images & missing alt, schema present?, and (if given) focus_keyword usage in title/first paragraph/density. Returns issues + stats. For a CUSTOM post type (e.g. 'service'), pass post_type.

ParameterTypeDefault
post_id requiredinteger
focus_keywordstring
post_typestring
sitestring
seo_backend_info/mcpDetect which SEO system this site uses (wptaskify, Yoast, Rank Math, wg-seo bridge, or none).

Detect which SEO system this site uses (wptaskify, Yoast, Rank Math, wg-seo bridge, or none). Tells you whether SEO meta tools will work here and suggests installing the free wptaskify plugin if nothing is detected.

ParameterTypeDefault
sitestring
set_any_post_meta/mcpLow-level: set ANY custom meta field on a post by exact key name.

Low-level: set ANY custom meta field on a post by exact key name. Use carefully.

ParameterTypeDefault
post_id requiredinteger
key requiredstring
value requiredstring
sitestring
update_author_seo/mcp /mcp/storeSet the SEO meta title and/or description for an AUTHOR archive page.

Set the SEO meta title and/or description for an AUTHOR archive page. Only non-empty fields change. Requires the wptaskify plugin.

ParameterTypeDefault
user_id requiredinteger
titlestring
descriptionstring
sitestring
update_post_body_keep_schema/mcp /mcp/storeReplace the article body but PRESERVE the existing JSON-LD schema block.

Replace the article body but PRESERVE the existing JSON-LD schema block. Pass `new_content` as the new article HTML WITHOUT schema; the post's current schema <script> is automatically re-appended so structured data is not lost. Use this for normal content edits on this site. For a CUSTOM post type (e.g. 'service'), pass post_type.

ParameterTypeDefault
post_id requiredinteger
new_content requiredstring
post_typestring
sitestring
update_post_schema/mcp /mcp/storeReplace ONLY the JSON-LD schema block in a post, leaving the article body untouched. `new_schema_script` must be a full <script type="application/ld+json"> ...…

Replace ONLY the JSON-LD schema block in a post, leaving the article body untouched. `new_schema_script` must be a full <script type="application/ld+json"> ... </script> tag. If the post has no schema yet, it is appended at the end. For a CUSTOM post type (e.g. 'service'), pass post_type.

ParameterTypeDefault
post_id requiredinteger
new_schema_script requiredstring
post_typestring
sitestring
update_post_seo/mcp /mcp/storeSet a post's SEO meta_title, meta_description and focus_keyword (keywords = a COMMA-SEPARATED string of secondary keywords, not an array); only non-empty…

Set a post's SEO meta_title, meta_description and focus_keyword (keywords = a COMMA-SEPARATED string of secondary keywords, not an array); only non-empty values are written. Works on ANY site - auto-detects wptaskify, Yoast, Rank Math, or the wg-seo bridge, and writes to the right fields so the rendered <title>, meta description, Open Graph & Twitter tags update.

ParameterTypeDefault
post_id requiredinteger
meta_titlestring
meta_descriptionstring
focus_keywordstring
keywordsstring
sitestring
update_seo_settings/mcpUpdate SITE-WIDE SEO settings (wptaskify plugin).

Update SITE-WIDE SEO settings (wptaskify plugin). Only non-empty fields are changed (partial update). Fields: - entity_type: 'Organization' or 'Person' (who publishes this site) - entity_name: brand/person name (blank = use site title) - same_as: social profile URLs, one per line (Facebook, X, LinkedIn, etc.) - knows_about: topics this site is an authority on, one per line - home_title / home_desc: homepage SEO title & meta description - logo_id / default_og_id: media library attachment IDs (upload first) This powers the site's Organization/Person schema + default OG image. Requires the wptaskify plugin (admin capability).

ParameterTypeDefault
entity_typestring
entity_namestring
same_asstring
knows_aboutstring
home_titlestring
home_descstring
logo_idinteger0
default_og_idinteger0
update_term_seo/mcpSet the SEO meta title and/or description for a TERM archive (category, tag, custom taxonomy term).

Set the SEO meta title and/or description for a TERM archive (category, tag, custom taxonomy term). Only non-empty fields change. Improves how the archive page ranks and appears in search. Requires the wptaskify plugin.

ParameterTypeDefault
term_id requiredinteger
titlestring
descriptionstring
sitestring
validate_schema/mcp /mcp/storeValidate the JSON-LD structured data (schema) in a post - or scan many posts if post_id=0.

Validate the JSON-LD structured data (schema) in a post - or scan many posts if post_id=0. Checks each <script type="application/ld+json"> block parses as valid JSON and has @context and @type. Reports posts with missing or broken schema. Good for rich-results health.

ParameterTypeDefault
post_idinteger0
limitinteger100
sitestring
verify_live_meta/mcp /mcp/storeFetch the LIVE rendered page (cache-bypassed) and extract the ACTUAL meta tags Google sees: title, meta description, canonical, OG title/desc, Twitter, and…

Fetch the LIVE rendered page (cache-bypassed) and extract the ACTUAL meta tags Google sees: title, meta description, canonical, OG title/desc, Twitter, and which plugin/theme emitted them (looks for the <!-- cwg-seo --> marker). Use this to confirm an SEO edit really rendered. Pass post_id OR a full url.

ParameterTypeDefault
post_idinteger0
urlstring
sitestring

AI Search & GEO

5
ai_seo_score/mcp /mcp/storeThe AI SEO Score - a unified, AI-era SEO scorecard for the whole site across 5 categories (each 0-100) plus an overall: On-Page, Technical, AEO (answer- engine…

The AI SEO Score - a unified, AI-era SEO scorecard for the whole site across 5 categories (each 0-100) plus an overall: On-Page, Technical, AEO (answer- engine readiness), GEO (AI-citation readiness), and Authority (E-E-A-T). Every score is MEASURED from real content/site signals (no external APIs). Also returns concrete issue COUNTS (missing meta, missing alt, no schema, orphan pages, thin content, broken structure) so the dashboard can show 'Fix with Claude' actions. This is what powers the dashboard's AI SEO widget.

ParameterTypeDefault
limitinteger50
sitestring
edit_llms_txt/mcp /mcp/storeGet or set the site's /llms.txt - the AI-friendly index (like robots.txt but for LLMs / AI answer engines).

Get or set the site's /llms.txt - the AI-friendly index (like robots.txt but for LLMs / AI answer engines). It tells ChatGPT, Perplexity, Gemini etc. what the site is about and which pages matter, so they understand and CITE it better (GEO/AEO). get_only=True reads current state; passing `contents` sets a custom llms.txt (empty string = back to auto-generated from the site). Great to write a curated, well-described index of your best content. Requires wptaskify Studio.

ParameterTypeDefault
contentsstring
get_onlybooleanFalse
sitestring
geo_audit_post/mcp /mcp/storeGEO / AEO audit - how CITATION-READY a post is for AI answer engines (ChatGPT, Perplexity, Google AI Overviews, Gemini, Claude).

GEO / AEO audit - how CITATION-READY a post is for AI answer engines (ChatGPT, Perplexity, Google AI Overviews, Gemini, Claude). Scores 8 dimensions 0-100 (clear definitions, quotable statements, factual density, source citations, structured Q&A format, authority/E-E-A-T, freshness, structure clarity), gives an overall GEO score, and runs the ANSWER-BLOCK TEST against your `target_queries` (comma-separated) - for each query, is there a standalone 25-50 word answer a machine could quote? Returns measured scores + specific, actionable fixes. All numbers here are MEASURED from the content (not guessed); anything inferred is labeled. For a CUSTOM post type (e.g. 'service'), pass post_type.

ParameterTypeDefault
post_id requiredinteger
target_queriesstring
post_typestring
sitestring
geo_optimize_post/mcp /mcp/storeMake a post AI-CITATION-READY.

Make a post AI-CITATION-READY. Two ways to use it:

ParameterTypeDefault
post_id requiredinteger
optimized_htmlstring
target_queriesstring
post_typestring
sitestring
update_post_aeo/mcp /mcp/storeSet a post's ANSWER-ENGINE (AEO/GEO) fields - the stuff that gets a page quoted and cited by ChatGPT, Perplexity, Google AI Overviews, Gemini & Claude.

Set a post's ANSWER-ENGINE (AEO/GEO) fields - the stuff that gets a page quoted and cited by ChatGPT, Perplexity, Google AI Overviews, Gemini & Claude. WordPress and most SEO plugins have none of this. Only non-empty fields change. Requires the wptaskify plugin. Fields: - quick_answer: a standalone 25-50 word direct answer (rendered at the top of the post + marked speakable). This is the #1 GEO lever. - key_takeaways: TL;DR bullets, ONE PER LINE (rendered as a list + schema abstract) - reviewed_by: E-E-A-T reviewer name (adds reviewedBy to Article schema) - last_reviewed: intentional review date YYYY-MM-DD (separate from auto-modified) - speakable: '1' to mark the title + quick answer as voi

ParameterTypeDefault
post_id requiredinteger
quick_answerstring
key_takeawaysstring
reviewed_bystring
last_reviewedstring
speakablestring
in_languagestring
sitestring

Categories, Tags & Menus

19
add_menu_item/mcp /mcp/storeAdd a custom link item to a navigation menu.

Add a custom link item to a navigation menu. Returns the new item id.

ParameterTypeDefault
menu_id requiredinteger
title requiredstring
url requiredstring
parent_idinteger0
sitestring
add_widget/mcpAdd a block widget to a widget area (sidebar). `block_html` is Gutenberg block markup, e.g. '<!-- wp:paragraph --><p>Hello</p><!-- /wp:paragraph -->' or a…

Add a block widget to a widget area (sidebar). `block_html` is Gutenberg block markup, e.g. '<!-- wp:paragraph --><p>Hello</p><!-- /wp:paragraph -->' or a heading/list block. Find sidebar_id via list_widgets. Great for footer text, a CTA, or an ad block.

ParameterTypeDefault
sidebar_id requiredstring
block_html requiredstring
sitestring
bulk_assign_terms/mcp /mcp/storeAssign categories and/or tags to MANY posts at once. `post_ids`, `category_ids`, `tag_ids` are comma-separated id lists.

Assign categories and/or tags to MANY posts at once. `post_ids`, `category_ids`, `tag_ids` are comma-separated id lists. By default terms are ADDED; set replace=True to replace existing ones. Returns per-post result.

ParameterTypeDefault
post_ids requiredstring
category_idsstring
tag_idsstring
replacebooleanFalse
sitestring
bulk_update_category/mcpMove ALL posts from one category to another (merge/cleanup).

Move ALL posts from one category to another (merge/cleanup). Every post in `from_category_id` gets `to_category_id` added and the old one removed. Returns how many posts were moved.

ParameterTypeDefault
from_category_id requiredinteger
to_category_id requiredinteger
sitestring
create_category/mcp /mcp/storeCreate a new category.

Create a new category. Returns its id.

ParameterTypeDefault
name requiredstring
descriptionstring
parent_idinteger0
sitestring
create_menu/mcp /mcp/storeCreate a new (empty) navigation menu.

Create a new (empty) navigation menu. Optionally assign it to a theme location (e.g. 'primary' - find valid locations in list_menus output). Then use add_menu_item to fill it. Returns the new menu id.

ParameterTypeDefault
name requiredstring
locationstring
sitestring
create_tag/mcp /mcp/storeCreate a new tag.

Create a new tag. Returns its id.

ParameterTypeDefault
name requiredstring
descriptionstring
sitestring
delete_menu/mcp /mcp/storeDelete a navigation menu (its items are removed too; the menu location becomes empty).

Delete a navigation menu (its items are removed too; the menu location becomes empty).

ParameterTypeDefault
menu_id requiredinteger
sitestring
delete_menu_item/mcp /mcp/storeRemove an item from a navigation menu.

Remove an item from a navigation menu.

ParameterTypeDefault
item_id requiredinteger
sitestring
delete_term/mcpDelete a taxonomy term (category, tag, or custom-taxonomy term).

Delete a taxonomy term (category, tag, or custom-taxonomy term). Posts keep existing but lose this term. `taxonomy` = REST base ('categories'/'tags'/custom rest_base). Terms are deleted permanently (WP has no term trash).

ParameterTypeDefault
taxonomy requiredstring
term_id requiredinteger
sitestring
delete_widget/mcpRemove a widget from its widget area (by widget id from list_widgets).

Remove a widget from its widget area (by widget id from list_widgets).

ParameterTypeDefault
widget_id requiredstring
sitestring
list_categories/mcp /mcp/storeList all categories with id, name, count, slug.

List all categories with id, name, count, slug. Use IDs when assigning to posts.

ParameterTypeDefault
per_pageinteger100
sitestring
list_menu_items/mcp /mcp/storeList items in a menu (id, title, url, order, parent).

List items in a menu (id, title, url, order, parent). Use to see/plan menu edits.

ParameterTypeDefault
menu_id requiredinteger
sitestring
list_menus/mcp /mcp/storeList navigation menus (id, name) and their locations.

List navigation menus (id, name) and their locations.

ParameterTypeDefault
sitestring
list_tags/mcp /mcp/storeList tags with id, name, count, slug.

List tags with id, name, count, slug. Optionally filter by `search`.

ParameterTypeDefault
searchstring
per_pageinteger100
sitestring
list_taxonomies/mcp /mcp/storeList the taxonomies (categories/tags AND custom ones like 'service_hub') on the site, optionally filtered to a post_type, with their REST base and (if…

List the taxonomies (categories/tags AND custom ones like 'service_hub') on the site, optionally filtered to a post_type, with their REST base and (if include_terms) their terms + term IDs. Use this to find the term IDs to assign when creating a custom post-type item.

ParameterTypeDefault
post_typestring
include_termsbooleanTrue
sitestring
list_widgets/mcpList the site's widgets and widget areas (sidebars).

List the site's widgets and widget areas (sidebars). Returns each sidebar's id/name and the widgets in it. Many classic themes use widgets for footers/sidebars.

ParameterTypeDefault
sitestring
update_menu_item/mcp /mcp/storeEdit an existing menu item: rename, change its URL, re-nest under a parent, or reorder (menu_order).

Edit an existing menu item: rename, change its URL, re-nest under a parent, or reorder (menu_order). Only non-empty/>=0 fields change. Use to reorder or restructure a menu without deleting + re-adding items.

ParameterTypeDefault
item_id requiredinteger
titlestring
urlstring
parent_idinteger-1
menu_orderinteger-1
sitestring
update_term/mcpRename / re-describe / re-slug / re-parent a taxonomy term. `taxonomy` is the REST base: 'categories', 'tags', or a custom taxonomy's rest_base (find via…

Rename / re-describe / re-slug / re-parent a taxonomy term. `taxonomy` is the REST base: 'categories', 'tags', or a custom taxonomy's rest_base (find via list_taxonomies). Only non-empty fields change. parent_id=-1 leaves parent unchanged (categories only).

ParameterTypeDefault
taxonomy requiredstring
term_id requiredinteger
namestring
descriptionstring
slugstring
parent_idinteger-1
sitestring

Users, Comments & Authors

12
change_user_role/mcpChange a user's role (subscriber/contributor/author/editor/administrator).

Change a user's role (subscriber/contributor/author/editor/administrator).

ParameterTypeDefault
user_id requiredinteger
role requiredstring
sitestring
create_comment/mcp /mcp/storePost a comment on a post (or REPLY to another comment via parent_id).

Post a comment on a post (or REPLY to another comment via parent_id). Use to answer reader comments as the site. If author_name/email are omitted the comment is authored by the connected account. New comments are auto-approved (posted by an admin).

ParameterTypeDefault
post_id requiredinteger
content requiredstring
parent_idinteger0
author_namestring
author_emailstring
sitestring
create_user/mcpCreate a new WordPress user. role is one of: subscriber, contributor, author, editor, administrator.

Create a new WordPress user. role is one of: subscriber, contributor, author, editor, administrator. Returns the new user id.

ParameterTypeDefault
username requiredstring
email requiredstring
password requiredstring
rolestringauthor
sitestring
delete_user/mcpDelete a user. reassign_to = the user id to reassign their posts to (recommended so content isn't lost).

Delete a user. reassign_to = the user id to reassign their posts to (recommended so content isn't lost). If reassign_to=0, their content is deleted too - be careful.

ParameterTypeDefault
user_id requiredinteger
reassign_tointeger0
sitestring
get_user/mcpGet one user's profile (name, email, bio, url, roles). user_id='me' = the connected account.

Get one user's profile (name, email, bio, url, roles). user_id='me' = the connected account. Use before update_user to see current values.

ParameterTypeDefault
user_idstringme
sitestring
list_authors/mcp /mcp/storeList all authors/users (id, name, role).

List all authors/users (id, name, role). Use the id with set_post_author.

ParameterTypeDefault
sitestring
list_comments/mcp /mcp/storeList comments. status = hold (pending), approve, spam, trash, all.

List comments. status = hold (pending), approve, spam, trash, all. Returns id, author, content snippet, post id, status.

ParameterTypeDefault
statusstringhold
per_pageinteger20
sitestring
list_users/mcpList site users with id, name, email (if visible), and roles.

List site users with id, name, email (if visible), and roles.

ParameterTypeDefault
per_pageinteger50
sitestring
moderate_comment/mcp /mcp/storeModerate a comment. action = approve, hold, spam, trash, delete.

Moderate a comment. action = approve, hold, spam, trash, delete.

ParameterTypeDefault
comment_id requiredinteger
action requiredstring
sitestring
set_post_author/mcp /mcp/storeSet/change the author of a post (use list_authors to get the id).

Set/change the author of a post (use list_authors to get the id). Good for E-E-A-T - assign the right expert to each article. For a CUSTOM post type (e.g. 'service'), pass post_type so it targets the right endpoint - otherwise it only works on normal posts.

ParameterTypeDefault
post_id requiredinteger
author_id requiredinteger
post_typestringpost
sitestring
update_comment/mcp /mcp/storeEdit the CONTENT of an existing comment (fix a typo, redact something).

Edit the CONTENT of an existing comment (fix a typo, redact something). To change a comment's status (approve/spam/trash) use moderate_comment instead.

ParameterTypeDefault
comment_id requiredinteger
content requiredstring
sitestring
update_user/mcpEdit a user's profile: display name, email, first/last name, bio (description), website url, or password.

Edit a user's profile: display name, email, first/last name, bio (description), website url, or password. Only non-empty fields change. Use get_user first to see current values.

ParameterTypeDefault
user_id requiredinteger
emailstring
first_namestring
last_namestring
namestring
descriptionstring
urlstring
passwordstring
sitestring

Themes, Plugins & Files

31
activate_plugin/mcpActivate an installed plugin by its file (e.g. 'akismet/akismet.php' - get it from list_plugins).

Activate an installed plugin by its file (e.g. 'akismet/akismet.php' - get it from list_plugins). Requires wptaskify Studio.

ParameterTypeDefault
plugin_file requiredstring
sitestring
activate_theme/mcpActivate a theme by its slug (folder name) - makes it LIVE for all visitors.

Activate a theme by its slug (folder name) - makes it LIVE for all visitors.

ParameterTypeDefault
slug requiredstring
sitestring
create_plugin/mcpCreate a NEW WordPress plugin (folder + main file with a valid header). `slug` = folder/file name (lowercase-dashes). `code` = optional PHP body AFTER the…

Create a NEW WordPress plugin (folder + main file with a valid header). `slug` = folder/file name (lowercase-dashes). `code` = optional PHP body AFTER the header (do NOT include <?php or the header - those are added). Safe: a new plugin can't break existing code. Activate it separately if needed. Requires wptaskify Studio.

ParameterTypeDefault
slug requiredstring
namestring
descriptionstring
codestring
sitestring
create_theme/mcpCreate a NEW WordPress theme (style.css + index.php + functions.php). `slug` = folder name. `style_css` = CSS (a Theme Name header is added if missing).…

Create a NEW WordPress theme (style.css + index.php + functions.php). `slug` = folder name. `style_css` = CSS (a Theme Name header is added if missing). `index_php`/`functions_php` = optional PHP (lint-checked). Safe: creating a theme doesn't affect the active one until you activate it with activate_theme. Requires wptaskify Studio.

ParameterTypeDefault
slug requiredstring
namestring
style_cssstring
index_phpstring
functions_phpstring
sitestring
deactivate_plugin/mcpDeactivate an active plugin by its file (from list_plugins). wptaskify cannot deactivate itself.

Deactivate an active plugin by its file (from list_plugins). wptaskify cannot deactivate itself. This can change site behaviour - WARN the user and confirm first. Requires wptaskify Studio.

ParameterTypeDefault
plugin_file requiredstring
sitestring
edit_htaccess/mcpGet or set the root .htaccess file.

Get or set the root .htaccess file. RISKY - a wrong rule can break the whole site (500 error). The plugin backs up the old file first. Always read it first (get_only=True), WARN the user, and confirm before writing. Requires wptaskify Studio.

ParameterTypeDefault
contentsstring
get_onlybooleanFalse
sitestring
get_custom_css/mcp /mcp/storeGet the current site-wide custom CSS set via wptaskify Studio.

Get the current site-wide custom CSS set via wptaskify Studio.

ParameterTypeDefault
sitestring
install_plugin_from_repo/mcpInstall a plugin from the WordPress.org repository by its slug (e.g. 'wordpress-seo', 'contact-form-7').

Install a plugin from the WordPress.org repository by its slug (e.g. 'wordpress-seo', 'contact-form-7'). Set activate=True to also activate it. Requires wptaskify Studio.

ParameterTypeDefault
slug requiredstring
activatebooleanFalse
sitestring
list_plugins/mcpList all installed plugins with name, version, file, and active/inactive state.

List all installed plugins with name, version, file, and active/inactive state. Requires wptaskify Studio.

ParameterTypeDefault
sitestring
list_theme_plugin_files/mcpList files/folders inside a theme, plugin or the uploads dir. `path` must start with 'themes/', 'plugins/' or 'uploads/' (e.g. 'themes/blocksy' or…

List files/folders inside a theme, plugin or the uploads dir. `path` must start with 'themes/', 'plugins/' or 'uploads/' (e.g. 'themes/blocksy' or 'plugins/wp-pilot-seo'). Use this to explore before reading/editing files. Requires wptaskify Studio.

ParameterTypeDefault
path requiredstring
sitestring
list_themes/mcpList all installed themes with name, version, and which one is ACTIVE.

List all installed themes with name, version, and which one is ACTIVE. Use this before activating/previewing/editing a theme. Requires wptaskify Studio.

ParameterTypeDefault
sitestring
preview_theme/mcpGet a SAFE PREVIEW link for a theme WITHOUT activating it - only the logged-in admin sees the preview; visitors keep seeing the current live theme.

Get a SAFE PREVIEW link for a theme WITHOUT activating it - only the logged-in admin sees the preview; visitors keep seeing the current live theme. This is the 'staging' step: create_theme -> preview_theme -> (looks good?) -> activate_theme. ALWAYS preview a new theme and let the user confirm it looks right before activating. Requires wptaskify Studio.

ParameterTypeDefault
slug requiredstring
sitestring
read_theme_plugin_file/mcpRead a theme/plugin/uploads file's contents. `path` starts with 'themes/', 'plugins/' or 'uploads/' (e.g. 'themes/blocksy/functions.php').

Read a theme/plugin/uploads file's contents. `path` starts with 'themes/', 'plugins/' or 'uploads/' (e.g. 'themes/blocksy/functions.php'). Requires wptaskify Studio. Read BEFORE editing so you preserve existing code.

ParameterTypeDefault
path requiredstring
sitestring
server_create_plugin/mcpCreate a new plugin on the filesystem, with a valid header.

Create a new plugin on the filesystem, with a valid header.

ParameterTypeDefault
slug requiredstring
namestring
descriptionstring
codestring
sitestring
server_create_theme/mcpCreate a new theme on the filesystem, with the files WordPress requires.

Create a new theme on the filesystem, with the files WordPress requires.

ParameterTypeDefault
slug requiredstring
namestring
style_cssstring
index_phpstring
functions_phpstring
sitestring
server_db_query/mcpRun a read-only SQL query against the site's own database.

Run a read-only SQL query against the site's own database.

ParameterTypeDefault
sql requiredstring
sitestring
server_delete/mcpDelete a file, or an empty folder.

Delete a file, or an empty folder.

ParameterTypeDefault
path requiredstring
sitestring
server_disable_plugin/mcpDisable ONE plugin by renaming its folder - works on a site that will not load.

Disable ONE plugin by renaming its folder - works on a site that will not load.

ParameterTypeDefault
plugin_folder requiredstring
sitestring
server_disable_theme/mcpForce WordPress back to a default theme, by renaming the active theme's folder.

Force WordPress back to a default theme, by renaming the active theme's folder.

ParameterTypeDefault
sitestring
server_edit_file/mcpChange part of a file without sending the whole thing back.

Change part of a file without sending the whole thing back.

ParameterTypeDefault
path requiredstring
find requiredstring
replace requiredstring
sitestring
all_matchesbooleanFalse
server_enable_plugin/mcpUndo server_disable_plugin - rename the folder back.

Undo server_disable_plugin - rename the folder back.

ParameterTypeDefault
plugin_folder requiredstring
sitestring
server_install_plugin_zip/mcpInstall a plugin from a .zip URL by unpacking it into wp-content/plugins.

Install a plugin from a .zip URL by unpacking it into wp-content/plugins.

ParameterTypeDefault
zip_url requiredstring
sitestring
server_list_files/mcpList a folder inside the site - name, type, size, modified time.

List a folder inside the site - name, type, size, modified time.

ParameterTypeDefault
pathstring
sitestring
server_make_folder/mcpCreate a folder, and any missing folders above it.

Create a folder, and any missing folders above it.

ParameterTypeDefault
path requiredstring
sitestring
server_php_info/mcpPHP version, memory limit, execution time and extensions, as the SITE sees them.

PHP version, memory limit, execution time and extensions, as the SITE sees them.

ParameterTypeDefault
sitestring
server_read_file/mcpRead a file from the site's filesystem.

Read a file from the site's filesystem.

ParameterTypeDefault
path requiredstring
sitestring
server_rename/mcpRename anything inside the site - the general form of the disable tools.

Rename anything inside the site - the general form of the disable tools.

ParameterTypeDefault
path requiredstring
new_path requiredstring
sitestring
server_write_file/mcpWrite or replace a file on the site.

Write or replace a file on the site. PHP is syntax-checked FIRST.

ParameterTypeDefault
path requiredstring
content requiredstring
sitestring
skip_lintbooleanFalse
set_custom_css/mcp /mcp/storeSet the site-wide custom CSS (applies to the WHOLE site, every theme).

Set the site-wide custom CSS (applies to the WHOLE site, every theme). This is the SAFEST way to restyle a site - colors, fonts, spacing, layout tweaks - because CSS can never crash PHP. REPLACES the current custom CSS; use get_custom_css first if you want to append. Requires wptaskify Studio.

ParameterTypeDefault
css requiredstring
sitestring
write_theme_plugin_file/mcpWRITE / EDIT / SAVE / UPDATE a theme or plugin file - create or overwrite.

WRITE / EDIT / SAVE / UPDATE a theme or plugin file - create or overwrite. Use this to edit theme PHP files (functions.php, front-page.php, index.php, header.php, page templates), style.css, or any theme/plugin/uploads file. `path` starts with 'themes/', 'plugins/' or 'uploads/' (e.g. 'themes/mytheme/front-page.php'). This is the theme/ plugin FILE WRITE tool. The Studio plugin AUTOMATICALLY backs up any existing file and, for .php files, PHP-lints `contents` first - if the PHP is invalid the write is REFUSED (so a bad edit can't take the site down).

ParameterTypeDefault
path requiredstring
contents requiredstring
sitestring

Backups, Safety & Site Health

19
check_approval/mcp /mcp/storeCheck whether a queued approval (from request_approval) has been decided by the user.

Check whether a queued approval (from request_approval) has been decided by the user. Returns status: 'pending', 'approved', or 'rejected'. Only perform the action once status is 'approved'; if 'rejected', do not do it.

ParameterTypeDefault
approval_id requiredstring
sitestring
check_site_health/mcp /mcp/storeReport site health: PHP & WP version, active theme, plugin counts, DB size, HTTPS, debug mode, memory limit.

Report site health: PHP & WP version, active theme, plugin counts, DB size, HTTPS, debug mode, memory limit. Good for a quick diagnostic. Requires wptaskify Studio.

ParameterTypeDefault
sitestring
full_site_backup/mcpTake a FULL backup of the site.

Take a FULL backup of the site. Always includes code (all themes + plugins + mu-plugins). Set include_uploads=True to also back up the media library (can be large). Set include_db=True for a MIGRATION-GRADE backup - a complete SQL dump of EVERY database table (posts, users, options, WooCommerce, everything), built in resumable chunks so it never times out. With include_db the backup can rebuild the whole site on a new host. Returns a backup_id to use with restore_site_backup. Do this BEFORE big/risky changes or a migration. Requires wptaskify Studio.

ParameterTypeDefault
include_uploadsbooleanFalse
include_dbbooleanFalse
sitestring
get_activity_log/mcp /mcp/storeGet the recent wptaskify activity log (what the AI changed on this site).

Get the recent wptaskify activity log (what the AI changed on this site). Requires wptaskify Studio.

ParameterTypeDefault
sitestring
list_studio_backups/mcpList the automatic file backups wptaskify Studio has made (before each edit).

List the automatic file backups wptaskify Studio has made (before each edit). Useful to reassure the user their originals are saved. Requires wptaskify Studio.

ParameterTypeDefault
sitestring
request_approval/mcp /mcp/storeQueue a genuinely DESTRUCTIVE / hard-to-undo action for the site owner to approve, instead of doing it right away.

Queue a genuinely DESTRUCTIVE / hard-to-undo action for the site owner to approve, instead of doing it right away. Only a SMALL set of actions ever needs this.

ParameterTypeDefault
action_summary requiredstring
tool_namestring
riskstringhigh
sitestring
resolve_approval/mcp /mcp/storeRecord the user's answer to a pending approval that they gave IN THIS CHAT.

Record the user's answer to a pending approval that they gave IN THIS CHAT.

ParameterTypeDefault
approval_id requiredstring
decisionstringapproved
sitestring
restore_revision/mcp /mcp/storeRoll a post back to a previous revision (undo).

Roll a post back to a previous revision (undo). Fetches that revision's content/title and writes it back onto the live post.

ParameterTypeDefault
post_id requiredinteger
revision_id requiredinteger
sitestring
restore_site_backup/mcpRestore a full-site backup by its backup_id (from full_site_backup).

Restore a full-site backup by its backup_id (from full_site_backup). This overwrites theme/plugin/mu-plugin files and restores the active theme/plugins. Set restore_db=True to ALSO import the database.sql from a migration-grade backup - this OVERWRITES the site's entire database (all posts, users, options). VERY RISKY - only for migration/disaster recovery. WARN the user and confirm first. Requires wptaskify Studio.

ParameterTypeDefault
backup_id requiredstring
restore_dbbooleanFalse
sitestring
rollback_theme/mcpInstantly switch back to the theme that was active BEFORE the last activate_theme.

Instantly switch back to the theme that was active BEFORE the last activate_theme. Use if a newly activated theme looks broken or wrong on the live site. Requires wptaskify Studio.

ParameterTypeDefault
sitestring
server_backups/mcpList the backups taken of one file, newest first.

List the backups taken of one file, newest first.

ParameterTypeDefault
path requiredstring
sitestring
server_diagnose/mcpWhen a site is down and you do not know why - run this FIRST.

When a site is down and you do not know why - run this FIRST.

ParameterTypeDefault
sitestring
server_disable_all_plugins/mcpDisable EVERY plugin at once, by renaming the plugins folder.

Disable EVERY plugin at once, by renaming the plugins folder.

ParameterTypeDefault
sitestring
server_error_log/mcpRead the PHP error log - the real reason a site is broken.

Read the PHP error log - the real reason a site is broken.

ParameterTypeDefault
linesinteger120
sitestring
server_fix_permissions/mcpReset file and folder permissions to what WordPress expects: 644 and 755.

Reset file and folder permissions to what WordPress expects: 644 and 755.

ParameterTypeDefault
pathstring
sitestring
server_restore_all_plugins/mcpUndo server_disable_all_plugins.

Undo server_disable_all_plugins.

ParameterTypeDefault
sitestring
server_set_debug/mcpTurn WordPress debug logging on or off in wp-config.php.

Turn WordPress debug logging on or off in wp-config.php.

ParameterTypeDefault
onbooleanTrue
sitestring
server_status/mcpIs server (SFTP/cPanel) access connected for this site, and what can it reach?

Is server (SFTP/cPanel) access connected for this site, and what can it reach?

ParameterTypeDefault
sitestring
server_undo/mcpPut a file back to how it was before the last write.

Put a file back to how it was before the last write.

ParameterTypeDefault
path requiredstring
sitestring
backupstring

WooCommerce Store

42
add_order_note/mcp/storeAdd a note to an order. customer_note=True emails it to the customer; False = private (staff-only) note.

Add a note to an order. customer_note=True emails it to the customer; False = private (staff-only) note.

ParameterTypeDefault
order_id requiredinteger
note requiredstring
customer_notebooleanFalse
sitestring
bulk_generate_product_descriptions/mcp/storeGenerate descriptions for many products at once. only_missing=True (default) targets products with an EMPTY description. apply=False previews the list that…

Generate descriptions for many products at once. only_missing=True (default) targets products with an EMPTY description. apply=False previews the list that would change; apply=True writes them. Great for filling out an imported catalog. To protect quality, apply runs in batches of at most 25 per call - use `offset` to continue (offset=25, then 50...) and review between batches.

ParameterTypeDefault
limitinteger20
only_missingbooleanTrue
applybooleanFalse
offsetinteger0
sitestring
bulk_generate_product_images/mcp/storeGenerate professional AI product images for MANY WooCommerce products at once.

Generate professional AI product images for MANY WooCommerce products at once. Each image is built from that product's own name + category + description (a rich, specific prompt), so the catalog looks like a real photo set - NOT generic. Quality is identical to the single generate_product_image (same AI provider, same prompt quality - no shortcuts for being bulk).

ParameterTypeDefault
limitinteger10
only_missingbooleanTrue
applybooleanFalse
offsetinteger0
sitestring
bulk_generate_product_seo/mcp/storeGenerate SEO meta titles + descriptions for WooCommerce products (products are posts, so this uses the SEO backend). apply=False previews which products would…

Generate SEO meta titles + descriptions for WooCommerce products (products are posts, so this uses the SEO backend). apply=False previews which products would change; apply=True writes meta via the SEO plugin. To protect quality, apply runs in batches of at most 25 per call - use `offset` to continue (offset=25, then 50...) and review between batches.

ParameterTypeDefault
limitinteger30
applybooleanFalse
offsetinteger0
sitestring
bulk_product_alt_text/mcp/storeWrite SEO alt text for WooCommerce PRODUCT images - YOU (the connected AI) look at the images and write the alt text, so it's specific and high quality (not…

Write SEO alt text for WooCommerce PRODUCT images - YOU (the connected AI) look at the images and write the alt text, so it's specific and high quality (not generic).

ParameterTypeDefault
limitinteger30
only_missingbooleanTrue
altsstring
offsetinteger0
sitestring
create_coupon/mcp/storeCreate a WooCommerce coupon. discount_type = percent / fixed_cart / fixed_product. `amount` is '10' (=10% or a fixed amount).

Create a WooCommerce coupon. discount_type = percent / fixed_cart / fixed_product. `amount` is '10' (=10% or a fixed amount). Optional expiry (YYYY-MM-DD), usage_limit, min_amount (minimum cart total), and free_shipping.

ParameterTypeDefault
code requiredstring
discount_typestringpercent
amountstring
expirystring
usage_limitinteger0
min_amountstring
free_shippingbooleanFalse
sitestring
create_product/mcp/storeCreate a WooCommerce product on the connected store and return its id.

Create a WooCommerce product on the connected store and return its id. Status defaults to 'draft' so it's safe. Covers every common WooCommerce product option: * basics: name, regular_price/sale_price ('19.99'), description, short_description, sku, product_type (simple|grouped|external|variable), status, featured * inventory: stock_quantity (>=0 turns on manage_stock), stock_status (instock|outofstock|onbackorder) * taxonomy/media: category_ids + tags (comma names or ids), image_urls (comma, public URLs) * shipping: weight, length/width/height, shipping_class * tax: tax_status (taxable|shipping|none), tax_class * type flags: virtual (no shipping), downloadable ("true" or a JSON list of {"nam

ParameterTypeDefault
name requiredstring
regular_pricestring
descriptionstring
short_descriptionstring
skustring
product_typestringsimple
stock_quantityinteger-1
category_idsstring
image_urlsstring
statusstringdraft
sale_pricestring
stock_statusstring
tagsstring
weightstring
lengthstring
widthstring
heightstring
virtualbooleanFalse
downloadablestring
shipping_classstring
tax_statusstring
tax_classstring
cross_sell_idsstring
upsell_idsstring
purchase_notestring
menu_orderinteger-1
reviews_allowedbooleanTrue
featuredbooleanFalse
attributesstring
meta_datastring
sitestring
create_product_category/mcp/storeCreate a WooCommerce product category.

Create a WooCommerce product category. Returns its id.

ParameterTypeDefault
name requiredstring
parent_idinteger0
descriptionstring
sitestring
create_product_variation/mcp/storeAdd ONE variation to a VARIABLE WooCommerce product.

Add ONE variation to a VARIABLE WooCommerce product. First create the parent with product_type='variable' and attributes that have variation=true, then call this once per variation (e.g. Red/S, Red/M, Blue/S...). * attributes = JSON mapping the varying attributes to THIS variation's values, e.g. {"Color":"Red","Size":"S"} (names must match the parent's variation attributes). * regular_price/sale_price ('19.99'), sku, stock_quantity (>=0 = managed), stock_status * weight, image_url (one public URL), description, virtual, downloadable, meta_data (JSON).

ParameterTypeDefault
product_id requiredinteger
attributes requiredstring
regular_pricestring
sale_pricestring
skustring
stock_quantityinteger-1
stock_statusstring
weightstring
image_urlstring
descriptionstring
virtualbooleanFalse
downloadablestring
meta_datastring
sitestring
delete_coupon/mcp/storeDelete a WooCommerce coupon permanently.

Delete a WooCommerce coupon permanently.

ParameterTypeDefault
coupon_id requiredinteger
sitestring
delete_product/mcp/storeDelete a WooCommerce product.

Delete a WooCommerce product. Default = move to Trash. permanent=True deletes forever.

ParameterTypeDefault
product_id requiredinteger
permanentbooleanFalse
sitestring
delete_product_category/mcp/storeDelete a WooCommerce product category (products keep existing, lose this category).

Delete a WooCommerce product category (products keep existing, lose this category).

ParameterTypeDefault
category_id requiredinteger
sitestring
generate_product_description/mcp/storeGenerate a compelling product description + short description with AI, from the product's name, attributes and any existing detail. `tone` guides the style…

Generate a compelling product description + short description with AI, from the product's name, attributes and any existing detail. `tone` guides the style (persuasive/technical/ friendly). `keywords` are SEO terms to work in naturally. apply=False PREVIEWS the copy; apply=True saves it. For product SEO meta (title/description), call update_post_seo with this product id afterwards - a product IS a post, so no post_type argument is needed.

ParameterTypeDefault
product_id requiredinteger
tonestringpersuasive
keywordsstring
applybooleanFalse
sitestring
generate_product_image/mcp/storeGenerate a product image with AI and attach it to a WooCommerce product.

Generate a product image with AI and attach it to a WooCommerce product. If `prompt` is empty, a rich one is built from the product name, category and description (better quality). set_as_featured=True makes it the main image.

ParameterTypeDefault
product_id requiredinteger
promptstring
set_as_featuredbooleanTrue
sitestring
get_order/mcp/storeGet a WooCommerce order's full detail: line items, customer, billing/shipping, totals, payment method and status.

Get a WooCommerce order's full detail: line items, customer, billing/shipping, totals, payment method and status.

ParameterTypeDefault
order_id requiredinteger
sitestring
get_product/mcp/storeGet a WooCommerce product's full detail: description, short description, price, stock, SKU, categories, attributes and images.

Get a WooCommerce product's full detail: description, short description, price, stock, SKU, categories, attributes and images.

ParameterTypeDefault
product_id requiredinteger
sitestring
insert_product_card/mcp/storeBuild a polished Amazon product-review CARD and insert it into a post - the main monetization tool.

Build a polished Amazon product-review CARD and insert it into a post - the main monetization tool. It fetches the product (by ASIN, or the first match for `keywords`), uploads up to `real_images` real Amazon image(s), optionally generates 1 extra polished image with Gemini, and inserts a card (image(s) + title + price + features + 'View on Amazon' affiliate button + disclosure) after `after_text` (or before the schema block). Preserves the post's JSON-LD. Needs Creators API credentials for real data/images; without them it still builds a card with a Gemini image + a tagged search link.

ParameterTypeDefault
post_id requiredinteger
asinstring
keywordsstring
after_textstring
gemini_imagebooleanTrue
real_imagesinteger1
disclosurebooleanTrue
regionstring
tagstring
sitestring
list_coupons/mcp/storeList WooCommerce discount coupons (code, type, amount, usage, expiry).

List WooCommerce discount coupons (code, type, amount, usage, expiry).

ParameterTypeDefault
sitestring
list_orders/mcp/storeList WooCommerce orders (id, status, total, customer, date, items).

List WooCommerce orders (id, status, total, customer, date, items). Filter by `status` (pending/processing/completed/cancelled/refunded/any), `customer` (a customer id), or `after` (YYYY-MM-DD, orders created after this date).

ParameterTypeDefault
statusstringany
per_pageinteger15
pageinteger1
customerinteger0
afterstring
sitestring
list_product_categories/mcp/storeList WooCommerce product categories (id, name, slug, count, parent).

List WooCommerce product categories (id, name, slug, count, parent).

ParameterTypeDefault
sitestring
list_product_variations/mcp/storeList all variations of a variable WooCommerce product (id, sku, price, stock, and the attribute values each variation stands for).

List all variations of a variable WooCommerce product (id, sku, price, stock, and the attribute values each variation stands for). Read-only.

ParameterTypeDefault
product_id requiredinteger
per_pageinteger30
sitestring
list_products/mcp/storeList WooCommerce products (id, name, sku, price, stock, status).

List WooCommerce products (id, name, sku, price, stock, status). Filter by `search`, `status` (publish/draft/any) or `category` (a category id). Use before editing.

ParameterTypeDefault
searchstring
statusstringany
per_pageinteger15
pageinteger1
categorystring
sitestring
set_product_sale/mcp/storePut a product on sale. sale_price is a string ('14.99').

Put a product on sale. sale_price is a string ('14.99'). Optional date_from/date_to (YYYY-MM-DD) schedule the sale window. Pass sale_price='' via update_product to end a sale.

ParameterTypeDefault
product_id requiredinteger
sale_price requiredstring
date_fromstring
date_tostring
sitestring
store_report/mcp/storeQuick store performance summary: total sales, order count and top sellers for a period (week / month / year).

Quick store performance summary: total sales, order count and top sellers for a period (week / month / year). A fast 'how is my store doing' snapshot.

ParameterTypeDefault
periodstringweek
sitestring
update_coupon/mcp/storeEdit a WooCommerce coupon: change its code, discount_type (percent/fixed_cart/ fixed_product), amount, expiry (YYYY-MM-DD), usage_limit, min_amount, or…

Edit a WooCommerce coupon: change its code, discount_type (percent/fixed_cart/ fixed_product), amount, expiry (YYYY-MM-DD), usage_limit, min_amount, or free_shipping ('yes'/'no'). Only provided fields change.

ParameterTypeDefault
coupon_id requiredinteger
codestring
discount_typestring
amountstring
expirystring
usage_limitinteger-1
min_amountstring
free_shippingstring
sitestring
update_order_status/mcp/storeChange a WooCommerce order's status: pending, processing, on-hold, completed, cancelled, refunded, or failed.

Change a WooCommerce order's status: pending, processing, on-hold, completed, cancelled, refunded, or failed. Optional `note` is added to the order as a private note.

ParameterTypeDefault
order_id requiredinteger
status requiredstring
notestring
sitestring
update_product/mcp/storeEdit a WooCommerce product.

Edit a WooCommerce product. Only non-empty fields change (nothing you leave blank is touched). Prices are strings ('19.99'). Pass status='publish' to make a draft live. Same rich fields as create_product: * category_ids / tags (comma ids or names), stock_status (instock|outofstock|onbackorder) * weight, length/width/height, shipping_class, tax_status, tax_class * virtual / featured / reviews_allowed = "true" or "false" (blank = leave unchanged) * downloadable = "true" or a JSON list of {"name","file"} * cross_sell_ids / upsell_ids (comma ids), purchase_note, menu_order * attributes = JSON list (see create_product), meta_data = JSON object/list to write ANY custom field / ACF / plugin meta. T

ParameterTypeDefault
product_id requiredinteger
namestring
regular_pricestring
sale_pricestring
descriptionstring
short_descriptionstring
skustring
statusstring
category_idsstring
stock_statusstring
tagsstring
weightstring
lengthstring
widthstring
heightstring
virtualstring
downloadablestring
shipping_classstring
tax_statusstring
tax_classstring
cross_sell_idsstring
upsell_idsstring
purchase_notestring
menu_orderinteger-1
reviews_allowedstring
featuredstring
attributesstring
meta_datastring
sitestring
update_product_category/mcp/storeEdit a WooCommerce product category: rename, re-describe, re-parent or re-slug.

Edit a WooCommerce product category: rename, re-describe, re-parent or re-slug. Only non-empty fields change. parent_id=-1 leaves the parent unchanged.

ParameterTypeDefault
category_id requiredinteger
namestring
descriptionstring
parent_idinteger-1
slugstring
sitestring
update_product_stock/mcp/storeQuick inventory edit for a product. stock_quantity sets a managed count; stock_status = instock / outofstock / onbackorder (for products without a count).

Quick inventory edit for a product. stock_quantity sets a managed count; stock_status = instock / outofstock / onbackorder (for products without a count).

ParameterTypeDefault
product_id requiredinteger
stock_quantityinteger-1
stock_statusstring
sitestring
wc_create_product_tag/mcp/storeCreate a WooCommerce product tag.

Create a WooCommerce product tag. Returns its id.

ParameterTypeDefault
name requiredstring
sitestring
wc_create_variation/mcp/storeCreate a variation of a variable product. attributes_json maps each attribute to a value, e.g.…

Create a variation of a variable product. attributes_json maps each attribute to a value, e.g. '[{"name":"Size","option":"M"},{"name":"Color","option":"Red"}]'. regular_price is a string. Set the product's attributes first with wc_set_product_attributes.

ParameterTypeDefault
product_id requiredinteger
attributes_json requiredstring
regular_pricestring
skustring
stock_quantityinteger-1
sitestring
wc_get_customer/mcp/storeGet a WooCommerce customer's detail incl. billing/shipping.

Get a WooCommerce customer's detail incl. billing/shipping.

ParameterTypeDefault
customer_id requiredinteger
sitestring
wc_list_customers/mcp/storeList WooCommerce customers (id, name, email, orders, total spent). `search` matches name/email.

List WooCommerce customers (id, name, email, orders, total spent). `search` matches name/email.

ParameterTypeDefault
searchstring
per_pageinteger20
pageinteger1
sitestring
wc_list_product_reviews/mcp/storeList WooCommerce product reviews (reviewer, rating, status, text).

List WooCommerce product reviews (reviewer, rating, status, text). Optionally filter to one product_id.

ParameterTypeDefault
product_idinteger0
sitestring
wc_list_product_tags/mcp/storeList WooCommerce product tags (id, name, count).

List WooCommerce product tags (id, name, count).

ParameterTypeDefault
sitestring
wc_list_variations/mcp/storeList a variable product's variations (id, attributes, price, stock).

List a variable product's variations (id, attributes, price, stock).

ParameterTypeDefault
product_id requiredinteger
sitestring
wc_moderate_review/mcp/storeModerate a product review. status = approved / hold / spam / trash.

Moderate a product review. status = approved / hold / spam / trash.

ParameterTypeDefault
review_id requiredinteger
status requiredstring
sitestring
wc_refund_order/mcp/storeIssue a refund on a WooCommerce order.

Issue a refund on a WooCommerce order. If `amount` is empty, refunds the full order total. `reason` is an optional note. This moves real money - use carefully.

ParameterTypeDefault
order_id requiredinteger
amountstring
reasonstring
sitestring
wc_set_product_attributes/mcp/storeSet a product's attributes (needed for variable products). attributes_json is a JSON array like…

Set a product's attributes (needed for variable products). attributes_json is a JSON array like '[{"name":"Size","options":["S","M","L"],"variation":true,"visible":true}]'. After this, create variations with wc_create_variation.

ParameterTypeDefault
product_id requiredinteger
attributes_json requiredstring
sitestring
wc_status/mcp/storeCheck whether WooCommerce is active on this site and get a quick store snapshot (currency, product count, order count).

Check whether WooCommerce is active on this site and get a quick store snapshot (currency, product count, order count). Use this FIRST before other wc_/product/order tools. Read-only.

ParameterTypeDefault
sitestring
wc_update_customer/mcp/storeEdit a WooCommerce customer's email or name.

Edit a WooCommerce customer's email or name. Only non-empty fields change.

ParameterTypeDefault
customer_id requiredinteger
emailstring
first_namestring
last_namestring
sitestring
wc_update_order/mcp/storeEdit a WooCommerce order beyond status: customer_note, or billing/shipping address (JSON objects like '{"first_name":"Jo","address_1":"1 St","city":"NYC"}').

Edit a WooCommerce order beyond status: customer_note, or billing/shipping address (JSON objects like '{"first_name":"Jo","address_1":"1 St","city":"NYC"}'). Only provided fields change.

ParameterTypeDefault
order_id requiredinteger
customer_notestring
billing_jsonstring
shipping_jsonstring
sitestring

Shopify Store

69
shopify_add_product_image/mcp/storeAdd an image to a product from a public URL.

Add an image to a product from a public URL.

ParameterTypeDefault
product_id requiredinteger
image_url requiredstring
altstring
sitestring
shopify_add_to_collection/mcp/storeAdd a product to a manual collection.

Add a product to a manual collection.

ParameterTypeDefault
collection_id requiredinteger
product_id requiredinteger
sitestring
shopify_add_variant/mcp/storeAdd a variant to a product (e.g. a new size/colour). option1 is the variant option value (e.g. 'Large'). price is a string.

Add a variant to a product (e.g. a new size/colour). option1 is the variant option value (e.g. 'Large'). price is a string.

ParameterTypeDefault
product_id requiredinteger
price requiredstring
option1string
skustring
inventory_quantityinteger-1
sitestring
shopify_aeo_analyzer/mcp/storePer-PRODUCT answer-engine readiness analyzer (the Shopify version of the plugin's AEO Analyzer).

Per-PRODUCT answer-engine readiness analyzer (the Shopify version of the plugin's AEO Analyzer). For each product, checks 5 signals AI answer engines (ChatGPT, Perplexity, Google AI) look for: a direct/quotable answer, an FAQ block, citation-ready facts+sources, a clear entity definition, and freshness. Returns a per-product grid + a summary of how many miss each signal. Pure code, zero AI cost.

ParameterTypeDefault
limitinteger50
sitestring
shopify_ai_bot_control/mcp/storeControl which AI crawlers can read your store (like the WordPress AI Access Control).

Control which AI crawlers can read your store (like the WordPress AI Access Control). Writes a managed block into the theme's robots.txt.liquid that Disallows each bot you choose to BLOCK - without touching Shopify's own default rules. `block` = comma-separated bot names to block (e.g. 'GPTBot,CCBot'); anything not listed is ALLOWED. get_only=True just returns the current state.

ParameterTypeDefault
blockstring
get_onlybooleanFalse
sitestring
shopify_ai_readiness/mcp/storeAI-Readiness / AEO score - grades whether your store is VISIBLE to AI shopping engines (ChatGPT, Perplexity, Google AI Overviews, Gemini).

AI-Readiness / AEO score - grades whether your store is VISIBLE to AI shopping engines (ChatGPT, Perplexity, Google AI Overviews, Gemini). This is the biggest 2026 gap and almost no free app scores it. All pure code (fetches robots.txt + your homepage + a product page, parses JSON-LD) - ZERO AI cost. Checks: (1) AI crawlers (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Google-Extended...) are NOT blocked in robots.txt - a store that followed old 'block the scrapers' advice is invisible to AI; (2) schema depth (Product, Offer, aggregateRating, Organization, BreadcrumbList, FAQPage) - AI answer engines cite structured data; (3) reviews/ social-proof signal present. Returns a 0-100 AI-readi

ParameterTypeDefault
sitestring
shopify_ai_seo_score/mcp/storeThe Shopify AI SEO Score - a store-wide SEO scorecard across 4 categories (each 0-100) plus an overall, MEASURED from your real product data (no external APIs).

The Shopify AI SEO Score - a store-wide SEO scorecard across 4 categories (each 0-100) plus an overall, MEASURED from your real product data (no external APIs). Checks the things that actually move Shopify SEO + AI visibility: meta titles/descriptions, product description depth, image alt text, and AEO/GEO readiness (structured, answer-friendly content). Returns concrete issue COUNTS (missing meta, thin descriptions, images without alt) so the AI can offer 'fix this' actions. The Shopify equivalent of the WordPress ai_seo_score.

ParameterTypeDefault
limitinteger50
sitestring
shopify_audit_collections/mcp/storeAudit EVERY collection for the SEO basics: page title, meta description and intro copy.

Audit EVERY collection for the SEO basics: page title, meta description and intro copy.

ParameterTypeDefault
sitestring
shopify_bulk_generate_descriptions/mcp/storeGenerate AI descriptions for many Shopify products at once. only_missing=True targets products with an empty body_html. apply=False previews; apply=True writes…

Generate AI descriptions for many Shopify products at once. only_missing=True targets products with an empty body_html. apply=False previews; apply=True writes them. Great for a freshly-imported catalog. To protect quality, apply is processed in batches of at most 25 per call - use `offset` to continue (offset=25, then 50...) and review between batches.

ParameterTypeDefault
limitinteger20
only_missingbooleanTrue
applybooleanFalse
offsetinteger0
sitestring
shopify_bulk_generate_product_images/mcp/storeGenerate professional AI product images for MANY Shopify products at once.

Generate professional AI product images for MANY Shopify products at once. Each image is built from that product's own title + type + description (a rich, specific prompt), so the catalog looks like a real photo set, NOT generic. Same AI quality as the single shopify_generate_product_image - no shortcuts for being bulk.

ParameterTypeDefault
limitinteger10
only_missingbooleanTrue
applybooleanFalse
offsetinteger0
sitestring
shopify_bulk_product_alt_text/mcp/storeWrite SEO alt text for Shopify PRODUCT images - YOU (the connected AI) look at the images and write the alt text, so it's specific and high quality (not…

Write SEO alt text for Shopify PRODUCT images - YOU (the connected AI) look at the images and write the alt text, so it's specific and high quality (not generic).

ParameterTypeDefault
limitinteger30
only_missingbooleanTrue
altsstring
offsetinteger0
sitestring
shopify_bulk_product_seo/mcp/storeGenerate SEO meta titles + descriptions for many Shopify products at once (stored as Shopify global SEO metafields). apply=False previews; apply=True writes…

Generate SEO meta titles + descriptions for many Shopify products at once (stored as Shopify global SEO metafields). apply=False previews; apply=True writes them. To protect quality, apply runs in batches of at most 25 per call - use `offset` to continue (offset=25, then 50...) and review between batches.

ParameterTypeDefault
limitinteger20
applybooleanFalse
offsetinteger0
sitestring
shopify_create_article/mcp/storePublish a blog article to a Shopify blog (get blog_id from shopify_list_blogs). body_html is the article HTML. published=False saves it as a draft (safe). tags…

Publish a blog article to a Shopify blog (get blog_id from shopify_list_blogs). body_html is the article HTML. published=False saves it as a draft (safe). tags comma-separated.

ParameterTypeDefault
blog_id requiredinteger
title requiredstring
body_html requiredstring
authorstring
tagsstring
publishedbooleanFalse
sitestring
shopify_create_collection/mcp/storeCreate a manual (custom) collection.

Create a manual (custom) collection. Add products with shopify_add_to_collection.

ParameterTypeDefault
title requiredstring
body_htmlstring
sitestring
shopify_create_discount/mcp/storeCreate a Shopify discount code. value_type = percentage or fixed_amount. `value` is the amount (e.g. '10' for 10% or a fixed amount; stored negative…

Create a Shopify discount code. value_type = percentage or fixed_amount. `value` is the amount (e.g. '10' for 10% or a fixed amount; stored negative automatically). Optional starts_at/ends_at (YYYY-MM-DD) and usage_limit.

ParameterTypeDefault
code requiredstring
value requiredstring
value_typestringpercentage
starts_atstring
ends_atstring
usage_limitinteger0
sitestring
shopify_create_page/mcp/storeCreate a static page (e.g.

Create a static page (e.g. About, Shipping Policy). published=False saves a draft.

ParameterTypeDefault
title requiredstring
body_html requiredstring
publishedbooleanFalse
sitestring
shopify_create_product/mcp/storeCreate a Shopify product. `price` is a string ('19.99'). `tags` comma-separated. image_urls comma-separated public URLs. status defaults to draft (safe).

Create a Shopify product. `price` is a string ('19.99'). `tags` comma-separated. image_urls comma-separated public URLs. status defaults to draft (safe). Creates a single default variant with the given price/sku/inventory.

ParameterTypeDefault
title requiredstring
body_htmlstring
pricestring
skustring
vendorstring
product_typestring
tagsstring
inventory_quantityinteger-1
statusstringdraft
image_urlsstring
sitestring
shopify_create_redirect/mcp/storeCreate a URL redirect (e.g. from '/old-product' to '/products/new').

Create a URL redirect (e.g. from '/old-product' to '/products/new'). Great after deleting or renaming products/pages so old links don't 404.

ParameterTypeDefault
from_path requiredstring
to_path requiredstring
sitestring
shopify_create_webhook/mcp/storeCreate a webhook (e.g. topic='orders/create', address='https://your-endpoint').

Create a webhook (e.g. topic='orders/create', address='https://your-endpoint'). Lets you react to store events.

ParameterTypeDefault
topic requiredstring
address requiredstring
sitestring
shopify_declare_metafields/mcp/storeDeclare wptaskify's product metafield DEFINITIONS on the store (one-time setup).

Declare wptaskify's product metafield DEFINITIONS on the store (one-time setup). This makes the AEO fields (quick answer, key takeaways, USP, best-for, trust points, FAQ, specs) show up as proper, editable fields in the Shopify product admin under the 'wptaskify' namespace - so a merchant can see and edit them by hand too, not only via the AI. Safe to run more than once: definitions that already exist are skipped. Run this once per store (or after adding a new field). Uses the Shopify GraphQL Admin API (metafieldDefinitionCreate).

ParameterTypeDefault
sitestring
shopify_delete_article/mcp/storeDelete a blog article.

Delete a blog article.

ParameterTypeDefault
blog_id requiredinteger
article_id requiredinteger
sitestring
shopify_delete_collection/mcp/storeDelete a manual (custom) collection (products are not deleted).

Delete a manual (custom) collection (products are not deleted).

ParameterTypeDefault
collection_id requiredinteger
sitestring
shopify_delete_discount/mcp/storeDelete a Shopify discount (price rule) and its codes.

Delete a Shopify discount (price rule) and its codes.

ParameterTypeDefault
price_rule_id requiredinteger
sitestring
shopify_delete_page/mcp/storeDelete a static page.

Delete a static page.

ParameterTypeDefault
page_id requiredinteger
sitestring
shopify_delete_product/mcp/storeDelete a Shopify product permanently.

Delete a Shopify product permanently.

ParameterTypeDefault
product_id requiredinteger
sitestring
shopify_delete_product_image/mcp/storeDelete an image from a product.

Delete an image from a product.

ParameterTypeDefault
product_id requiredinteger
image_id requiredinteger
sitestring
shopify_delete_variant/mcp/storeDelete a variant from a product (a product must keep at least one variant).

Delete a variant from a product (a product must keep at least one variant).

ParameterTypeDefault
product_id requiredinteger
variant_id requiredinteger
sitestring
shopify_delete_webhook/mcp/storeDelete a webhook.

Delete a webhook.

ParameterTypeDefault
webhook_id requiredinteger
sitestring
shopify_duplicate_theme/mcp/storeMake an UNPUBLISHED copy of a theme so you can edit its design safely without touching the live storefront.

Make an UNPUBLISHED copy of a theme so you can edit its design safely without touching the live storefront. Pass from_theme_id (or leave 0 to copy the live 'main' theme). `name` is the new theme's name (defaults to '<original> (wptaskify edit)'). Returns the new theme_id - edit THAT with shopify_write_theme_file, preview it in Shopify, then publish when happy.

ParameterTypeDefault
namestring
from_theme_idinteger0
sitestring
shopify_find_thin_content/mcp/storeFind Shopify products with thin descriptions (fewer than min_words) - these hurt SEO and AI visibility.

Find Shopify products with thin descriptions (fewer than min_words) - these hurt SEO and AI visibility. Returns the products so the AI can beef them up (shopify_generate_product_ description / shopify_geo_optimize). Mirrors find_thin_content for Shopify.

ParameterTypeDefault
min_wordsinteger50
limitinteger100
sitestring
shopify_full_audit/mcp/storeA whole-store SEO audit - the all-in-one report other apps charge $34-99/mo for, here FREE.

A whole-store SEO audit - the all-in-one report other apps charge $34-99/mo for, here FREE. Aggregates every issue in one place: missing meta descriptions, duplicate titles, duplicate meta descriptions, thin descriptions, images without alt text, and products missing structured-data-worthy content. Pure code (reads the Admin API), zero AI cost. Returns itemized issues so the merchant knows exactly what to fix.

ParameterTypeDefault
limitinteger100
sitestring
shopify_generate_product_description/mcp/storeGenerate a compelling product description with AI from the product's title, vendor and type. `tone` guides style; `keywords` are SEO terms to work in.…

Generate a compelling product description with AI from the product's title, vendor and type. `tone` guides style; `keywords` are SEO terms to work in. apply=False PREVIEWS; apply=True saves it as the product's body_html.

ParameterTypeDefault
product_id requiredinteger
tonestringpersuasive
keywordsstring
applybooleanFalse
sitestring
shopify_generate_product_image/mcp/storeGenerate a product image with AI and add it to a Shopify product.

Generate a product image with AI and add it to a Shopify product. If `prompt` is empty, a rich one is built from the product title, type and description (better quality). The image is uploaded to the product's gallery.

ParameterTypeDefault
product_id requiredinteger
promptstring
sitestring
shopify_generate_schema/mcp/storeGenerate valid JSON-LD structured data for a product WITHOUT AI - built directly from the product's real data.

Generate valid JSON-LD structured data for a product WITHOUT AI - built directly from the product's real data. Other apps charge to add schema; here it's FREE. schema_type: 'product' (Product+Offer), 'breadcrumb', or 'faq'. Returns ready-to-paste JSON-LD the merchant can add to the theme (helps Google rich results AND AI answer engines). Pure code - zero AI cost.

ParameterTypeDefault
product_id requiredinteger
schema_typestringproduct
sitestring
shopify_geo_optimize/mcp/storeOptimize a Shopify product for AI answer engines (AEO/GEO) - so ChatGPT/Perplexity/Google AI are more likely to cite it.

Optimize a Shopify product for AI answer engines (AEO/GEO) - so ChatGPT/Perplexity/Google AI are more likely to cite it. Uses AI to rewrite the description with a clear answer-first summary, key specs as a list, and factual details. apply=False previews the new description; apply=True writes it. Mirrors geo_optimize_post for Shopify.

ParameterTypeDefault
product_id requiredinteger
applybooleanFalse
sitestring
shopify_get_collection_seo/mcp/storeRead a collection's SEO: its page title, meta description, handle and intro copy.

Read a collection's SEO: its page title, meta description, handle and intro copy.

ParameterTypeDefault
collection_id requiredinteger
sitestring
shopify_get_discount/mcp/storeGet a discount (price rule) detail plus its discount codes.

Get a discount (price rule) detail plus its discount codes.

ParameterTypeDefault
price_rule_id requiredinteger
sitestring
shopify_get_product/mcp/storeGet a Shopify product's full detail: description (body_html), variants (price, sku, inventory), images, tags, vendor and type.

Get a Shopify product's full detail: description (body_html), variants (price, sku, inventory), images, tags, vendor and type.

ParameterTypeDefault
product_id requiredinteger
sitestring
shopify_get_product_aeo/mcp/storeRead a product's current wptaskify AEO fields (quick_answer, key_takeaways, usp, best_for, trust_points, faq, specs) so you can review or pre-fill an editor…

Read a product's current wptaskify AEO fields (quick_answer, key_takeaways, usp, best_for, trust_points, faq, specs) so you can review or pre-fill an editor before updating them with shopify_update_product_aeo. Returns each field's stored value (empty if not set yet).

ParameterTypeDefault
product_id requiredinteger
sitestring
shopify_inject_schema/mcp/storeONE-CLICK: add store-wide Organization + WebSite JSON-LD structured data to the LIVE theme, so Google shows rich results and AI answer engines…

ONE-CLICK: add store-wide Organization + WebSite JSON-LD structured data to the LIVE theme, so Google shows rich results and AI answer engines (ChatGPT/Perplexity/Google AI) can identify the brand. Built from the store's real shop info (name, domain, logo) - zero AI cost. Other apps charge for this; here it's free.

ParameterTypeDefault
sitestring
shopify_list_articles/mcp/storeList articles in a Shopify blog (id, title, published).

List articles in a Shopify blog (id, title, published).

ParameterTypeDefault
blog_id requiredinteger
sitestring
shopify_list_blogs/mcp/storeList the Shopify store's blogs (id, title, handle).

List the Shopify store's blogs (id, title, handle). A store can have several blogs; you post articles into one of them.

ParameterTypeDefault
sitestring
shopify_list_collections/mcp/storeList the store's collections (manual/custom + smart/automated) with id, title, handle.

List the store's collections (manual/custom + smart/automated) with id, title, handle.

ParameterTypeDefault
sitestring
shopify_list_discounts/mcp/storeList the store's discount price rules (id, title, value type, value, dates).

List the store's discount price rules (id, title, value type, value, dates).

ParameterTypeDefault
sitestring
shopify_list_locations/mcp/storeList the store's inventory locations (id, name).

List the store's inventory locations (id, name). Needed to set stock per location.

ParameterTypeDefault
sitestring
shopify_list_metafields/mcp/storeList metafields on a product/collection/order/customer (owner_id required) or the whole shop (owner_type='shop', owner_id ignored).

List metafields on a product/collection/order/customer (owner_id required) or the whole shop (owner_type='shop', owner_id ignored).

ParameterTypeDefault
owner_type requiredstring
owner_idinteger0
sitestring
shopify_list_pages/mcp/storeList the store's static pages (About, Contact, etc.) with id, title, handle.

List the store's static pages (About, Contact, etc.) with id, title, handle.

ParameterTypeDefault
sitestring
shopify_list_products/mcp/storeList Shopify products (id, title, price, sku, inventory, status). `search` filters by title; `status` = active/draft/archived/any.

List Shopify products (id, title, price, sku, inventory, status). `search` filters by title; `status` = active/draft/archived/any.

ParameterTypeDefault
searchstring
statusstringany
limitinteger20
sitestring
shopify_list_redirects/mcp/storeList the store's URL redirects.

List the store's URL redirects.

ParameterTypeDefault
sitestring
shopify_list_theme_files/mcp/storeList the files in a Shopify theme (the Liquid sections, snippets, templates, assets and config that make up the store's design).

List the files in a Shopify theme (the Liquid sections, snippets, templates, assets and config that make up the store's design). Pass theme_id (from shopify_list_themes) or leave 0 to use the live 'main' theme. `prefix` filters by folder, e.g. 'sections/' or 'templates/'.

ParameterTypeDefault
theme_idinteger0
prefixstring
sitestring
shopify_list_themes/mcp/storeList the store's themes (id, name, role). role='main' is the live theme.

List the store's themes (id, name, role). role='main' is the live theme.

ParameterTypeDefault
sitestring
shopify_list_webhooks/mcp/storeList the store's webhooks (topic + delivery address).

List the store's webhooks (topic + delivery address).

ParameterTypeDefault
sitestring
shopify_optimize_images/mcp/storeONE-CLICK image optimization: find oversized product images and re-compress + resize them so pages load faster (a top Core Web Vitals / SEO factor) - the…

ONE-CLICK image optimization: find oversized product images and re-compress + resize them so pages load faster (a top Core Web Vitals / SEO factor) - the headline feature other apps charge for, here free. Downloads each large image, resizes to max `max_dim`px on the long side, re-encodes as an optimized JPEG at `quality`, and replaces it on the product (alt text + position preserved). Shopify then serves it as WebP via its CDN. scan_only=True just reports what WOULD be optimized (no changes). Processes up to `limit` images per call (batched - re-run for more). Real compute cost, so it's capped.

ParameterTypeDefault
limitinteger12
max_diminteger2048
qualityinteger82
scan_onlybooleanFalse
sitestring
shopify_read_theme_file/mcp/storeRead the contents of ONE Shopify theme file (e.g. 'sections/header.liquid', 'templates/product.json', 'config/settings_data.json').

Read the contents of ONE Shopify theme file (e.g. 'sections/header.liquid', 'templates/product.json', 'config/settings_data.json'). Pass theme_id or leave 0 for the live theme.

ParameterTypeDefault
key requiredstring
theme_idinteger0
sitestring
shopify_render_aeo/mcp/storeONE-CLICK: add an AEO renderer snippet to the live theme so the answer-engine content stored on products (quick_answer + FAQ, set via…

ONE-CLICK: add an AEO renderer snippet to the live theme so the answer-engine content stored on products (quick_answer + FAQ, set via shopify_update_product_aeo) actually SHOWS on the storefront as visible text + FAQPage / speakable JSON-LD. Deterministic (no AI) - the content itself is whatever the merchant/AI wrote into the metafields. Idempotent via BEGIN/END markers. Needs Shopify theme approval; returns a clear message if not granted.

ParameterTypeDefault
sitestring
shopify_seo_audit/mcp/storeDeep SEO audit of ONE Shopify product: checks meta title/description, description length, image alt text, focus-keyword usage, and answer-readiness - with a…

Deep SEO audit of ONE Shopify product: checks meta title/description, description length, image alt text, focus-keyword usage, and answer-readiness - with a pass/fail checklist and concrete fixes. The Shopify equivalent of seo_audit_post. Great before optimizing a product.

ParameterTypeDefault
product_id requiredinteger
focus_keywordstring
sitestring
shopify_set_llms_txt/mcp/storeONE-CLICK: publish an llms.txt for your store - a plain-text file that tells AI assistants what your store is and points them to your key pages (the emerging…

ONE-CLICK: publish an llms.txt for your store - a plain-text file that tells AI assistants what your store is and points them to your key pages (the emerging standard AI models read, like a robots.txt for LLMs). Built from your real shop info. Served at /apps or as a theme asset the merchant links; here we create it as a downloadable/paste-ready file and (if theme-approved) add a snippet. Zero AI cost.

ParameterTypeDefault
sitestring
shopify_set_metafield/mcp/storeSet a metafield (custom data field) on a product/customer/order/collection or the shop. owner_type = products / customers / orders / collections / shop.…

Set a metafield (custom data field) on a product/customer/order/collection or the shop. owner_type = products / customers / orders / collections / shop. value_type is a Shopify metafield type (single_line_text_field, number_integer, json, etc.).

ParameterTypeDefault
owner_type requiredstring
owner_id requiredinteger
namespace requiredstring
key requiredstring
value requiredstring
value_typestringsingle_line_text_field
sitestring
shopify_status/mcp/storeCheck whether the current connected store is a Shopify store and show a quick snapshot (shop name, domain, currency, plan).

Check whether the current connected store is a Shopify store and show a quick snapshot (shop name, domain, currency, plan). Use this FIRST before other shopify_/product tools on a Shopify store.

ParameterTypeDefault
sitestring
shopify_technical_defects/mcp/storeScan the live storefront HTML for Shopify-NATIVE technical SEO defects that Admin-API-only apps can't see - checks other apps charge for, here FREE.

Scan the live storefront HTML for Shopify-NATIVE technical SEO defects that Admin-API-only apps can't see - checks other apps charge for, here FREE. All pure code, zero AI cost. Detects: (1) broken/wrong <link rel=canonical> on collection-scoped product URLs (/collections/x/products/y should canonical to the clean /products/y - a wrong one = theme bug); (2) variant URL (?variant=) canonical still self-referential; (3) duplicate or MISSING <h1> (Dawn and many themes emit 2 or 0); (4) a custom robots.txt.liquid that STRIPPED Shopify's default protective Disallow rules (opens faceted/filter URLs to mass duplicate content); (5) missing homepage title/meta. Fetches a small sample of real pages (s

ParameterTypeDefault
sampleinteger4
sitestring
shopify_update_article/mcp/storeEdit a blog article. published = 'yes'/'no'.

Edit a blog article. published = 'yes'/'no'. Only non-empty fields change.

ParameterTypeDefault
blog_id requiredinteger
article_id requiredinteger
titlestring
body_htmlstring
tagsstring
publishedstring
sitestring
shopify_update_collection_seo/mcp/storeSet a collection's SEO: page title, meta description, URL handle and intro copy.

Set a collection's SEO: page title, meta description, URL handle and intro copy.

ParameterTypeDefault
collection_id requiredinteger
meta_titlestring
meta_descriptionstring
body_htmlstring
handlestring
sitestring
shopify_update_discount/mcp/storeEdit a discount (price rule): change its `value` (e.g. '15'), ends_at (YYYY-MM-DD) or usage_limit.

Edit a discount (price rule): change its `value` (e.g. '15'), ends_at (YYYY-MM-DD) or usage_limit. Only provided fields change.

ParameterTypeDefault
price_rule_id requiredinteger
valuestring
ends_atstring
usage_limitinteger-1
sitestring
shopify_update_page/mcp/storeEdit a static page. published = 'yes'/'no' to publish/unpublish.

Edit a static page. published = 'yes'/'no' to publish/unpublish. Only non-empty fields change.

ParameterTypeDefault
page_id requiredinteger
titlestring
body_htmlstring
publishedstring
sitestring
shopify_update_product/mcp/storeEdit a Shopify product.

Edit a Shopify product. Only non-empty fields change. `price` updates the FIRST variant's price. status = active/draft/archived. tags comma-separated (replaces).

ParameterTypeDefault
product_id requiredinteger
titlestring
body_htmlstring
statusstring
vendorstring
product_typestring
tagsstring
pricestring
sitestring
shopify_update_product_aeo/mcp/storeSet a Shopify product's ANSWER-ENGINE (AEO/GEO) fields - the content that gets a product quoted and cited by ChatGPT, Perplexity, Google AI Overviews, Gemini &…

Set a Shopify product's ANSWER-ENGINE (AEO/GEO) fields - the content that gets a product quoted and cited by ChatGPT, Perplexity, Google AI Overviews, Gemini & Claude. Shopify has no native AEO, so wptaskify stores these as product metafields under the 'wptaskify' namespace, which the wptaskify app block (or your theme) renders as visible text + JSON-LD (FAQPage / speakable). Only non-empty fields change. Fields: - quick_answer: a standalone 25-50 word direct answer about the product (the #1 GEO lever). - key_takeaways: TL;DR bullets, ONE PER LINE. - faq_json: a JSON array of {"q": "...", "a": "..."} pairs for a product FAQ (drives FAQPage schema). Example: [{"q":"Is it waterproof?","a":"Yes

ParameterTypeDefault
product_id requiredinteger
quick_answerstring
key_takeawaysstring
faq_jsonstring
uspstring
best_forstring
specs_jsonstring
trust_pointsstring
sitestring
shopify_update_product_seo/mcp/storeSet a Shopify product's SEO fields: the search-engine title + description (stored as Shopify's global SEO metafields) and/or the URL handle.

Set a Shopify product's SEO fields: the search-engine title + description (stored as Shopify's global SEO metafields) and/or the URL handle. Only non-empty fields change. This is the product-page SEO control for Shopify stores.

ParameterTypeDefault
product_id requiredinteger
meta_titlestring
meta_descriptionstring
handlestring
sitestring
shopify_write_theme_file/mcp/storeCreate or overwrite ONE Shopify theme file (Liquid section/snippet/template/asset/config).

Create or overwrite ONE Shopify theme file (Liquid section/snippet/template/asset/config). Use this to change the store's DESIGN or add SEO markup (JSON-LD) to a section.

ParameterTypeDefault
key requiredstring
contents requiredstring
theme_idinteger0
sitestring
allow_livebooleanFalse

Elementor

16
elementor_add_widget/mcpInsert a new Elementor element (widget/column/section/container) under `parent_id`. `element` is an Elementor element dict, e.g.…

Insert a new Elementor element (widget/column/section/container) under `parent_id`. `element` is an Elementor element dict, e.g. {"elType":"widget","widgetType":"heading","settings":{"title":"Hello"}} or a section with nested elements. Fresh unique ids are auto-generated for it and any children (you can omit ids). position = index in the parent's children (-1 = append). To add at the TOP LEVEL of the page pass parent_id="" (or "root"). Get parent ids from elementor_get_page. Auto-backed-up.

ParameterTypeDefault
post_id requiredinteger
parent_id requiredstring
element requiredobject
positioninteger-1
sitestring
elementor_apply_template/mcpApply a SAVED library template (from elementor_list_templates) onto a page. `mode`='append' adds it after the existing content, 'replace' swaps the whole page.

Apply a SAVED library template (from elementor_list_templates) onto a page. `mode`='append' adds it after the existing content, 'replace' swaps the whole page. Everything is re-id'd and the page is auto-backed-up (undo with elementor_restore). Owner beta + paid.

ParameterTypeDefault
post_id requiredinteger
template_id requiredinteger
modestringappend
sitestring
elementor_delete_element/mcpDelete an Elementor element (widget/column/section) by its id.

Delete an Elementor element (widget/column/section) by its id. Its children go with it and the layout reflows. Get ids from elementor_get_page. Auto-backed-up; use elementor_restore to undo if you remove the wrong one.

ParameterTypeDefault
post_id requiredinteger
element_id requiredstring
sitestring
elementor_duplicate/mcpDuplicate an Elementor element (widget/column/section/container) by id - a deep copy with FRESH unique ids for the clone and all its children - inserted right…

Duplicate an Elementor element (widget/column/section/container) by id - a deep copy with FRESH unique ids for the clone and all its children - inserted right AFTER the original, in the same parent. Perfect for repeating a feature/pricing/testimonial card or a whole section. Get ids from elementor_get_page. Returns the new element's id so you can then edit it. Auto-backed-up (undo with elementor_restore).

ParameterTypeDefault
post_id requiredinteger
element_id requiredstring
sitestring
elementor_edit_text/mcpChange the TEXT of one Elementor widget by its id, preserving all styling and the rest of the page. `fields` maps the widget's text setting(s) to new values…

Change the TEXT of one Elementor widget by its id, preserving all styling and the rest of the page. `fields` maps the widget's text setting(s) to new values, e.g. {"title": "New heading"} for a Heading, {"editor": "<p>New copy</p>"} for a Text Editor, {"text": "Buy now"} for a Button. Get ids from elementor_get_page first. Auto-backed-up.

ParameterTypeDefault
post_id requiredinteger
widget_id requiredstring
fields requiredobject
sitestring
elementor_get_page/mcpRead an Elementor page's layout.

Read an Elementor page's layout. Returns is_elementor, a compact widget map (each widget's id, type, and editable text), the number of backups, AND the full _elementor_data tree. ALWAYS call this first before editing an Elementor page so you know the element ids. If is_elementor is false, the page is NOT built with Elementor — use the normal content tools (update_page / update_post) instead of these.

ParameterTypeDefault
post_id requiredinteger
sitestring
elementor_globals/mcpRead or set Elementor's SITE-WIDE global styles (the "Global Colors" + "Global Fonts" in Site Settings) - change the whole site's palette/typography in ONE…

Read or set Elementor's SITE-WIDE global styles (the "Global Colors" + "Global Fonts" in Site Settings) - change the whole site's palette/typography in ONE call instead of per widget. Call with no args to READ the active kit's globals. To WRITE, pass `colors` and/or `fonts` as the kit's arrays: colors = {"system_colors": [{"_id":"primary","title":"Primary","color":"#0f8a5f"}, ...], "custom_colors": [...]} fonts = {"system_typography": [{"_id":"primary","title":"Primary", "typography_typography":"custom","typography_font_family":"Poppins", "typography_font_weight":"600"}, ...]} Widgets that use a Global color/font update automatically. Site-wide change - needs an admin connection. Owner beta

ParameterTypeDefault
colorsobject
fontsobject
sitestring
elementor_import_template/mcpImport an Elementor TEMPLATE onto a page - exactly like Elementor's own "Import Template" (the JSON files people share/export from Elementor). `template` is…

Import an Elementor TEMPLATE onto a page - exactly like Elementor's own "Import Template" (the JSON files people share/export from Elementor). `template` is that export JSON as a string: it accepts BOTH shapes - a full export ({"content":[...], "page_settings":{...}, "type":"...", "version":"..."}) OR a raw _elementor_data element array. Fresh unique ids are generated for every imported element so they never clash with what's already on the page.

ParameterTypeDefault
post_id requiredinteger
template requiredstring
modestringreplace
sitestring
elementor_list_templates/mcpList the saved Elementor LIBRARY templates on this site (id, title, type) - the reusable designs you can apply to any page with elementor_apply_template.

List the saved Elementor LIBRARY templates on this site (id, title, type) - the reusable designs you can apply to any page with elementor_apply_template. Owner beta + paid.

ParameterTypeDefault
sitestring
elementor_move/mcpMove/reorder an existing Elementor element (widget/column/section/container) by id - Elementor's drag-and-drop equivalent.

Move/reorder an existing Elementor element (widget/column/section/container) by id - Elementor's drag-and-drop equivalent. Give the element's id, and either a NEW parent to move it into or the SAME parent to just reorder. `new_parent_id` empty or "root" = top level. `position` = 0-based index among the target parent's children (-1 = append to the end). Get ids from elementor_get_page. The element keeps all its styling and children. Auto-backed-up (undo with elementor_restore).

ParameterTypeDefault
post_id requiredinteger
element_id requiredstring
new_parent_idstring
positioninteger-1
sitestring
elementor_page_settings/mcpRead or set a page's Elementor PAGE settings (the gear icon in the editor): page layout, content width, hide title, and the page-level Custom CSS.

Read or set a page's Elementor PAGE settings (the gear icon in the editor): page layout, content width, hide title, and the page-level Custom CSS. Call with only post_id to READ the current settings; pass `settings` (an object) to MERGE-write them (only the keys you send change). Common keys: 'custom_css' (page-level CSS string), 'template' ('elementor_canvas' | 'elementor_header_footer' | 'default'), 'content_width' ({'unit':'px','size':1140}), 'hide_title' ('yes'/''). Auto CSS-flush. Owner beta + paid.

ParameterTypeDefault
post_id requiredinteger
settingsobject
sitestring
elementor_playbook/mcpThe HTML->Elementor build guide the design flow refers to.

The HTML->Elementor build guide the design flow refers to. Call this BEFORE building or restructuring an Elementor page, right after design_reference/design_intelligence, so you emit a VALID Elementor tree instead of guessing. Returns: (1) the _elementor_data shape rules, (2) the exact settings keys for the common widgets, (3) ready-to-adapt section TEMPLATES (as real Elementor JSON) you can drop into elementor_import_template(mode='append') and then tweak with elementor_update_widget / elementor_duplicate / elementor_move.

ParameterTypeDefault
sectionstring
elementor_replace_data/mcpEscape hatch for a FULL restructure: replace the whole Elementor tree at once. `data` is the complete _elementor_data as a JSON string (or the array) you…

Escape hatch for a FULL restructure: replace the whole Elementor tree at once. `data` is the complete _elementor_data as a JSON string (or the array) you composed. It goes through the same guarded bridge (auto-backup + server-side JSON/shape validation + CSS-cache clear), so a malformed tree is rejected and the page is left untouched. Prefer the id-scoped tools for small edits; use this only for a full rebuild. Auto-backed-up.

ParameterTypeDefault
post_id requiredinteger
data requiredstring
sitestring
elementor_restore/mcpUndo Elementor edits: restore the last saved backup (or a specific one by backup_time from elementor_get_page's `backups` list).

Undo Elementor edits: restore the last saved backup (or a specific one by backup_time from elementor_get_page's `backups` list). The current data is replaced with the backup and the CSS cache is cleared. Use this if an edit broke the page.

ParameterTypeDefault
post_id requiredinteger
backup_timestring
sitestring
elementor_save_template/mcpSave a design as a REUSABLE Elementor library template.

Save a design as a REUSABLE Elementor library template. Either snapshot an existing page's whole layout (pass source_post_id) OR pass `data` (an Elementor JSON array/string, e.g. one section you built). `template_type` = 'section' | 'page' | 'container'. Returns the new template id; apply it later with elementor_apply_template. Owner beta + paid.

ParameterTypeDefault
title requiredstring
source_post_idinteger0
datastring
template_typestringsection
sitestring
elementor_update_widget/mcpMerge arbitrary `settings` onto one Elementor element by id — full control over styling: typography, colors, spacing, alignment, background, responsive…

Merge arbitrary `settings` onto one Elementor element by id — full control over styling: typography, colors, spacing, alignment, background, responsive (_tablet/_mobile) keys, etc. Only the keys you pass are changed; everything else on the element and the rest of the page is preserved. Get the element id + current settings from elementor_get_page (the full tree is in `data`). Auto-backed-up; elementor_restore undoes it.

ParameterTypeDefault
post_id requiredinteger
widget_id requiredstring
settings requiredobject
sitestring

Pinterest

54
pinterest_account_analytics/mcpHow the WHOLE account performed over the last `days` - impressions, saves, pin clicks and outbound clicks. pinterest_pin_analytics answers "how did this one…

How the WHOLE account performed over the last `days` - impressions, saves, pin clicks and outbound clicks. pinterest_pin_analytics answers "how did this one pin do"; this answers "is any of this working".

ParameterTypeDefault
daysinteger30
pinterest_accountstring
pinterest_account_profile/mcpThe connected Pinterest account's own profile: follower count, following count, monthly views, business name and website.

The connected Pinterest account's own profile: follower count, following count, monthly views, business name and website. Use it to answer "is this account actually growing?" before deciding what to pin more of.

ParameterTypeDefault
pinterest_accountstring
pinterest_board_pins/mcpList the pins on ONE board.

List the pins on ONE board. Use it to check whether a board is actually being fed, and what is already on it before adding more of the same.

ParameterTypeDefault
board_id requiredstring
limitinteger25
bookmarkstring
pinterest_accountstring
pinterest_board_section_pins/mcpList the pins inside one board SECTION (pinterest_board_pins covers a whole board).

List the pins inside one board SECTION (pinterest_board_pins covers a whole board).

ParameterTypeDefault
board_id requiredstring
section_id requiredstring
limitinteger25
pinterest_accountstring
pinterest_board_sections/mcpList a board's sections.

List a board's sections. Boards with many pins are usually split into sections, and a pin can be placed in one - which nothing here could see or target before.

ParameterTypeDefault
board_id requiredstring
pinterest_accountstring
pinterest_bulk_pin_blog_posts/mcpPrepare Pinterest pins for MANY WordPress blog posts at once (Pinterest is a top blog-traffic source).

Prepare Pinterest pins for MANY WordPress blog posts at once (Pinterest is a top blog-traffic source).

ParameterTypeDefault
board_id requiredstring
limitinteger5
offsetinteger0
applybooleanFalse
sitestring
pinterest_accountstring
pinterest_bulk_pin_products/mcpPrepare Pinterest pins for MANY products at once - the RIGHT way.

Prepare Pinterest pins for MANY products at once - the RIGHT way.

ParameterTypeDefault
board_id requiredstring
limitinteger5
only_activebooleanTrue
offsetinteger0
applybooleanFalse
sitestring
pinterest_accountstring
pinterest_create_board/mcpCreate a Pinterest board (e.g. one per product category or blog topic). privacy = PUBLIC (default, so pins can be found), PROTECTED, or SECRET.…

Create a Pinterest board (e.g. one per product category or blog topic). privacy = PUBLIC (default, so pins can be found), PROTECTED, or SECRET. `pinterest_account` = a username to target a specific connected account. Returns the new board id. Tip: use keyword-rich, searchable board names (Pinterest is a search engine).

ParameterTypeDefault
name requiredstring
descriptionstring
privacystringPUBLIC
pinterest_accountstring
pinterest_create_board_section/mcpAdd a section to a board - a sub-group inside it, like "Kitchen" inside "Home Ideas".

Add a section to a board - a sub-group inside it, like "Kitchen" inside "Home Ideas".

ParameterTypeDefault
board_id requiredstring
name requiredstring
pinterest_accountstring
pinterest_delete_board/mcpDelete a board and EVERY pin on it.

Delete a board and EVERY pin on it. Irreversible.

ParameterTypeDefault
board_id requiredstring
confirmbooleanFalse
pinterest_accountstring
pinterest_delete_board_section/mcpDelete a board section.

Delete a board section. The pins inside it move back to the board rather than being deleted, so this is far safer than deleting a board - but it still needs confirm=True so it is never a side effect of a vague instruction.

ParameterTypeDefault
board_id requiredstring
section_id requiredstring
confirmbooleanFalse
pinterest_accountstring
pinterest_delete_draft/mcpDelete a saved pin DRAFT (not a published pin).

Delete a saved pin DRAFT (not a published pin). Nothing on Pinterest is touched.

ParameterTypeDefault
draft_idstring
all_draftsbooleanFalse
confirmbooleanFalse
pinterest_accountstring
pinterest_delete_pin/mcpPERMANENTLY delete a live Pinterest pin.

PERMANENTLY delete a live Pinterest pin. Requires confirm=True.

ParameterTypeDefault
pin_id requiredstring
confirmbooleanFalse
pinterest_accountstring
pinterest_draft_from_topic/mcpDesign a Pinterest pin from a TOPIC ALONE and save it as a DRAFT.

Design a Pinterest pin from a TOPIC ALONE and save it as a DRAFT. No website, no store and no Pinterest connection required - this is the tool for "make me a nail art pin" when nothing is connected yet.

ParameterTypeDefault
topic requiredstring
headlinestring
pin_titlestring
pin_descriptionstring
keywordsstring
stylestring
art_promptstring
alt_textstring
linkstring
board_namestring
image_qualitystring
image_modelstring
pinterest_accountstring
pinterest_followers/mcpWho follows this Pinterest account.

Who follows this Pinterest account.

ParameterTypeDefault
limitinteger25
pinterest_accountstring
pinterest_following/mcpWho (or which boards) this account follows.

Who (or which boards) this account follows.

ParameterTypeDefault
limitinteger25
boardsbooleanFalse
pinterest_accountstring
pinterest_generate_drafts/mcpGenerate FINISHED Pinterest pins and SAVE them as DRAFTS (do NOT publish).

Generate FINISHED Pinterest pins and SAVE them as DRAFTS (do NOT publish). This is how you prepare pins. NO Pinterest connection or board is required to build drafts - build them BEFORE connecting, then connect + publish later. `board_id` is OPTIONAL (a board is chosen at publish).

ParameterTypeDefault
board_idstring
board_namestring
sourcestringproducts
limitinteger20
only_activebooleanTrue
offsetinteger0
designbooleanTrue
pinterest_accountstring
sitestring
image_qualitystring
post_idinteger0
image_modelstring
pin_titlestring
pin_descriptionstring
keywordsstring
headlinestring
alt_textstring
stylestring
art_promptstring
pinterest_generate_pin_image/mcpGenerate a VIRAL, Pinterest-optimized pin (2:3, 1000x1500) and SAVE IT AS A DRAFT.

Generate a VIRAL, Pinterest-optimized pin (2:3, 1000x1500) and SAVE IT AS A DRAFT.

ParameterTypeDefault
subject requiredstring
headlinestring
stylestringlifestyle
contextstring
sitestring
image_qualitystring
art_promptstring
pinterest_accountstring
image_modelstring
titlestring
descriptionstring
linkstring
alt_textstring
board_namestring
board_idstring
board_reasonstring
keywordsstring
pinterest_get_pin/mcpOne published pin in full - its title, description, link, board, and its live metrics (saves, clicks, impressions) where Pinterest has them.

One published pin in full - its title, description, link, board, and its live metrics (saves, clicks, impressions) where Pinterest has them.

ParameterTypeDefault
pin_id requiredstring
pinterest_accountstring
pinterest_list_boards/mcpList the Pinterest boards (id + name + pin count).

List the Pinterest boards (id + name + pin count). Boards are only needed to PUBLISH a pin, and require a connected account.

ParameterTypeDefault
pinterest_accountstring
pinterest_list_drafts/mcpList the Pinterest pin DRAFTS saved in your dashboard (generated but not yet published). status='draft' (unpublished, default) or 'published'.

List the Pinterest pin DRAFTS saved in your dashboard (generated but not yet published). status='draft' (unpublished, default) or 'published'. Use before publishing to review them.

ParameterTypeDefault
statusstringdraft
only_needs_seobooleanFalse
pinterest_list_pins/mcpList the pins already published on the connected account, newest first.

List the pins already published on the connected account, newest first. This is how you answer "what have I already pinned?" - which matters before pinning again, because pinning the same URL repeatedly is what gets an account throttled.

ParameterTypeDefault
limitinteger25
bookmarkstring
pinterest_accountstring
pinterest_list_scheduled/mcpEvery pin with a booked publish time, soonest first - the 'what is going out and when' view.

Every pin with a booked publish time, soonest first - the 'what is going out and when' view. Parked drafts are not listed here; use pinterest_list_drafts for those.

ParameterTypeDefault
limitinteger50
pinterest_accountstring
pinterest_list_schedules/mcpShow the automatic Pinterest jobs that are running - what they do, how often, when they next run and what happened last time.

Show the automatic Pinterest jobs that are running - what they do, how often, when they next run and what happened last time.

ParameterTypeDefault
pausestring
resumestring
deletestring
pinterest_pin_ai_design/mcpCreate a Pinterest pin from a FRESH AI-generated vertical design - not tied to a product or

Create a Pinterest pin from a FRESH AI-generated vertical design - not tied to a product or

ParameterTypeDefault
board_id requiredstring
topic requiredstring
link requiredstring
stylestring
titlestring
descriptionstring
sitestring
image_qualitystring
art_promptstring
pinterest_accountstring
image_modelstring
pinterest_pin_analytics/mcpGet engagement analytics for one pin (impressions, saves, pin clicks, outbound clicks) over the last `days`.

Get engagement analytics for one pin (impressions, saves, pin clicks, outbound clicks) over the last `days`. Read it to see which pins actually send traffic, not just which look busy - outbound clicks are the number that matters for a blog or a store.

ParameterTypeDefault
pin_id requiredstring
daysinteger30
pinterest_accountstring
pinterest_pin_blog_post/mcpCreate a Pinterest pin for a WordPress blog post, linking back to it (Pinterest is a top

Create a Pinterest pin for a WordPress blog post, linking back to it (Pinterest is a top

ParameterTypeDefault
post_id requiredinteger
board_id requiredstring
titlestring
descriptionstring
image_urlstring
sitestring
pinterest_accountstring
pinterest_pin_collection/mcpCreate a Pinterest pin for a whole COLLECTION (Shopify) or CATEGORY (WooCommerce),

Create a Pinterest pin for a whole COLLECTION (Shopify) or CATEGORY (WooCommerce),

ParameterTypeDefault
collection_id requiredstring
board_id requiredstring
titlestring
descriptionstring
image_urlstring
sitestring
pinterest_accountstring
pinterest_pin_custom/mcpCreate a single Pinterest pin from explicit values (image URL + title + description +

Create a single Pinterest pin from explicit values (image URL + title + description +

ParameterTypeDefault
board_id requiredstring
title requiredstring
description requiredstring
link requiredstring
image_url requiredstring
alt_textstring
pinterest_accountstring
pinterest_pin_page/mcpCreate a Pinterest pin for a PAGE - a Shopify page or a WordPress page (About, a landing

Create a Pinterest pin for a PAGE - a Shopify page or a WordPress page (About, a landing

ParameterTypeDefault
page_id requiredinteger
board_id requiredstring
titlestring
descriptionstring
image_urlstring
sitestring
pinterest_accountstring
pinterest_pin_product/mcpCreate a Pinterest pin for one product, linking back to its page (drives traffic).

Create a Pinterest pin for one product, linking back to its page (drives traffic).

ParameterTypeDefault
product_id requiredinteger
board_id requiredstring
titlestring
descriptionstring
image_urlstring
sitestring
pinterest_accountstring
pinterest_pin_product_tags/mcpRead the product tags on a pin - the shoppable products attached to it.

Read the product tags on a pin - the shoppable products attached to it.

ParameterTypeDefault
pin_id requiredstring
pinterest_accountstring
pinterest_publish_drafts/mcpPublish pins whose SCHEDULED TIME has arrived.

Publish pins whose SCHEDULED TIME has arrived.

ParameterTypeDefault
limitinteger5
offsetinteger0
pinterest_accountstring
only_scheduledbooleanTrue
pinterest_repin/mcpSave an existing pin to another of your boards (a repin).

Save an existing pin to another of your boards (a repin).

ParameterTypeDefault
pin_id requiredstring
board_id requiredstring
board_section_idstring
pinterest_accountstring
pinterest_schedule/mcpSchedule automatic DRAFT-BUILDING from your posts or products.

Schedule automatic DRAFT-BUILDING from your posts or products. Each run designs `count` fresh pin drafts and saves them for review - it PUBLISHES NOTHING.

ParameterTypeDefault
board_id requiredstring
sourcestringproducts
countinteger3
frequencystringdaily
sitestring
pinterest_accountstring
pinterest_schedule_batch/mcpBook SEVERAL drafts across days, spacing them out - and show the time of every one.

Book SEVERAL drafts across days, spacing them out - and show the time of every one.

ParameterTypeDefault
draft_ids requiredstring
start requiredstring
per_dayinteger8
gap_hoursnumber3
pinterest_accountstring
pinterest_schedule_pin/mcpBook ONE draft to publish at a specific time.

Book ONE draft to publish at a specific time.

ParameterTypeDefault
draft_id requiredstring
when requiredstring
pinterest_accountstring
pinterest_schedule_publish/mcpDrip your REVIEWED pin drafts out to Pinterest automatically, at a safe pace.

Drip your REVIEWED pin drafts out to Pinterest automatically, at a safe pace.

ParameterTypeDefault
everystring3h
per_runinteger1
pinterest_accountstring
pinterest_search_my_boards/mcpFind one of YOUR OWN boards by name - useful once an account has dozens of them.

Find one of YOUR OWN boards by name - useful once an account has dozens of them.

ParameterTypeDefault
query requiredstring
limitinteger10
pinterest_accountstring
pinterest_search_pins/mcpSearch pins by keyword - either your own, or across Pinterest.

Search pins by keyword - either your own, or across Pinterest.

ParameterTypeDefault
query requiredstring
limitinteger10
mine_onlybooleanTrue
pinterest_accountstring
pinterest_seasonal_timing/mcpWHEN to publish a seasonal pin, worked out from Pinterest's own demand curve.

WHEN to publish a seasonal pin, worked out from Pinterest's own demand curve.

ParameterTypeDefault
intereststring
regionstringUS
limitinteger15
lead_daysinteger45
pinterest_accountstring
pinterest_status/mcpCheck which Pinterest business account(s) the user has connected.

Check which Pinterest business account(s) the user has connected. A user can connect SEVERAL accounts (e.g. different brands/niches). Returns the list with each account's username - pass a username (or leave blank for the default/first) as `pinterest_account` on the other tools to target a specific one. Use this first.

No parameters.

pinterest_tag_products/mcpAttach product tags to a pin, making it shoppable.

Attach product tags to a pin, making it shoppable.

ParameterTypeDefault
pin_id requiredstring
product_pin_ids requiredstring
pinterest_accountstring
pinterest_top_pins/mcpThe account's BEST-PERFORMING pins over the last `days`.

The account's BEST-PERFORMING pins over the last `days`. This is the one that closes the loop: it tells you which pins earned their distribution, so the next batch can look like those instead of being a guess. Read it before generating a new set of drafts.

ParameterTypeDefault
daysinteger30
sort_bystringIMPRESSION
limitinteger10
pinterest_accountstring
pinterest_top_video_pins/mcpThe account's best-performing VIDEO pins (pinterest_top_pins covers static pins).

The account's best-performing VIDEO pins (pinterest_top_pins covers static pins).

ParameterTypeDefault
daysinteger30
sort_bystringIMPRESSION
limitinteger10
pinterest_accountstring
pinterest_unschedule_pin/mcpPull a scheduled pin back to a parked draft.

Pull a scheduled pin back to a parked draft. It keeps its image and copy; it just loses its publish time and will not go out until it is given a new one.

ParameterTypeDefault
draft_id requiredstring
pinterest_accountstring
pinterest_untag_products/mcpRemove product tags from a pin.

Remove product tags from a pin.

ParameterTypeDefault
pin_id requiredstring
product_pin_ids requiredstring
pinterest_accountstring
pinterest_update_board/mcpRename a board or rewrite its description.

Rename a board or rewrite its description. Only non-empty fields change.

ParameterTypeDefault
board_id requiredstring
namestring
descriptionstring
privacystring
pinterest_accountstring
pinterest_update_board_section/mcpRename a board section. `pinterest_account` = a username (blank = default).

Rename a board section. `pinterest_account` = a username (blank = default).

ParameterTypeDefault
board_id requiredstring
section_id requiredstring
name requiredstring
pinterest_accountstring
pinterest_update_draft/mcpEdit a saved pin draft's TEXT - title, description, link, board, alt text, keywords - without regenerating anything.

Edit a saved pin draft's TEXT - title, description, link, board, alt text, keywords - without regenerating anything. Free: no image is made, so no credits are spent.

ParameterTypeDefault
draft_id requiredstring
headlinestring
pin_titlestring
pin_descriptionstring
linkstring
board_idstring
board_namestring
alt_textstring
keywordsstring
stylestring
pinterest_verified_websites/mcpWhich websites this Pinterest account has CLAIMED - the setting that turns plain pins into Rich Pins.

Which websites this Pinterest account has CLAIMED - the setting that turns plain pins into Rich Pins.

ParameterTypeDefault
pinterest_accountstring
pinterest_view_draft_image/mcpLook at the picture inside a saved pin draft - for pins the owner uploaded by hand, before writing their title, description, alt text and keywords.

Look at the picture inside a saved pin draft - for pins the owner uploaded by hand, before writing their title, description, alt text and keywords. Returns the image (scaled down to at most 1024px). Free: nothing is generated.

ParameterTypeDefault
draft_id requiredstring
pinterest_website_claim_code/mcpGet the code needed to CLAIM a website on Pinterest - both the meta tag and the DNS record.

Get the code needed to CLAIM a website on Pinterest - both the meta tag and the DNS record.

ParameterTypeDefault
pinterest_accountstring

Analytics & Search Console

16
bing_crawl_stats/mcp /mcp/storeBing Webmaster Tools: crawl / index status for the site - pages crawled, pages in the Bing index, crawl errors, and pages blocked by robots.txt. `bing_site`…

Bing Webmaster Tools: crawl / index status for the site - pages crawled, pages in the Bing index, crawl errors, and pages blocked by robots.txt. `bing_site` targets ANY site on the connected Bing account (no switching); empty = saved/current site.

ParameterTypeDefault
bing_sitestring
bing_search_queries/mcp /mcp/storeBing Webmaster Tools: the top search QUERIES bringing you clicks from Bing (query, clicks, impressions, avg position).

Bing Webmaster Tools: the top search QUERIES bringing you clicks from Bing (query, clicks, impressions, avg position). Real Microsoft/Bing search data. `bing_site` targets ANY site on the connected Bing account (no switching); leave empty to use the saved/current site.

ParameterTypeDefault
limitinteger25
bing_sitestring
bing_status/mcp /mcp/storeCheck whether Bing Webmaster Tools is connected for the current site, and which Bing site is selected.

Check whether Bing Webmaster Tools is connected for the current site, and which Bing site is selected. Use this first if other bing_ tools say 'not connected'.

No parameters.

bing_submit_url/mcp /mcp/storeAsk Bing to (re)crawl and index a specific URL right away.

Ask Bing to (re)crawl and index a specific URL right away. Great after publishing or updating a page - Bing accepts direct URL submission instantly (unlike Google). Requires a connected Bing account.

ParameterTypeDefault
url requiredstring
bing_top_pages/mcp /mcp/storeBing Webmaster Tools: the top PAGES by Bing search traffic (page, clicks, impressions). `bing_site` targets ANY site on the connected Bing account (no…

Bing Webmaster Tools: the top PAGES by Bing search traffic (page, clicks, impressions). `bing_site` targets ANY site on the connected Bing account (no switching); leave empty to use the saved/current site.

ParameterTypeDefault
limitinteger25
bing_sitestring
ga_list_properties/mcp /mcp/storeList EVERY Google Analytics 4 property and Search Console site this user's connected Google account can access.

List EVERY Google Analytics 4 property and Search Console site this user's connected Google account can access. You can use ANY of them immediately - pass property_id=... to the ga_* traffic tools, or sc_site=... to ga_search_queries / ga_search_pages. There is no need to 'switch' or select first: the saved selection is only the default used when you omit those params (a lone property/site is auto-set as that default).

No parameters.

ga_overview/mcp /mcp/storeGoogle Analytics traffic overview for the last `days`: the period TOTAL plus a DAY-BY-DAY breakdown (users, sessions, pageviews, engagement, bounce, avg…

Google Analytics traffic overview for the last `days`: the period TOTAL plus a DAY-BY-DAY breakdown (users, sessions, pageviews, engagement, bounce, avg session duration for each date). `property_id` targets ANY GA4 property your connected Google account can access (see ga_list_properties) - no switching needed; leave it empty to use the saved default.

ParameterTypeDefault
daysinteger28
property_idstring
ga_search_pages/mcp /mcp/storeGoogle Search Console: the top PAGES by clicks from Google search in the last `days` (page, clicks, impressions, CTR%, avg position). `sc_site` targets ANY…

Google Search Console: the top PAGES by clicks from Google search in the last `days` (page, clicks, impressions, CTR%, avg position). `sc_site` targets ANY Search Console site your connected Google account can access - one account serves all your sites, no switching. Leave empty to use the saved default.

ParameterTypeDefault
daysinteger28
limitinteger25
sc_sitestring
ga_search_queries/mcp /mcp/storeGoogle Search Console: the top search QUERIES bringing you clicks in the last `days` (query, clicks, impressions, CTR%, avg position).

Google Search Console: the top search QUERIES bringing you clicks in the last `days` (query, clicks, impressions, CTR%, avg position). This is real Google search data. `sc_site` targets ANY Search Console site your connected Google account can access (e.g. 'https://example.com/' or 'sc-domain:example.com') - one account serves all your sites, no switching. Leave empty to use the saved default.

ParameterTypeDefault
daysinteger28
limitinteger25
sc_sitestring
ga_select/mcp /mcp/storeChoose WHICH Google Analytics 4 property and/or Search Console site to use for this account.

Choose WHICH Google Analytics 4 property and/or Search Console site to use for this account. Pass a GA4 property ID (digits, e.g. '123456789') and/or a Search Console site URL exactly as shown by ga_list_properties (e.g. 'https://completewaterguide.com/'). Only non-empty values change. Requires a connected Google account.

ParameterTypeDefault
ga_property_idstring
sc_sitestring
ga_status/mcp /mcp/storeCheck whether the user has connected Google Analytics + Search Console, and which GA4 property / Search Console site is selected.

Check whether the user has connected Google Analytics + Search Console, and which GA4 property / Search Console site is selected. Use this first.

No parameters.

ga_top_pages/mcp /mcp/storeTop pages by pageviews in the last `days` (path, views, users, avg engagement).

Top pages by pageviews in the last `days` (path, views, users, avg engagement). Great for finding your best content. `property_id` targets ANY GA4 property your Google account can access; leave empty for the saved default.

ParameterTypeDefault
daysinteger28
limitinteger15
property_idstring
ga_traffic_sources/mcp /mcp/storeWhere traffic comes from in the last `days`: channel + source/medium with users and sessions.

Where traffic comes from in the last `days`: channel + source/medium with users and sessions. Shows organic vs direct vs referral vs social. `property_id` targets ANY GA4 property your Google account can access; empty = saved default.

ParameterTypeDefault
daysinteger28
limitinteger15
property_idstring
gsc_inspect_url/mcpGoogle Search Console URL INSPECTION: check ONE live URL against Google's index and get its real indexing status, both canonicals, and last crawl - the same…

Google Search Console URL INSPECTION: check ONE live URL against Google's index and get its real indexing status, both canonicals, and last crawl - the same data as the "Inspect URL" tool in Search Console, but automated. Returns: indexing verdict + coverage state (e.g. 'Submitted and indexed'), your declared canonical (user_canonical) vs the one Google actually chose (google_canonical), last crawl time, robots/fetch state, mobile and rich-results verdicts, and a deep link into Search Console. Use it to diagnose why a page isn't indexed, spot canonical mismatches, and re-check a page after you fix it. `url` = the full page URL to inspect. `sc_site` = which Search Console property (leave empt

ParameterTypeDefault
url requiredstring
sc_sitestring
gsc_list_sitemaps/mcpGoogle Search Console: list every SITEMAP submitted for the property, with its status - last submitted / last downloaded dates, pending flag, warnings and…

Google Search Console: list every SITEMAP submitted for the property, with its status - last submitted / last downloaded dates, pending flag, warnings and errors, and (when Google provides them) submitted-vs-indexed URL counts per content type. Use it to confirm your sitemap is being read and to spot sitemap errors. `sc_site` = which property (empty = default).

ParameterTypeDefault
sc_sitestring
gsc_submit_sitemap/mcpGoogle Search Console: SUBMIT or RESUBMIT a sitemap so Google re-reads it (a write action).

Google Search Console: SUBMIT or RESUBMIT a sitemap so Google re-reads it (a write action). Use after publishing new content or fixing sitemap issues, then use gsc_list_sitemaps to confirm it was picked up. `sitemap_url` = the FULL sitemap URL (e.g. https://example.com/wppseo-sitemap.xml). `sc_site` = which property (empty = default). This does NOT force indexing - it only tells Google the sitemap is ready to be re-crawled, exactly like clicking Submit in Search Console.

ParameterTypeDefault
sitemap_url requiredstring
sc_sitestring

Amazon Affiliate

4
amazon_find_products/mcp /mcp/storeFind Amazon products for the given keywords so you can pick one to feature in an article.

Find Amazon products for the given keywords so you can pick one to feature in an article. With Creators API credentials connected, returns REAL products (title, price, features, image, affiliate link). Without credentials, returns a tagged Amazon SEARCH link to use instead. `region` targets a specific marketplace ('in' = amazon.in, 'co.uk' ...). `tag` picks ONE EXACT associate tag when a marketplace has several (e.g. two amazon.com tags) - call amazon_list_accounts to see the tags, then pass the one you want as tag=. Omit both to use this site's default. Pass the chosen product's ASIN (or the keywords) to insert_product_card WITH THE SAME region AND tag.

ParameterTypeDefault
keywords requiredstring
countinteger3
regionstring
tagstring
sitestring
amazon_list_accounts/mcp /mcp/storeList EVERY Amazon associate account connected on this wptaskify account, one per marketplace region (amazon.com, amazon.in, amazon.co.uk...).

List EVERY Amazon associate account connected on this wptaskify account, one per marketplace region (amazon.com, amazon.in, amazon.co.uk...). You can use ANY of them immediately: pass region='in' to amazon_find_products / insert_product_card. No switching or selecting needed - the saved default is only what you get when you omit `region`.

No parameters.

amazon_status/mcp /mcp/storeCheck whether Amazon affiliate is set up: associate tag, region, and whether Creators API credentials (for real product data + images) are connected. `region`…

Check whether Amazon affiliate is set up: associate tag, region, and whether Creators API credentials (for real product data + images) are connected. `region` checks a specific marketplace ('in', 'co.uk'...); empty = the default for this site. Use this first.

ParameterTypeDefault
regionstring

Site Settings & More

17
design_intelligence/mcp /mcp/storeProfessional design reference for building themes, pages, layouts or CSS.

Professional design reference for building themes, pages, layouts or CSS. Given a query describing the site/vibe (e.g. 'minimal saas dark', 'luxury ecommerce', 'playful food blog', 'bold agency portfolio'), returns curated design guidance: the best-matching visual STYLES (keywords, colors, effects), COLOR PALETTES (with hex), FONT PAIRINGS (with Google Fonts URLs), UX RULES, and core design principles.

ParameterTypeDefault
query requiredstring
design_reference/mcpGive yourself pro landing-page design inspiration WITHOUT the user supplying anything - use this BEFORE building/redesigning a page so the result looks…

Give yourself pro landing-page design inspiration WITHOUT the user supplying anything - use this BEFORE building/redesigning a page so the result looks professional (Dribbble-style, but actionable). Returns for the given site_type/niche: a proven SECTION BLUEPRINT (top-to-bottom order), a set of DESIGN RULES (spacing, type scale, color use, mobile, a11y), tasteful COLOR PALETTES each with a matching Google-fonts HEADING+BODY pairing, and REAL reference site URLs you should then READ with read_reference_page() to study real structure/copy. Set live_search= true to also pull fresh examples from the web.

ParameterTypeDefault
site_typestring
nichestring
live_searchbooleanFalse
sitestring
expert_playbook/mcp /mcp/storeExpert best-practice playbook for a marketing/SEO/content task, so you act like a specialist instead of giving generic advice.

Expert best-practice playbook for a marketing/SEO/content task, so you act like a specialist instead of giving generic advice. Pass a topic such as: 'seo_audit', 'keyword_research', 'geo' (AI citations), 'meta_tags', 'schema', 'content_strategy', 'cro' (conversions), or 'copywriting' - or plain language like 'why isn't my post ranking' / 'get cited by ChatGPT' / 'improve my title'.

ParameterTypeDefault
topic requiredstring
get_settings/mcp /mcp/storeGet site settings: title, tagline (description), timezone, date format, etc.

Get site settings: title, tagline (description), timezone, date format, etc.

ParameterTypeDefault
sitestring
get_wp_option/mcpRead ANY WordPress option/setting by key (e.g. 'blogname', 'posts_per_page', 'timezone_string').

Read ANY WordPress option/setting by key (e.g. 'blogname', 'posts_per_page', 'timezone_string'). Requires wptaskify Studio.

ParameterTypeDefault
key requiredstring
sitestring
list_my_sites/mcp /mcp/storeList ALL WordPress sites connected to this account (URL + which one is active right now).

List ALL WordPress sites connected to this account (URL + which one is active right now). If you have more than one site, use `use_site` to choose which one the tools act on before running commands on it. Also use this if a tool says no site is connected - it confirms whether any site exists.

No parameters.

migrate_site/mcpMigrate one connected site to another - copy it directly plugin-to-plugin (e.g.

Migrate one connected site to another - copy it directly plugin-to-plugin (e.g. LIVE -> LOCAL or LOCAL -> LIVE). Both sites must be connected to wptaskify with the Studio (Pro) add-on. This: (1) takes a full backup on from_site (code + media + full database), (2) makes temporary download links, (3) has to_site pull those files straight from from_site (server-to-server, nothing through this connector), (4) restores them on to_site - files and, if include_db, the whole database (OVERWRITES to_site's database).

ParameterTypeDefault
from_site requiredstring
to_site requiredstring
include_uploadsbooleanTrue
include_dbbooleanTrue
site_action_plan/mcpAudit the WHOLE site and return a PRIORITIZED action plan - the best first thing to run after connecting.

Audit the WHOLE site and return a PRIORITIZED action plan - the best first thing to run after connecting. It runs the existing audits (AI SEO score, thin content, missing SEO fields, orphan pages, duplicate titles, broken links) and hands back a ranked 'do these first' list with the exact tool for each fix and how many items each affects. A concrete plan beats a blank chat box.

ParameterTypeDefault
limitinteger60
sitestring
site_capabilities/mcp /mcp/storeDetect what the current connected site/store is and what it supports, so the AI knows which tools to use.

Detect what the current connected site/store is and what it supports, so the AI knows which tools to use. Returns the platform (wordpress / shopify), whether WooCommerce is active (for WordPress), the SEO backend, and a short capability summary. Use this at the start when you're unsure whether a site is WordPress, a WooCommerce store, or Shopify.

ParameterTypeDefault
sitestring
site_info/mcp /mcp/storeGet site overview: name, description, URL, post/page counts, and active plugins.

Get site overview: name, description, URL, post/page counts, and active plugins.

ParameterTypeDefault
sitestring
studio_info/mcpCheck whether wptaskify Studio (the build/file-editing companion plugin) is active, and what it can do.

Check whether wptaskify Studio (the build/file-editing companion plugin) is active, and what it can do. Use this before any CSS / file / theme / plugin build tool. Returns capabilities + allowed roots, or an install hint.

ParameterTypeDefault
sitestring
update_analytics_settings/mcp /mcp/storeSet the site's analytics + search-engine verification (wptaskify plugin).

Set the site's analytics + search-engine verification (wptaskify plugin). These are added to the site's <head>. Only non-empty fields change. Fields: - ga4_id: Google Analytics 4 Measurement ID (G-XXXXXXX). The tracking snippet is built automatically; logged-in admins are not tracked. - gsc_verify: Google Search Console verification token (or paste the full meta tag - the token is extracted). - bing_verify: Bing Webmaster verification token. - head_code: extra raw head tags (meta/script/link) for other verifications or pixels; sanitized to safe tags on save. Requires the wptaskify plugin (admin capability).

ParameterTypeDefault
ga4_idstring
gsc_verifystring
bing_verifystring
head_codestring
update_discussion_settings/mcpWordPress Discussion settings.

WordPress Discussion settings. Each yes/no toggle: allow_comments (new posts default), require_name_email, require_registration (only logged-in can comment), hold_for_moderation (queue every comment). close_after_days = auto-close comments on posts older than N days (0 = never). Requires wptaskify Studio. Only provided fields change.

ParameterTypeDefault
allow_commentsstring
require_name_emailstring
require_registrationstring
hold_for_moderationstring
close_after_daysinteger-1
sitestring
update_reading_settings/mcpWordPress Reading settings. front_page='posts' (blog) or 'page' (a static page).

WordPress Reading settings. front_page='posts' (blog) or 'page' (a static page). When 'page', set front_page_id (the homepage page) and posts_page_id (the blog page). posts_per_page = how many posts per page. search_engine_visible='yes'/'no' toggles 'Discourage search engines' (blog_public). Only provided fields change.

ParameterTypeDefault
front_pagestring
front_page_idinteger0
posts_page_idinteger0
posts_per_pageinteger0
search_engine_visiblestring
sitestring
update_settings/mcp /mcp/storeUpdate site settings.

Update site settings. Only non-empty fields change. tagline = site description.

ParameterTypeDefault
titlestring
taglinestring
timezonestring
sitestring
update_wp_option/mcpWrite ANY WordPress option/setting by key.

Write ANY WordPress option/setting by key. A few lock-out-risk options (siteurl, home, admin_email) are protected. Some changes affect the whole site - for risky ones, warn the user first. Requires wptaskify Studio.

ParameterTypeDefault
key requiredstring
value requiredstring
sitestring
is_jsonbooleanFalse
use_site/mcp /mcp/storeSwitch which connected site or store (WordPress or Shopify) the tools act on. `site` can be the site's URL (e.g. 'https://completewaterguide.com' or just…

Switch which connected site or store (WordPress or Shopify) the tools act on. `site` can be the site's URL (e.g. 'https://completewaterguide.com' or just 'completewaterguide'), or its id. All following tool calls in this conversation act on that site until you switch again. Use list_my_sites first to see your options. Essential when you have connected more than one site.

ParameterTypeDefault
site requiredstring

No tool matches that search.

Your AI is ready to work.

Connect WPTaskify and turn conversations into real actions.

Start Free