Files
mcphub/wordpress-plugin/airano-mcp-seo-bridge/README.md
airano c0d55f9061 sync: v3.2.0 — Supabase fixes, site edit, WP plugin rename, black formatting
- Supabase: fix filters, count_rows, upsert, anon_key optional, meta_url field
- Dashboard: site edit page + PATCH update route
- WP Plugin: rename SEO API Bridge → Airano MCP SEO Bridge
- supabase/client.py: black formatting fix
- .gitignore: exclude BUILD_REPORT.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:21:28 +03:30

9.8 KiB

SEO API Bridge - WordPress Plugin

Version: 1.3.0 Requires: WordPress 5.0+, PHP 7.4+ License: GPLv2 or later

Description

SEO API Bridge is a comprehensive WordPress plugin that exposes Rank Math SEO and Yoast SEO meta fields via dedicated REST API endpoints. This enables MCP servers, AI agents, and other applications to read and write SEO metadata programmatically for posts, pages, and WooCommerce products.

What's New in 1.3.0

  • Full REST API Endpoints - GET and POST operations for all post types
  • Product SEO Support - Complete WooCommerce product SEO management
  • Simplified Integration - Direct API calls instead of meta field manipulation
  • Better Error Handling - Proper validation and error responses

Features

  • Rank Math SEO Support - Full access to all Rank Math meta fields
  • Yoast SEO Support - Full access to all Yoast SEO meta fields
  • WooCommerce Compatible - Works with product post types
  • Secure - Requires proper authentication and edit_posts capability
  • Auto-Detection - Automatically detects which SEO plugin is active
  • Health Check Endpoint - Dedicated API endpoint for plugin detection
  • Zero Configuration - Works out of the box after activation

Supported SEO Fields

Rank Math SEO

Category Field Description
Core rank_math_focus_keyword Focus keyword
Core rank_math_title Meta title
Core rank_math_description Meta description
Core rank_math_additional_keywords Additional keywords
Advanced rank_math_canonical_url Canonical URL
Advanced rank_math_robots Robots meta directives
Advanced rank_math_breadcrumb_title Breadcrumb title
Open Graph rank_math_facebook_title OG title
Open Graph rank_math_facebook_description OG description
Open Graph rank_math_facebook_image OG image URL
Open Graph rank_math_facebook_image_id OG image ID
Twitter rank_math_twitter_title Twitter title
Twitter rank_math_twitter_description Twitter description
Twitter rank_math_twitter_image Twitter image URL
Twitter rank_math_twitter_image_id Twitter image ID
Twitter rank_math_twitter_card_type Card type (summary, summary_large_image)

Yoast SEO

Category Field Description
Core _yoast_wpseo_focuskw Focus keyword
Core _yoast_wpseo_title Meta title
Core _yoast_wpseo_metadesc Meta description
Advanced _yoast_wpseo_canonical Canonical URL
Advanced _yoast_wpseo_meta-robots-noindex Noindex setting
Advanced _yoast_wpseo_meta-robots-nofollow Nofollow setting
Advanced _yoast_wpseo_bctitle Breadcrumb title
Open Graph _yoast_wpseo_opengraph-title OG title
Open Graph _yoast_wpseo_opengraph-description OG description
Open Graph _yoast_wpseo_opengraph-image OG image URL
Open Graph _yoast_wpseo_opengraph-image-id OG image ID
Twitter _yoast_wpseo_twitter-title Twitter title
Twitter _yoast_wpseo_twitter-description Twitter description
Twitter _yoast_wpseo_twitter-image Twitter image URL
Twitter _yoast_wpseo_twitter-image-id Twitter image ID

Installation

Method 1: Upload via WordPress Admin

  1. Download seo-api-bridge.zip from Releases
  2. Go to WordPress Admin > Plugins > Add New > Upload Plugin
  3. Upload the ZIP file and click "Install Now"
  4. Click "Activate Plugin"

Method 2: FTP/SSH Upload

  1. Upload the seo-api-bridge folder to /wp-content/plugins/
  2. Go to WordPress Admin > Plugins
  3. Find "SEO API Bridge" and click "Activate"

Method 3: WP-CLI

cd /var/www/html/wp-content/plugins/
# Copy the plugin folder here
wp plugin activate seo-api-bridge

REST API Endpoints

All endpoints require WordPress Application Password authentication.

Status Endpoint

GET /wp-json/seo-api-bridge/v1/status

curl -X GET "https://yoursite.com/wp-json/seo-api-bridge/v1/status" \
  -u "username:application_password"

Response:

{
  "plugin": "SEO API Bridge",
  "version": "1.3.0",
  "active": true,
  "seo_plugins": {
    "rank_math": { "active": true, "version": "1.0.257" },
    "yoast": { "active": false, "version": null }
  },
  "supported_post_types": ["post", "page", "product"],
  "message": "SEO API Bridge is active and working with Rank Math SEO."
}

Post SEO Endpoints

GET /wp-json/seo-api-bridge/v1/posts/{id}/seo — Get SEO metadata for a post

POST /wp-json/seo-api-bridge/v1/posts/{id}/seo — Update SEO metadata for a post

# Get post SEO
curl -X GET "https://yoursite.com/wp-json/seo-api-bridge/v1/posts/123/seo" \
  -u "username:application_password"

# Update post SEO
curl -X POST "https://yoursite.com/wp-json/seo-api-bridge/v1/posts/123/seo" \
  -u "username:application_password" \
  -H "Content-Type: application/json" \
  -d '{"focus_keyword": "wordpress", "seo_title": "My Title"}'

Page SEO Endpoints

GET /wp-json/seo-api-bridge/v1/pages/{id}/seo

POST /wp-json/seo-api-bridge/v1/pages/{id}/seo

Product SEO Endpoints (WooCommerce)

GET /wp-json/seo-api-bridge/v1/products/{id}/seo

POST /wp-json/seo-api-bridge/v1/products/{id}/seo

curl -X POST "https://yoursite.com/wp-json/seo-api-bridge/v1/products/1217/seo" \
  -u "username:application_password" \
  -H "Content-Type: application/json" \
  -d '{"focus_keyword": "product keyword", "seo_title": "Product Title"}'

Alternative: Standard WordPress REST API

The plugin also registers all SEO meta fields on standard WordPress REST API endpoints. You can read/write SEO data directly via:

  • GET/POST /wp-json/wp/v2/posts/{id} — SEO fields in the meta object
  • GET/POST /wp-json/wp/v2/pages/{id}
  • GET/POST /wp-json/wp/v2/products/{id} (WooCommerce)
# Read SEO fields via standard endpoint
curl -X GET "https://yoursite.com/wp-json/wp/v2/posts/123" \
  -u "username:application_password"

# Update SEO via standard endpoint
curl -X POST "https://yoursite.com/wp-json/wp/v2/posts/123" \
  -u "username:application_password" \
  -H "Content-Type: application/json" \
  -d '{"meta": {"rank_math_focus_keyword": "wordpress optimization"}}'

Usage with MCP Hub

This plugin is designed to work with MCP Hub.

// Get product SEO
const seo = await mcp.wordpress_get_product_seo({
  site: "yoursite",
  product_id: 1217
});

// Update product SEO
await mcp.wordpress_update_product_seo({
  site: "yoursite",
  product_id: 1217,
  focus_keyword: "keyword",
  seo_title: "Title",
  meta_description: "Description"
});
# Get post SEO data
result = await mcp.call_tool(
    "wordpress_get_post_seo",
    {"site": "yoursite", "post_id": 123}
)

# Update post SEO
result = await mcp.call_tool(
    "wordpress_update_post_seo",
    {
        "site": "yoursite",
        "post_id": 123,
        "focus_keyword": "wordpress seo",
        "seo_title": "Complete SEO Guide",
        "meta_description": "Learn WordPress SEO..."
    }
)

Verification

  1. Admin Notice: After activation, visit the Plugins page to see a status notice indicating which SEO plugin was detected.

  2. Status Endpoint:

curl -X GET "https://your-site.com/wp-json/seo-api-bridge/v1/status" \
  -u "username:application_password"
  1. REST API Test:
curl -X GET "https://your-site.com/wp-json/wp/v2/posts/1" \
  -u "username:application_password"
  1. MCP Health Check: The MCP server automatically detects the plugin using the status endpoint.

Security

  • All meta fields require authentication via Application Passwords
  • Write access requires edit_posts capability
  • Read access follows WordPress post visibility rules
  • No sensitive data exposed without proper permissions

Troubleshooting

MCP Server Cannot Detect Plugin

  1. Upgrade to v1.1.0+ (has dedicated health check endpoint)
  2. Restart MCP server
  3. Test endpoint: curl "https://your-site.com/wp-json/seo-api-bridge/v1/status" -u "user:pass"

SEO Plugin Not Detected

  1. Verify Rank Math or Yoast SEO is installed and activated
  2. Deactivate and reactivate SEO API Bridge
  3. Check PHP error logs for warnings

Meta Fields Not Appearing in REST API

  1. Ensure you're authenticated (use Application Password)
  2. Check user has edit_posts permission
  3. Verify the post type is supported (post, page, product)

Compatibility

  • WordPress 5.0+
  • PHP 7.4+
  • Rank Math SEO 1.0+
  • Yoast SEO 14.0+
  • WooCommerce 5.0+ (for product support)
  • Classic Editor & Gutenberg
  • Multisite compatible

Changelog

1.3.0 (2025-02-18)

  • Added REST API endpoints for posts, pages, and products (GET/POST operations)
  • Added authentication requirement for all endpoints
  • Fixed rank_math_title meta key registration
  • Fixed output escaping for WordPress.org compliance

1.2.0 (2025-02-15)

  • Enhanced WooCommerce product support
  • Improved MariaDB compatibility for meta field queries

1.1.0 (2025-01-10)

  • Added health check REST API endpoint /seo-api-bridge/v1/status
  • Direct plugin detection without requiring posts/products
  • Better compatibility with sites that have no content
  • Returns SEO plugin versions in status endpoint

1.0.0 (2025-01-10)

  • Initial release
  • Rank Math SEO support (15 meta fields)
  • Yoast SEO support (15 meta fields)
  • WooCommerce product support
  • Auto-detection of active SEO plugins

Support

License

GPLv2 or later - See LICENSE for details