Features Pricing Blog About
Compare vs Screaming Frog vs Sitebulb vs Slickplan vs Octopus.do vs VisualSitemaps
Use Cases For Agencies Site Migration Content Audit For SEO Pros
Start Free Trial
Documentation

IATO MCP Plugin Documentation

Complete reference for the free WordPress MCP plugin — 43 tools, authentication, configuration, and data flows.

Download Plugin Back to Plugin Page

On This Page


Overview

IATO MCP turns any self-hosted WordPress site into an MCP server. The plugin runs entirely inside WordPress as a REST API endpoint — no external server or infrastructure required. AI clients like Claude Desktop, Gemini, and ChatGPT connect directly to your site via the Model Context Protocol.

AI Client (Claude Desktop / Gemini / ChatGPT)
    |
    |  MCP JSON-RPC over HTTP (one POST per call)
    |
WordPress Plugin  (iato-mcp)
  POST /wp-json/iato-mcp/v1/message    ← all MCP tool calls
  POST /wp-json/iato-mcp/v1/rollback   ← rollback a change by receipt ID
  GET  /wp-json/iato-mcp/v1/oauth/*    ← Claude Desktop auth flow
    |
    |  Two data flows:
    |  1. Plugin reads IATO data → enriches with WP post IDs → returns to AI
    |  2. Plugin reads WP data → writes to IATO (sync tools)
    |
IATO Platform  (iato.ai/api/v1)
  Auth: Authorization: Bearer {iato_api_key}

Requirements

The plugin works on any self-hosted WordPress installation. No special server configuration needed.

RequirementDetails
WordPress5.6 or higher
PHP7.4 or higher
IATO AccountOptional — only needed for bridge and sync tools
HostingAny: shared (Bluehost, SiteGround), VPS (DigitalOcean, Linode), managed WP (WP Engine, Flywheel, Cloudways), or local dev

Installation

Install the plugin and have your site running as an MCP server in under 5 minutes.

  1. Download the plugin ZIP from GitHub Releases. Free and open source under GPL v2.
  2. Upload via WP Admin: Go to Plugins → Add New → Upload Plugin. Select the ZIP file and click Install Now.
  3. Activate the plugin. An MCP API key is generated automatically on activation. Your site is now an MCP server.
  4. Verify: Go to Settings → IATO MCP. You should see your MCP endpoint URL and API key.

Configuration

All settings are managed in WP Admin under Settings → IATO MCP.

MCP Endpoint

Read-only. Shows your site's MCP URL: https://yoursite.com/wp-json/iato-mcp/v1/message

MCP API Key

Plugin-generated Bearer key (IATO-XXXXXXXX). Use Copy to clipboard or Regenerate to create a new one.

IATO API Key

Enter your IATO account API key here to enable the 9 bridge tools and 4 sync tools. Validated on save.

Default Crawl ID

Fallback crawl ID used by bridge tools when crawl_id is not passed in the tool call.

Enabled Tools

Per-tool enable/disable checkboxes. Disable tools you don't need to reduce the tool list for your AI client.


Connecting AI Clients

Any AI client that supports the Model Context Protocol can connect to your WordPress site.

Claude Desktop (OAuth)

Go to Claude Desktop → Settings → Connectors → Add. Enter your site's MCP endpoint URL (shown in Settings → IATO MCP). Click Authorize — the OAuth flow completes automatically.

Manual Configuration

For other MCP clients, add this to your client's configuration file:

{
  "mcpServers": {
    "wordpress": {
      "url": "https://yoursite.com/wp-json/iato-mcp/v1/message",
      "headers": {
        "Authorization": "Bearer IATO-XXXXXXXX"
      }
    }
  }
}

Replace the URL and API key with the values from Settings → IATO MCP.


WordPress Native Tools 30 tools

These tools read and write WordPress directly. No IATO account needed.

ToolCapabilityDescription
get_site_inforeadSite name, URL, WP version, active theme
get_site_settingsmanage_optionsSite title, tagline, admin email, timezone
get_postsreadList posts/pages with status and type filters
get_postreadFull post content, meta, terms by ID or slug
create_postedit_postsCreate draft or published post/page
update_postedit_postsEdit title, content, or status
search_postsreadFull-text search across posts and pages
get_seo_datareadSEO title + description via Yoast/RankMath/SEOPress adapter
update_seo_dataedit_postsWrite SEO title + description via adapter. Returns change receipt(s)
get_mediareadList media with optional missing-alt filter
update_alt_textedit_postsUpdate attachment alt text. Returns change receipt
get_commentsreadList comments by status or post
get_menusreadList all registered WP nav menus
get_menu_itemsreadGet items in a specific menu
update_menu_itemmanage_optionsAdd a page to a menu (supports dry_run). Returns change receipt
create_menu_itemmanage_optionsAdd a URL or page item to a menu with position and parent support. Returns change receipt
delete_menu_itemmanage_optionsRemove an item from a navigation menu. Returns change receipt
update_menu_item_detailsmanage_optionsEdit an existing menu item's title, URL, position, or parent. Returns change receipt
get_termsreadList WP categories or tags with term IDs
assign_termedit_postsAssign a category or tag to a post. Returns change receipt
create_termmanage_categoriesCreate a new category or tag in WordPress. Returns change receipt
update_termmanage_categoriesUpdate an existing category or tag name, slug, or description. Returns change receipt
delete_termmanage_categoriesDelete a category or tag from WordPress. Returns change receipt
update_taxonomyedit_postsReplace all terms for a given taxonomy on a post (not append). Returns change receipt
update_canonicaledit_postsSet or update canonical URL for a post. Auto-detects SEO plugin (Yoast/RankMath/SEOPress). Returns change receipt
update_structured_dataedit_postsAdd or update JSON-LD structured data for a post. Stored as custom meta, output via wp_head. Returns change receipt
update_redirectmanage_optionsCreate or update a redirect rule. Auto-detects redirect plugins or uses built-in fallback. Returns change receipt
get_page_builderreadDetects Elementor, WPBakery, Divi, Gutenberg, or Classic editor
get_elementor_datareadReturns raw _elementor_data JSON for a post
update_elementor_dataedit_postsUpdates Elementor JSON, clears CSS cache, regenerates post_content via Elementor. Supports dry_run

New Tool Details

update_canonical

Set or update the canonical URL for a post. Auto-detects SEO plugin (Yoast/RankMath/SEOPress).

ParameterTypeRequiredDescription
post_idintegerYesWordPress post ID
canonical_urlstringYesThe canonical URL to set
dry_runbooleanNoPreview changes without applying

update_structured_data

Add or update JSON-LD structured data for a post. Stored as custom meta, output via wp_head.

ParameterTypeRequiredDescription
post_idintegerYesWordPress post ID
schema_jsonstringYesValid JSON-LD string
dry_runbooleanNoPreview changes without applying

update_taxonomy

Replace all terms for a given taxonomy on a post (not append).

ParameterTypeRequiredDescription
post_idintegerYesWordPress post ID
taxonomystringYesTaxonomy name (e.g. category, post_tag)
termsarrayYesArray of term IDs to set
dry_runbooleanNoPreview changes without applying

update_redirect

Create or update a redirect rule. Auto-detects redirect plugins (Redirection, Safe Redirect Manager, Yoast Premium) or uses built-in fallback.

ParameterTypeRequiredDescription
from_urlstringYesSource URL path to redirect from
to_urlstringYesDestination URL to redirect to
typeintegerNoHTTP status code: 301, 302, 307, or 308 (default 301)
dry_runbooleanNoPreview changes without applying

IATO Bridge Tools 9 tools — requires IATO API key

These tools call the IATO API, then resolve IATO node/page IDs to WordPress post IDs and slugs so your AI client can chain directly into WP native tools.

ToolIATO Tools CalledReturns
get_iato_sitemaplist_sitemaps, get_sitemapFull URL hierarchy + WP post IDs and slugs per node
get_iato_nav_auditget_menus, get_menu_items, find_orphan_pagesMenu structure + orphan pages with WP slugs
get_iato_orphan_pagesfind_orphan_pagesOrphans resolved to WP post IDs and slugs
get_iato_taxonomyget_taxonomyIATO labels mapped to WP term IDs
get_iato_seo_fixesrun_seo_audit, get_seo_issuesIssues with fix_type (auto/manual) + WP slugs
get_iato_content_gapsget_low_performing_pages, get_content_metricsThin content pages with word count, flags, WP slugs
get_iato_broken_linksget_crawl_analyticsBroken links mapped to source WP post IDs
get_iato_suggestionsgenerate_suggestionsAI-prioritized fixes across all areas with WP slugs
get_iato_perf_reportget_crawl_analytics, get_low_performing_pagesSlow/heavy pages with contributing causes + WP slugs

WordPress → IATO Sync Tools 4 tools — requires IATO API key

Push WordPress data into IATO so the platform has live content without waiting for a crawl. All support dry_run mode.

ToolReads from WPWrites to IATOKey Parameters
sync_wp_pages_to_iatoget_posts() — all pages/postscreate_sitemap_node per pagesitemap_id, post_type, dry_run
sync_wp_taxonomy_to_iatoget_terms() — categories + tagsIATO taxonomy endpointssitemap_id, taxonomy, dry_run
sync_wp_meta_to_iatoSEO Adapter — title + desc per postfix_seo_issue (title, meta_description)crawl_id, dry_run
sync_wp_menus_to_iatowp_get_nav_menus() + wp_get_nav_menu_items()create menu + create menu items (preserving hierarchy)sitemap_id, crawl_id, dry_run

SEO Plugin Adapter

The plugin auto-detects which SEO plugin is active and reads/writes the correct post meta keys. Detection priority: Yoast → RankMath → SEOPress → Fallback. No configuration needed.

PluginTitle KeyDescription KeyCanonical Key
Yoast SEO_yoast_wpseo_title_yoast_wpseo_metadesc_yoast_wpseo_canonical
RankMathrank_math_titlerank_math_descriptionrank_math_canonical_url
SEOPress_seopress_titles_title_seopress_titles_desc_seopress_robots_canonical
FallbackNative WordPress post title (no SEO plugin detected)

Redirect Plugin Detection

The update_redirect tool auto-detects which redirect plugin is active and uses its API. If no plugin is found, a built-in option-based fallback handles redirects.

PriorityPluginNotes
1RedirectionMost popular redirect plugin. Uses its REST API to create/update rules.
2Safe Redirect ManagerStores redirects as custom post type. Supported via direct CPT creation.
3Yoast PremiumUses Yoast Premium's redirect manager when available.
FallbackBuilt-inOption-based fallback stored in iato_redirects. Capped at 500 rules.

Change Receipts

Every write tool returns a change_receipt object in its response, providing a full audit trail for AI-made changes.

Receipt Format

{
  "change_id": "wr_a1b2c3d4e5f67890",
  "post_id": 42,
  "target_type": "page",
  "field": "meta_description",
  "before_value": "Old description",
  "after_value": "New SEO-optimized description",
  "applied_at": "2026-03-26T14:30:00Z"
}

Target Types

Target TypeUsed By
pageupdate_seo_data, update_post
imageupdate_alt_text
menu_itemcreate_menu_item, update_menu_item, delete_menu_item, update_menu_item_details
taxonomyassign_term, create_term, update_term, delete_term, update_taxonomy
redirectupdate_redirect
structured_dataupdate_structured_data

Receipts are stored in the {prefix}iato_change_receipts database table, created automatically on plugin activation.


Rollback Endpoint

Restore any AI-made change using its change receipt ID.

Endpoint

POST /wp-json/iato-mcp/v1/rollback

Authentication

Same as MCP endpoint: Bearer token (Authorization: Bearer IATO-XXXXXXXX).

Request Body

{
  "change_id": "wr_a1b2c3d4e5f67890",
  "post_id": 42,
  "target_type": "page",
  "field": "meta_description",
  "before_value": "New SEO-optimized description"
}

Validation

CheckErrorStatus
change_id must existChange receipt not found404
Not already rolled backChange already rolled back400
before_value must match stored valueStale rollback — value has changed since receipt was issued400

Response

{
  "success": true,
  "rolled_back_at": "2026-03-26T15:00:00Z",
  "change_id": "wr_a1b2c3d4e5f67890"
}

Supported rollbacks: all write tool changes including SEO meta, alt text, menu items, taxonomy, canonical URLs, structured data, and redirects.


Admin Features

Phase 2 adds three admin interfaces for managing AI-driven changes.

Setup Wizard

Accessible at wp-admin/admin.php?page=iato-mcp-setup. Requires manage_options capability.

StepAction
1Connect IATO — enter and validate your IATO API key
2Configure Governance Policy — set approval rules for AI changes
3Set Crawl Schedule — choose frequency and scope
4Run First Crawl — trigger initial site crawl

Review Queue

Top-level admin menu: “IATO Reviews”. Requires edit_posts capability.

FeatureDescription
Pending ChangesShows changes proposed by IATO Autopilot awaiting review
Per-Item ActionsApprove, Reject, or Mark as Fixed on individual items
Bulk ActionsSelect multiple items and approve/reject in one click

Dashboard Widget

Appears on the wp-admin dashboard as “IATO SEO Health”. Data cached with 5-minute transient.

MetricDescription
SEO Score + TrendCurrent score with directional indicator vs previous crawl
Issue CountsBreakdown of open SEO issues by category
Recent Auto-FixesLast 5 changes applied automatically by Autopilot
Pending ReviewsNumber of items awaiting approval in the Review Queue
Crawl FreshnessTime since last completed crawl
Run Audit NowButton to trigger a new crawl on demand

Authentication

The plugin uses a plugin-generated API key stored in wp_options. Three authentication methods are supported.

MethodHowNotes
Bearer TokenAuthorization: Bearer IATO-XXXXXXXXPrimary method. Key generated on activation, stored in wp_options as iato_mcp_key.
Query Parameter?mcp_key=IATO-XXXXXXXXFallback for clients that cannot set custom headers.
OAuth 2.0Automatic via class-oauth.phpClaude Desktop Connect button triggers this automatically.

Key generation: on plugin activation, wp_generate_password(32, false) creates the key. Users can regenerate via Settings → IATO MCP → Regenerate Key.


Data Flows

Three example workflows showing how the plugin bridges AI clients, WordPress, and IATO.

Flow 1 — SEO Audit and Fix

"Audit my site and fix all meta description issues"
1. AI calls get_iato_seo_fixes(crawl_id)
   → Plugin calls IATO: run_seo_audit + get_seo_issues
   → Returns: [{url, issue_type, current, suggested, wp_post_id, wp_slug}]

2. AI calls update_seo_data(id: wp_post_id, description: suggested)
   → Plugin writes to Yoast/RankMath/SEOPress meta on each post

Flow 2 — WordPress Pages Synced into IATO

"Sync my WordPress pages into IATO"
1. AI calls sync_wp_pages_to_iato(sitemap_id, post_type: 'page')
   → Plugin: get_posts() reads all WP pages
   → Plugin: create_sitemap_node() per page via IATO API
   → IATO sitemap now has nodes matching live WP structure

Flow 3 — Navigation Audit and Fix

"Show me orphan pages not in any menu and add them"
1. AI calls get_iato_nav_audit(sitemap_id)
   → Plugin calls IATO: get_menus + get_menu_items + find_orphan_pages
   → Returns: {menus: [...], orphans: [{url, wp_post_id, wp_slug}]}

2. AI calls update_menu_item(menu_id, post_id: wp_post_id, dry_run: true)
   → Preview what would be added

3. AI calls update_menu_item(menu_id, post_id: wp_post_id)
   → wp_update_nav_menu_item() adds page to menu

Troubleshooting

IATO API key invalid

Verify the key in Settings → IATO MCP. The key is validated on save against GET /api/v1/workspaces. Ensure your IATO subscription is active.

Bridge tools returning errors

Confirm your IATO subscription is active and the Default Crawl ID is set to a valid, completed crawl. Bridge tools require both an IATO API key and valid crawl data.

OAuth not completing

Ensure your site is publicly accessible (not behind basic auth or a firewall). Claude Desktop needs to reach your site's OAuth endpoints. Check that the MCP endpoint URL in Settings is correct.

Plugin not appearing after upload

Verify WordPress 5.6+ and PHP 7.4+. Check the Plugins page for error messages. The plugin requires the REST API to be enabled (default in WordPress).

Tools not showing in AI client

Check that the tools are enabled in Settings → IATO MCP → Enabled Tools. Disabled tools are not exposed via the MCP endpoint.

Download IATO MCP

Turn your self-hosted WordPress site into an MCP server. Free, open source, works with any AI client.

Download from GitHub
Free · GPL v2 · WordPress 5.6+ · PHP 7.4+