Tool reference
All 389 tools the wptaskify MCP server exposes, with their parameters, types and defaults, read from the live server. Your plan decides which ones run for you. Also available as tools.json; how to connect is on the developers page.
Content & Publishing
25bulk_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.
| Parameter | Type | Default |
|---|---|---|
find required | string | |
replace required | string | |
dry_run | boolean | True |
status | string | publish,draft |
limit | integer | 200 |
post_type | string | post |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
schedule_json required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_type required | string | |
title required | string | |
content | string | |
status | string | draft |
excerpt | string | |
terms | string | |
featured_media_id | integer | 0 |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
title required | string | |
content required | string | |
status | string | draft |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
title required | string | |
content required | string | |
status | string | draft |
excerpt | string | |
category_ids | string | |
tag_ids | string | |
featured_media_id | integer | 0 |
slug | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_type required | string | |
item_id required | integer | |
permanent | boolean | False |
site | string |
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.)
| Parameter | Type | Default |
|---|---|---|
page_id required | integer | |
permanent | boolean | False |
site | string |
delete_post/mcp /mcp/storeDelete a post.
Delete a post. Default = move to Trash (recoverable). permanent=True = delete forever.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
permanent | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
new_title | string | |
post_type | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
limit | integer | 100 |
apply | boolean | False |
site | string |
get_page/mcp /mcp/storeGet one page's full raw HTML content + title, status.
Get one page's full raw HTML content + title, status.
| Parameter | Type | Default |
|---|---|---|
page_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
post_type | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_type required | string | |
search | string | |
status | string | publish,draft |
per_page | integer | 15 |
page | integer | 1 |
site | string |
list_pages/mcp /mcp/storeList pages (About, calculators, etc.).
List pages (About, calculators, etc.). Returns id, title, status, link.
| Parameter | Type | Default |
|---|---|---|
search | string | |
status | string | publish,draft |
per_page | integer | 20 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
search | string | |
status | string | publish,draft |
per_page | integer | 10 |
page | integer | 1 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
title required | string | |
content_html required | string | |
status | string | draft |
author_id | integer | 0 |
category_ids | string | |
tag_ids | string | |
excerpt | string | |
internal_link_topic | string | |
slug | string | |
generate_image | boolean | True |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
url required | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
datetime_iso required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
query required | string | |
per_page | integer | 15 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_type required | string | |
item_id required | integer | |
title | string | |
content | string | |
status | string | |
excerpt | string | |
terms | string | |
featured_media_id | integer | 0 |
slug | string | |
author_id | integer | 0 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
page_id required | integer | |
title | string | |
content | string | |
status | string | |
slug | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
title | string | |
content | string | |
status | string | |
excerpt | string | |
category_ids | string | |
tag_ids | string | |
featured_media_id | integer | 0 |
slug | string | |
site | string |
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
| Parameter | Type | Default |
|---|---|---|
title required | string | |
brief required | string | |
target_words | integer | 1500 |
section_count | integer | 0 |
tone | string | |
keywords | string |
Images & Media
15bulk_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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 30 |
quality | integer | 80 |
to_webp | boolean | False |
apply | boolean | False |
site | string |
delete_media/mcp /mcp/storePermanently delete a media item by id.
Permanently delete a media item by id.
| Parameter | Type | Default |
|---|---|---|
media_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 200 |
apply | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 100 |
apply | boolean | False |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
limit | integer | 20 |
apply | boolean | False |
offset | integer | 0 |
site | string |
generate_featured_image/mcp /mcp/storeGenerate a REALISTIC PHOTO featured image with Google Gemini and attach it to an EXISTING post (the post_id must already exist - create the post first).
Generate a REALISTIC PHOTO featured image with Google Gemini and attach it to an EXISTING post (the post_id must already exist - create the post first). If `prompt` is empty, an automatic prompt is built from the post's ACTUAL title/topic (so a tulip article gets a tulip image, a dirt-bike article gets a dirt-bike image). The image is uploaded to the WP media library and (by default) set as the post's featured image. Returns the new media id + url.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
prompt | string | |
set_as_featured | boolean | True |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
prompt required | string | |
filename | string | ai-image |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
prompt required | string | |
after_text | string | |
alt_text | string | |
site | string |
list_media/mcp /mcp/storeList media library items (images).
List media library items (images). Returns id, title, source_url, mime_type.
| Parameter | Type | Default |
|---|---|---|
search | string | |
per_page | integer | 10 |
site | string |
server_upload_media/mcpDownload a file from a URL straight onto the server.
Download a file from a URL straight onto the server.
| Parameter | Type | Default |
|---|---|---|
url required | string | |
path required | string | |
site | string |
set_featured_image/mcp /mcp/storeSet a post's featured image (thumbnail) to an existing media item id.
Set a post's featured image (thumbnail) to an existing media item id.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
media_id required | integer | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
image required | string | |
site | string |
set_site_logo/mcp /mcp/storeSet the site's LOGO (the custom logo shown in the header by themes that support it). `image` is a public image URL (uploaded) or an existing media id.
Set the site's LOGO (the custom logo shown in the header by themes that support it). `image` is a public image URL (uploaded) or an existing media id. Uses the core Site Logo setting (works on block themes and classic themes with logo support). If the theme doesn't support a logo, it's stored but may not display - use set_site_icon for the favicon, which every theme shows.
| Parameter | Type | Default |
|---|---|---|
image required | string | |
site | string |
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.)
| Parameter | Type | Default |
|---|---|---|
media_id required | integer | |
title | string | |
caption | string | |
description | string | |
alt_text | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
image_url required | string | |
filename | string | |
alt_text | string | |
site | string |
SEO & Meta
36audit_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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 100 |
site | string | |
backend | string | auto |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 30 |
apply | boolean | False |
fields | string | title,description,focus_keyword |
post_type | string | post |
site | string | |
only_missing | boolean | True |
offset | integer | 0 |
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.
| Parameter | Type | Default |
|---|---|---|
confirm | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
competitor_url required | string | |
post_type | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
source_url required | string | |
target_url required | string | |
http_code | integer | 301 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
redirect_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
contents | string | |
get_only | boolean | False |
delete_physical | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
field required | string | |
find required | string | |
replace required | string | |
limit | integer | 300 |
apply | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
days | integer | 90 |
limit | integer | 15 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 300 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
min_words | integer | 600 |
limit | integer | 300 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
key required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
user_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
post_type | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
term_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
seed required | string | |
region | string | us |
use_ai | boolean | True |
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.
| Parameter | Type | Default |
|---|---|---|
per_page | integer | 25 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
search | string | |
per_page | integer | 50 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
apply | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_url | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
focus_keyword | string | |
post_type | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
key required | string | |
value required | string | |
site | string |
trending_topics/mcp /mcp/storeFREE trending topics from Google Trends (today's rising searches) for a region - useful for timely article ideas. `region` = 2-letter country (us, in, uk...).…
FREE trending topics from Google Trends (today's rising searches) for a region - useful for timely article ideas. `region` = 2-letter country (us, in, uk...). `niche` (optional) = filter/relate results to your site's topic by also pulling autocomplete for it. Returns current trending search terms.
| Parameter | Type | Default |
|---|---|---|
region | string | us |
niche | string |
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.
| Parameter | Type | Default |
|---|---|---|
user_id required | integer | |
title | string | |
description | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
new_content required | string | |
post_type | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
new_schema_script required | string | |
post_type | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
meta_title | string | |
meta_description | string | |
focus_keyword | string | |
keywords | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
entity_type | string | |
entity_name | string | |
same_as | string | |
knows_about | string | |
home_title | string | |
home_desc | string | |
logo_id | integer | 0 |
default_og_id | integer | 0 |
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.
| Parameter | Type | Default |
|---|---|---|
term_id required | integer | |
title | string | |
description | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id | integer | 0 |
limit | integer | 100 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id | integer | 0 |
url | string | |
site | string |
AI Search & GEO
5ai_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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 50 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
contents | string | |
get_only | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
target_queries | string | |
post_type | string | |
site | string |
geo_optimize_post/mcp /mcp/storeMake a post AI-CITATION-READY.
Make a post AI-CITATION-READY. Two ways to use it:
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
optimized_html | string | |
target_queries | string | |
post_type | string | |
site | string |
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
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
quick_answer | string | |
key_takeaways | string | |
reviewed_by | string | |
last_reviewed | string | |
speakable | string | |
in_language | string | |
site | string |
Internal Links & Structure
9apply_internal_links_plan/mcpSTEP 2 of bulk internal linking: EXECUTE a plan from `plan_internal_links`, one BATCH at a time - no re-scanning, no per-post confirmation.
STEP 2 of bulk internal linking: EXECUTE a plan from `plan_internal_links`, one BATCH at a time - no re-scanning, no per-post confirmation.
| Parameter | Type | Default |
|---|---|---|
plan_json required | string | |
batch_size | integer | 25 |
start_index | integer | 0 |
site | string |
backup_download_link/mcpGet a temporary download URL for a backup file so the user can pull the backup OFF their site (e.g. to move it to another host).
Get a temporary download URL for a backup file so the user can pull the backup OFF their site (e.g. to move it to another host). The big file is downloaded directly from the site in the browser - it does NOT come through this connector. what='files' for the code/media zip, what='db' for the database.sql (only exists if the backup was made with include_db=True). The link expires after ttl seconds (default 1 hour). Give the user the returned download_url to open in their browser. Requires wptaskify Studio.
| Parameter | Type | Default |
|---|---|---|
backup_id required | string | |
what | string | files |
ttl | integer | 3600 |
site | string |
bulk_internal_links/mcp /mcp/storeBULK internal linking across the WHOLE site in ONE call - no need to go post-by-post.
BULK internal linking across the WHOLE site in ONE call - no need to go post-by-post. For every published post it finds natural anchor phrases that point to OTHER posts and turns the first mention of each into an internal link.
| Parameter | Type | Default |
|---|---|---|
max_per_post | integer | 3 |
min_title_words | integer | 2 |
limit | integer | 300 |
dry_run | boolean | True |
match_keywords | boolean | True |
site | string |
check_broken_links/mcp /mcp/storeCheck links inside a post (or scan many posts if post_id=0) and report any that return 404 / errors.
Check links inside a post (or scan many posts if post_id=0) and report any that return 404 / errors. Checks both internal and external links. For a full scan, raise `limit` carefully (each link is fetched). Returns broken links per post.
| Parameter | Type | Default |
|---|---|---|
post_id | integer | 0 |
limit | integer | 50 |
site | string |
find_orphan_pages/mcp /mcp/storeFind ORPHAN content: published posts/pages that NO other post links to internally.
Find ORPHAN content: published posts/pages that NO other post links to internally. Orphans are hard for users and search engines to discover. Returns the orphaned items so you can add internal links to them (e.g. with bulk_internal_links). Scans up to `limit` posts.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 300 |
site | string |
plan_internal_links/mcpSTEP 1 of bulk internal linking: scan the WHOLE site ONCE and produce a COMPLETE plan of every internal link to add - WITHOUT changing anything.
STEP 1 of bulk internal linking: scan the WHOLE site ONCE and produce a COMPLETE plan of every internal link to add - WITHOUT changing anything.
| Parameter | Type | Default |
|---|---|---|
max_per_post | integer | 3 |
min_title_words | integer | 2 |
limit | integer | 300 |
site | string |
suggest_internal_links/mcp /mcp/storeGiven a topic/keyword (or a draft article's subject), find the most relevant EXISTING posts to link to internally.
Given a topic/keyword (or a draft article's subject), find the most relevant EXISTING posts to link to internally. Returns title + url + why (which topic words matched). Results are RANKED by how many topic keywords each title shares, so the most on-topic targets come first. Use this before writing/editing so you can insert internal links to these targets.
| Parameter | Type | Default |
|---|---|---|
topic required | string | |
exclude_post_id | integer | 0 |
max_suggestions | integer | 8 |
site | string |
update_permalinks/mcpSet the permalink structure (e.g. '/%postname%/', '/%year%/%monthnum%/%postname%/').
Set the permalink structure (e.g. '/%postname%/', '/%year%/%monthnum%/%postname%/'). Then flushes rewrite rules. Changing this can affect existing URLs - warn the user. Requires wptaskify Studio (uses option write + flush).
| Parameter | Type | Default |
|---|---|---|
structure required | string | |
site | string |
Categories, Tags & Menus
19add_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.
| Parameter | Type | Default |
|---|---|---|
sidebar_id required | string | |
block_html required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_ids required | string | |
category_ids | string | |
tag_ids | string | |
replace | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
from_category_id required | integer | |
to_category_id required | integer | |
site | string |
create_category/mcp /mcp/storeCreate a new category.
Create a new category. Returns its id.
| Parameter | Type | Default |
|---|---|---|
name required | string | |
description | string | |
parent_id | integer | 0 |
site | string |
create_tag/mcp /mcp/storeCreate a new tag.
Create a new tag. Returns its id.
| Parameter | Type | Default |
|---|---|---|
name required | string | |
description | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
taxonomy required | string | |
term_id required | integer | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
widget_id required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
per_page | integer | 100 |
site | string |
list_tags/mcp /mcp/storeList tags with id, name, count, slug.
List tags with id, name, count, slug. Optionally filter by `search`.
| Parameter | Type | Default |
|---|---|---|
search | string | |
per_page | integer | 100 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_type | string | |
include_terms | boolean | True |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
taxonomy required | string | |
term_id required | integer | |
name | string | |
description | string | |
slug | string | |
parent_id | integer | -1 |
site | string |
Users, Comments & Authors
12change_user_role/mcpChange a user's role (subscriber/contributor/author/editor/administrator).
Change a user's role (subscriber/contributor/author/editor/administrator).
| Parameter | Type | Default |
|---|---|---|
user_id required | integer | |
role required | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
content required | string | |
parent_id | integer | 0 |
author_name | string | |
author_email | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
username required | string | |
email required | string | |
password required | string | |
role | string | author |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
user_id required | integer | |
reassign_to | integer | 0 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
user_id | string | me |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
status | string | hold |
per_page | integer | 20 |
site | string |
list_users/mcpList site users with id, name, email (if visible), and roles.
List site users with id, name, email (if visible), and roles.
| Parameter | Type | Default |
|---|---|---|
per_page | integer | 50 |
site | string |
moderate_comment/mcp /mcp/storeModerate a comment. action = approve, hold, spam, trash, delete.
Moderate a comment. action = approve, hold, spam, trash, delete.
| Parameter | Type | Default |
|---|---|---|
comment_id required | integer | |
action required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
author_id required | integer | |
post_type | string | post |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
comment_id required | integer | |
content required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
user_id required | integer | |
email | string | |
first_name | string | |
last_name | string | |
name | string | |
description | string | |
url | string | |
password | string | |
site | string |
Themes, Plugins & Files
31activate_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.
| Parameter | Type | Default |
|---|---|---|
plugin_file required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
slug required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
slug required | string | |
name | string | |
description | string | |
code | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
slug required | string | |
name | string | |
style_css | string | |
index_php | string | |
functions_php | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
plugin_file required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
contents | string | |
get_only | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
slug required | string | |
activate | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
path required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
slug required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
path required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
slug required | string | |
name | string | |
description | string | |
code | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
slug required | string | |
name | string | |
style_css | string | |
index_php | string | |
functions_php | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
sql required | string | |
site | string |
server_delete/mcpDelete a file, or an empty folder.
Delete a file, or an empty folder.
| Parameter | Type | Default |
|---|---|---|
path required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
plugin_folder required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
path required | string | |
find required | string | |
replace required | string | |
site | string | |
all_matches | boolean | False |
server_enable_plugin/mcpUndo server_disable_plugin - rename the folder back.
Undo server_disable_plugin - rename the folder back.
| Parameter | Type | Default |
|---|---|---|
plugin_folder required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
zip_url required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
path | string | |
site | string |
server_make_folder/mcpCreate a folder, and any missing folders above it.
Create a folder, and any missing folders above it.
| Parameter | Type | Default |
|---|---|---|
path required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
server_read_file/mcpRead a file from the site's filesystem.
Read a file from the site's filesystem.
| Parameter | Type | Default |
|---|---|---|
path required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
path required | string | |
new_path required | string | |
site | string |
server_search/mcpSearch the site's files - where is this function, who writes this option.
Search the site's files - where is this function, who writes this option.
| Parameter | Type | Default |
|---|---|---|
text required | string | |
path | string | |
site | string |
server_write_file/mcpWrite or replace a file on the site.
Write or replace a file on the site. PHP is syntax-checked FIRST.
| Parameter | Type | Default |
|---|---|---|
path required | string | |
content required | string | |
site | string | |
skip_lint | boolean | False |
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.
| Parameter | Type | Default |
|---|---|---|
css required | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
path required | string | |
contents required | string | |
site | string |
Backups, Safety & Site Health
19check_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.
| Parameter | Type | Default |
|---|---|---|
approval_id required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
include_uploads | boolean | False |
include_db | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
action_summary required | string | |
tool_name | string | |
risk | string | high |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
approval_id required | string | |
decision | string | approved |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
revision_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
backup_id required | string | |
restore_db | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
server_backups/mcpList the backups taken of one file, newest first.
List the backups taken of one file, newest first.
| Parameter | Type | Default |
|---|---|---|
path required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
server_disable_all_plugins/mcpDisable EVERY plugin at once, by renaming the plugins folder.
Disable EVERY plugin at once, by renaming the plugins folder.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
lines | integer | 120 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
path | string | |
site | string |
server_restore_all_plugins/mcpUndo server_disable_all_plugins.
Undo server_disable_all_plugins.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
on | boolean | True |
site | string |
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?
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
path required | string | |
site | string | |
backup | string |
WooCommerce Store
42add_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.
| Parameter | Type | Default |
|---|---|---|
order_id required | integer | |
note required | string | |
customer_note | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 20 |
only_missing | boolean | True |
apply | boolean | False |
offset | integer | 0 |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
limit | integer | 10 |
only_missing | boolean | True |
apply | boolean | False |
offset | integer | 0 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 30 |
apply | boolean | False |
offset | integer | 0 |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
limit | integer | 30 |
only_missing | boolean | True |
alts | string | |
offset | integer | 0 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
code required | string | |
discount_type | string | percent |
amount | string | |
expiry | string | |
usage_limit | integer | 0 |
min_amount | string | |
free_shipping | boolean | False |
site | string |
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
| Parameter | Type | Default |
|---|---|---|
name required | string | |
regular_price | string | |
description | string | |
short_description | string | |
sku | string | |
product_type | string | simple |
stock_quantity | integer | -1 |
category_ids | string | |
image_urls | string | |
status | string | draft |
sale_price | string | |
stock_status | string | |
tags | string | |
weight | string | |
length | string | |
width | string | |
height | string | |
virtual | boolean | False |
downloadable | string | |
shipping_class | string | |
tax_status | string | |
tax_class | string | |
cross_sell_ids | string | |
upsell_ids | string | |
purchase_note | string | |
menu_order | integer | -1 |
reviews_allowed | boolean | True |
featured | boolean | False |
attributes | string | |
meta_data | string | |
site | string |
create_product_category/mcp/storeCreate a WooCommerce product category.
Create a WooCommerce product category. Returns its id.
| Parameter | Type | Default |
|---|---|---|
name required | string | |
parent_id | integer | 0 |
description | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
attributes required | string | |
regular_price | string | |
sale_price | string | |
sku | string | |
stock_quantity | integer | -1 |
stock_status | string | |
weight | string | |
image_url | string | |
description | string | |
virtual | boolean | False |
downloadable | string | |
meta_data | string | |
site | string |
delete_coupon/mcp/storeDelete a WooCommerce coupon permanently.
Delete a WooCommerce coupon permanently.
| Parameter | Type | Default |
|---|---|---|
coupon_id required | integer | |
site | string |
delete_product/mcp/storeDelete a WooCommerce product.
Delete a WooCommerce product. Default = move to Trash. permanent=True deletes forever.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
permanent | boolean | False |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
category_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
tone | string | persuasive |
keywords | string | |
apply | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
prompt | string | |
set_as_featured | boolean | True |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
order_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
asin | string | |
keywords | string | |
after_text | string | |
gemini_image | boolean | True |
real_images | integer | 1 |
disclosure | boolean | True |
region | string | |
tag | string | |
site | string |
list_coupons/mcp/storeList WooCommerce discount coupons (code, type, amount, usage, expiry).
List WooCommerce discount coupons (code, type, amount, usage, expiry).
| Parameter | Type | Default |
|---|---|---|
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
status | string | any |
per_page | integer | 15 |
page | integer | 1 |
customer | integer | 0 |
after | string | |
site | string |
list_product_categories/mcp/storeList WooCommerce product categories (id, name, slug, count, parent).
List WooCommerce product categories (id, name, slug, count, parent).
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
per_page | integer | 30 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
search | string | |
status | string | any |
per_page | integer | 15 |
page | integer | 1 |
category | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
sale_price required | string | |
date_from | string | |
date_to | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
period | string | week |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
coupon_id required | integer | |
code | string | |
discount_type | string | |
amount | string | |
expiry | string | |
usage_limit | integer | -1 |
min_amount | string | |
free_shipping | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
order_id required | integer | |
status required | string | |
note | string | |
site | string |
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
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
name | string | |
regular_price | string | |
sale_price | string | |
description | string | |
short_description | string | |
sku | string | |
status | string | |
category_ids | string | |
stock_status | string | |
tags | string | |
weight | string | |
length | string | |
width | string | |
height | string | |
virtual | string | |
downloadable | string | |
shipping_class | string | |
tax_status | string | |
tax_class | string | |
cross_sell_ids | string | |
upsell_ids | string | |
purchase_note | string | |
menu_order | integer | -1 |
reviews_allowed | string | |
featured | string | |
attributes | string | |
meta_data | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
category_id required | integer | |
name | string | |
description | string | |
parent_id | integer | -1 |
slug | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
stock_quantity | integer | -1 |
stock_status | string | |
site | string |
wc_create_product_tag/mcp/storeCreate a WooCommerce product tag.
Create a WooCommerce product tag. Returns its id.
| Parameter | Type | Default |
|---|---|---|
name required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
attributes_json required | string | |
regular_price | string | |
sku | string | |
stock_quantity | integer | -1 |
site | string |
wc_get_customer/mcp/storeGet a WooCommerce customer's detail incl. billing/shipping.
Get a WooCommerce customer's detail incl. billing/shipping.
| Parameter | Type | Default |
|---|---|---|
customer_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
search | string | |
per_page | integer | 20 |
page | integer | 1 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id | integer | 0 |
site | string |
wc_list_product_tags/mcp/storeList WooCommerce product tags (id, name, count).
List WooCommerce product tags (id, name, count).
| Parameter | Type | Default |
|---|---|---|
site | string |
wc_list_variations/mcp/storeList a variable product's variations (id, attributes, price, stock).
List a variable product's variations (id, attributes, price, stock).
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
site | string |
wc_moderate_review/mcp/storeModerate a product review. status = approved / hold / spam / trash.
Moderate a product review. status = approved / hold / spam / trash.
| Parameter | Type | Default |
|---|---|---|
review_id required | integer | |
status required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
order_id required | integer | |
amount | string | |
reason | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
attributes_json required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
customer_id required | integer | |
email | string | |
first_name | string | |
last_name | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
order_id required | integer | |
customer_note | string | |
billing_json | string | |
shipping_json | string | |
site | string |
Shopify Store
69shopify_add_product_image/mcp/storeAdd an image to a product from a public URL.
Add an image to a product from a public URL.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
image_url required | string | |
alt | string | |
site | string |
shopify_add_to_collection/mcp/storeAdd a product to a manual collection.
Add a product to a manual collection.
| Parameter | Type | Default |
|---|---|---|
collection_id required | integer | |
product_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
price required | string | |
option1 | string | |
sku | string | |
inventory_quantity | integer | -1 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 50 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
block | string | |
get_only | boolean | False |
site | string |
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
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 50 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
shopify_broken_links/mcp/storeScan the store for broken links / 404s - the classic feature other apps charge for, here FREE.
Scan the store for broken links / 404s - the classic feature other apps charge for, here FREE. Checks that each published product, collection, page and blog article's storefront URL returns 200 (not 404/dead). Reports the dead URLs so the merchant can fix or redirect them. Pure HTTP checks - no AI cost.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 100 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 20 |
only_missing | boolean | True |
apply | boolean | False |
offset | integer | 0 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 10 |
only_missing | boolean | True |
apply | boolean | False |
offset | integer | 0 |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
limit | integer | 30 |
only_missing | boolean | True |
alts | string | |
offset | integer | 0 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 20 |
apply | boolean | False |
offset | integer | 0 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
blog_id required | integer | |
title required | string | |
body_html required | string | |
author | string | |
tags | string | |
published | boolean | False |
site | string |
shopify_create_collection/mcp/storeCreate a manual (custom) collection.
Create a manual (custom) collection. Add products with shopify_add_to_collection.
| Parameter | Type | Default |
|---|---|---|
title required | string | |
body_html | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
code required | string | |
value required | string | |
value_type | string | percentage |
starts_at | string | |
ends_at | string | |
usage_limit | integer | 0 |
site | string |
shopify_create_page/mcp/storeCreate a static page (e.g.
Create a static page (e.g. About, Shipping Policy). published=False saves a draft.
| Parameter | Type | Default |
|---|---|---|
title required | string | |
body_html required | string | |
published | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
title required | string | |
body_html | string | |
price | string | |
sku | string | |
vendor | string | |
product_type | string | |
tags | string | |
inventory_quantity | integer | -1 |
status | string | draft |
image_urls | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
from_path required | string | |
to_path required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
topic required | string | |
address required | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
site | string |
shopify_delete_article/mcp/storeDelete a blog article.
Delete a blog article.
| Parameter | Type | Default |
|---|---|---|
blog_id required | integer | |
article_id required | integer | |
site | string |
shopify_delete_collection/mcp/storeDelete a manual (custom) collection (products are not deleted).
Delete a manual (custom) collection (products are not deleted).
| Parameter | Type | Default |
|---|---|---|
collection_id required | integer | |
site | string |
shopify_delete_discount/mcp/storeDelete a Shopify discount (price rule) and its codes.
Delete a Shopify discount (price rule) and its codes.
| Parameter | Type | Default |
|---|---|---|
price_rule_id required | integer | |
site | string |
shopify_delete_page/mcp/storeDelete a static page.
Delete a static page.
| Parameter | Type | Default |
|---|---|---|
page_id required | integer | |
site | string |
shopify_delete_product/mcp/storeDelete a Shopify product permanently.
Delete a Shopify product permanently.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
site | string |
shopify_delete_product_image/mcp/storeDelete an image from a product.
Delete an image from a product.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
image_id required | integer | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
variant_id required | integer | |
site | string |
shopify_delete_webhook/mcp/storeDelete a webhook.
Delete a webhook.
| Parameter | Type | Default |
|---|---|---|
webhook_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
name | string | |
from_theme_id | integer | 0 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
min_words | integer | 50 |
limit | integer | 100 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 100 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
tone | string | persuasive |
keywords | string | |
apply | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
prompt | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
schema_type | string | product |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
apply | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
collection_id required | integer | |
site | string |
shopify_get_discount/mcp/storeGet a discount (price rule) detail plus its discount codes.
Get a discount (price rule) detail plus its discount codes.
| Parameter | Type | Default |
|---|---|---|
price_rule_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
shopify_list_articles/mcp/storeList articles in a Shopify blog (id, title, published).
List articles in a Shopify blog (id, title, published).
| Parameter | Type | Default |
|---|---|---|
blog_id required | integer | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
owner_type required | string | |
owner_id | integer | 0 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
search | string | |
status | string | any |
limit | integer | 20 |
site | string |
shopify_list_redirects/mcp/storeList the store's URL redirects.
List the store's URL redirects.
| Parameter | Type | Default |
|---|---|---|
site | string |
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/'.
| Parameter | Type | Default |
|---|---|---|
theme_id | integer | 0 |
prefix | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
shopify_list_webhooks/mcp/storeList the store's webhooks (topic + delivery address).
List the store's webhooks (topic + delivery address).
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 12 |
max_dim | integer | 2048 |
quality | integer | 82 |
scan_only | boolean | False |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
key required | string | |
theme_id | integer | 0 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
focus_keyword | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.).
| Parameter | Type | Default |
|---|---|---|
owner_type required | string | |
owner_id required | integer | |
namespace required | string | |
key required | string | |
value required | string | |
value_type | string | single_line_text_field |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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
| Parameter | Type | Default |
|---|---|---|
sample | integer | 4 |
site | string |
shopify_update_article/mcp/storeEdit a blog article. published = 'yes'/'no'.
Edit a blog article. published = 'yes'/'no'. Only non-empty fields change.
| Parameter | Type | Default |
|---|---|---|
blog_id required | integer | |
article_id required | integer | |
title | string | |
body_html | string | |
tags | string | |
published | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
collection_id required | integer | |
meta_title | string | |
meta_description | string | |
body_html | string | |
handle | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
price_rule_id required | integer | |
value | string | |
ends_at | string | |
usage_limit | integer | -1 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
page_id required | integer | |
title | string | |
body_html | string | |
published | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
title | string | |
body_html | string | |
status | string | |
vendor | string | |
product_type | string | |
tags | string | |
price | string | |
site | string |
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
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
quick_answer | string | |
key_takeaways | string | |
faq_json | string | |
usp | string | |
best_for | string | |
specs_json | string | |
trust_points | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
meta_title | string | |
meta_description | string | |
handle | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
key required | string | |
contents required | string | |
theme_id | integer | 0 |
site | string | |
allow_live | boolean | False |
Elementor
16elementor_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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
parent_id required | string | |
element required | object | |
position | integer | -1 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
template_id required | integer | |
mode | string | append |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
element_id required | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
element_id required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
widget_id required | string | |
fields required | object | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
site | string |
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
| Parameter | Type | Default |
|---|---|---|
colors | object | |
fonts | object | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
template required | string | |
mode | string | replace |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
element_id required | string | |
new_parent_id | string | |
position | integer | -1 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
settings | object | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
section | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
data required | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
backup_time | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
title required | string | |
source_post_id | integer | 0 |
data | string | |
template_type | string | section |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
widget_id required | string | |
settings required | object | |
site | string |
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".
| Parameter | Type | Default |
|---|---|---|
days | integer | 30 |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
limit | integer | 25 |
bookmark | string | |
pinterest_account | string |
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).
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
section_id required | string | |
limit | integer | 25 |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
pinterest_account | string |
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).
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
limit | integer | 5 |
offset | integer | 0 |
apply | boolean | False |
site | string | |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
limit | integer | 5 |
only_active | boolean | True |
offset | integer | 0 |
apply | boolean | False |
site | string | |
pinterest_account | string |
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).
| Parameter | Type | Default |
|---|---|---|
name required | string | |
description | string | |
privacy | string | PUBLIC |
pinterest_account | string |
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".
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
name required | string | |
pinterest_account | string |
pinterest_delete_board/mcpDelete a board and EVERY pin on it.
Delete a board and EVERY pin on it. Irreversible.
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
confirm | boolean | False |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
section_id required | string | |
confirm | boolean | False |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
draft_id | string | |
all_drafts | boolean | False |
confirm | boolean | False |
pinterest_account | string |
pinterest_delete_pin/mcpPERMANENTLY delete a live Pinterest pin.
PERMANENTLY delete a live Pinterest pin. Requires confirm=True.
| Parameter | Type | Default |
|---|---|---|
pin_id required | string | |
confirm | boolean | False |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
topic required | string | |
headline | string | |
pin_title | string | |
pin_description | string | |
keywords | string | |
style | string | |
art_prompt | string | |
alt_text | string | |
link | string | |
board_name | string | |
image_quality | string | |
image_model | string | |
pinterest_account | string |
pinterest_followers/mcpWho follows this Pinterest account.
Who follows this Pinterest account.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 25 |
pinterest_account | string |
pinterest_following/mcpWho (or which boards) this account follows.
Who (or which boards) this account follows.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 25 |
boards | boolean | False |
pinterest_account | string |
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).
| Parameter | Type | Default |
|---|---|---|
board_id | string | |
board_name | string | |
source | string | products |
limit | integer | 20 |
only_active | boolean | True |
offset | integer | 0 |
design | boolean | True |
pinterest_account | string | |
site | string | |
image_quality | string | |
post_id | integer | 0 |
image_model | string | |
pin_title | string | |
pin_description | string | |
keywords | string | |
headline | string | |
alt_text | string | |
style | string | |
art_prompt | string |
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.
| Parameter | Type | Default |
|---|---|---|
subject required | string | |
headline | string | |
style | string | lifestyle |
context | string | |
site | string | |
image_quality | string | |
art_prompt | string | |
pinterest_account | string | |
image_model | string | |
title | string | |
description | string | |
link | string | |
alt_text | string | |
board_name | string | |
board_id | string | |
board_reason | string | |
keywords | string |
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.
| Parameter | Type | Default |
|---|---|---|
pin_id required | string | |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
status | string | draft |
only_needs_seo | boolean | False |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 25 |
bookmark | string | |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 50 |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
pause | string | |
resume | string | |
delete | string |
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
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
topic required | string | |
link required | string | |
style | string | |
title | string | |
description | string | |
site | string | |
image_quality | string | |
art_prompt | string | |
pinterest_account | string | |
image_model | string |
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.
| Parameter | Type | Default |
|---|---|---|
pin_id required | string | |
days | integer | 30 |
pinterest_account | string |
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
| Parameter | Type | Default |
|---|---|---|
post_id required | integer | |
board_id required | string | |
title | string | |
description | string | |
image_url | string | |
site | string | |
pinterest_account | string |
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),
| Parameter | Type | Default |
|---|---|---|
collection_id required | string | |
board_id required | string | |
title | string | |
description | string | |
image_url | string | |
site | string | |
pinterest_account | string |
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 +
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
title required | string | |
description required | string | |
link required | string | |
image_url required | string | |
alt_text | string | |
pinterest_account | string |
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
| Parameter | Type | Default |
|---|---|---|
page_id required | integer | |
board_id required | string | |
title | string | |
description | string | |
image_url | string | |
site | string | |
pinterest_account | string |
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).
| Parameter | Type | Default |
|---|---|---|
product_id required | integer | |
board_id required | string | |
title | string | |
description | string | |
image_url | string | |
site | string | |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
pin_id required | string | |
pinterest_account | string |
pinterest_publish_drafts/mcpPublish pins whose SCHEDULED TIME has arrived.
Publish pins whose SCHEDULED TIME has arrived.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 5 |
offset | integer | 0 |
pinterest_account | string | |
only_scheduled | boolean | True |
pinterest_repin/mcpSave an existing pin to another of your boards (a repin).
Save an existing pin to another of your boards (a repin).
| Parameter | Type | Default |
|---|---|---|
pin_id required | string | |
board_id required | string | |
board_section_id | string | |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
source | string | products |
count | integer | 3 |
frequency | string | daily |
site | string | |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
draft_ids required | string | |
start required | string | |
per_day | integer | 8 |
gap_hours | number | 3 |
pinterest_account | string |
pinterest_schedule_pin/mcpBook ONE draft to publish at a specific time.
Book ONE draft to publish at a specific time.
| Parameter | Type | Default |
|---|---|---|
draft_id required | string | |
when required | string | |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
every | string | 3h |
per_run | integer | 1 |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
query required | string | |
limit | integer | 10 |
pinterest_account | string |
pinterest_search_pins/mcpSearch pins by keyword - either your own, or across Pinterest.
Search pins by keyword - either your own, or across Pinterest.
| Parameter | Type | Default |
|---|---|---|
query required | string | |
limit | integer | 10 |
mine_only | boolean | True |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
interest | string | |
region | string | US |
limit | integer | 15 |
lead_days | integer | 45 |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
pin_id required | string | |
product_pin_ids required | string | |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
days | integer | 30 |
sort_by | string | IMPRESSION |
limit | integer | 10 |
pinterest_account | string |
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).
| Parameter | Type | Default |
|---|---|---|
days | integer | 30 |
sort_by | string | IMPRESSION |
limit | integer | 10 |
pinterest_account | string |
pinterest_trending_keywords/mcpWhat people are ACTUALLY searching on Pinterest right now - real demand, not a guess.
What people are ACTUALLY searching on Pinterest right now - real demand, not a guess.
| Parameter | Type | Default |
|---|---|---|
region | string | US |
trend_type | string | growing |
interest | string | |
limit | integer | 25 |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
draft_id required | string | |
pinterest_account | string |
pinterest_untag_products/mcpRemove product tags from a pin.
Remove product tags from a pin.
| Parameter | Type | Default |
|---|---|---|
pin_id required | string | |
product_pin_ids required | string | |
pinterest_account | string |
pinterest_update_board/mcpRename a board or rewrite its description.
Rename a board or rewrite its description. Only non-empty fields change.
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
name | string | |
description | string | |
privacy | string | |
pinterest_account | string |
pinterest_update_board_section/mcpRename a board section. `pinterest_account` = a username (blank = default).
Rename a board section. `pinterest_account` = a username (blank = default).
| Parameter | Type | Default |
|---|---|---|
board_id required | string | |
section_id required | string | |
name required | string | |
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
draft_id required | string | |
headline | string | |
pin_title | string | |
pin_description | string | |
link | string | |
board_id | string | |
board_name | string | |
alt_text | string | |
keywords | string | |
style | string |
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.
| Parameter | Type | Default |
|---|---|---|
pinterest_account | string |
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.
| Parameter | Type | Default |
|---|---|---|
draft_id required | string |
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.
| Parameter | Type | Default |
|---|---|---|
pinterest_account | string |
Analytics & Search Console
16bing_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.
| Parameter | Type | Default |
|---|---|---|
bing_site | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 25 |
bing_site | string |
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.
| Parameter | Type | Default |
|---|---|---|
url required | string |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 25 |
bing_site | string |
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.
| Parameter | Type | Default |
|---|---|---|
days | integer | 28 |
property_id | string |
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.
| Parameter | Type | Default |
|---|---|---|
days | integer | 28 |
limit | integer | 25 |
sc_site | string |
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.
| Parameter | Type | Default |
|---|---|---|
days | integer | 28 |
limit | integer | 25 |
sc_site | string |
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.
| Parameter | Type | Default |
|---|---|---|
ga_property_id | string | |
sc_site | string |
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.
| Parameter | Type | Default |
|---|---|---|
days | integer | 28 |
limit | integer | 15 |
property_id | string |
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.
| Parameter | Type | Default |
|---|---|---|
days | integer | 28 |
limit | integer | 15 |
property_id | string |
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
| Parameter | Type | Default |
|---|---|---|
url required | string | |
sc_site | string |
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).
| Parameter | Type | Default |
|---|---|---|
sc_site | string |
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.
| Parameter | Type | Default |
|---|---|---|
sitemap_url required | string | |
sc_site | string |
Amazon Affiliate
4amazon_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.
| Parameter | Type | Default |
|---|---|---|
keywords required | string | |
count | integer | 3 |
region | string | |
tag | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
region | string |
bulk_amazon_links/mcpAcross the WHOLE site, turn natural product phrases into tagged Amazon SEARCH links (affiliate) - dry_run defaults to True so you PREVIEW first; set…
Across the WHOLE site, turn natural product phrases into tagged Amazon SEARCH links (affiliate) - dry_run defaults to True so you PREVIEW first; set dry_run=False to apply. Conservative by default (2 links/post) to avoid spammy affiliate stuffing. Works with just an associate tag - no Creators API credentials needed. Never links text already inside an <a> tag, preserves JSON-LD schema, and links each phrase at most once per post. Set dry_run=True to preview. This is the lightweight complement to insert_product_card. `region`/`tag` choose which marketplace + exact associate tag to use (see amazon_list_accounts); omit for this site's default.
| Parameter | Type | Default |
|---|---|---|
max_per_post | integer | 2 |
limit | integer | 300 |
dry_run | boolean | True |
match_keywords | boolean | True |
region | string | |
tag | string | |
site | string |
Site Settings & More
17design_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.
| Parameter | Type | Default |
|---|---|---|
query required | string |
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.
| Parameter | Type | Default |
|---|---|---|
site_type | string | |
niche | string | |
live_search | boolean | False |
site | string |
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'.
| Parameter | Type | Default |
|---|---|---|
topic required | string |
get_settings/mcp /mcp/storeGet site settings: title, tagline (description), timezone, date format, etc.
Get site settings: title, tagline (description), timezone, date format, etc.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
key required | string | |
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
from_site required | string | |
to_site required | string | |
include_uploads | boolean | True |
include_db | boolean | True |
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.
| Parameter | Type | Default |
|---|---|---|
limit | integer | 60 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
site | string |
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).
| Parameter | Type | Default |
|---|---|---|
ga4_id | string | |
gsc_verify | string | |
bing_verify | string | |
head_code | string |
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.
| Parameter | Type | Default |
|---|---|---|
allow_comments | string | |
require_name_email | string | |
require_registration | string | |
hold_for_moderation | string | |
close_after_days | integer | -1 |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
front_page | string | |
front_page_id | integer | 0 |
posts_page_id | integer | 0 |
posts_per_page | integer | 0 |
search_engine_visible | string | |
site | string |
update_settings/mcp /mcp/storeUpdate site settings.
Update site settings. Only non-empty fields change. tagline = site description.
| Parameter | Type | Default |
|---|---|---|
title | string | |
tagline | string | |
timezone | string | |
site | string |
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.
| Parameter | Type | Default |
|---|---|---|
key required | string | |
value required | string | |
site | string | |
is_json | boolean | False |
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.
| Parameter | Type | Default |
|---|---|---|
site required | string |
No tool matches that search.