WordPress
Secure MCP Server for WordPress Turn any WordPress site into a fully working MCP server.
What it can do
- Discover Abilities: List what this WordPress site can do. ALWAYS call this first to get the exact ability_name before execute_ability. Optionally filter with `query` (keyword) or `category`. Returns e
- Get Ability Info: Get the full input schema and details for a single ability, when discover_abilities isn't enough. Pass the exact ability_name from discover_abilities.
- Execute Ability: Run one ability on the site. Pass the exact `ability_name` from discover_abilities and its `parameters` (shaped by that ability's input schema; use {} if it takes none). Returns {succ
What data it sees
Do you need an account
No: the server works without sign-in
Secure MCP Server for WordPress
Turn any WordPress site into a fully working MCP server. Connect Claude, ChatGPT, Cursor, Gemini, Windsurf, or any MCP-compatible client and let AI read, create, and manage your WordPress content through chat — safely, with you in control.
Unlike integrations that hand AI full admin access, every action is scoped to the roles and abilities you allow, authenticated with self-hosted OAuth 2.1 — the AI never sees your WordPress password.
What your AI can do — 300+ tools, and growing
Manage virtually any part of your WordPress site through natural language. The connector exposes your site's real capabilities to AI and adapts to whatever your site runs — any content type, any custom fields, your page builder, your store, your SEO setup.
- Run your content — create, edit, publish, schedule, organize, and clean up posts, pages, media, categories, tags, and revisions.
- Operate your store — manage products, orders, customers, coupons, and sales reporting end to end.
- Edit your designs — update text, images, links, and styling in your page builder without breaking layouts.
- Administer your site — custom post types and fields, SEO metadata, user accounts and roles, comment moderation, and more.
- Works with your stack — automatically detects and supports popular plugins (WooCommerce, Elementor, Kadence, ACF, Yoast, and others) plus any custom content types your site defines — so capabilities expand as your site does.
From everyday edits to full store operations and site administration — if it's part of running your WordPress site, your AI can do it, scoped to exactly the permissions you allow.
Security & governance (built in, no limits)
- OAuth 2.1 self-hosted authorization: no API keys, no shared passwords.
- Role-based AI access: grant specific tools per WordPress role.
- One-click tool controls: turn any ability on or off.
- Full audit log: every AI action recorded with who, what, and when.
- Built natively on the WordPress Abilities API.
Prerequisite
This connector requires the free Secure MCP Server plugin installed and active on your WordPress site. It's what exposes your site's abilities to AI and handles the OAuth security.
👉 Install it here: https://wordpress.org/plugins/miniorange-secure-mcp-server/
Get started
- Install & activate the Secure MCP Server plugin on your WordPress site.
- Create an agent and grant it abilities for the WordPress roles you choose.
- Connect your AI through the miniOrange - paste your site URL and approve access.
Learn more: https://plugins.miniorange.com/mcp-server-ai-policy-enforcement-wordpress
How to connect
How to connect WordPress to Claude
The server address to paste into Claude settings:
https://wordpress-mcp-server--miniorange.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect WordPress to ChatGPT
The server address to paste into ChatGPT settings:
https://wordpress-mcp-server--miniorange.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect WordPress to Cursor
The server address to paste into Cursor settings:
https://wordpress-mcp-server--miniorange.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (3)
Raw names from tools/list. Only developers need these.
| discover_abilities | List what this WordPress site can do. ALWAYS call this first to get the exact ability_name before execute_ability. Optionally filter with `query` (keyword) or `category`. Returns each ability's name, a one-line description, and key parameters. |
| get_ability_info | Get the full input schema and details for a single ability, when discover_abilities isn't enough. Pass the exact ability_name from discover_abilities. |
| execute_ability | Run one ability on the site. Pass the exact `ability_name` from discover_abilities and its `parameters` (shaped by that ability's input schema; use {} if it takes none). Returns {success, data} or {success:false, error}. |