{"id":295070,"date":"2026-06-16T19:52:19","date_gmt":"2026-06-16T19:52:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/?p=295070"},"modified":"2026-06-16T19:50:06","modified_gmt":"2026-06-16T19:50:06","slug":"born-creative-mcp-server","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/born-creative-mcp-server\/","author":13486270,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.0.6","stable_tag":"trunk","tested":"6.9.4","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Born Creative MCP Server","header_author":"Born Creative","header_description":"Exposes a remote Model Context Protocol (MCP) server over HTTP with OAuth 2.1 authentication. Enables claude.ai and other MCP clients to create, update and schedule WordPress posts and pages.","assets_banners_color":"","last_updated":"2026-06-16 19:50:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.born-creative.co.uk","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.6.0":{"tag":"0.6.0","author":"jonathansblog","date":"2026-06-16 19:51:44"}},"upgrade_notice":{"0.0.1":"<p>Initial release \u2014 no upgrade steps required.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.6.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Plugin settings page showing token lifetime and dynamic registration options.","2":"OAuth consent screen presented to WordPress users when authorising an MCP client.","3":"Active connections list showing current OAuth clients and their session status."}},"plugin_section":[],"plugin_tags":[2353,229563,242115,2061,23853],"plugin_category":[38],"plugin_contributors":[267397,267396],"plugin_business_model":[],"class_list":["post-295070","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-claude","plugin_tags-mcp","plugin_tags-oauth","plugin_tags-rest-api","plugin_category-authentication","plugin_contributors-borncreative","plugin_contributors-jonathansblog","plugin_committers-jonathansblog"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/born-creative-mcp-server.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Born Creative MCP Server transforms your WordPress site into a fully authenticated remote MCP (Model Context Protocol) endpoint. It allows AI assistants \u2014 such as Claude.ai \u2014 to securely connect to your site and create, update, schedule, and manage posts, pages, media, and taxonomy, all via a standards-compliant OAuth 2.1 and JSON-RPC 2.0 interface.<\/p>\n\n<p>Unlike local stdio-based MCP servers, this plugin exposes a remote HTTP transport, meaning your AI tools can connect to your live WordPress site without needing direct server access.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<p>The plugin registers a set of REST API endpoints that implement the MCP streamable HTTP transport. Clients authenticate using OAuth 2.1 with PKCE (Proof Key for Code Exchange), receive a bearer access token, and then use that token to call any of the 18 built-in MCP tools.<\/p>\n\n<p><strong>MCP Tools included<\/strong><\/p>\n\n<ul>\n<li><strong>Posts<\/strong> \u2014 list, get, create, update, delete, search<\/li>\n<li><strong>Pages<\/strong> \u2014 list, get, create, update, delete<\/li>\n<li><strong>Media<\/strong> \u2014 list, get, upload from URL, upload base64-encoded, delete<\/li>\n<li><strong>Categories<\/strong> \u2014 list, create, update<\/li>\n<li><strong>Tags<\/strong> \u2014 list, create<\/li>\n<li><strong>Yoast SEO<\/strong> <em>(optional)<\/em> \u2014 get and update Yoast SEO metadata (requires Yoast SEO plugin)<\/li>\n<\/ul>\n\n<p><strong>OAuth 2.1 Authentication<\/strong><\/p>\n\n<ul>\n<li>Dynamic client registration (RFC 7591)<\/li>\n<li>Authorization code flow with PKCE<\/li>\n<li>Access token and refresh token lifecycle management<\/li>\n<li>Token rotation and revocation<\/li>\n<li>Tokens are SHA-256 hashed \u2014 plaintext tokens are never stored<\/li>\n<\/ul>\n\n<p><strong>Advanced content features<\/strong><\/p>\n\n<ul>\n<li>Schedule posts by setting a future publish date<\/li>\n<li>Set featured images<\/li>\n<li>Add custom post meta<\/li>\n<li>Sideload media from external URLs<\/li>\n<li>Full category and tag assignment<\/li>\n<\/ul>\n\n<p><strong>Yoast SEO integration<\/strong><\/p>\n\n<p>If the Yoast SEO plugin is active, two additional MCP tools are automatically registered: <code>yoast_get_seo<\/code> and <code>yoast_update_seo<\/code>, allowing AI assistants to read and write SEO titles, descriptions, and focus keywords.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>born-creative-mcp-server<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Navigate to <strong>Settings &gt; MCP Server<\/strong> to review configuration options.<\/li>\n<li>Ensure your site uses HTTPS \u2014 required for OAuth 2.1 in production.<\/li>\n<li>If using nginx, ensure your server config permits access to <code>\/.well-known\/<\/code> paths.<\/li>\n<li>Connect your MCP client (e.g. Claude.ai) using the OAuth authorization server URL displayed in the plugin settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20mcp%3F\"><h3>What is MCP?<\/h3><\/dt>\n<dd><p>Model Context Protocol (MCP) is an open standard that allows AI assistants to interact with external tools and data sources in a structured way. This plugin implements the MCP server side of that protocol over HTTP.<\/p><\/dd>\n<dt id=\"which%20ai%20assistants%20are%20supported%3F\"><h3>Which AI assistants are supported?<\/h3><\/dt>\n<dd><p>Any MCP-compatible client that supports the streamable HTTP transport and OAuth 2.1 with PKCE. Claude.ai (claude.ai\/settings\/integrations) is the primary tested client.<\/p><\/dd>\n<dt id=\"is%20https%20required%3F\"><h3>Is HTTPS required?<\/h3><\/dt>\n<dd><p>Yes, for production use. OAuth 2.1 requires HTTPS to protect bearer tokens and authorization codes in transit. The plugin will function over HTTP for local development only.<\/p><\/dd>\n<dt id=\"can%20any%20wordpress%20user%20authorise%20an%20mcp%20client%3F\"><h3>Can any WordPress user authorise an MCP client?<\/h3><\/dt>\n<dd><p>No. Only authenticated WordPress users can complete the OAuth consent flow. The MCP session inherits that user's capabilities, so content tools are limited to what that user is permitted to do within WordPress.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20store%20access%20tokens%20in%20the%20database%3F\"><h3>Does this plugin store access tokens in the database?<\/h3><\/dt>\n<dd><p>Tokens are stored as SHA-256 hashes \u2014 the plaintext token is only ever visible to the client at the moment it is issued. This means tokens cannot be recovered from the database if compromised.<\/p><\/dd>\n<dt id=\"what%20database%20tables%20does%20the%20plugin%20create%3F\"><h3>What database tables does the plugin create?<\/h3><\/dt>\n<dd><p>Four tables are created on activation (using your configured table prefix):\n    born_mcp_oauth_clients, <code>born_mcp_oauth_codes<\/code>, <code>born_mcp_oauth_tokens<\/code>, <code>born_mcp_sessions<\/code>.\nAll tables are removed on uninstall.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20yoast%20seo%3F\"><h3>Does the plugin support Yoast SEO?<\/h3><\/dt>\n<dd><p>Yes. If Yoast SEO is active, two additional tools \u2014 <code>yoast_get_seo<\/code> and <code>yoast_update_seo<\/code> \u2014 are automatically registered. No additional configuration is needed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.0.1<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>OAuth 2.1 with PKCE authorization code flow.<\/li>\n<li>Dynamic client registration (RFC 7591).<\/li>\n<li>18 MCP tools: posts, pages, media, categories, tags, and optional Yoast SEO.<\/li>\n<li>Streamable HTTP MCP transport (JSON-RPC 2.0).<\/li>\n<li>SHA-256 token hashing, token rotation, and revocation.<\/li>\n<li>Admin settings page and active connections view.<\/li>\n<li>Automatic <code>.well-known\/oauth-authorization-server<\/code> metadata endpoint.<\/li>\n<\/ul>","raw_excerpt":"A remote MCP server over HTTP with OAuth 2.1, letting AI assistants like Claude securely create, update, and schedule WordPress content.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/295070","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=295070"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jonathansblog"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=295070"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=295070"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=295070"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=295070"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=295070"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=295070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}