WCUS Prep: MCP Adapter and Abilities API ![rw-book-cover](https://i.ytimg.com/vi/P2Ti-GZ7Y-U/maxresdefault.jpg) ๐Ÿ”— **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))