← All articles

How-to

How to Publish from Claude to WordPress

Walt Walker·· 9 min read

To connect claude to wordpress, you have three distinct options. First, you can manually copy and paste Claude's markdown output directly into your WordPress editor. Second, you can build a DIY integration using the native WordPress REST API and an Application Password. Finally, you can use a hosted Model Context Protocol (MCP) server to give Claude direct publishing tools. Each method has different levels of complexity and automation. Let's break down the exact steps, pros, and cons of each approach so you can choose the right workflow.

The Manual Copy-Paste Route

The easiest way to connect claude to wordpress requires no technical configuration. You simply use Claude as a standalone writing assistant and manually transfer the finished content into your WordPress site. This method is entirely free and relies on the standard chat interface. This is ideal if you publish rarely and want manual control.

Step-by-Step Manual Publishing

You need an active Claude account and access to your WordPress dashboard. Begin by writing a detailed prompt in Claude, specifying your topic, word count, and desired tone. Instruct Claude to format the final article using standard markdown syntax. Review the generated text for accuracy within the chat interface.

Next, highlight the entire generated text and copy it to your clipboard. In your WordPress site, navigate to Posts and click Add New. Paste your text into the Gutenberg editor. WordPress will automatically attempt to convert the markdown formatting into basic blocks. Headings should become Heading blocks, and standard text will become Paragraph blocks. Finally, configure your document settings before hitting publish.

Why Manual Publishing Becomes Painful

While copying and pasting works for occasional publishing, it quickly becomes a tedious bottleneck. The formatting conversion from markdown to Gutenberg is far from perfect. Complex elements like tables, code snippets, or specialized list formats often break or paste as unformatted plain text. You will spend time manually fixing these formatting errors on every single post.

Handling media is another pain point. Claude cannot upload images to your media library manually. You must source images, compress them, upload them, and insert them into the correct spots. Furthermore, you must manually copy meta titles and descriptions into your SEO plugin. The manual route fundamentally fails to scale.

The DIY WordPress REST API Route

For automated connections, the DIY REST API route is the traditional developer approach. WordPress features a built-in REST API that allows external applications to create, update, and manage posts. By leveraging this API, you can write custom scripts to take Claude's output and push it directly to your site.

How to Set Up the REST API Connection

Setting up a direct REST API connection requires an Application Password. First, log into your WordPress admin dashboard and navigate to Users, then Profile. Find the Application Passwords section. Enter a memorable name for your application and click the button to generate a new password. Save this password immediately, as WordPress will only show it to you once.

Next, write a script (often in Python or Node.js) to connect Claude's API to your site. Your script must send an HTTP POST request to the wp-json/wp/v2/posts endpoint on your domain. The request includes your username and Application Password for authentication. The payload contains the title, content, and post status.

The Classic Block Formatting Problem

The biggest flaw with the DIY REST API route is how WordPress handles incoming text. The REST API is designed to accept raw HTML payloads. When sending AI-generated HTML to the REST API, WordPress cannot automatically parse it into Gutenberg blocks.

Instead, it dumps the entire payload into a single Classic block. When you open the post, you will not see individual paragraph or heading blocks. Editing a massive Classic block defeats the purpose of the modern block editor. Fixing this programmatically requires writing a complex HTML-to-Gutenberg parser, which is difficult to maintain.

Media and SEO Limitations in the REST API

Beyond formatting, the DIY REST API route struggles with media attachments. The standard posts endpoint does not accept image files. To attach a featured image, your script must first upload to the /media endpoint, extract the attachment ID, and inject that ID into your post payload.

SEO introduces another hurdle. WordPress core does not expose fields from third-party SEO plugins over the standard REST API. If you want to set a custom meta description generated by Claude, the default endpoints ignore that data. You are left with an automated pipeline that still requires manual SEO intervention.

The Hosted MCP Route

The most modern way to connect claude to wordpress is by using a hosted Model Context Protocol server. The MCP acts as a standardized rail that lets AI agents interact with external tools securely. Instead of writing custom API scripts, you give Claude a set of pre-built tools that handle the heavy lifting. Pressbotics is a hosted MCP server specifically designed to let AI agents publish to self-hosted WordPress sites.

Step-by-Step Hosted MCP Setup

Connecting Claude via Pressbotics requires a few specific steps. First, you must install the free Pressbotics companion plugin on your self-hosted WordPress site. This plugin is necessary because it safely exposes the exact endpoints needed for advanced blocks and SEO integration.

Next, you connect your site in the Pressbotics dashboard using a standard WordPress Application Password. Finally, you add the Pressbotics MCP server URL to your AI client and authorize it. In Claude, this is done by adding a custom connector. Note that this is not a one-click install; you must configure the custom connector in your Claude settings. This setup works for Claude, ChatGPT, Cursor, n8n, and any MCP-capable client.

Native Gutenberg Blocks and Embeds

Once connected, the AI agent gets 20 specific tools. These include publishing, scheduling one post, scheduling a batch, updating posts, listing drafts and scheduled content, reading site context like categories, managing recurring schedules, and rollback capabilities to unpublish to draft or restore a revision. The agent simply writes standard markdown, and Pressbotics handles the complex conversion into native Gutenberg blocks.

Unlike the REST API, posts open as real blocks. Supported blocks include headings, paragraphs, lists, tables, quotes, pull quotes with citations, cover blocks, columns, galleries, code blocks, separators, and images with captions. Embeds are natively supported: YouTube watch URLs, Spotify, or TikTok on their own line become players. Self-hosted .mp4 and .mp3 files become native video and audio blocks. Twitter/X and Instagram retired open oEmbed endpoints, rendering as plain links. YouTube Shorts also render as plain links; use standard watch URLs.

Advanced Media and SEO Capabilities

A hosted MCP server solves the media friction found in DIY builds. Featured images can be attached in three ways: from a direct image URL, by reusing an existing media-library item's ID, or through an upload link that a person opens to manually upload a photo. If Claude includes inline images that cannot be fetched by the server, those broken images are removed from the post and listed in the final response report. The post still publishes, but Pressbotics does not silently hotlink broken images.

SEO integration is also built into the MCP tools. Pressbotics supports Yoast SEO natively. Rank Math support exists but has not been tested end to end, so Yoast remains the most proven option. This integration allows the agent to set the SEO title, meta description, and focus keyphrase on a per-post basis. Because of the companion plugin, these values land exactly where they belong in the SEO meta boxes. If you only need to update the SEO metadata, an SEO-only update changes the SEO fields while leaving the post body byte-identical.

Reliable Scheduling and Guardrails

Scheduling posts natively via WordPress relies on WP-Cron, which only triggers when someone visits your site. Pressbotics runs its own external scheduler that contacts your site at the exact due minute to publish. After publishing, it fetches the live URL and records a render check. A scheduled time requires a precise UTC offset (like 2026-09-20T15:30:00-04:00) or an IANA timezone. Times that do not exist due to daylight saving gaps or impossible dates are firmly refused by name, not guessed. Recurring schedules create open slots on a cadence; an unfilled slot is simply marked unused, rather than recorded as a failure.

Before anything goes live, you can enforce strict approval policies per site. You can set the system to review everything, meaning agent posts wait in an approval queue. Alternatively, you can use guardrails: clean posts publish automatically, while posts containing banned phrases or failing a minimum word count are held back. Approvals can be managed in the dashboard or via links in a notification email that work seamlessly on a phone. If a post is blocked or rejected, the exact reason is returned directly to the agent. Furthermore, stuck publishes are recovered automatically without creating a duplicate post, and one workspace can hold several WordPress sites with distinct brand voice notes per site to guide the agent's writing style.

Comparing the Three Publishing Methods

Feature Manual Copy-Paste DIY REST API Hosted MCP (Pressbotics)
Automation None High High
Setup Difficulty Very Easy Very Hard Moderate
Block Editor Formatting Poor (Often breaks) Poor (Single Classic Block) Excellent (Native Gutenberg Blocks)
Image Uploads Manual only Requires separate API calls Automated via URL or Media ID
SEO Plugin Support Manual only Not supported natively Full support via companion plugin
Scheduling Reliability Manual only Depends on site traffic (WP-Cron) High (External minute-by-minute scheduler)

Choosing the best way to connect claude to wordpress depends entirely on your publishing volume. If you write one article a week, the manual route is perfectly fine. If you have a team of developers and don't care about native Gutenberg blocks, the DIY REST API is functional. But if you want perfect formatting, reliable scheduling, and flawless SEO integration without writing code, a hosted MCP server is the clear winner. You can try the free plan (which includes 1 site and 10 posts a month, no credit card required) at /signup, or view our pricing to learn more.

Frequently asked questions

Can Claude publish directly to WordPress?
Yes, Claude can publish directly to WordPress if you connect it using a hosted Model Context Protocol (MCP) server like Pressbotics. Without an MCP server, you must either copy and paste the text manually or build a custom script using the WordPress REST API to handle the publishing process.
Does Claude support WordPress Gutenberg blocks?
Out of the box, Claude only generates plain text or markdown. However, if you use a dedicated MCP server integration, Claude's markdown output is automatically converted into native Gutenberg blocks. This includes headings, paragraphs, lists, tables, pull quotes, and galleries, ensuring your posts look exactly as intended.
How do I handle SEO when publishing from Claude?
If you publish manually or via the basic REST API, you must copy and paste SEO fields by hand. By connecting Claude through an MCP server with a companion plugin, the AI can automatically populate fields like the Yoast SEO title, meta description, and focus keyphrase for each post.
Can Claude schedule WordPress posts automatically?
Using a hosted MCP integration, Claude can schedule single posts or entire batches. It uses an external scheduler that triggers the exact minute the post is due, avoiding the unreliability of native WP-Cron. The AI must specify a precise UTC offset or timezone to schedule content successfully.