{"id":50363929,"url":"https://github.com/danielboring/wordpress-mcp-abilities","last_synced_at":"2026-05-30T03:01:31.377Z","repository":{"id":361221229,"uuid":"1252492973","full_name":"DanielBoring/wordpress-mcp-abilities","owner":"DanielBoring","description":"Adds 24 content management abilities to the WordPress MCP Adapter plugin, giving AI agents full editorial access via MCP","archived":false,"fork":false,"pushed_at":"2026-05-29T17:23:18.000Z","size":155,"stargazers_count":0,"open_issues_count":15,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-29T18:14:51.671Z","etag":null,"topics":["ai","claude","mcp","model-context-protocol","wordpress","wordpress-plugin"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DanielBoring.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-28T15:17:19.000Z","updated_at":"2026-05-29T17:23:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/DanielBoring/wordpress-mcp-abilities","commit_stats":null,"previous_names":["danielboring/wordpress-mcp-abilities"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/DanielBoring/wordpress-mcp-abilities","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielBoring%2Fwordpress-mcp-abilities","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielBoring%2Fwordpress-mcp-abilities/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielBoring%2Fwordpress-mcp-abilities/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielBoring%2Fwordpress-mcp-abilities/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DanielBoring","download_url":"https://codeload.github.com/DanielBoring/wordpress-mcp-abilities/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielBoring%2Fwordpress-mcp-abilities/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33678271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","claude","mcp","model-context-protocol","wordpress","wordpress-plugin"],"created_at":"2026-05-30T03:01:27.630Z","updated_at":"2026-05-30T03:01:31.366Z","avatar_url":"https://github.com/DanielBoring.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003e\n  \u003cimg width=\"80%\" alt=\"WP MCP Abilities\" src=\"assets/gh_banner.png\"\u003e\u003cbr/\u003e\n  WP MCP Abilities\u003cbr/\u003e\n  \u003csub\u003eGive your AI agent editorial control over WordPress.\u003c/sub\u003e\n\u003c/h2\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch2\u003e\n    \u003ca href=\"https://wordpress.org\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/WordPress-6.9%2B-21759b?logo=wordpress\u0026logoColor=white\" alt=\"WordPress 6.9+\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.php.net\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/PHP-7.4%2B-777bb4?logo=php\u0026logoColor=white\" alt=\"PHP 7.4+\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.gnu.org/licenses/gpl-2.0.html\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/license-GPL--2.0%2B-blue\" alt=\"License GPL-2.0+\" /\u003e\n    \u003c/a\u003e\n  \u003c/h2\u003e\n\n[Quickstart](#quickstart) • [Architecture](#architecture) • [MCP Abilities](#mcp-abilities) • [Requirements](#requirements) • [Installation](#installation) • [Verification](#verification) • [Security](#security)\n\n\u003c/div\u003e\n\n**WP MCP Abilities** is a companion plugin for the official [MCP Adapter](https://github.com/WordPress/mcp-adapter) by WordPress. The MCP Adapter is a transport framework — it handles the MCP session, REST endpoint, and protocol routing — but ships with no content management abilities out of the box. Any tools an AI agent can actually call must come from plugins that register them. This plugin fills that gap, giving your AI agent the tools to take action: publish a draft, run a security audit, check site health, or analyze a post's SEO.\n\n- You want an AI agent to draft, update, or publish posts and pages\n- You want to ask an AI to audit your site's security or health posture\n- You want SEO analysis integrated into your content workflow\n- You open `mcp-adapter-discover-abilities` and see only the adapter's own meta abilities, with no content tools\n\n### Without this plugin\nOnly the MCP Adapter's 3 meta/discovery abilities are visible — no content tools.\n\n![Before](assets/before.png)\n\n### With this plugin\nAll abilities available: full editorial access to posts, pages, taxonomy, comments, security, and SEO.\n\n![After](assets/after.png)\n\n---\n\n## Quickstart\n\n**1. Install Official WordPress MCP Adapter Plugin**\nDownload the [latest release zip](https://github.com/WordPress/mcp-adapter/releases/latest) → WP Admin → Plugins → Add New → Upload Plugin → Install \u0026 Activate\n\n**2. Install WP MCP Abilities Plugin**\nDownload the [latest release zip](https://github.com/DanielBoring/wordpress-mcp-abilities/releases/latest) → WP Admin → Plugins → Add New → Upload Plugin → Install \u0026 Activate\n\n**3. Create a dedicated Editor user**\nWP Admin → Users → Add New → set Role to **Editor** → Add New User\n\n**4. Create an application password**\nWP Admin → Users → edit the user → Application Passwords → enter a name → Add → copy the password\n\n**5. Configure your MCP client**\nSee [Step 5 — Connect your MCP client](#5-connect-your-mcp-client) for config snippets covering Claude Code, Claude Desktop, GitHub Copilot (VS Code), GitHub Copilot CLI, Codex, Windsurf, Gemini CLI, and ChatGPT.\n\n**6. Verify**\nAsk your MCP client or agent to call `mcp-adapter-discover-abilities` — you should see additional abilities enabled by this companion plugin.\n\n---\n\n## Architecture\n\n```\nAI Agent (e.g. Claude Code, Codex, etc)\n        │\n        │  MCP Protocol (JSON-RPC over HTTP)\n        ▼\n@automattic/mcp-wordpress-remote          ← MCP server (npm process, runs locally)\n        │\n        │  HTTPS · WordPress REST API\n        │  POST /wp-json/mcp/mcp-adapter-default-server\n        ▼\nMCP Adapter plugin                        ← framework: registers the REST endpoint,\n  (WordPress/mcp-adapter)                     handles the MCP session, routes calls\n        │\n        │  calls wp_register_ability() handlers at runtime\n        ▼\nWP MCP Abilities plugin               ← this plugin: registers the actual\n  (this repo)                                 abilities the AI can call\n        │\n        │  WordPress core APIs (no direct DB queries)\n        ▼\nWordPress database\n```\n\nThe MCP Adapter handles the transport layer. This plugin handles the *content* — it registers abilities using `wp_register_ability()` that the adapter then exposes as MCP tools.\n\n---\n\n## MCP Abilities\n\nNew abilities and feature requests are tracked in [GitHub Issues](https://github.com/DanielBoring/wordpress-mcp-abilities/issues).\n\n### Role overview\n\nEach ability enforces a WordPress capability check. The table below maps standard WordPress roles to the plugin-relevant capabilities they provide so you can choose the right role for your MCP service account.\n\n| Role          | Plugin-relevant capabilities provided                                    | Suitable for                                                        |\n| ------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------- |\n| Subscriber    | `read`                                                                   | Read-only workflows: taxonomy browsing, health checks, SEO overview |\n| Author        | `edit_posts`, `delete_posts`                                             | Creating and managing the agent's own posts only                    |\n| **Editor** ✓  | All Author caps + `edit_pages`, `delete_pages`, `manage_categories`, `moderate_comments` | **Full editorial control — recommended default** |\n| Administrator | All Editor caps, plus extra administrative capabilities not required by the current ability set | Future admin-only audit workflows, if added |\n\n\u003e **Scope note for `edit_posts`:** This capability is available to Authors and above, but WordPress scopes query results to the authenticated user's own content unless `edit_others_posts` is also present. An Editor account (which has `edit_others_posts`) sees all content site-wide. Use Author only if the agent should be limited to content it created.\n\n---\n\n### Posts\n| Ability              | Description                                                            | Required Capability | Min. Role |\n| -------------------- | ---------------------------------------------------------------------- | ------------------- | --------- |\n| `wp-mcp/list-posts`  | List posts with filters (status, search, author, category, pagination) | `edit_posts`        | Author †  |\n| `wp-mcp/get-post`    | Get a single post by ID                                                | `edit_posts`        | Author †  |\n| `wp-mcp/create-post` | Create a new post with title, content, status, categories, tags        | `edit_posts`        | Author    |\n| `wp-mcp/update-post` | Update an existing post                                                | `edit_posts`        | Author †  |\n| `wp-mcp/delete-post` | Move a post to trash                                                   | `delete_posts`      | Author †  |\n\n† Returns or acts on the service account's own posts only. Use **Editor** to manage all posts site-wide.\n\n### Pages\n| Ability              | Description             | Required Capability | Min. Role |\n| -------------------- | ----------------------- | ------------------- | --------- |\n| `wp-mcp/list-pages`  | List pages with filters | `edit_pages`        | Editor    |\n| `wp-mcp/get-page`    | Get a single page by ID | `edit_pages`        | Editor    |\n| `wp-mcp/create-page` | Create a new page       | `edit_pages`        | Editor    |\n| `wp-mcp/update-page` | Update an existing page | `edit_pages`        | Editor    |\n| `wp-mcp/delete-page` | Move a page to trash    | `delete_pages`      | Editor    |\n\n### Taxonomy\n| Ability                  | Description                         | Required Capability | Min. Role  |\n| ------------------------ | ----------------------------------- | ------------------- | ---------- |\n| `wp-mcp/list-categories` | List all categories                 | `read`              | Subscriber |\n| `wp-mcp/list-tags`       | List all tags                       | `read`              | Subscriber |\n| `wp-mcp/create-category` | Create a new category               | `manage_categories` | Editor     |\n| `wp-mcp/create-tag`      | Create a new tag                    | `manage_categories` | Editor     |\n| `wp-mcp/delete-category` | Permanently delete a category by ID | `manage_categories` | Editor     |\n| `wp-mcp/delete-tag`      | Permanently delete a tag by ID      | `manage_categories` | Editor     |\n\n### Comments\n| Ability                  | Description                                       | Required Capability | Min. Role |\n| ------------------------ | ------------------------------------------------- | ------------------- | --------- |\n| `wp-mcp/list-comments`   | List comments with filters (post, status, search) | `edit_posts`        | Author    |\n| `wp-mcp/approve-comment` | Approve a comment                                 | `moderate_comments` | Editor    |\n| `wp-mcp/trash-comment`   | Move a comment to trash                           | `moderate_comments` | Editor    |\n| `wp-mcp/spam-comment`    | Mark a comment as spam                            | `moderate_comments` | Editor    |\n\n### Site Health\n| Ability                    | Description                                                                                                | Required Capability | Min. Role  |\n| -------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------- | ---------- |\n| `wp-mcp/site-health-check` | Run WordPress's built-in health tests; returns results grouped by severity (critical / recommended / good) | `read`              | Subscriber |\n\n### Security Audit\n| Ability                 | Description                                                                                                                               | Required Capability | Min. Role  |\n| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ---------- |\n| `wp-mcp/security-audit` | Check for common security issues: debug mode, file editor, SSL, admin username, WP/plugin version currency, XMLRPC, and auth key strength | `read`              | Subscriber |\n\nReturns findings in `fail` / `warn` / `pass` buckets with actionable descriptions. The ability itself requires `read`; plugin update checks are included only when the authenticated user also has `update_plugins`.\n\n### SEO Analysis\n| Ability                    | Description                                                                                                                                     | Required Capability | Min. Role  |\n| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ---------- |\n| `wp-mcp/seo-analyze-post`  | Analyze a single post or page: title length, word count, meta description, focus keyword placement, image alt text, internal links, slug length | `edit_posts`        | Author     |\n| `wp-mcp/seo-site-overview` | Site-wide SEO snapshot: sitemap and robots.txt accessibility, count of published posts missing Yoast focus keyword or meta description          | `read`              | Subscriber |\n\n**With Yoast SEO installed:** all checks run fully, including meta description and focus keyword analysis per post, site-wide counts of unoptimized content, and Yoast sitemap verification.\n\n**Without Yoast SEO:** structural checks work correctly (title length, word count, image alt text, internal links, slug length, robots.txt). However, `seo-analyze-post` will always warn about missing meta description and focus keyword on every post, and `seo-site-overview` will report every published post as unoptimized — because those Yoast meta fields are never populated. The sitemap check will also fail since it targets the Yoast-specific `/sitemap_index.xml` URL. Treat those specific findings as not applicable if Yoast is not installed.\n\n---\n\n## Requirements\n\n| Requirement                                                    | Version                                                                                                          |\n| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |\n| WordPress                                                      | 6.9+                                                                                                             |\n| PHP                                                            | 7.4+                                                                                                             |\n| [MCP Adapter plugin](https://github.com/WordPress/mcp-adapter) | Latest                                                                                                           |\n| [Yoast SEO](https://wordpress.org/plugins/wordpress-seo/)      | Optional — structural SEO checks work without it; meta description, focus keyword, and sitemap checks require it |\n\n\u003e **Self-hosted WordPress only.** Both this plugin and the MCP Adapter require a WordPress installation where custom plugins can be installed — self-hosted WordPress or a managed host (WP Engine, Kinsta, Flywheel, etc.). They are not compatible with WordPress.com Free, Personal, or Premium plans, which do not allow custom plugin installation.\n\n---\n\n## Installation\n\n### 1. Install the MCP Adapter plugin\n\nThis plugin depends on MCP Adapter being installed and active. Install it first from the official [WordPress MCP Adapter project](https://github.com/WordPress/mcp-adapter) or its [latest release](https://github.com/WordPress/mcp-adapter/releases/latest), then upload and activate it in **WP Admin → Plugins → Add New → Upload Plugin**.\n\n### 2. Install WP MCP Abilities\n\n\u003e **Coming soon to the WordPress Plugin Directory** — this plugin has been submitted for review. Once approved, you'll be able to install it directly from **WP Admin → Plugins → Add New** by searching \"WP MCP Abilities\". Until then, use one of the options below.\n\n**Option A — Upload zip (recommended for most sites)**\n\n1. Download or build the zip:\n   ```bash\n   git clone https://github.com/DanielBoring/wordpress-mcp-abilities.git wp-mcp-abilities\n   cd wp-mcp-abilities\n   zip -r wp-mcp-abilities.zip . --exclude='.git/*'\n   ```\n2. In WP Admin, go to **Plugins → Add New → Upload Plugin**\n3. Upload `wp-mcp-abilities.zip` and click **Install Now**\n4. Click **Activate Plugin**\n\n**Option B — Direct file copy (server access)**\n\n```bash\ncp -r wp-mcp-abilities /var/www/html/wp-content/plugins/\nwp plugin activate wp-mcp-abilities\n```\n\n### 3. Create a dedicated WordPress user\n\nIt is recommended to create a dedicated user for your AI agent rather than using your personal admin account. This limits what the agent can do and makes it easy to revoke access later.\n\n1. In WP Admin, go to **Users → Add New User**\n2. Fill in a username (e.g. `ai-editor`) and email address\n3. Set the **Role** to **Editor**\n4. Click **Add New User**\n\n\u003e **Why Editor and not Administrator?** The Editor role covers all capabilities used by the current ability set (`edit_posts`, `edit_pages`, `delete_posts`, `delete_pages`, `manage_categories`, `moderate_comments`, `read`). For planned audit abilities — database health, performance status, backup status, plugin audit, and user access audit — an Administrator account will be required, as those abilities need `manage_options`, `activate_plugins`, or `edit_users`. If you plan to use those abilities, create a separate Administrator service account and keep the Editor account for content workflows. See the [Role overview](#role-overview) for the full breakdown.\n\n### 4. Create an application password\n\nApplication passwords are separate from the user's login password and can be revoked independently.\n\n1. In WP Admin, go to **Users → All Users** and click the dedicated user you just created\n2. Scroll down to the **Application Passwords** section\n3. Enter a name for the password (e.g. `Claude Code`) and click **Add New Application Password**\n4. Copy the generated password immediately — it is only shown once\n\nThe password will be in the format `xxxx xxxx xxxx xxxx xxxx xxxx`. Keep the spaces when using it in your MCP config.\n\n### 5. Connect your MCP client\n\nConfigure `@automattic/mcp-wordpress-remote` to point at the MCP Adapter endpoint on your WordPress site. The published package reads `WP_API_URL`, `WP_API_USERNAME`, and `WP_API_PASSWORD`; set `WP_API_URL` to the full `/wp-json/mcp/mcp-adapter-default-server` URL. Select your client below:\n\n\u003cdetails\u003e\n\u003csummary\u003eClaude Code\u003c/summary\u003e\n\nAdd to `~/.claude/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"wordpress\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@automattic/mcp-wordpress-remote@latest\"],\n      \"env\": {\n        \"WP_API_URL\": \"https://your-site.com/wp-json/mcp/mcp-adapter-default-server\",\n        \"WP_API_USERNAME\": \"ai-editor\",\n        \"WP_API_PASSWORD\": \"xxxx xxxx xxxx xxxx xxxx xxxx\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eClaude Desktop\u003c/summary\u003e\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"wordpress\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@automattic/mcp-wordpress-remote@latest\"],\n      \"env\": {\n        \"WP_API_URL\": \"https://your-site.com/wp-json/mcp/mcp-adapter-default-server\",\n        \"WP_API_USERNAME\": \"ai-editor\",\n        \"WP_API_PASSWORD\": \"xxxx xxxx xxxx xxxx xxxx xxxx\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eGitHub Copilot (VS Code)\u003c/summary\u003e\n\nRequires VS Code 1.99+. Add to `.vscode/mcp.json` in your project (workspace-scoped) or your VS Code user profile (global).\n\n\u003e **Note:** VS Code uses `\"servers\"` as the root key, not `\"mcpServers\"`. Copying a Claude or Cursor config without changing this key is the most common setup mistake.\n\n```json\n{\n  \"servers\": {\n    \"wordpress\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@automattic/mcp-wordpress-remote@latest\"],\n      \"env\": {\n        \"WP_API_URL\": \"https://your-site.com/wp-json/mcp/mcp-adapter-default-server\",\n        \"WP_API_USERNAME\": \"ai-editor\",\n        \"WP_API_PASSWORD\": \"xxxx xxxx xxxx xxxx xxxx xxxx\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eGitHub Copilot CLI\u003c/summary\u003e\n\nAdd to `~/.copilot/mcp-config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"wordpress\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@automattic/mcp-wordpress-remote@latest\"],\n      \"env\": {\n        \"WP_API_URL\": \"https://your-site.com/wp-json/mcp/mcp-adapter-default-server\",\n        \"WP_API_USERNAME\": \"ai-editor\",\n        \"WP_API_PASSWORD\": \"xxxx xxxx xxxx xxxx xxxx xxxx\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCodex\u003c/summary\u003e\n\nAdd to `~/.codex/config.toml` (global) or `.codex/config.toml` in your project root (project-scoped, trusted projects only):\n\n```toml\n[mcp_servers.wordpress]\ncommand = \"npx\"\nargs = [\"-y\", \"@automattic/mcp-wordpress-remote@latest\"]\n\n[mcp_servers.wordpress.env]\nWP_API_URL = \"https://your-site.com/wp-json/mcp/mcp-adapter-default-server\"\nWP_API_USERNAME = \"ai-editor\"\nWP_API_PASSWORD = \"xxxx xxxx xxxx xxxx xxxx xxxx\"\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWindsurf\u003c/summary\u003e\n\nAdd to `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"wordpress\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@automattic/mcp-wordpress-remote@latest\"],\n      \"env\": {\n        \"WP_API_URL\": \"https://your-site.com/wp-json/mcp/mcp-adapter-default-server\",\n        \"WP_API_USERNAME\": \"ai-editor\",\n        \"WP_API_PASSWORD\": \"xxxx xxxx xxxx xxxx xxxx xxxx\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eGemini CLI\u003c/summary\u003e\n\nAdd to `~/.gemini/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"wordpress\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@automattic/mcp-wordpress-remote@latest\"],\n      \"env\": {\n        \"WP_API_URL\": \"https://your-site.com/wp-json/mcp/mcp-adapter-default-server\",\n        \"WP_API_USERNAME\": \"ai-editor\",\n        \"WP_API_PASSWORD\": \"xxxx xxxx xxxx xxxx xxxx xxxx\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eChatGPT\u003c/summary\u003e\n\nChatGPT's MCP integration works differently from the tools above. Rather than a local config file, it is configured through **Settings → Connected Apps** in the ChatGPT web interface, and it connects to **remote HTTP endpoints** rather than local stdio processes.\n\n`@automattic/mcp-wordpress-remote` runs as a local npm process and cannot be connected from ChatGPT directly without hosting the server at a public URL. ChatGPT MCP support is also currently limited to **Business, Enterprise, and Edu** plans. If you have a publicly hosted MCP endpoint and an eligible plan, add it via the Connected Apps UI.\n\n\u003c/details\u003e\n\n---\n\n## Verification\n\n`mcp-adapter-discover-abilities` is an MCP tool registered by the WordPress MCP Adapter plugin — it is not a CLI command. Invoke it through your AI assistant's chat interface by asking your agent to call it. The tool name and behaviour are the same across all supported clients; only the invocation method differs.\n\n| Client | How to invoke |\n| --- | --- |\n| Claude Code / Claude Desktop | Ask Claude: *\"Call mcp-adapter-discover-abilities\"* |\n| GitHub Copilot (VS Code / CLI) | Ask Copilot in chat: *\"Use the mcp-adapter-discover-abilities tool\"* |\n| Codex | Ask Codex: *\"Run mcp-adapter-discover-abilities\"* |\n| Windsurf / Gemini CLI | Ask the assistant to call `mcp-adapter-discover-abilities` |\n\nYou should see the MCP Adapter's built-in meta/discovery abilities plus all abilities registered by this plugin.\n\nTo confirm everything is working, ask your agent to call a few abilities:\n\n- `wp-mcp/list-posts` — *\"List the 5 most recent published posts\"*\n- `wp-mcp/security-audit` — *\"Run a security audit of my WordPress site\"*\n- `wp-mcp/site-health-check` — *\"Check WordPress site health\"*\n\n---\n\n## Security\n\n- All abilities enforce WordPress capability checks via `permission_callback`. The ability list reflects what the authenticated user is actually allowed to do — an editor cannot call abilities that require admin caps.\n- `delete-post` and `delete-page` move content to trash, not permanent deletion.\n- Content is sanitized on write: `sanitize_text_field()` for strings, `wp_kses_post()` for HTML content, `absint()` for IDs, and enum validation for status fields.\n- No direct database queries — all reads and writes go through the WordPress API.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielboring%2Fwordpress-mcp-abilities","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielboring%2Fwordpress-mcp-abilities","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielboring%2Fwordpress-mcp-abilities/lists"}