MCP Tool Reference
Last updated: July 19, 2026
SEOWing ships with a built-in MCP (Model Context Protocol) server. It lets AI agents — Claude Code, Claude Desktop, or Claude.ai Connectors — analyze, configure and optimize the entire SEO of your WordPress site: audits, meta tags, structured data, sitemaps, redirects, images, Elementor content and more. The agent talks to your site, you review the results.
Connecting
The MCP server is exposed through the WordPress REST API of your site:
GET /wp-json/seowing/v1/mcp/info — server information
GET /wp-json/seowing/v1/mcp/tools — list of available tools
POST /wp-json/seowing/v1/mcp/execute — execute a tool
Requests are authenticated with an API key that you generate in the SEOWing settings of your WordPress admin. Send it in the X-SEOWing-API-Key header:
curl -X POST "https://example.com/wp-json/seowing/v1/mcp/execute" \
-H "X-SEOWing-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"tool": "seo_get_site_info", "params": {}}'
In Claude Desktop, Claude Code or a Claude.ai Connector you simply register the SEOWing MCP server once; the agent then discovers all tools automatically. Keep your API key confidential — anyone holding it can manage the SEO of your site.
Audit & Analysis
| Tool | Description | Key parameters |
seo_full_site_audit | Comprehensive site-wide SEO audit with 0–100 scores per category, prioritized recommendations and missing-data prompts. | limit, offset, post_types, include_content_analysis |
seo_analyze_page | Analyzes a single page for on-page SEO issues. | post_id, focus_keyword |
seo_bulk_analyze | Analyzes multiple posts at once for a quick SEO overview. | post_type, limit, order_by |
seo_calculate_score | Calculates and stores the SEO score of a post. | post_id |
seo_bulk_calculate_scores | Calculates SEO scores for many posts in one call. | post_type, limit, recalculate_all |
seo_get_suggestions | Returns improvement suggestions for a post (content, meta, links, images). | post_id, suggestion_types |
seo_suggest_internal_links | Finds contextual internal-linking opportunities for a page (Elementor-aware). | post_id, max_suggestions |
Autopilot & Fixes
| Tool | Description | Key parameters |
seo_auto_setup | Applies all recommended SEO fixes (site identity, meta, schema, E-E-A-T, sitemap, robots.txt, llms.txt, images, social) — idempotent, with dry-run preview. | dry_run, sections, limit, meta_generation_style, lang |
seo_get_playbook | Returns a step-by-step 2025/2026 SEO, GEO/AEO and E-E-A-T best-practices playbook tailored to the site type. | focus, site_type |
seo_fix_audit_issues | Automatically fixes fixable audit issues: missing titles, descriptions, focus keywords, schema, OG images. | post_ids, fix_types, dry_run, force, fix_translations |
seo_fix_meta_bulk | Generates and writes meta title, description and focus keyword for a list of posts from their content. | post_ids, force, dry_run, style |
Meta Tags
| Tool | Description | Key parameters |
seo_update_meta | Updates SEO meta data of a post (title, description, keyword, robots, canonical). | post_id, meta_title, meta_description, focus_keyword |
seo_bulk_update_meta | Bulk-updates meta data for multiple posts in a single call. | items (array of {post_id, meta_title, …}) |
seo_update_term_meta | Updates SEO meta data for a taxonomy term (category, tag, custom taxonomy). | term_id, taxonomy, meta_title, meta_description |
seo_set_eeat | Sets E-E-A-T data: accreditations, certifications, author credentials, company history. | accreditations, certifications, authors, founded_date |
seo_set_local | Sets Local SEO data: opening hours, geo coordinates, price range, service area. | opening_hours, geo_coordinates, price_range, service_area |
Schema Markup
| Tool | Description | Key parameters |
seo_generate_schema | Generates the recommended JSON-LD schema for a post as a preview. | post_id |
seo_get_page_schema | Reads the custom schemas stored for a page. | post_id |
seo_set_page_schema | Stores a custom JSON-LD schema (e.g. FAQPage, HowTo, Product) on a page. | post_id, schema, schema_id, replace |
seo_delete_page_schema | Deletes custom schemas from a page. | post_id, schema_id, delete_all |
seo_preview_graph | Previews the auto-generated homepage @graph JSON-LD without saving. | include_services |
seo_fix_norm_schema | Bulk-fixes Organization schemas by removing fields that are only valid for LocalBusiness. | dry_run, limit |
Content
| Tool | Description | Key parameters |
seo_get_posts | Lists posts with SEO data and powerful filters (missing description, score range, search). | post_type, status, missing_meta_description, min_seo_score |
seo_get_post | Reads a single post with all SEO and editor data. | post_id, include_elementor, include_content |
seo_get_content | Reads the full content of a post. | post_id |
seo_create_post | Creates or updates a post including SEO meta, featured image and language assignment. | title, content, status, meta_title, lang |
seo_duplicate_post | Duplicates a post as a template (optionally with SEO data, Elementor layout, featured image). | source_id, new_title, copy_seo, copy_elementor |
seo_delete_post | Deletes a post (trash by default, permanent with force). | post_id, force |
seo_get_post_types | Lists all public post types. | include_builtin |
seo_get_taxonomies | Lists taxonomies and their terms. | taxonomy, post_type, hide_empty |
Images & Media
| Tool | Description | Key parameters |
seo_image_audit | Audits images for missing alt text, file size and optimization issues. | limit |
seo_update_image | Updates image metadata: alt text, title, caption, description. | image_id, alt_text, title |
seo_bulk_update_images | Bulk-updates image metadata for many attachments. | images (array of {id, alt_text, …}) |
seo_optimize_image | Optimizes an image (compression, WebP conversion, resizing). | image_id, quality, convert_webp, max_width |
seo_set_featured_image | Sets the featured image of a post. | post_id, image_id |
seo_upload_media | Uploads a file (image, PDF, document) into the Media Library. | filename, content (base64), alt_text, post_id |
Sitemap & Indexing
| Tool | Description | Key parameters |
seo_generate_sitemap | Generates a custom XML sitemap for a post type. | post_type, filename, priority, changefreq |
seo_index_now | Submits URLs to IndexNow for instant indexing (single, batch, sitemap or auto-collected). | url, urls, mode, limit |
seo_generate_llms_txt | Generates an llms.txt file so AI crawlers understand your site. | site_name, site_description, include_pages, max_posts |
seo_upload_file | Writes a text file such as llms.txt, robots.txt or ads.txt to the site root. | filename, content, overwrite |
Redirects
| Tool | Description | Key parameters |
seo_add_redirect | Adds a redirect (301, 302 or 307). | source_url, target_url, type |
seo_get_redirects | Lists existing redirects with filters. | type, search, enabled_only |
seo_delete_redirect | Deletes a redirect by ID or source URL. | redirect_id, source_url |
seo_import_redirects | Imports redirects from CSV data. | csv_data, has_header, default_type |
Elementor
| Tool | Description | Key parameters |
seo_get_page_structure | Returns the SEO-relevant structure of a page (H1, headings, images, editor type) with Elementor template awareness. | post_id |
seo_elementor_audit | Deep Elementor SEO audit: heading hierarchy, multiple/missing H1, missing alt text, thin text blocks — per page or site-wide. | post_id (optional) |
seo_elementor_fix_alt | Auto-fills missing alt text on Elementor images across the site, with dry-run preview and backup. | dry_run |
seo_get_elementor_data | Reads the Elementor layout data of a post. | post_id, decode |
seo_set_elementor_data | Writes Elementor layout data to a post. | post_id, elementor_data, page_settings |
Navigation Menus
| Tool | Description | Key parameters |
seo_get_menus | Lists navigation menus, their items and theme menu locations. | — |
seo_add_menu_item | Adds an item to a menu (page, term or custom URL); creates the menu if missing. | menu, title, type, object_id, position |
seo_reorder_menu | Reorders a menu by a list of item IDs. | menu, item_ids |
Multilingual
| Tool | Description | Key parameters |
seo_get_languages | Lists the active languages of a WPML/Polylang site. | include_urls |
seo_get_translations | Shows existing and missing translations of a post. | post_id |
Site & Settings
| Tool | Description | Key parameters |
seo_get_site_info | Returns site name, URL, language, WordPress and SEOWing version. | — |
seo_get_settings | Reads a SEOWing settings group (general, company, social, schema, titles, sitemap, …). | group |
seo_update_settings | Updates a settings group, e.g. company data or social profiles. | group, settings |
Maintenance & Diagnostics
| Tool | Description | Key parameters |
seo_flush_cache | Flushes caches (LiteSpeed, WP Rocket, W3TC, object cache, transients). | type, post_id |
seo_debug_log | Reads, searches, tails or clears the WordPress debug log. | action, lines, pattern, filter |
seo_list_tools | Lists all available MCP tools, optionally filtered by category or search term. | category, search |
seo_self_update | Updates the SEOWing plugin from an uploaded package (administrators only). | zip_base64 |
Typical Workflows
Some prompts you can give your AI agent once SEOWing is connected:
- Full-site autopilot: "Run a full site audit with SEOWing, walk me through the findings, then preview all fixes with
seo_auto_setup in dry-run mode. Apply them after my approval."
- Meta cleanup: "Find all pages without a meta description, generate concise titles and descriptions for them, and recalculate their SEO scores."
- Image alt texts: "Audit all images for missing alt text, show me the Elementor fix preview with
seo_elementor_fix_alt in dry-run mode, then apply it."
- New content: "Create a draft landing page for [topic], set optimized meta tags and an FAQ schema, then submit the URL via IndexNow once I publish it."
Recommended pattern: audit first, review the results together, preview bulk changes with dry_run: true, then apply. Every write operation only fills missing values unless you explicitly force an overwrite.