# MCP-TOOL-AUTHORITY.yaml
# Canonical source for WP Navigator MCP tool definitions
# Auto-generated by scripts/generate-authority.mjs
#
# DO NOT EDIT MANUALLY - regenerate with: npm run generate:authority
schema_version: "1.0"
mcp_version: "2.6.1"
min_plugin_version: "1.4.0"
generated: "2025-12-17"
# Tool categories with endpoint mappings
categories:
core:
description: "Core API introspection and help"
tools:
- name: wpnav_help
description: "Get connection status, environment hints, and quickstart actions for using WP Navigator MCP with CLI clients."
endpoint: null # Client-side only
since_mcp: "1.0.0"
- name: wpnav_introspect
description: "Get WP Navigator Pro API capabilities, policy configuration, and environment hints. Call this first to understand what the API can do."
endpoint: "GET /wpnav/v1/introspect"
since_mcp: "1.0.0"
- name: wpnav_batch_get
description: "Fetch multiple WordPress items by ID in a single call. Supports ${BATCH_CONTENT_TYPES.join("
endpoint: "UNKNOWN"
since_mcp: "1.0.0"
- name: wpnav_batch_update
description: "Update multiple WordPress items in a single call. Supports ${BATCH_CONTENT_TYPES.join("
endpoint: "UNKNOWN"
since_mcp: "1.0.0"
- name: wpnav_batch_delete
description: "DELETE multiple WordPress items in a single call. HIGH RISK: Requires confirm_destructive=true and WPNAV_ENABLE_WRITES=1. Supports ${BATCH_CONTENT_TYPES.join("
endpoint: "UNKNOWN"
since_mcp: "1.0.0"
- name: wpnav_search
description: "Unified search across WordPress content. Searches posts, pages, media, and optionally users in parallel. Returns grouped results by content type."
endpoint: "UNKNOWN"
since_mcp: "1.0.0"
- name: wpnav_list_cookbooks
description: "List all available plugin cookbooks with metadata. Cookbooks provide AI guidance for specific WordPress plugins like Gutenberg, Elementor, etc. Returns slug, name, version, source (bundled/project), and version requirements."
endpoint: "GET /wp/v2/cookbook"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_load_cookbook
description: "Load a cookbook by slug to get AI guidance for a specific plugin. Returns the full SKILL.md markdown body, parsed frontmatter metadata, and allowed-tools list. Use this when working with plugins like Elementor or WooCommerce."
endpoint: "UNKNOWN"
since_mcp: "1.0.0"
- name: wpnav_match_cookbooks
description: "Match available cookbooks against active WordPress plugins. Fetches active plugins from WordPress and returns cookbooks that match, with version compatibility status. Use this to discover which plugin guidance is available for the current site."
endpoint: "UNKNOWN"
since_mcp: "1.0.0"
- name: wpnav_get_site_overview
description: "Get a comprehensive site overview including WordPress version, theme info, plugin counts, content summary, and user counts by role. Designed for AI agents to quickly understand site structure without multiple API calls."
endpoint: "GET /wp/v2/site_overviews/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_gutenberg_introspect
description: "Introspect Gutenberg capabilities: available blocks, patterns, and attributes. Use this to discover what blocks you can create."
endpoint: "GET /wpnav/v1/gutenberg/introspect"
since_mcp: "1.0.0"
- name: wpnav_list_roles
description: "List all available AI roles with metadata. Roles define how AI assistants should interact with WordPress - including focus areas, things to avoid, and allowed/denied tools. Returns slug, description, focus areas, tool counts, and source (bundled/global/project)."
endpoint: "GET /wp/v2/role"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_load_role
description: "Load and activate a role by slug. Sets the role as active for this session, applies its tool restrictions, and returns the full role definition including context (system prompt), focus areas, things to avoid, and allowed/denied tools lists. The role change takes effect immediately for tool filtering."
endpoint: "UNKNOWN"
since_mcp: "1.0.0"
pages:
description: "Page management"
tools:
- name: wpnav_list_pages
description: "List WordPress pages with optional filtering. Returns page ID, title, status, and last modified date."
endpoint: "GET /wp/v2/page"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_get_page
description: "Get a single WordPress page by ID. Returns full page content, metadata, and edit history."
endpoint: "GET /wp/v2/pages/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_create_page
description: "Create a new WordPress page. Requires title and optional content. Changes are logged in audit trail."
endpoint: "POST /wp/v2/pages"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_update_page
description: "Update a WordPress page. Requires page ID and at least one field to update (title, content, or status). Changes are logged in audit trail."
endpoint: "PUT /wp/v2/pages/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_delete_page
description: "Delete a WordPress page by ID. Changes are logged in audit trail. WARNING: This action cannot be undone (page moves to trash by default)."
endpoint: "DELETE /wp/v2/pages/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_snapshot_page
description: "Create a comprehensive snapshot of a WordPress page including metadata, Gutenberg blocks, featured image, and SEO data. Designed for AI agents to understand full page structure."
endpoint: "UNKNOWN"
since_mcp: "1.0.0"
posts:
description: "Post management"
tools:
- name: wpnav_list_posts
description: "List WordPress blog posts with optional filtering. Returns post ID, title, status, and last modified date."
endpoint: "GET /wp/v2/post"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_get_post
description: "Get a single WordPress post by ID. Returns full post content, metadata, categories, and tags."
endpoint: "GET /wp/v2/posts/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_create_post
description: "Create a new WordPress blog post. Requires title and optional content. Changes are logged in audit trail."
endpoint: "POST /wp/v2/posts"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_update_post
description: "Update a WordPress post. Requires post ID and at least one field to update. Changes are logged in audit trail."
endpoint: "PUT /wp/v2/posts/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_delete_post
description: "Delete a WordPress post by ID. Changes are logged in audit trail. WARNING: This action cannot be undone (post moves to trash by default)."
endpoint: "DELETE /wp/v2/posts/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_create_post_with_blocks
description: "Create a new post with Gutenberg blocks in a single atomic operation. Safer than creating empty post then adding blocks."
endpoint: "POST /wp/v2/post_with_blockss"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_list_post_types
description: "List all registered WordPress post types including custom types (products, events, etc.). Returns REST API support status, capabilities, and hierarchical status for each type."
endpoint: "GET /wp/v2/post_type"
wordpress_core: true
since_mcp: "1.0.0"
media:
description: "Media library management"
tools:
- name: wpnav_list_media
description: "List WordPress media library items. Returns media ID, title, URL, and mime type."
endpoint: "UNKNOWN"
since_mcp: "1.0.0"
- name: wpnav_get_media
description: "Get a single media item by ID. Returns full metadata including URL, dimensions, and file info."
endpoint: "GET /wp/v2/medias/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_delete_media
description: "Delete a media item by ID. WARNING: This permanently deletes the file from the server."
endpoint: "DELETE /wp/v2/medias/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_upload_media_from_url
description: "Upload media from URL (server-side download). Downloads an image from a URL and uploads it to WordPress media library without sending binary data over MCP."
endpoint: "UNKNOWN"
since_mcp: "1.0.0"
comments:
description: "Comment management"
tools:
- name: wpnav_list_comments
description: "List WordPress comments with optional filtering. Returns comment ID, author, content, and status."
endpoint: "GET /wp/v2/comment"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_get_comment
description: "Get a single comment by ID. Returns full comment details including author info and content."
endpoint: "GET /wp/v2/comments/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_update_comment
description: "Update a comment. Can change status (approve/hold/spam) or content. Changes are logged in audit trail."
endpoint: "PUT /wp/v2/comments/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_delete_comment
description: "Delete a comment by ID. WARNING: This action cannot be undone."
endpoint: "DELETE /wp/v2/comments/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_create_comment
description: "Create a new comment on a post. Uses REST API - works with any WordPress instance."
endpoint: "POST /wp/v2/comments"
wordpress_core: true
since_mcp: "1.0.0"
categories:
description: "Category taxonomy"
tools:
- name: wpnav_list_categories
description: "List all WordPress categories with optional filtering. Returns category ID, name, slug, count, and parent."
endpoint: "GET /wp/v2/categorie"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_get_category
description: "Get a single WordPress category by ID. Returns full category details including description and post count."
endpoint: "GET /wp/v2/categorys/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_create_category
description: "Create a new WordPress category. Requires name. Changes are logged in audit trail."
endpoint: "POST /wp/v2/categorys"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_update_category
description: "Update a WordPress category. Requires category ID and at least one field to update. Changes are logged in audit trail."
endpoint: "PUT /wp/v2/categorys/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_delete_category
description: "Delete a WordPress category by ID. Posts in this category will be reassigned to Uncategorized. WARNING: This action cannot be undone."
endpoint: "DELETE /wp/v2/categorys/{id}"
wordpress_core: true
since_mcp: "1.0.0"
tags:
description: "Tag taxonomy"
tools:
- name: wpnav_list_tags
description: "List all WordPress tags with optional filtering. Returns tag ID, name, slug, and count."
endpoint: "GET /wp/v2/tag"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_get_tag
description: "Get a single WordPress tag by ID. Returns full tag details including description and post count."
endpoint: "GET /wp/v2/tags/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_create_tag
description: "Create a new WordPress tag. Requires name. Changes are logged in audit trail."
endpoint: "POST /wp/v2/tags"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_update_tag
description: "Update a WordPress tag. Requires tag ID and at least one field to update. Changes are logged in audit trail."
endpoint: "PUT /wp/v2/tags/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_delete_tag
description: "Delete a WordPress tag by ID. Posts with this tag will have it removed. WARNING: This action cannot be undone."
endpoint: "DELETE /wp/v2/tags/{id}"
wordpress_core: true
since_mcp: "1.0.0"
taxonomies:
description: "Custom taxonomies"
tools:
- name: wpnav_list_taxonomies
description: "List all registered WordPress taxonomies (categories, tags, custom). Returns taxonomy name, labels, and capabilities. Always available for site structure discovery."
endpoint: "GET /wp/v2/taxonomie"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_get_taxonomy
description: "Get details about a specific taxonomy by name. Returns full taxonomy configuration including hierarchical status, REST base, and labels. Always available for site structure discovery."
endpoint: "GET /wp/v2/taxonomys/{id}"
wordpress_core: true
since_mcp: "1.0.0"
users:
description: "User management"
tools:
- name: wpnav_list_users
description: "List WordPress users with optional filtering. Returns user ID, username, email, roles, and display name."
endpoint: "GET /wp/v2/user"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_get_user
description: "Get a single WordPress user by ID. Returns full user profile including roles, capabilities, and metadata."
endpoint: "GET /wp/v2/users/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_create_user
description: "Create a new WordPress user. Requires username and email. Changes are logged in audit trail. HIGH RISK: Can create admin users."
endpoint: "POST /wp/v2/users"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_update_user
description: "Update a WordPress user. Requires user ID and at least one field to update. Changes are logged in audit trail."
endpoint: "PUT /wp/v2/users/{id}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_delete_user
description: "Delete a WordPress user by ID. HIGH RISK: Permanent data loss. User content will be reassigned to specified user. Changes are logged in audit trail."
endpoint: "DELETE /wp/v2/users/{id}"
wordpress_core: true
since_mcp: "1.0.0"
plugins:
description: "Plugin management"
tools:
- name: wpnav_list_plugins
description: "List all installed WordPress plugins. Returns plugin identifier in"
endpoint: "GET /wp/v2/plugins"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_get_plugin
description: "Get details about a specific plugin by slug. Returns full metadata including description, author, and version."
endpoint: "GET /wp/v2/plugins/{plugin}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_install_plugin
description: "Install a WordPress plugin from WordPress.org by slug. Changes are logged in audit trail."
endpoint: "POST /wpnav/v1/plugins/install"
since_mcp: "1.0.0"
- name: wpnav_activate_plugin
description: "Activate a WordPress plugin by slug. Changes are logged in audit trail."
endpoint: "POST /wpnav/v1/plugins/activate"
since_mcp: "1.0.0"
- name: wpnav_deactivate_plugin
description: "Deactivate a WordPress plugin by slug. Changes are logged in audit trail."
endpoint: "POST /wpnav/v1/plugins/deactivate"
since_mcp: "1.0.0"
- name: wpnav_update_plugin
description: "Update a WordPress plugin to the latest version. Changes are logged in audit trail."
endpoint: "POST /wpnav/v1/plugins/update"
since_mcp: "1.0.0"
- name: wpnav_delete_plugin
description: "Delete a WordPress plugin by slug. Plugin must be deactivated first. WARNING: This permanently deletes the plugin files."
endpoint: "DELETE /wpnav/v1/plugins/{plugin}"
since_mcp: "1.0.0"
themes:
description: "Theme management"
tools:
- name: wpnav_list_themes
description: "List all installed WordPress themes. Returns theme identifier in"
endpoint: "GET /wp/v2/themes"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_get_theme
description: "Get details about a specific theme by slug. Returns full metadata including description, author, and version."
endpoint: "GET /wp/v2/themes/{stylesheet}"
wordpress_core: true
since_mcp: "1.0.0"
- name: wpnav_install_theme
description: "Install a WordPress theme from WordPress.org by slug. Optionally activate after installation. Uses WP Navigator custom endpoint."
endpoint: "POST /wpnav/v1/themes/install"
since_mcp: "1.0.0"
- name: wpnav_activate_theme
description: "Activate a WordPress theme by stylesheet. The theme must already be installed. Use wpnav_list_themes to see available themes."
endpoint: "POST /wpnav/v1/themes/activate"
since_mcp: "1.0.0"
- name: wpnav_update_theme
description: "Update an installed WordPress theme to the latest version. The theme must be installed from WordPress.org."
endpoint: "POST /wpnav/v1/themes/update"
since_mcp: "1.0.0"
- name: wpnav_delete_theme
description: "Delete an installed WordPress theme. The theme must not be active - switch to a different theme first. Cannot delete parent theme while child theme is active."
endpoint: "DELETE /wpnav/v1/themes/{stylesheet}"
since_mcp: "1.0.0"
- name: wpnav_revert_theme
description: "Revert to the previously active theme. WordPress stores the previous theme when switching. Use this to quickly undo a theme change."
endpoint: "POST /wpnav/v1/themes/revert"
since_mcp: "1.0.0"
gutenberg:
description: "Gutenberg block editor"
tools:
- name: wpnav_gutenberg_list_blocks
description: "Get all blocks in a post as Intermediate Representation (IR). Returns block structure with types, attributes, and paths."
endpoint: "GET /wpnav/v1/gutenberg/blocks"
since_mcp: "1.0.0"
- name: wpnav_gutenberg_insert_block
description: "Insert a new Gutenberg block at specified path. Path is array of indices (e.g., [0] for first position, [1,0] for first child of second block)."
endpoint: "POST /wpnav/v1/gutenberg/blocks"
since_mcp: "1.0.0"
- name: wpnav_gutenberg_replace_block
description: "Replace an existing Gutenberg block at specified path with a new block."
endpoint: "PUT /wpnav/v1/gutenberg/blocks/{post_id}/{path}"
since_mcp: "1.0.0"
- name: wpnav_gutenberg_move_block
description: "Move a Gutenberg block from one path to another. Useful for reordering blocks or moving nested blocks."
endpoint: "POST /wpnav/v1/gutenberg/blocks/{post_id}/{path}/move"
since_mcp: "1.0.0"
- name: wpnav_gutenberg_delete_block
description: "Delete a Gutenberg block at specified path. WARNING: This action modifies post content immediately."
endpoint: "DELETE /wpnav/v1/gutenberg/blocks/{post_id}/{path}"
since_mcp: "1.0.0"
- name: wpnav_gutenberg_list_patterns
description: "List all available Gutenberg block patterns and reusable blocks. Patterns are pre-designed block combinations."
endpoint: "GET /wpnav/v1/gutenberg/patterns"
since_mcp: "1.0.0"
- name: wpnav_gutenberg_insert_pattern
description: "Insert a Gutenberg block pattern at specified path. Use wpnav_gutenberg_list_patterns to discover available patterns first."
endpoint: "GET /wpnav/v1/gutenberg/insert_pattern"
since_mcp: "1.0.0"
testing:
description: "Testing utilities"
tools:
- name: wpnav_test_metrics
description: "Track test execution metrics and generate reports. Use this to monitor test progress, measure automation success rate, and capture detailed execution statistics."
endpoint: null # Client-side only
since_mcp: "1.0.0"
- name: wpnav_seed_test_data
description: "Generate bulk test data (comments, posts, users) via REST API. Works with any WordPress instance (local, Hetzner, production)."
endpoint: null # Client-side only
since_mcp: "1.0.0"
# Summary
summary:
total_tools: 75
categories: 13