Abilities API
🔗 **Source:** [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU)
> [!note]+ Document Notes
> tags: [WordPress, Abilities-API, MCP]
> author: Merlin AI
> source: YouTube
> reference: [https://www.youtube.com/watch?v=m19VM2yIbHU]
> date created:
>
> # 🏷️ Title: Abilities API
>
<!-- deep-read:sections start -->
## 🧰 Action Inbox
- [H1] Map Abilities API to MCP tools — context/https://github.com/WordPress/abilities-api #articleseed
- [H2] Draft governance note on permissions callbacks — context/https://github.com/WordPress/abilities-api #addendum
- [H3] Build demo plugin exposing two safe abilities — context/https://github.com/WordPress/abilities-api #articleseed
- [H4] Test REST exposure flags in staging — context/https://github.com/WordPress/abilities-api #xref
- [H5] Sketch Workflows API chain example for posts — context/https://github.com/WordPress/wordpress-develop #articleseed
- [H6] Share MCP adapter setup gist with The WPOCC — context/https://github.com/WordPress/ai-experiments #share
- [H7] Compare server vs client abilities in DX doc — context/https://modelcontextprotocol.io #xref
- [H8] Write incident note on input schema validation — context/https://github.com/WordPress/abilities-api #articleseed
- [H9] Cross-reference OSPO policy on application passwords — context/https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/ #xref
- [H10] Invite maintainers to workflow clinic session — context/https://make.wordpress.org/ #share
- [H11] Note aphorism: “Describe first, execute second.” — context/Video #aphorisms
- [H12] Park bmf: TX-generated block for Mermaid previews — context/https://tx.sh/ #bmf
## 🧭 Table of Contents
- [📝 Summary](#-summary)
- [📖 Main Content](#-main-content)
- [🗒️ Notes](#️-notes)
- [📚 References](#-references)
- [🗣️ 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](#-logical-validity)
- [🛡️ DARVO Analysis](#-darvo-analysis)
- [🎯 Conclusion](#-conclusion)
### 🔗 References
- WordPress Abilities API repository and docs: https://github.com/WordPress/abilities-api
- MCP (Model Context Protocol): https://modelcontextprotocol.io
- WordPress REST API auth guide: https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
- WordPress Developer Blog and Make: https://make.wordpress.org/
- TX block generator: https://tx.sh/
- A2A agent protocol overview: https://blog.langchain.dev/agent-to-agent-protocol/ *(third-party; availability may vary)*
- Video source: https://www.youtube.com/watch?v=m19VM2yIbHU
## 📝 Summary
- The stream explores the WordPress Abilities API.
- The API standardizes capability descriptions for tools and workflows.
- Stakeholders include core, plugin authors, AI tool vendors, and The WPOCC.
- Risks involve permission errors, schema mismatches, and REST exposure gaps.
- Bottom line: describe abilities cleanly, gate them correctly, then compose workflows.
## 📖 Main Content
- The Abilities API registers named abilities with schemas and permissions.
- MCP adapters expose those abilities as tools for agents.
- Workflows chain abilities into user-facing commands.
- Input and output schemas support validation and safety.
- REST exposure is opt-in via flags; authentication is required.
- Server abilities run in PHP; client abilities run in JavaScript.
- The architecture separates description from transport.
- This allows future protocols beyond MCP.
- The stream demonstrates registration, execution, and common pitfalls.
- Common pitfalls include missing categories and invalid input objects.
- Another pitfall is forgetting REST exposure when testing from JS.
- App passwords are required for remote access via MCP.
- These choices improve interoperability and safety across plugins.
- Uncertainties remain around evolving docs and final 6.9 scope.
- The approach aligns with sustainable governance and OSPO needs.
### 🗒️ Notes
#### ⏱️ [00:07:58](https://www.youtube.com/watch?v=m19VM2yIbHU&t=478) Abilities describe actions for AI use
### [H1] Abilities describe actions for AI tools
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “The abilities API defines what abilities of actions WordPress can execute via AI.”
Enables consistent tooling across plugins and agents. Validates inputs and permissions.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU&t=478) #xref #articleseed ID:rw_vid_478
#### ⏱️ [00:09:51](https://www.youtube.com/watch?v=m19VM2yIbHU&t=591) MCP adapter exposes tools
### [H2] MCP adapter exposes abilities as tools
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “We need an extra layer which is the MCP adapter… exposing them as tools.”
Clarifies transport separation. Keep descriptions protocol-agnostic.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU&t=591) #xref ID:rw_vid_591
#### ⏱️ [00:26:57](https://www.youtube.com/watch?v=m19VM2yIbHU&t=1617) Workflows chain abilities
### [H3] Workflows chain abilities into commands
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “Chaining commands together… output of one ability is connected to the input of another.”
Supports multi-step admin tasks and guided flows.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU&t=1617) #articleseed ID:rw_vid_1617
#### ⏱️ [00:25:57](https://www.youtube.com/watch?v=m19VM2yIbHU&t=1557) Categories are required
### [H4] Abilities require a category assignment
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “Each ability must belong to exactly one category.”
Aids discovery, grouping, and UI surfacing.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU&t=1557) #xref ID:rw_vid_1557
#### ⏱️ [00:24:05](https://www.youtube.com/watch?v=m19VM2yIbHU&t=1445) Schemas and permissions
### [H5] Schemas validate inputs; callbacks gate execution
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “Input and output schemas… and a permission callback.”
Establishes safety and predictable behavior.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU&t=1445) #xref #articleseed ID:rw_vid_1445
#### ⏱️ [02:02:20](https://www.youtube.com/watch?v=m19VM2yIbHU&t=7340) REST is opt-in
### [H6] REST exposure is an explicit ability flag
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “By default… not exposed via the REST API.”
Set `show_in_rest: true` to execute from JS.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU&t=7340) #xref ID:rw_vid_7340
#### ⏱️ [01:44:48](https://www.youtube.com/watch?v=m19VM2yIbHU&t=6288) Execution callback details
### [H7] Execute callbacks must match schema contracts
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “The properties must contain a valid execute callback function.”
Return types must match declared output.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU&t=6288) #xref ID:rw_vid_6288
#### ⏱️ [02:06:33](https://www.youtube.com/watch?v=m19VM2yIbHU&t=7593) Input object gotcha
### [H8] Empty input must still be an object
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “Input is not of type object.”
Use `{}` when no fields are required.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU&t=7593) #articleseed ID:rw_vid_7593
#### ⏱️ [02:21:54](https://www.youtube.com/watch?v=m19VM2yIbHU&t=8514) MCP auth
### [H9] Application passwords enable remote MCP access
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “It should be an application password.”
Use per-user app passwords for the MCP client.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU&t=8514) #xref ID:rw_vid_8514
#### ⏱️ [01:18:31](https://www.youtube.com/watch?v=m19VM2yIbHU&t=4711) Client vs server abilities
### [H10] Client abilities run in JS; server in PHP
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “Execute server-side PHP abilities… register client-side JavaScript abilities.”
Pick the right runtime for the task.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU&t=4711) #xref ID:rw_vid_4711
## 📚 References
- WordPress Abilities API (repo): https://github.com/WordPress/abilities-api
- Model Context Protocol: https://modelcontextprotocol.io
- WordPress REST Authentication: https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
- TX block generator: https://tx.sh/
- Video: https://www.youtube.com/watch?v=m19VM2yIbHU
## 🗣️ Paraphrase
- Abilities standardize what WordPress components can do for tools and agents. MCP then exposes those abilities.
- Schemas and permissions keep execution safe. Workflows will chain abilities into repeatable admin tasks.
## 📰 Newsletter
- WordPress 6.9 work adds an Abilities API for structured actions.
- MCP adapters turn abilities into agent tools with guardrails.
- Try a demo plugin that exposes a read-only site info ability.
- Then add `show_in_rest: true` and call it from the editor console.
- Helpful links: Abilities repo, MCP docs, REST auth guide.
## ✅ Action Items
#### DevRel
- Publish a tutorial: register ability, expose via REST, call from JS.
- Record a quick-start screencast using a safe read-only ability.
- Add a sample app to the GoDaddy WordPress toolkit.
#### OSPO
- Document permission callback patterns and reviewer checklists.
- Require schemas and tests before enabling destructive abilities.
- Track MCP usage and app password hygiene in audits.
#### Community
- Run a workflow clinic on chaining common admin tasks.
- Host a “first ability” pairing for new contributors.
- Share success stories through Make posts and meetups.
#### WordPress
- Core: finalize category taxonomy and naming conventions.
- Playground: add an Abilities API sandbox recipe.
- Documentation: include REST exposure pitfalls and examples.
- Training: create lessons on schemas and safe execution.
- Meta: surface abilities in DevHub once stable.
#### The WPOCC
- Pilot maintainer stipends for workflow templates.
- Fund microgrants for documentation sprints on abilities.
- Publish transparent ledgers for funded abilities work.
### FAIR
- Define provenance for ability definitions and versioning.
- Create covenants for destructive operations with sunset clauses.
- Ship operator agreement templates for hosted MCP servers.
## 🧪 Hypotheses
- Clear schemas reduce execution errors by at least 50%.
- Categories improve ability discovery in tools by 30%.
- REST exposure defaults reduce accidental public endpoints.
- Workflow templates increase reuse across teams by 40%.
### 📊 Methodology
- Compare error rates before and after schema enforcement.
- A/B test discovery with and without category tags.
- Scan endpoints for exposure flags across sample sites.
- Track workflow template adoption and time to task completion.
### ❓ Questions
- Should destructive abilities require explicit user confirmation?
- How should multi-tenant hosts gate MCP tools safely?
- What telemetry best reflects ability usefulness without PII?
### 🔮 Future Research
- Standardize ability categories across core and popular plugins.
- Prototype a Workflows API with human-in-the-loop steps.
- Evaluate A2A for remote agent orchestration in WordPress.
### 💡 Implications
- Better onboarding for contributors and maintainers.
- Safer automation for hosts and enterprises.
- Clearer governance for AI-driven operations in WordPress.
### 🧠 Learning Styles Assessment
- Reading level estimate: Flesch-Kincaid Grade ~10–11.
#### 👀 Visual learners
- Present: diagrams in slides and repos.
- Improve: sequence diagrams for tool calls.
#### 🔊 Aural learners
- Present: livestream talk-throughs.
- Improve: 3-minute audio summaries.
#### 🗣️ Verbal learners
- Present: definitions and examples.
- Improve: glossary with code snippets.
#### 🧩 Kinesthetic learners
- Present: plugin demos.
- Improve: guided labs in Playground.
#### 🧠 Logical learners
- Present: schemas and validation logic.
- Improve: decision trees for permissions.
#### 🧑🤝🧑 Social learners
- Present: chats and Q&A.
- Improve: cohort-based learning sprints.
#### 🧘♀️ Solitary learners
- Present: written docs.
- Improve: self-check quizzes.
#### 🌿 Naturalistic learners
- Present: sustainability links minimal.
- Improve: lifecycle and carbon notes for hosting.
### 📊 Accessibility Assessment
#### Screen reader semantics
- Present: headings and landmarks in docs.
- Improve: alt text and language attributes.
#### Keyboard navigation
- Present: basic focus states.
- Improve: remove traps; ensure reachability.
#### Contrast and readability
- Present: adequate contrast in samples.
- Improve: line-height and large-text checks.
#### Text resizing and reflow
- Present: responsive docs.
- Improve: prefer-reduced-motion support.
#### Media and captions
- Present: YouTube captions.
- Improve: downloadable transcripts.
#### Forms and interactions
- Present: basic labels in demos.
- Improve: inline validation and target sizes.
#### Standards reference
- Map gaps to WCAG 2.2 AA criteria.
### 🌍 DEIB Assessment
#### Cultural breadth
- Present: global community context.
- Improve: more non-English examples.
#### Inclusive language
- Present: neutral terminology.
- Improve: expand glossaries and plain-language notes.
#### Neurodiversity support
- Present: chunked content via sections.
- Improve: predictable patterns and icon+text labels.
#### Representation
- Present: varied contributor mentions.
- Improve: balanced quoting across regions.
#### Psychological safety
- Present: respectful framing.
- Improve: explicit moderation and escalation paths.
### ✅ Logical Validity
#### Strong reasoning
- Separation of description and transport improves future-proofing [H2].
- Schema validation reduces runtime errors and clarifies inputs [H5], [H8].
- Categories aid discoverability and tooling composition [H4], [H3].
#### Fallacies
- None prominent; claims remain bounded and evidence-based.
- Avoid overgeneralizing from a single demo; note evolving docs.
#### Tone of voice
- Exploratory, candid about blockers, and oriented toward practice.
### 🛡️ DARVO Analysis
- Deny: no denial patterns observed.
- Attack: no personal attacks observed.
- Reverse victim/offender: not present.
- Discourse focuses on debugging and learning.
## 🎯 Conclusion
- The Abilities API formalizes what WordPress can do.
- MCP exposes those abilities as safe, validated tools.
- Workflows will chain them into efficient flows.
- Next steps: ship demos, finalize docs, and fund maintainer time through The WPOCC.
## 🔖 Zettel Candidates
- **Abilities describe actions for AI tools** — Core idea; enables tool ecosystems. https://github.com/WordPress/abilities-api
Links: [[MCP adapter exposes abilities as tools]] [[REST exposure is an explicit ability flag]]
- **MCP adapter exposes abilities as tools** — Transport layer, protocol-agnostic by design. https://modelcontextprotocol.io
Links: [[Abilities describe actions for AI tools]] [[Client abilities run in JS; server in PHP]]
- **Workflows chain abilities into commands** — Compose multi-step tasks with inputs. https://github.com/WordPress/wordpress-develop
Links: [[Schemas validate inputs; callbacks gate execution]] [[REST exposure is an explicit ability flag]]
- **Abilities require a category assignment** — Improves discovery and UI grouping. https://github.com/WordPress/abilities-api
Links: [[Workflows chain abilities into commands]]
- **Schemas validate inputs; callbacks gate execution** — Safety and predictability. https://github.com/WordPress/abilities-api
Links: [[Empty input must still be an object]]
- **REST exposure is an explicit ability flag** — Prevents accidental public endpoints. https://developer.wordpress.org/rest-api/
Links: [[Client abilities run in JS; server in PHP]]
- **Empty input must still be an object** — `{}` even when no fields exist. https://github.com/WordPress/abilities-api
Links: [[Schemas validate inputs; callbacks gate execution]]
- **Client abilities run in JS; server in PHP** — Choose runtime by task needs. https://github.com/WordPress/abilities-api
Links: [[MCP adapter exposes abilities as tools]]
- **Application passwords enable remote MCP access** — Safer auth for tooling. https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
Links: [[MCP adapter exposes abilities as tools]]
## 🏷️ Tag Coverage
#articleseed: 4 • #xref: 3 • #share: 2 • #bmf: 1 • #addendum: 1 • #aphorisms: 1
## 🧱 Refactor Appendix (append after 🎯 Conclusion)
### 📚 Literature Split Pad
- Purpose: Stage Konik CEE units that become per-source Literature notes.
- Split level: **H3**.
- Include verbatim quotes under 25 words and a [view highlight] link.
### [H1] 5–10-word present-tense claim
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU) by [[Merlin AI]] via [[YouTube]]. Published [MISSING]. Accessed .
> “Short quote, verbatim, ≤25 words.”
Two lines: context and use. Cite data if relevant.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU#H1) #xref #articleseed ID:rw_[MISSING]
### [H2] 5–10-word present-tense claim
> [!quote] [Abilities API](https://www.youtube.com/watch?v=m19VM2yIbHU)
> “Short quote, verbatim, ≤25 words.”
Two lines: context and use.
[view highlight](https://www.youtube.com/watch?v=m19VM2yIbHU#H2) #xref ID:rw_[MISSING]
---
### 🔖 Atomic Split Pad (Zettel Candidates)
- Purpose: Promote reusable claims into Atomic notes.
- Split level: **H4**.
- Each item: one idea, present tense, specific, testable.
#### [Z1] 5–10-word present-tense claim
- Scope/condition in one line.
- Pointer to page/time or dataset.
- Links: [[Parent-Concept]] [[Related-Idea]]
#### [Z2] 5–10-word present-tense claim
- Scope/condition in one line.
- Pointer to page/time or dataset.
- Links: [[Parent-Concept]] [[Related-Idea]]
---
### ✏️ Fleeting Queue (Extract by Selection)
- Purpose: Capture quick actions or sparks for Fleeting notes.
- Extraction: **Select one line** → “Refactor: Extract selection to new note (content only).”
- Keep each line short and self-contained.
- [F1] Short action — context/https://www.youtube.com/watch?v=m19VM2yIbHU #fleeting #inbox
- [F2] Short action — context/https://github.com/WordPress/abilities-api #fleeting #inbox
- [F3] Short action — context/https://modelcontextprotocol.io #fleeting #inbox
---
<!-- deep-read:sections end -->