How to Connect Claude AI to WordPress Using MCP

๐ **Source:** [How to Connect Claude AI to WordPress Using MCP](https://www.youtube.com/watch?v=5b9al9C3bMk)
> [!note]+ Document Notes
> tags: [wordpress-mcp, claude-desktop, abilities-api, application-passwords, ai-content-workflows]
> author: Brad Williams (WebDevStudios)
> source: WebDevStudios (YouTube)
> reference: https://www.youtube.com/watch?v=5b9al9C3bMk
> date created: 2026-10-18 15:17
>
> > [!info] Generated analysis โ not the author's words. Sections below are machine-written
> > from the captured source. Only text inside `> [!quote]` blocks is verbatim from the author.
> > Do not quote or attribute any other line to the named author.
>
> # ๐ท๏ธ Title: How to Connect Claude AI to WordPress Using MCP (Live Demo)
>
<!-- deep-read:sections start -->
## ๐งญ 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)
- [๐ Refactor appendix](#-refactor-appendix--how-to-connect-claude-ai-to-wordpress-using-mcp-live-demo)
## ๐ Summary
- **What happened.** WebDevStudios published an 11:05 (665 seconds) screen demo on 2026-03-13 in which Brad Williams, the only speaker named in the transcript and description, connects the Claude desktop app to a live WebDevStudios WordPress site through the WordPress MCP Adapter plugin and a small custom plugin that registers one WordPress ability. Claude then analyzes the site's recent posts on request. The auto-transcript is the only material analyzed here. I can't see the screen, so everything below about on-screen content is what the narration says is on screen.
- **Dating.** This is the oldest item in its batch. The upload date (2026-03-13) and the transcript are all that date the content, and the analysis was written on 2026-10-18, about seven months later. The speaker says WordPress 6.9 is current and 7.0 is "right around the corner." Treat these as possibly changed since upload: the WordPress release status, the MCP Adapter plugin's name, repository, requirements, and transport, the Claude desktop app's menu names (Settings, Developer, Edit config, Connectors), the config file format, and the claim of production readiness.
- **The claim.** Connecting an AI client to a live WordPress site is straightforward, gives the AI real-time access to site data, and is "production-ready" today. Setup, per the narration, is eight steps: install the adapter, add a custom ability plugin, create a low-privilege user, create an application password, paste a JSON config into Claude, restart Claude, start a new chat, check Connectors.
- **Commercial interest.** WebDevStudios sells WordPress design and development services. The speaker says the agency sets up an MCP user for its clients and is "sitting down with our clients" to integrate this for their marketing teams. The description calls the agency a premier WordPress design and development agency. No price, offer, or sign-up is stated in the transcript; the description asks viewers to subscribe for upcoming WordPress 7.0 content. The video is a capability demo that doubles as agency positioning, and the transcript never frames it that way.
- **Why it matters.** The video shows the shortest path from a WordPress site to an AI client: one adapter plugin, one ability, one user, one config file. It also shows the path's weak points in plain narration (an application password stored in a JSON config file, a cache, a file-write attempt that had to be stopped).
- **Key stakeholders.** WebDevStudios (publisher and service vendor), the WordPress Core AI team (named as builder and supporter of the adapter), Anthropic (maker of Claude), WordPress site owners whose content flows to the AI client, and the agency's clients.
- **Risks and tradeoffs.** The transcript states two guardrails (a contributor-role user and an application password) and states nothing about several others. Section "Main content" lists both sides. No Claude output is read aloud, so the quality of the analysis shown is unverifiable from the transcript.
- **Bottom line.** The setup steps are specific and internally consistent. The capability and safety claims rest on one read-only demo against the agency's own blog. "Production-ready" is an assertion in this source, not a result.
## ๐ Main content
**The core argument.** An AI client can query a live WordPress site if three things exist: an adapter plugin that exposes WordPress abilities over the Model Context Protocol, a plugin that registers the abilities you want exposed, and a WordPress user whose role limits what those abilities can touch. The speaker's pitch is that this replaces exports, copy-paste, and manual uploads with direct access to live data.
**The setup flow, as narrated.**
1. Install and activate the WordPress MCP Adapter plugin on the target site (00:03:38). The speaker calls it a requirement.
2. Install a custom plugin that registers an ability category and one ability, named in the captions WDS/get_posts. Its callback runs a WP_Query and returns the top 50 posts (00:04:21 to 00:05:03).
3. Create a user for MCP, role contributor, "They cannot publish" (00:05:03).
4. Generate an application password for that user, name it something like Claude MCP, copy it before leaving the screen because WordPress shows it once (00:05:46).
5. In Claude, open Settings, Developer, Edit config, and paste a JSON entry with a name, the site URL, the username, and the application password (00:06:29).
6. Restart Claude and start a new chat. The speaker says an existing chat won't connect (00:07:12).
7. Confirm the connection under Connectors, then prompt (00:07:12).
**What the demo shows on screen, per the narration.** The Claude interface with a WebDevStudios connector already set up (00:02:55), a Developer settings page listing the MCP server (00:02:55), a WordPress application-password screen with a freshly created password (00:05:46), and Claude chat responses to three prompts. Nothing in the transcript reads a Claude answer aloud. The listed gaps, the newsletter, and the title variations are described only in general terms, for example that Claude is starting to give ideas. I can't verify what Claude returned, whether its analysis was accurate, or whether any permission prompt appeared before tool calls.
**What I can't see.** The plugin code (the description says it's in a gist, which I did not open), the JSON config contents (the speaker declines to open the file), the application-password value on screen, any Claude tool-approval dialog, and the three Claude outputs.
**The three demo prompts.**
- Recent posts: which topics, which get the most detailed coverage, what gaps exist (00:07:12).
- Newsletter: read the latest post and generate a monthly digest. Claude began writing a file; the speaker stopped it (00:08:36).
- SEO: take the top five posts and propose title variations likely to rank (00:08:36).
**Claims about capability (speaker's statements, mostly undemonstrated).**
- Real-time access to live data. Partly demonstrated (Claude discovers and calls the ability). Qualified by the speaker's own cache caveat at 00:08:36.
- A post published tomorrow appears in tomorrow's run (00:05:03). Stated, not shown.
- Extension to metadata, pages, products, users, Google Analytics, HubSpot, and competitor comparisons (00:09:19 to 00:10:04). Framed as imagination ("imagine pulling in"), not demonstrated. No evidence in the transcript that the adapter or Claude can do any of those without further work.
- Available today, "production-ready" (00:10:47). Stated, no test scope, load, security review, or version matrix given.
**Security-relevant steps and what the transcript does and doesn't say.**
Which site:
- A live WebDevStudios production site ("my live website," "live data"). The transcript doesn't mention a staging site, a clone, or a backup before connecting.
Credentials:
- A dedicated user plus an application password, stated as the right choice over the user's own password (00:05:46, 00:06:29).
- The application password is shown on screen. The speaker says the password will be deleted after the video, then says it will be revoked now, "so it's gone" (00:05:46).
- The Claude config file holds the username and application password, by the speaker's description. The speaker declines to open the file on camera because "my live password is in here" (00:07:12). The transcript doesn't say whether that live password is the same one shown and revoked earlier or a different one, and doesn't say how the file is protected on disk or whether it is stored in plain text.
- The transcript doesn't discuss the site URL's scheme (HTTPS), IP restrictions, or rotation.
Permissions:
- Contributor role, which the speaker says can't publish. The speaker ties the user's "roles and capabilities" to what the connection can do (00:05:03).
- The transcript doesn't say what a contributor can read through the ability. Whether drafts, private posts, or other authors' content come back depends on the plugin code, which isn't read aloud. It doesn't say whether the ability has its own permission check.
- The transcript doesn't say whether the demo exposes any write ability. The speaker says the purpose here is "just pulling in information," and the only ability described is a read query.
What the AI receives:
- Post content from the site goes into the Claude conversation. The demo content is a public blog. The speaker suggests exposing users, an e-commerce system, a custom intranet, analytics data, and CRM data (00:02:11, 00:09:19), and says nothing about how private or personal data would be handled, what Anthropic does with conversation data, or what retention applies.
- The speaker warns that Claude "will sometimes save your content in the cache" (00:08:36). The transcript doesn't explain which cache or where.
Behavior the demo reveals:
- Claude started generating a file from the newsletter prompt, and the speaker interrupted it (00:08:36). The transcript doesn't say whether a file was written or where.
Guardrails stated:
- A low-privilege user, an application password instead of the account password, revocability, the ability list acting as the set of things exposed ("It allows you to register what you want to give these tools"), and the restart-plus-new-chat requirement (which is about connection, not safety).
Guardrails not mentioned:
- Prompt injection from post or comment text flowing into the model.
- Approval prompts for tool calls.
- Audit logs on the WordPress side.
- Rate limits.
- Network exposure of the adapter endpoint.
- Scoped (read-only) application passwords.
- A staging-first workflow.
- Who at an agency client's organization approves what is exposed.
**Contested and unverifiable in this source.** The description says the links are in the video; the speaker says they're in the YouTube comments (00:04:21). The caption text renders Claude as "Cloud" twice (00:03:38 and 00:05:03), a caption error. Chapter timestamps in the description match the metadata chapters, so navigation holds.
## ๐๏ธ Notes
Chapter times come from the description and metadata. The transcript's paragraph timestamps fall a few seconds either side of chapter starts, so some chapter material appears in the paragraph before it.
#### โฑ๏ธ [00:00:00](https://www.youtube.com/watch?v=5b9al9C3bMk&t=0) Introduction to WordPress, Claude, & Real-Time AI
- The opener promises a setup walkthrough and a live demo. Superlatives cluster here: truly mind-blowing, game-changer.
- Context set at 00:00:44: WordPress 6.9 is recent, 7.0 is close, and the demo shows how to hook Claude, a favorite tool of the speaker, to a WordPress site through the MCP adapter plugin.
- The speaker compares Claude to ChatGPT and Gemini as similar tools (00:00:44).
> [!quote] [00:00:00]
> No exports, no copy-paste, no manual uploads, no guessing, direct access to your live data.
#### โฑ๏ธ [00:01:06](https://www.youtube.com/watch?v=5b9al9C3bMk&t=66) What is the Model Context Protocol (MCP)?
- MCP is defined as an open-source standard for connecting AI applications to other systems. The definition spans the paragraph break at 00:01:28, so the quote below carries only the second half.
- The speaker frames it as a shared standard for how applications feed data to AI agents.
> [!quote] [00:01:28]
> In this case, that other system is going to be WordPress.
#### โฑ๏ธ [00:01:43](https://www.youtube.com/watch?v=5b9al9C3bMk&t=103) The WordPress MCP Adapter Plugin
- The adapter is described as built and supported by the WordPress Core AI team and other contributors, and hosted on GitHub. The description links https://github.com/WordPress/mcp-adapter.
- Its role: connect an MCP client to the WordPress Abilities API.
> [!quote] [00:01:28]
> There is a WordPress MCP adapter plugin available, built and supported by the WordPress Core AI team among other con- uh contributors.
#### โฑ๏ธ [00:02:11](https://www.youtube.com/watch?v=5b9al9C3bMk&t=131) Understanding the WordPress 6.9 Abilities API
- Abilities API: new in 6.9, described as letting you register specific data points and feed them into MCP and the AI tool.
- Examples of what an ability could expose: posts, pages, all content, users, a custom intranet, an e-commerce system.
- The speaker promises real-time conversations with live site data. Nothing in this chapter addresses access control.
> [!quote] [00:02:11]
> It allows you to register what you want to give these tools.
#### โฑ๏ธ [00:03:09](https://www.youtube.com/watch?v=5b9al9C3bMk&t=189) Configuring Claude to Connect to WordPress
- Claude UI tour: plus menu, Connectors, an existing WebDevStudios connector; Settings, Developer, MCP servers (00:02:55).
- Two halves to the setup: Claude side and WordPress side. The WordPress side comes first.
- Without registered abilities the connection succeeds but returns an empty list (00:03:38).
> [!quote] [00:03:38]
> We also need to create a custom plugin that registers abilities.
#### โฑ๏ธ [00:04:06](https://www.youtube.com/watch?v=5b9al9C3bMk&t=246) Creating a Custom Plugin to Register Abilities
- The plugin registers an ability category, then a post ability with label, description, and an execute callback (00:04:21).
- The callback is a WP_Query that returns 50 posts. The speaker says the posts come from the live site, so a new post shows up on the next run (00:05:03).
- The speaker says the plugin links are in the comments. The description lists a gist for the plugin and one for the config.
> [!quote] [00:04:21]
> we're doing a WP query pulling back the top 50 posts
#### โฑ๏ธ [00:05:26](https://www.youtube.com/watch?v=5b9al9C3bMk&t=326) Setting Up Secure User Roles & Application Passwords
- Recommended practice, stated as what the agency does for clients: a dedicated MCP user with minimal permissions, role contributor, "They cannot publish."
- The user's capabilities determine what the connection can do, per the narration at 00:05:03.
- Application password mechanics: give it a name, WordPress shows it once, revoke it from the same screen.
> [!quote] [00:05:46]
> I will delete this as soon as this video is done because you never want to publish this publicly.
#### โฑ๏ธ [00:06:23](https://www.youtube.com/watch?v=5b9al9C3bMk&t=383) Adding the Connection to Claude's JSON Config
- Four values to edit: a name, the site URL where the adapter is active, the username, the application password. The speaker flags the application password as the common sticking point.
- Path: Settings, Developer, Edit config opens the file. The speaker won't show it on camera because of a live password inside.
- Claude needs a restart and a new chat before it connects; the connection shows under Connectors.
> [!quote] [00:07:12]
> Now once you set this, you have to restart Claude. Claude will not make this connection until you restart it and create a new chat.
#### โฑ๏ธ [00:07:42](https://www.youtube.com/watch?v=5b9al9C3bMk&t=462) Live Demo: AI Content Analysis & SEO Optimization
- Prompt one (topics, depth of coverage, gaps): Claude discovers the ability and returns a breakdown. The speaker stresses this is the live ability, not a blog scrape.
- Prompt two (newsletter digest): Claude runs the ability again, and the speaker notes content may be cached. Claude begins writing a file and the speaker stops it.
- Prompt three (SEO): top five posts, title variations, ranking potential. The speaker says Claude starts giving ideas; the transcript carries no output.
- Extensions floated: Google Analytics for what holds attention, HubSpot, competitor gap analysis, SEO meta tag gap analysis (00:09:19, 00:10:04).
> [!quote] [00:07:55]
> It's not trying to analyze what it sees on my blog or read some feed. It is pulling exactly the ability I set up.
> [!quote] [00:08:36]
> It will sometimes save your content in the cache, so keep that in mind
#### โฑ๏ธ [00:10:39](https://www.youtube.com/watch?v=5b9al9C3bMk&t=639) The Future of Enterprise WordPress AI
- Closing claims: available on WordPress 6.9 now, production-ready, being discussed with clients for marketing workflows.
- No wrap-up of risks, no pointer to the gists, no call to action in the transcript. Outro music ends it.
> [!quote] [00:10:47]
> This is production-ready. We're sitting down with our clients.
## ๐ References
The transcript itself contains no links; the following come from the video description or are primary sources for named entities. I did not open any of them.
- [How to Connect Claude AI to WordPress Using MCP (Live Demo)](https://www.youtube.com/watch?v=5b9al9C3bMk): the source video, 11:05, uploaded 2026-03-13 by WebDevStudios.
- [WordPress MCP Adapter](https://github.com/WordPress/mcp-adapter): the adapter plugin the speaker shows on GitHub; linked in the description. Check the repository for current requirements and version, because the demo is seven months old.
- [Custom MCP plugin (gist)](https://gist.github.com/williamsba/1be798d8c9cd1b72d23959c0a7548271): the ability-registering plugin; described in the description as editable. Review its permission handling before use. Not read for this analysis.
- [Custom claude-desktop-config-example.json (gist)](https://gist.github.com/williamsba/3f0a539b136a740cda46351b2418407f): the config example from the description. Not read for this analysis.
- [WordPress 6.9: new for developers](https://wordpress.com/blog/2025/12/03/wordpress-6-9-new-for-developers/): the description's pointer for the 6.9 Abilities API.
- [WebDevStudios](https://www.webdevstudios.com): the publisher, listed in the description.
- [Model Context Protocol](https://modelcontextprotocol.io): primary source for the protocol the speaker defines. Not linked in the transcript or description.
- WordPress core documentation on Application Passwords: primary source for the credential type used. No URL is given in the source.
- Anthropic's Claude desktop app documentation: primary source for the Developer settings, config file, and Connectors screens. No URL is given in the source.
## ๐ฃ๏ธ Paraphrase
The presenter's pitch is that a WordPress site can hand live content to an AI client without exports or copy-paste. A free adapter plugin bridges the AI client's protocol to WordPress's new Abilities API, and you decide what to expose by registering abilities. The demo exposes exactly one: a query that returns 50 posts.
Setup mixes WordPress work with desktop-app work. On the site, you install the adapter and the ability plugin, then create a user with a contributor role and an application password so the AI connects with limited rights instead of a full account. In Claude, you paste the site URL, the username, and the application password into a JSON config, restart the app, and open a new chat.
With the connection live, the presenter asks Claude to survey topics and gaps, draft a newsletter digest, and suggest better titles. The presenter then lists directions that weren't tried on camera: analytics, a CRM, competitors, SEO meta fields. The closing statement is that this works today and that the agency is discussing it with clients.
## ๐ฐ Newsletter
**One ability, one low-privilege user, one JSON file.** WebDevStudios' 11-minute demo shows how short the path is from a WordPress site to an AI client. Install the MCP Adapter, register an ability (the demo's returns the top 50 posts), create a contributor-role user with an application password, paste the details into Claude's config, restart, and ask questions about your own content.
What's worth taking from it: the Abilities API in 6.9 acts as a menu of what an AI may reach, and the user role behind the application password sets the ceiling. What's worth checking before you copy it: the demo runs against the agency's own live blog, exposes read-only data, and leaves out injection risk, logging, and where the password sits on disk. The speaker also says content may be cached, which sits uneasily next to the real-time claim. WebDevStudios sells WordPress services, so read the production-ready line as a pitch to prospective clients until you've tested it.
Links: [the video](https://www.youtube.com/watch?v=5b9al9C3bMk), [WordPress MCP Adapter](https://github.com/WordPress/mcp-adapter), [WordPress 6.9 developer notes](https://wordpress.com/blog/2025/12/03/wordpress-6-9-new-for-developers/).
## โ
Action items
#### DevRel
- Developer advocacy: reproduce the demo on a clone, not a live site, and publish the steps with the missing items added: an HTTPS check, a read-only user, and a revoke step.
- Education: run a session on exposing site data to an AI client, using the contributor role and application-password step as the central exercise.
- Developer experience: add a security checklist to any MCP-for-WordPress quickstart (credential storage, permission check inside each ability, staging first, revocation).
- Developer marketing: when citing the video, label it as an agency demo with a commercial interest, and don't repeat production-ready without a test scope.
- Community management: when members share this video, ask whether they've read the gist's permission handling and checked the adapter's current version.
- Internal/external/cross-project: confirm with the WordPress Core AI contributors which setup details from March 2026 still hold.
#### OSPO
- Policy and governance: write a rule on whether contributors may connect AI clients to production WordPress sites, and who approves the exposed abilities.
- License compliance: check the licenses of the adapter plugin and any copied gist code before reuse.
- Security management: add prompt injection through post and comment text, and plain-text credentials in desktop config files, to the threat model for MCP connections.
- Software inventory: list the adapter, the custom ability plugin, and the AI client as dependencies of any site that uses this pattern.
- Developer support: draft guidance on scoping abilities (fields, post statuses, counts) and on checking capabilities in the callback.
- Community engagement: no direct action from this source; nearest relevance: asking the Core AI team how adapter security guidance gets published.
- Strategic alignment: no direct action from this source; nearest relevance: track how many sites in scope expose abilities at all.
#### Community
- Maintainers: if a plugin you maintain registers abilities, document which capability each one requires and test it as a contributor user.
- Contributors: no direct action from this source; nearest relevance: a first-issue rotation for reviewing example ability plugins for permission checks.
- Sponsors: no direct action from this source; nearest relevance: ask sponsors of AI tooling work to fund an independent security review of adapter examples.
- Ecosystem: share a coordinated checklist for AI-connector risks across hosts and plugin authors.
#### WordPress
- Core: no direct action from this source; nearest relevance: the speaker says the Abilities API shipped in 6.9, so its permission model matters to core triage.
- Core Performance: test the cost of an ability returning 50 full posts per call, since the demo never measures it.
- Core AI: gather the security assumptions behind the adapter and the recommended low-privilege user, and compare them to what an agency shows in public demos.
- **Core Program Team:** no direct action from this source; nearest relevance: a retrospective on how example plugins in demos get reviewed.
- Mobile: no direct action from this source.
- Playground: build a Blueprint that installs the adapter and a sample ability so people can try the connection without touching a live site.
- Community: no direct action from this source; nearest relevance: a meetup session on safe AI connectors, citing this video as the starting point and its omissions as the agenda.
- Training: draft a lesson on application passwords, roles, and why a contributor user limits damage, using the 00:05:03 to 00:06:29 section as source material.
- Marketing: no direct action from this source; nearest relevance: a cautious summary of the Abilities API that avoids production-ready claims.
- Support: prepare a macro for the common failure the speaker names: using the account password instead of an application password.
- Design: no direct action from this source.
- Documentation: add a page on the setup flow with explicit warnings about plain-text credentials, and a section on what to do after a demo or test (revoke the password).
- Photos: no direct action from this source.
- TV: no direct action from this source; nearest relevance: a captioned walkthrough of the same flow with corrected proper nouns.
- Polyglots: no direct action from this source; nearest relevance: ability labels and descriptions are translatable strings the AI reads.
- Accessibility: no direct action from this source; nearest relevance: captions on the video caption Claude as Cloud.
- Meta: no direct action from this source.
- CLI: nearest relevance: a WP-CLI command to list registered abilities and the capability each requires would help audits. This is a suggestion, not something the video says.
- Hosting: check whether the adapter endpoint passes cleanly through host edge rules and whether credentials appear in access logs.
- Tide: no direct action from this source.
- Openverse: no direct action from this source.
- Themes: no direct action from this source.
- Plugins: add a review check for plugins that register abilities: capability checks, field scope, no sensitive data.
#### The WPOCC
- Programs: no direct action from this source; nearest relevance: a fellowship track for security review of AI-connector examples.
- Projects: no direct action from this source; nearest relevance: a documentation sprint for safe MCP setup on WordPress, run by The WP Open Community Collective.
- Funding experiments: no direct action from this source.
### FAIR
- Technical independence: no direct action from this source; nearest relevance: an MCP adapter pulling site data to a third-party AI client creates an external dependency and a data flow worth documenting.
- Policies and covenants: no direct action from this source; nearest relevance: ask whether a sunset clause should cover AI connectors that handle site data.
- Productized governance artifacts: add a row to operator scorecards for AI connectors: which abilities, which role, where credentials live.
## ๐งช Hypotheses
1. A contributor-role application password can't publish, edit, or delete content through the demo's connection, even if a user asks Claude to try.
2. The demo's ability returns content that a contributor couldn't see in the dashboard (other authors' drafts or private posts) unless the code restricts post status.
3. Instruction text placed in a post body or comment changes Claude's analysis output when the ability returns that content unfiltered.
4. After a new post is published, an existing chat omits it in more than 20% of repeat prompts because of the caching the speaker mentions, while a new chat includes it.
5. A developer who has never used the Abilities API completes the eight-step setup in under 60 minutes using only the video and the two gists, and the restart-plus-new-chat step causes at least half of first-attempt failures.
6. On sites with more than 50 posts, the fixed 50-post limit skews the content gap analysis toward recent topics.
## ๐ Methodology
- **H1.** Build a clone with the adapter and the demo ability, create a contributor user with an application password, and connect Claude. Prompt Claude to edit, publish, and delete. Log REST and ability calls on the site and record every attempted write and its response.
- **H2.** On the same clone, create drafts, private posts, and posts by another author. Run the ability as the contributor and compare returned post IDs against the contributor's dashboard view. Repeat after adding a permission check to the callback.
- **H3.** Plant 10 posts and 10 comments containing instructions of varying subtlety, such as asking Claude to include a specific word in its summary. Run the same analysis prompt 10 times per condition and count behavior changes. Include a control set with benign text.
- **H4.** Publish 20 new posts at 5-minute intervals. After each, ask the same question in an existing chat and in a fresh chat. Record whether the new post appears, and read the ability call log to see whether a call was made.
- **H5.** Recruit 8 developers with WordPress plugin experience and no Abilities API experience. Time each from start to first successful retrieval, and log each failure by step.
- **H6.** Use 3 sites with 30, 100, and 400 posts. Ask for a gap analysis from the 50-post ability and from an ability returning all posts. Have two editors rate the gaps as accurate or not, and compare agreement.
- **Controls.** Pin plugin and Claude versions, record both, and note the date, since the source video predates this work by seven months.
## โ Questions
- What does the adapter expose on the network, and which transport does the JSON config use to reach the site? The transcript doesn't say.
- What does a contributor-role user actually receive from the demo ability, and does the code in the gist check capabilities? The transcript doesn't say.
- Is the live password in the config file the one shown and revoked on screen, or a different one?
- Which cache does the speaker mean at 00:08:36, and does it sit on the Claude side, the WordPress side, or both?
- What did Claude return for each of the three prompts, and who judged the answers?
- Did Claude write a file during the newsletter prompt, and where did it go before the speaker stopped it?
- What data-handling terms apply when site content moves into a Claude conversation, and does a client agreement mention it?
- Does Claude ask for approval before each tool call in the desktop app, and was approval on or off in this demo?
## ๐ฎ Future research
- **Scoped credentials.** Whether application passwords, or an alternative, can be restricted to read-only abilities. The transcript treats the contributor role as the only limit.
- **Injection through site content.** Comments, guest posts, and imported content all flow into the model context when abilities return raw content. A measured study on WordPress-specific injection vectors would be new.
- **Real-time versus cached.** How often AI clients serve stale ability results, and which settings change it.
- **Version drift.** The adapter, the Abilities API, and the Claude desktop config format all move. A tracker of setup steps by version would date demos like this one.
- **Agency disclosure norms.** How vendor demos disclose commercial interest, and whether a one-line disclosure changes viewer trust.
## ๐ก Implications
- **Practice.** A new ability is a new data-exposure decision. The video treats it as a code sample; teams should treat it as a reviewable change with a named owner.
- **Policy.** Decide which environments may connect to AI clients (clone only, or live with approval) and who may create the user and the application password.
- **Security.** The setup moves a long-lived credential into a desktop config file. Add rotation, revocation after tests, and file-permission checks. Add injection testing for any ability that returns content others can write.
- **Education.** The Abilities API as a menu of what AI can reach is a clear teaching frame. Pair it with a lesson on roles and capabilities, which the video touches at 00:05:03.
- **Funding.** Agency-published demos shape what sites adopt. Independent reviews of example code in such demos are a candidate for community funding.
- **Vendor literacy.** An agency demo that closes on production-ready with clients is a teaching case: ask for the test scope behind the claim.
## ๐ง Learning styles assessment
- **Reading level estimate.** Flesch-Kincaid Grade Level 5.7 and Flesch Reading Ease 75.9 on the transcript (2,296 words, 189 sentences, 12.1 words per sentence), computed with a simple syllable heuristic. The language is plain and conversational; the terms MCP, Abilities API, application password, and WP_Query raise the effective audience to people with some WordPress background.
#### ๐ Visual learners
- Present: a live Claude interface, a settings tour, code on screen (per the narration), an application-password screen.
- Improve: no diagram of the chain Claude to config to adapter to ability to WP_Query. Add one with the credential and data-flow arrows labeled.
#### ๐ Aural learners
- Present: continuous narration in a conversational voice; music only at the open and close.
- Improve: the speaker often says right here and this, which only works with the picture. Say what the item is aloud, and add a 2-minute audio summary.
#### ๐ฃ๏ธ Verbal learners
- Present: MCP and the Abilities API are each defined in a few sentences, and the application password is contrasted with the user password twice (00:05:46, 00:06:29).
- Improve: no glossary, and WP_Query, ability category, and execute callback go undefined for non-developers.
#### ๐งฉ Kinesthetic learners
- Present: a step-by-step setup and live prompts; the description links the code gists.
- Improve: the speaker doesn't give a checklist or a test prompt to confirm the connection worked. A short try-it-yourself list with a clone-only warning would help.
#### ๐ง Logical learners
- Present: a stated order (adapter, abilities, user, config, restart) and a reason for each, such as why a user needs a role.
- Improve: no discussion of failure modes or test criteria. A table of if-then outcomes is missing.
#### ๐งโ๐คโ๐ง Social learners
- Present: the presenter addresses viewers directly and invites comments for the links.
- Improve: no discussion prompt or community link. The speaker says links are in comments, which fragments the resources; keep them in the description only.
#### ๐งโโ๏ธ Solitary learners
- Present: 10 chapters allow self-paced replay of one step at a time.
- Improve: no recap card, no self-check such as which of these three controls limits damage if the config leaks.
#### ๐ฟ Naturalistic learners
- Present: nothing explicit; the source is a software demo.
- Improve: no angle on resource use. A note on API call volume and compute per query would give this group something to reason about.
## ๐ Accessibility assessment
Judged as published: auto-captions only (as far as the transcript shows), 10 chapters listed in the description, a text description with links.
#### Screen reader semantics
- Present: YouTube supplies the page structure, and the description is plain text with the chapter list and links.
- Improve: the on-screen JSON, plugin code, and chat responses carry content the narration mostly skips. WCAG 2.2 AA 1.1.1 (Non-text Content) and 1.2.5 (Audio Description, Prerecorded) are not met for them. The narration says right here and as you can see, which excludes viewers who can't see.
#### Keyboard navigation
- Present: the YouTube player is keyboard operable with visible focus, and chapter links jump to sections.
- Improve: no barriers added by the content itself. 2.1.1 (Keyboard) and 2.4.7 (Focus Visible) pass through the platform.
#### Contrast and readability
- Present: unverifiable from a transcript.
- Improve: code and JSON on screen are likely small at default resolution. Zoom into the code and config sections. This bears on 1.4.3 (Contrast Minimum).
#### Text resizing and reflow
- Present: the player and captions resize independently.
- Improve: any text burned into the video frame, including the application password and config values, doesn't resize or reflow. 1.4.4 (Resize Text) and 1.4.10 (Reflow) can't be met for it.
#### Media and captions
- Present: captions exist, and 10 chapters aid navigation (supports 2.4.5, Multiple Ways, at the platform level).
- Improve: the captions render Claude as Cloud in two places (00:03:38, 00:05:03) and split sentences at hesitations (for example, un registered, con- uh contributors, and the plugin name WDS/get_posts). 1.2.2 (Captions, Prerecorded) needs accurate captions. Corrected captions are cheap for 11 minutes of audio. Music plays under the intro and outro.
#### Forms and interactions
- Present: no forms in the video. The setup steps involve forms in WordPress and Claude.
- Improve: spoken steps, such as the application password dialog, would need field-by-field description for 3.3.2 (Labels or Instructions) to carry over from the visual.
#### Standards reference
- Gaps against WCAG 2.2 AA: 1.2.2 (inaccurate captions), 1.2.5 (no audio description for on-screen code and UI), 1.1.1 (information only visual), 1.4.4 and 1.4.10 (burned-in text). The captions failure is the highest-impact and cheapest to fix.
## ๐ DEIB assessment
#### Cultural breadth
- Present: the pitch covers marketing, SEO, e-commerce, and intranet cases for several kinds of sites.
- Improve: English only, with a US agency framing. No multilingual-site example, though WordPress sites often are. Analysis in other languages is untested in the demo.
#### Inclusive language
- Present: direct, second-person, no exclusionary terms in the transcript.
- Improve: visual deixis (as you can see, right here) and hype phrases (mind-blowing, game-changer, sky's the limit) assume a sighted viewer and a shared mood. Replace with concrete descriptions.
#### Neurodiversity support
- Present: a predictable order (explain, set up, demo, extend) and 10 chapters that chunk the content.
- Improve: filler words and mid-sentence restarts appear in the captions throughout, which adds processing load. A short step summary on screen at each stage would help.
#### Representation
- Present: one named presenter, Brad Williams, speaking for the agency.
- Improve: no other voices, no client, and no WordPress Core AI contributor. A second perspective, especially a security reviewer, would broaden both representation and rigor.
#### Psychological safety
- Present: the speaker normalizes difficulty (This is where a lot of people get hung up) and says the setup is easier than you might think.
- Improve: a viewer who misses a step can't tell what failure looks like or what damage a mistake could do. A short what-to-do-if-it-fails note would help.
## โ
Logical validity
#### Strong reasoning
- **Causal, 00:05:03 to 00:05:46.** A connecting user carries a role and capabilities, so a low-privilege role limits what the connection can do. The mechanism is stated, the example (contributor, can't publish) is concrete, and it matches the application-password rationale. Clarify by saying which reads the contributor role still permits.
- **Contrastive, 00:05:46 and 00:06:29.** Application password versus user password, stated twice with the same warning. The repetition targets the failure the speaker says is common.
- **Mechanism statement, 00:07:55.** The speaker says the AI is calling the registered ability and isn't reading the blog or a feed. The chat showing it discovering the ability supports it, though the viewer sees the evidence and the transcript doesn't.
- **Self-limiting disclosure, 00:08:36.** The cache caveat. It lowers the real-time claim and raises credibility.
- **Demonstration order, 00:03:38.** Registered abilities are required, and an unregistered connection comes back empty. A clear if-then.
#### Fallacies
- **Hasty generalization and appeal to novelty, 00:10:47.** "This is production-ready." One read-only demo against the agency's own blog doesn't establish production readiness: no load, error handling, or security review is described. Fix: state the test scope, such as read-only, 50 posts, one site, one client app.
- **Imagination offered as evidence, 00:09:19.** "Imagine you could pull in HubSpot, you could pull in all these different data factors and analyze it with your content." The extensions are plausible but undemonstrated. Fix: label them as untested, or show one.
- **Equivocation on real-time, 00:07:55 versus 00:08:36.** Real-time access sits next to the speaker's own note that content can be cached. Fix: state what is live (the ability call) and what may be reused (conversation context).
- **Overstatement, 00:00:00.** "no guessing" describes retrieval, but the analysis, gaps, and titles are generated by a model whose outputs the transcript never reads. Fix: say the data is exact and the interpretation is the model's.
- **Appeal to common belief, 00:10:04.** "as we all know, AI does an amazing job at that" asserts quality without evidence. Fix: show an output and a human judgment of it.
- **Demonstration without outputs, 00:07:55 to 00:09:19.** Claude's responses, the core of the value claim, are never read aloud or judged. Fix: read one result and state what it got right and wrong.
- **Unstated commercial framing.** The speaker mentions clients at 00:05:03 and 00:10:47 but never frames the video as promotion for services. Fix: a one-line disclosure at the start.
- **Safety by omission.** Two guardrails are discussed and the rest are silent (injection, approval prompts, logging, staging). This is an omission, not a false statement. Fix: a short risks list at the end.
#### Tone of voice
- Enthusiastic and conversational, with the sales register at the edges: truly mind-blowing and game-changer in the first paragraph, changing the game and production-ready in the last. The middle is more instructional and includes practical cautions (one-time password, revoke it, restart and a new chat, cache). The register pattern is promotion at the open and close, instruction in the middle, which is the useful way to read this source.
## ๐ก๏ธ DARVO analysis
Not applicable to this source. DARVO (Deny, Attack, Reverse Victim and Offender) describes a response to an accusation or criticism, and this is a product demonstration with no accuser and no criticism. For completeness:
- **Deny.** Nothing is denied. Limits are mentioned in passing (cache, one-time password), and risks beyond those are not discussed, which is silence, not denial.
- **Attack.** No critics, competitors, or other tools are attacked. Claude, ChatGPT, and Gemini are named as similar tools.
- **Reverse victim and offender.** No such move appears.
## ๐ฏ Conclusion
The setup is concrete: adapter plugin, one ability plugin, a contributor-role user, an application password, a JSON config, a restart. The principle underneath is sound and stated plainly: expose only what you register, and connect as a user with limited rights. The demo is read-only and small (50 posts from the agency's own blog), and it shows the connection working.
The broader claims do not carry the same weight. Production-ready, real-time access, and extension to analytics and CRM data rest on one demo and on imagination, and the transcript is silent on most security questions. The speaker's own cache caveat and the stopped file-write show where behavior can differ from the pitch. The publisher sells WordPress services to the clients it names.
**Next steps for readers:** treat the video as a seven-month-old agency walkthrough. Check the adapter repository and WordPress release notes for what has changed since 2026-03-13, read both gists for permission checks before running them, try the flow on a clone with a read-only user, revoke the application password afterward, and test injection with hostile post text before connecting any site with other people's content.
## ๐ Refactor Appendix โ How to Connect Claude AI to WordPress Using MCP (Live Demo)
> Density: 2โ5 Literature atoms (H1 pad), 0โ3 Permanent candidates (P1 pad).
> Emitted: 5 Literature, 2 Permanent. Resonance filter applied: the hype claims and
> the extension ideas were dropped as undemonstrated.
>
> Konik claim-header rules: present tense, declarative, โค10 words, searchable, unique.
>
> Atomicity: one declarative sentence per atom. "and"/"also" โ split.
>
> Tag pool: #bmf ยท #addendum ยท #xref ยท #articleseed ยท #storystem ยท #share ยท #aphorisms
### ๐ Literature Split Pad
#### [H1] Registered abilities define what the AI can reach
> [!quote] [00:02:11]
> It allows you to register what you want to give these tools.
**Context & use**:
- 00:02:11, the explanation of the Abilities API right before the Claude UI tour.
- The ability list works as an exposure menu. Each added ability is a data-sharing decision that needs an owner.
**Tags**: #xref #articleseed
<!-- atomicity: 1 idea โ -->
#### [H2] Application passwords authenticate the MCP connection
> [!quote] [00:05:46]
> it's the MCP connection in Claude actually needs an application password, not your user password.
**Context & use**:
- 00:05:46, repeated at 00:06:29 as the step where people get stuck.
- The credential then sits in a JSON file on the desktop. The transcript doesn't discuss its storage or rotation.
**Tags**: #xref #share
<!-- atomicity: 1 idea โ -->
#### [H3] A low-privilege user caps what the connection can do
> [!quote] [00:05:03]
> this is an account that's going to have very limited permissions. In this case, a contributor. They cannot publish.
**Context & use**:
- 00:05:03, the practice the speaker says the agency uses for clients.
- The role limits writes. What a contributor can still read through the ability depends on code the transcript doesn't show.
**Tags**: #xref
<!-- atomicity: 1 idea โ -->
#### [H4] Live retrieval can still serve cached content
> [!quote] [00:08:36]
> It will sometimes save your content in the cache, so keep that in mind
**Context & use**:
- 00:08:36, a caveat the speaker offers during the newsletter prompt.
- It sits against the real-time framing at 00:00:00 and 00:07:55. Test before relying on freshness.
**Tags**: #xref #articleseed
<!-- atomicity: 1 idea โ -->
#### [H5] Production-ready is a claim, not a result
> [!quote] [00:10:47]
> This is production-ready. We're sitting down with our clients.
**Context & use**:
- 00:10:47, the closing statement from an agency that sells WordPress services.
- The demo behind it is one read-only ability against the agency's own blog. Keep as a vendor-literacy example.
**Tags**: #xref #share
<!-- atomicity: 1 idea โ -->
### ๐ง Atomic Split Pad
#### [P1] Account permissions set the ceiling for an AI connector
**Claim** (one sentence, Courtney's voice): The permissions of the account behind an AI connector set the upper limit on what the connector can read or change.
**Evidence pointer**: [[#H2]] ยท [[#H3]]
**Scope & conditions**: Holds when the connector acts through that account and the exposed code adds no broader access. Breaks if an ability runs with elevated rights, skips its own capability check, or if the credential leaks, which carries those same permissions to whoever holds it. The limit applies to writes more visibly than reads.
**Links**:
- [[Principle of least privilege]] โ because extends
- [[Prompt injection through site content]] โ because contrasts on what a permission ceiling can't stop
- [[WordPress roles and capabilities]] โ because applies-in WordPress
<!-- atomicity: 1 idea โ -->
#### [P2] A demo that shows no output proves connection, not value
**Claim** (one sentence, Courtney's voice): A demo that never reads the model's output aloud proves the connection works, not that the analysis is any good.
**Evidence pointer**: [[#H5]] ยท [[#H4]]
**Scope & conditions**: Applies to screen-recorded AI demos described by transcript only. Doesn't apply if the output is on screen and legible, which this analysis can't check. Counter case: a connection test is a legitimate goal on its own.
**Links**:
- [[Reading vendor demos]] โ because extends
- [[Every claim carries a fact]] โ because applies-in writing standards
- [[Self-limiting disclosure raises credibility]] โ because evidence-for the cache caveat at 00:08:36
<!-- atomicity: 1 idea โ -->
### โ๏ธ Fleeting Queue
- [F1] Read the two gists linked in the description and note whether the ability callback checks capabilities or post status: https://www.youtube.com/watch?v=5b9al9C3bMk #fleeting #inbox
- [F2] Check what has changed in the WordPress MCP Adapter and WordPress 7.0 since the 2026-03-13 upload before citing the steps: https://github.com/WordPress/mcp-adapter #fleeting #inbox
- [F3] Open question: does post or comment text returned by an ability steer Claude's output? The 00:07:12 demo is the concrete case #fleeting #inbox
- [F4] Find out whether the live password the speaker mentions at 00:07:12 is the revoked one from 00:05:46 #fleeting #inbox
- [F5] Article seed: an AI connector is a credential, a role, and a data menu, and this demo shows all three in 11 minutes #fleeting #inbox #articleseed
### โ Things 3 (max 2 actions)
- [ ] Read both description gists for permission handling before recommending the demo โ research, 20 min #things
- [ ] Compare the March 2026 setup steps against the current MCP Adapter README and WordPress 7.0 notes โ docs check #things
<!-- deep-read:sections end -->
๐ **Full text:** [[Full Document Contents/Articles/How to Connect Claude AI to WordPress Using MCP.md|How to Connect Claude AI to WordPress Using MCP by Brad Williams (WebDevStudios)]]
## Highlights
- [00:01:28] applications to other systems. In this case, that other system is going to be WordPress. So, it gives these AI systems a standard that they can work against as well as every other application in the world a standard of how they feed data and information into these AI agents. So, WordPress, open-source, always at the forefront of technology. There is a WordPress MCP adapter plugin available, built and supported by the WordPress Core AI team among other con- uh contributors. As you can see here, it's available on uh GitHub. This is an amazing plugin and can download and install directly onto your WordPress website. Um and essentially it allows you to uh bridges the gap between an MCP connection and the WordPress abilities API. What is the [00:02:11] abilities API, you might be asking? Well, the abilities API on WordPress is a new uh API released in 6.9, the most recent version of WordPress, and it's an extremely powerful API that has all of us really, really excited. Um really it just allows you to register and and feed specific data points, however you want, into the the MCP protocol and into your AI tool. Um we're going to show off a demo of this in just a second. We'll go through some core concepts, but that's really it. It allows you to register what you want to give these tools. Um you can decide. Maybe it's all of your posts. Maybe it's all of your pages. Maybe it's all of your content that you've ever created. Maybe it's your users. Maybe you have a system you've built in WordPress that has all sorts of customized data for a very unique ([View Highlight](https://read.readwise.io/read/01m587h496gpfcxq1chy4992m1))
- Note: [H1] Registered abilities define what the AI can reach
- Tags: atom/literature/h1
- [00:04:21] um let's look at what a very simple plugin custom plugin here to register an ability in WordPress, what that looks like. So, we built this plugin and we'll have links in the uh comments on YouTube, so you can get these plugins directly copy paste and kind of edit them as you will. Very simply, we're registering an ability category. So, if you have a lot of abilities, you can categorize them. Um but here's here's the meat of it. We're registering a new post ability WDS/get\_posts. Um you can see some of the information label, description, but really the heart of it we execute callback function and this is where it says what are we sending it, right? So, in this case, a very simple we're doing a WP query pulling back the top 50 posts uh and returning them. So, we're taking the top [00:05:03] 50 posts from our live website. So, if a new post comes out tomorrow and you run this tomorrow, it will be in there and feeding that uh directly into any system that's connected through MCP. In this case, Cloud. So, as soon as I upload this and I have and activate it and I have my MCP adapter uploaded and activated, WordPress uh has the code it needs to execute. The final step is the user. So, when MCP connects, it needs a user. It needs to understand the authentication and capabilities roles and capabilities of that user. So, what I recommend and what we do for our clients, we set up an MCP user account, call it whatever you want. Uh this is an account that's going to have very limited permissions. In this case, a contributor. They cannot publish. We ([View Highlight](https://read.readwise.io/read/01m587h9jkn21yn9s0rcz2f1a1))
- Note: [H3] A low-privilege user caps what the connection can do
- Tags: atom/literature/h3
- [00:05:46] don't want them to publish, right? In this case, we're just pulling in information to work with our content. But what I want to point out here is once you set up this user, it's the MCP connection in Claude actually needs an application password, not your user password. This is an application password, which you can see right here. It's very simple. Give it a name, you know, Claude MCP, whatever you want to call it. As soon as you add it, it is going to show you your one your password. You're only going to see this once. This is security release. I will delete this as soon as this video is done because you never want to publish this publicly. Copy this. You're going to need this for Claude. If you want to get rid of it, you can just revoke it. In this case, I'll revoke it, so it's gone. Once you have that password and your username, now we need to add the Claude connection. So this is a very simple file in Claude. It [00:06:29] looks just like this. It's a JSON file. I'll show you exactly where it goes. Couple bits you need to modify here. The name, of course, this is Web Dev Studios, the URL, of course, where your website lives and that MCP MCP adapter has been installed and activated. Your username of the account that's going to connect and then that application password. This is where a lot of people get hung up hung up. This is not WordPress user password. This is that application password that you only see once. Save it. Go back into Claude. We can go uh into our settings. Go into developer. You'll see the config here. If if nothing's connected, the only thing here will be edit config. Click that and it will take you right to where that configuration file is. I'm not going to ([View Highlight](https://read.readwise.io/read/01m587h6ke68800dgth5nm99mv))
- Note: [H2] Application passwords authenticate the MCP connection
- Tags: atom/literature/h2
- [00:08:36] not read my latest blog post and generate a a monthly newsletter digest? That's a great idea, right? Claude to the rescue. ChatGPT to the rescue, right? Here we go. It's executing the ability again. It's pulling back my posts. It will sometimes save your content in the cache, so keep that in mind, but generally speaking, it's going to go retrieve them when you ask it to talk about it and want to work with it. So, um it's actually generating the skill into a doc file. So, let's just stop that because uh we don't want to go down that road, but you could put it into a doc, whatever you might want to do. Um SEO, huge, right? We love SEO. AI search, all that good stuff. We can analyze our content again in real time. Just take my top five blog posts, give me some AB test variations on the title. What do we think will rank well in uh search engines? So, now it's starting to [00:09:19] give me some ideas. Again, massively powerful, right? And we're just scraping the surface. So, um imagine pulling in not only your content, imagine pulling in Google Analytics data with that content, right? Not only can you analyze gaps in content, but you can actually see what is working and what isn't working. What content resonates and keeps people on our website based on our analytics stats and what content do people bounce immediately when they hit. This will be able to tell you in a matter of seconds. Imagine you could pull in HubSpot, you could pull in all these different data factors and analyze it with your content. You could also build out top your competitors. Hey, where are gaps in content based on our competitors? Based on our analytic data, right? This is some really really exciting stuff in the world of WordPress and we're really ([View Highlight](https://read.readwise.io/read/01m587hby401fqhr81m3qxwmpv))
- Note: [H4] Live retrieval can still serve cached content
- Tags: atom/literature/h3
- [00:10:04] just scratching the surface. Again, this was a simple example. If you go back to our code of we're just pulling post. You could pull metadata against these posts. You could do gap analysis on your SEO meta tags, description, title, all of that. All you have to do is feed it create an ability, feed it into that ability and now WordPress, or I'm sorry, Claude, your AI tool will have all that data and all that context. So again, sky's the limit. Pull in your content, posts, pages, products. Pull in, you know, whatever sorts of data you want to pull in and analyze and it's as we all know, AI does an amazing job at that. So um again, this is a quick example of how WordPress and AI is evolving rapidly. This is available on WordPress 6.9. It's [00:10:47] available today. This is production-ready. We're sitting down with our clients. We're talking about how we can integrate this for their marketing teams, workflows, all that great stuff. But this is changing the game and we're right on board with it. >> [music] ([View Highlight](https://read.readwise.io/read/01m587he3r3zzvjt4zbyyjfm15))
- Note: [H5] Production-ready is a claim, not a result
- Tags: atom/literature/h3