WCUS Prep: MCP Adapter and Abilities API

๐ **Source:** [WCUS Prep: MCP Adapter and Abilities API](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U)
> [!note]+ Document Notes
> tags: [Assign relevant tags or keywords to the notee to facilitate organization and retrieval. Add a # before each tag. Tags cannot have special characters. Do not use the tag #articles]
> - #wordpress
> - #mcp
> - #abilitiesapi
> - #restapi
> - #composer
> - #workshop
> Author: Jonathan Bossenger
> Source: YouTube Livestream (Jonathan Bossenger)
> Reference: https://www.youtube.com/watch?v=P2Ti-GZ7Y-U
> date created: 2025-08-18 12:48
>
> # Title: WCUS Prep โ MCP Adapter + Abilities API (WordPress)
>
<!-- deep-read:sections start -->
## ๐งญ Table of Contents:
- [๐ Summary](#-summary)
- [๐ Main Content](#-main-content)
- [๐งฉ Context & Goals](#-context--goals)
- [๐ ๏ธ Abilities-API Primer](#๏ธ-abilities-api-primer)
- [๐ MCP Adapter & Server Setup](#-mcp-adapter--server-setup)
- [๐งช Demo & Troubleshooting](#-demo--troubleshooting)
- [๐๏ธ Notes](#๏ธ-notes)
- [๐ References](#-references-1)
- [๐ฃ๏ธ Paraphrase](#๏ธ-paraphrase)
- [๐ฐ Newsletter](#-newsletter)
- [โ
Action Items](#-action-items)
- [๐งช Hypotheses](#-hypotheses)
- [๐ Methodology](#-methodology)
- [โ Questions](#-questions)
- [๐ฎ Future Research](#-future-research)
- [๐ก Implications](#-implications)
- [๐ง Learning Styles Assessment](#-learning-styles-assessment)
- [๐ Accessibility Assessment](#-accessibility-assessment)
- [๐ DEIB Assessment](#-deib-assessment)
- [โ
Logical validity + Tone](#-logical-validity--tone)
- [๐ก๏ธ DARVO Analysis](#๏ธ-darvo-analysis)
- [๐ SEO Evaluation](#-seo-evaluation)
- [๐ฏ Conclusion](#-conclusion)
### ๐ References: Include a list of sources consulted and cited in the article.
- ๐ฅ Video: https://www.youtube.com/watch?v=P2Ti-GZ7Y-U
- ๐ WP REST API Handbook: https://developer.wordpress.org/rest-api/
- ๐งฉ WP Plugin Handbook (structuring plugins): https://developer.wordpress.org/plugins/
*(External docs for background context; the core facts below cite the video timestamps.)*
---
## ๐ Summary:
The livestream previews a **WordCamp US** workshop showing how to connect a local WordPress site to **Model Context Protocol (MCP)** using a new **WordPress MCP Adapter** and the emerging **Abilities API**. Jonathan walks through installing the Abilities API as a plugin, registering a custom ability, spinning up an **MCP server** in a custom plugin, and wiring clients (e.g., VS Code) to call WordPress โabilitiesโ as MCP tools. He covers **Composer** requirements, **application passwords**, **NVM/NPX path gotchas**, and **local SSL** quirks. A working test fetches the first 10 URLs from the local site via the exposed ability.
---
## ๐ Main Content:
### ๐งฉ Context & Goals
- ๐ **Workshop aim**: connect local WordPress โ MCP, showcase **Abilities API** as the registry/executor for actions. ([03:06โ05:01](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=186))
- ๐ **MCP adapter status**: first stable version committed โthis week.โ ([03:56โ04:13](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=236))
- ๐ฏ **Session goal**: update existing โList URLsโ plugin to the Abilities API and prove MCP end-to-end. ([06:18โ07:08](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=378))
### ๐ ๏ธ Abilities-API Primer
- ๐ง **Why**: WordPress lacked a structured registry for โabilitiesโ usable by PHP, REST, and AI tooling. ([12:23โ13:16](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=743))
- ๐งฐ **What it provides**: register, list, and **execute** named abilities with **input/output schemas** and **permission callbacks**โplus **built-in REST** routes to run them. ([12:59โ14:13](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=779))
- ๐ **API shift**: older โFeature APIโ โ new **Abilities API**; use `label`, `description`, `input_schema`, `output_schema`, `execute_callback`, `permission_callback`. No more โtype.โ ([22:15โ23:08](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=1335))
### ๐ MCP Adapter & Server Setup
- ๐งฉ **Custom plugin** hosts an **MCP server**: define server ID, namespace, routes; list abilities to expose as MCP tools. ([31:36โ33:32](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=1896), [44:40โ45:31](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=2680))
- ๐ฆ **Composer** needed when installing via package; manual copy still needs vendor deps (autoload). Include `vendor/autoload.php`. ([47:52โ49:13](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=2872))
- ๐ **Auth**: use **Application Passwords** for now. ([47:52โ48:10](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=2872))
- ๐งญ **VS Code config**: workspace `mcp.json` with server command (often `npx`), API URL, username, application password, optional log path. Use **full NPX path** if NVM makes trouble. ([56:31โ57:29](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=3391))
### ๐งช Demo & Troubleshooting
- ๐งช **Test**: ask client to fetch โfirst 10 URLsโ via the registered ability; success after giving the server a **clear name** recognizable to the client. ([59:37โ61:44](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=3577))
- ๐ **Local SSL**: add โallow insecure local certsโ flag in MCP config when using self-signed dev certs. ([58:38โ59:37](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=3518))
- ๐ **Wrap-up**: next steps include slides and more examples. ([67:00โend](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=4020))
---
### ๐๏ธ Notes
- ๐ **Kickoff** ([02:22โ03:08](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=142))
- ๐๏ธ *Context*: Early stream; preparing for **WordCamp US** workshop.
- ๐งญ *Plan*: Connect local WP โ **MCP**, wire **Abilities API**, integrate with editors.
- ๐ **MCP adapter first stable** ([03:56โ04:13](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=236))
- ๐ *Status*: Committed โthis week.โ Canonical plugin for WP MCP integration.
- ๐ฆ *Access*: Repo available; testing and README fixes underway.
- ๐งฉ **Abilities API rationale** ([12:23โ14:13](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=743))
- ๐ง *Need*: Central registry of capabilities for PHP/REST/AI.
- ๐งฐ *Run via REST*: `/wp-json/wp/v2/abilities` list; โrunโ endpoint executes callbacks.
- ๐ *Auth*: Requires authenticated user (e.g., Application Passwords).
- ๐ **From Features โ Abilities** ([22:15โ24:56](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=1335))
- ๐งพ *Schema*: `label`, `description`, `input_schema`, `output_schema`, `execute_callback`, `permission_callback`, `meta`.
- โ๏ธ *API diffs*: No โtypeโ; `execute_callback` naming; ordered arrays for readability.
- ๐ **Registering an ability** ([26:01โ27:05](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=1561))
- ๐๏ธ *Hook*: Register on `abilities_api_init`.
- ๐งช *Example*: โList URLsโ ability accepts `post_type` + `limit`, returns array.
- ๐งฑ **Building the MCP server plugin** ([31:36โ33:32](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=1896))
- ๐งฉ *Plugin header*: Standard WP plugin bootstrap.
- โ๏ธ *Config*: Server ID, namespace (`ai-experiments`), REST transport, version.
- ๐ฆ **Composer vs manual** ([34:55โ36:02](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=2095), [47:52โ49:13](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=2872))
- ๐งท *Reality*: Manual copy still needs dependencies โ run Composer to build `vendor/`.
- ๐ *Fix*: `require __DIR__.'/vendor/autoload.php';`
- ๐ฅ๏ธ **Client configuration (VS Code)** ([56:31โ57:29](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=3391))
- ๐งญ *mcp.json*: `servers[]` with command, args, env (API URL, username, app password).
- ๐ฃ๏ธ *NVM tip*: Use full path to **npx**.
- ๐งช *Logging*: Set `LOG_DIR` to plugin path for debugging.
- ๐ **Local SSL tip** ([58:38โ59:37](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=3518))
- ๐งช *Flag*: Allow self-signed certs for dev environments in the MCP client config.
- โ
**Working run** ([59:37โ61:44](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=3577))
- ๐ *Request*: โFetch first 10 URLs.โ
- ๐งญ *Gotcha*: Clear **server name** helps the client resolve the right tools.
- ๐ *Outcome*: Tool returns the expected list.
- ๐งพ **Close** ([67:00โend](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=4020))
- ๐งฐ *Next*: Slides, more examples; possibly Composer guidance for workshop.
---
## ๐ References:
- ๐ฅ **Primary**: *WCUS Prep: MCP Adapter and Abilities API* โ https://www.youtube.com/watch?v=P2Ti-GZ7Y-U
- ๐ **Background**: WP REST API โ https://developer.wordpress.org/rest-api/
- ๐ **WP Plugins**: https://developer.wordpress.org/plugins/
---
## ๐ฃ๏ธ Paraphrase:
- โ๏ธ *On the Abilities API purpose* ([12:23โ13:16](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=743))
**Original idea**: WordPress needed a structured registry of core abilities usable in PHP and via REST, which AI tools can also call.
**Paraphrase**: WordPress lacked a consistent way to declare and invoke capabilities. The Abilities API fills that gap with a single registry, callable from PHP, REST, and AI clients.
- โ๏ธ *On Composer reality* ([47:52โ49:13](https://www.youtube.com/watch?v=P2Ti-GZ7Y-U&t=2872))
**Original idea**: Even a โmanualโ MCP adapter install still requires Composer for dependencies and autoloading.
**Paraphrase**: Copying files alone isnโt enough. You still need Composer to pull vendor libraries and include the autoloader for the adapter to work.
---
## ๐ฐ Newsletter:
**MCP meets WordPress: editor tools that call your siteโs abilities**
This week weโre geeking out on **Model Context Protocol** for WordPress. In a fresh WCUS prep stream, Jonathan Bossenger shows how the **Abilities API** lets you register named actions with input/output schemasโthen expose them as **MCP tools**. The payoff: your editor (VS Code, Cursor) can run site-specific tasks like โlist URLsโ safely, with proper auth and REST routes. Expect a few dev quirks (๐ **Composer**, **NVM/NPX paths**, **local SSL flags**), but the flow works end-to-end.
Links: Video โถ๏ธ https://www.youtube.com/watch?v=P2Ti-GZ7Y-U โข WP REST API ๐ https://developer.wordpress.org/rest-api/
Tip: Start with one small ability (e.g., fetch post slugs) and wire it to MCP before you scale.
---
## โ
Action Items:
- ๐งญ **Advocacy framing (for Courtney / OSPO track):**
- ๐ *Education*: Turn this into a hands-on lab for contributors: โRegister one ability, expose it via MCP, call it from VS Code.โ
- ๐ก๏ธ *Governance*: Define **permission_callback** standards, app-password policies, and logging defaults for MCP servers.
- ๐ *Metrics*: Track โabilities registered,โ โMCP tool invocations,โ and โmean time to create a secure ability.โ
- ๐ *Sustainability*: Publish a **starter plugin template** with Composer scaffolding and scripts; maintainers can fork and ship.
- ๐ *WordPress ecosystem*: Propose a **Training Team module**: โAbilities API 101 + MCP Client Setup.โ
- ๐งญ *OSPO path*: Draft an **internal guideline** mapping abilities to safe scopes (read-only vs mutating), plus review gates.
- ๐งฉ **Reusable prompt for future articles (alignment checklist):**
โExtract the articleโs concrete **contributor workflows** and map them to:
1) onboarding tasks, 2) governance/permissions, 3) funding or ops time saved, 4) DEIB in docs, 5) OSPO metrics.
Then propose a 90-day pilot for WordPress + GoDaddy with clear exit criteria and public progress reporting.โ
---
## ๐งช Hypotheses:
- ๐ฌ Adding the Abilities API reduces **custom REST endpoint** code by โฅ30% for plugin authors.
- ๐ Projects that adopt **permission_callback** patterns see fewer auth bugs during code review.
- ๐งฐ Teams with a ready MCP server template cut editor-tool integration time by โฅ50%.
### ๐ Methodology:
- ๐งช **Design**: Before/after repo analysis across 5โ10 plugins.
- ๐ **Data**: Lines of code for endpoints, PR review comments, time to first successful MCP call.
- ๐งฎ **Analysis**: Diff stats, issue tagging, Wilcoxon test on cycle times.
- ๐ **Reporting**: Public dashboard with anonymized metrics.
### โ Questions:
- ๐งฉ Which โabilityโ categories should be **core examples** (read-only vs write)?
- ๐ Whatโs the safest default auth for local + cloud editor flows?
- ๐งฐ How can Training Team materials minimize **Composer friction** for newcomers?
### ๐ฎ Future Research:
- โ๏ธ Standardize **ability schema** patterns for common WordPress tasks.
- ๐งช Explore **token-scoped** alternatives to app passwords for MCP.
- โ๏ธ Package a **hosted** MCP relay for contributors without local SSL.
### ๐ก Implications:
- ๐งโ๐ซ **Education**: Lower barrier to automating site tasks from editors.
- ๐งฑ **Architecture**: Converges PHP, REST, and AI clients on one registry.
- ๐ **Security**: Normalizes permission checks and logging.
---
### ๐ง Learning Styles Assessment:
- ๐ **Readability**: Early college. Jargon appears (MCP, schemas, callbacks).
- ๐ผ๏ธ **Visual**: Few visuals. โ Add diagrams: โEditor โ MCP โ WP REST โ Ability.โ
- ๐ง **Aural**: Livestream audio helps auditory learners. โ Provide a short audio recap.
- โ๏ธ **Verbal**: Clear narration. โ Add glossary for MCP terms.
- ๐งช **Kinesthetic**: Strong hands-on coding. โ Provide copy-paste starter repo.
- ๐ข **Logical**: Step sequences are present. โ Include checklists per step.
- ๐งโ๐คโ๐ง **Social**: Stream encourages Q&A. โ Link to discussion forum/Slack.
- ๐ฑ **Naturalistic**: Not applicable. โ Use real-world analogies sparingly.
---
### ๐ Accessibility Assessment:
- ๐ง **Screen readers**: YouTube UI is accessible; code on screen needs verbal description. โ Add captions (auto + reviewed).
- โจ๏ธ **Keyboard**: YouTube keyboard shortcuts exist. โ Provide chapter markers for quick navigation.
- ๐จ **Contrast**: Ensure editor theme has high contrast.
- ๐ **Text resizing**: Share code snippets in repo with proper Markdown for zooming.
---
### ๐ DEIB Assessment:
- ๐ **Cultural relevance**: Topic is global; examples are dev-centric. โ Include scenarios from diverse hosting setups.
- ๐ฃ๏ธ **Inclusive language**: Neutral. โ Define acronyms; avoid insider shorthand.
- ๐ง **Neurodiversity**: Linear steps help. โ Publish a written step list with checkboxes.
- ๐ฅ **Representation**: Single presenter. โ Invite community PRs/examples from diverse contributors.
- ๐ **Psychological safety**: Encouraging tone. โ Add a code of conduct link for the workshop.
---
### โ
Logical validity + Tone:
- ๐ง **Tone**: Friendly, candid, practical. Light humor; focuses on outcomes.
- ๐งฉ **Sound reasoning**: Shows **cause โ effect** (e.g., add autoload โ class resolves) with live feedback.
- ๐ **Evidence**: Demonstrates working ability call and REST endpoints.
- โ ๏ธ **Weaknesses**:
- *Generality*: Assumes Composer availability; addresses but doesnโt resolve.
- *Inference risk*: โManual installโ sounds Composer-free but still needs vendor libs.
- ๐งญ **Improvements**: Provide an official **no-Composer zip** pre-built for workshops.
---
## ๐ก๏ธ DARVO Analysis:
- ๐
**Deny**: None. Presenter openly notes issues (Composer, SSL).
- ๐ฏ๏ธ **Attack**: None. No disparaging of critics; only tools/process notes.
- ๐ **Reverse Victim/Offender**: None. No blame shifting.
- ๐งฉ **Conclusion**: No DARVO patterns; communication is transparent and problem-solving.
---
### ๐ SEO Evaluation:
*(YouTube-focused)*
- ๐ **Keywords**: โWordPress MCP,โ โAbilities API,โ โModel Context Protocol,โ โVS Code,โ โREST API.โ
- ๐ท๏ธ **Title**: Clear; consider โWCUS Prep: WordPress Abilities API + MCP Adapter (Live Demo)โ.
- ๐ **Description**: Add step list, repo links, and chapters with timestamps.
- ๐งฑ **Chapters**: Add YouTube chapters matching the timecodes above.
- ๐ **Links**: Include WP docs and any example repo.
- ๐ผ๏ธ **Thumbnail**: High-contrast, readable text (โMCP + WordPressโ).
- ๐ฑ **Mobile**: Ensure title fits on small screens.
- ๐๏ธ **Schema**: YouTube handles VideoObject; ensure chapters via timestamps.
- ๐ฃ **Engagement**: Add pinned comment with commands/config snippets.
---
## ๐ฏ Conclusion:
This WCUS prep stream proves a clean path to wire **WordPress abilities** into **editor tools** via **MCP**. The **Abilities API** centralizes capability registration and execution; the **MCP adapter** exposes them as tools your editor can call. Yes, youโll wrangle **Composer**, **NPX paths**, and **local SSL**, but the result is powerful: reproducible, permissioned, editor-driven automation for WordPress development.
<!-- deep-read:sections end -->
[[3. Resources/Readwise/Full Document Contents/Articles/WCUS Prep MCP Adapter and Abilities API|Full Document Contents]]
## Highlights
- Iโm doing this today and not weeks ago is because the first stable version of the MCP adapter literally was committed this week. ([View Highlight](https://read.readwise.io/read/01k31svrn4j8d8s877ksebhz5w))