wp-ssh-mcp
Enables exporting Elementor page data and setting/importing Elementor designs, allowing page designs to be moved between connected WordPress sites.
Provides tools for interacting with WooCommerce data on the connected WordPress site, such as retrieving orders and updating order statuses, along with related product and media operations in write mode.
Allows managing a self-hosted WordPress site through the WP SSH plugin's HTTPS endpoint, including site diagnostics, posts, options, file reads, and read-only database queries. Write and full modes add content changes, file writes, SQL writes, search-replace, and plugin activation/deactivation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@wp-ssh-mcprun diagnostics on my WordPress site and summarize any issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
wp-ssh-mcp: WordPress MCP server for the WP SSH plugin
Let Claude, Cursor, Claude Code and other MCP clients manage your self-hosted WordPress site (posts, WooCommerce, Elementor, diagnostics, files) without SSH access.
wp-ssh-mcp is a small program that runs on your own computer. It turns the WP SSH plugin's HTTPS endpoint into MCP tools, so your AI sees post_list, order_get, elementor_data_set and so on, with proper parameter schemas. No hosted relay, no accounts: your key stays on your machine.
This needs two pieces. The WordPress plugin does the real work on your site;
wp-ssh-mcponly connects your AI app to it.
Claude Desktop / Cursor / Claude Code
│ MCP (local, stdio)
▼
wp-ssh-mcp ← this repo, runs on your computer
│ HTTPS + X-WPSSH-Key
▼
your WordPress site ← WP SSH plugin (separate repo)Quick start
Step 1: install the plugin on your WordPress site (once per site)
Get it from MSSOFTPC/wp-ssh (Releases →
wp-ssh.zip).WordPress admin: Plugins → Add New → Upload Plugin → Activate.
Tools → WP SSH: tick Enable bridge, copy the Secret key.
Step 2: connect your AI app (see Install for Claude Desktop, Claude Code and Cursor)
claude mcp add my-site -e WPSSH_URL=https://yoursite.com -e WPSSH_KEY=your-key -- npx -y wp-ssh-mcpThen ask: "Run diagnostics on my site."
Related MCP server: MCP Site Manager
Safe by default
The server starts in read mode. Write tools are not even shown to the AI until you opt in.
| What the AI can do | Action tools |
| Look, never touch: site info, diagnostics, posts, orders, options, file reads, SELECT queries, dry-run search-replace, Elementor export | 21 |
| + content changes: create/update posts, order status, Elementor data/import, product attributes, cache clear, media upload, menus | 34 |
| + risky: file writes/restore, write SQL, permanent delete, real search-replace, plugin activate/deactivate | 41 |
More safety built in:
Risky tools are marked destructive, so MCP clients show an approval prompt.
db_queryaccepts one read-only statement only. Writes need the separatedb_query_writetool (full mode).search_replace_previewalways sendsdry_run: true; the model cannot override it.confirm: trueis never added automatically. The model must pass it, and tool descriptions tell it to do so only after your approval.The plugin's own protections still apply (Read-only mode, IP allowlist, lockout, auto-backups, activity log).
Refuses plain
http://(except localhost), refuses to follow redirects (the key is never forwarded), and never prints your key.
Install
Requires Node.js 18+ and the WP SSH plugin active on your site (Tools → WP SSH → copy the secret key, tick Enable bridge).
Claude Desktop
Edit claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"my-site": {
"command": "npx",
"args": ["-y", "wp-ssh-mcp"],
"env": {
"WPSSH_URL": "https://yoursite.com",
"WPSSH_KEY": "your-64-char-secret-key",
"WPSSH_MODE": "read"
}
}
}
}Restart Claude Desktop.
Claude Code
claude mcp add my-site -e WPSSH_URL=https://yoursite.com -e WPSSH_KEY=your-key -- npx -y wp-ssh-mcpCursor
~/.cursor/mcp.json (or project .cursor/mcp.json): same mcpServers block as above.
Several sites
"env": {
"WPSSH_SITES": "[{\"name\":\"shop\",\"url\":\"https://shop.com\",\"key\":\"...\"},{\"name\":\"blog\",\"url\":\"https://blog.com\",\"key\":\"...\"}]",
"WPSSH_MODE": "read"
}Every tool then gets a required site parameter (shop or blog).
Run from source
git clone https://github.com/MSSOFTPC/wp-ssh-mcp
cd wp-ssh-mcp
npm install && npm run build
# then use "command": "node", "args": ["/full/path/to/wp-ssh-mcp/dist/index.js"]Configuration
Variable | Meaning |
| One site. URL like |
| Optional name for the single site (default |
| JSON array for several sites (see above) |
|
|
|
|
| Request timeout, default |
| Max characters returned per call (default |
Example prompts
"Run diagnostics on my site and tell me what is slowing it down."
"List draft posts tagged ready and show me before publishing any."
"Preview a search-replace from
http://old.comtohttps://new.com. Don't apply it.""Export the Elementor design of page 120 from
shopand import it as a draft onblog.""Show today's WooCommerce orders and summarise by status."
ChatGPT, n8n, Make, Zapier (no MCP needed)
This repo also ships OpenAPI 3.1 files generated from the same action list:
openapi.json: read + content-write actions (use this one)openapi.full.json: everything, including risky actions (only for agents you fully trust)
Custom GPT: Configure → Actions → Import the file → set the server URL to your site → Authentication: API Key, Custom, header name X-WPSSH-Key.
Note that ChatGPT calls your site from OpenAI's servers, so an IP allowlist is not practical there; keep the plugin in Read-only mode unless you are actively making changes.
Regenerate after changing src/spec.ts: npm run build && npm run gen:openapi.
Privacy
wp-ssh-mcp talks only to the site URLs you configure. No telemetry, no analytics, no third-party servers. What the AI sees is the output of the tools you allow, and it is handled under your AI provider's terms.
Troubleshooting
Symptom | Fix |
"wrong or missing secret key" | Re-copy the key from Tools → WP SSH (regenerating invalidates the old one) |
403 | Bridge disabled, Read-only mode on in the plugin, or your IP is not on the allowlist |
404 | Plugin inactive, or permalinks/REST API blocked by a security plugin or server rule |
"redirect" error | Use the exact final URL (https vs http, www vs non-www) |
Tools missing | You are in |
Nothing shows in Claude Desktop | Check JSON syntax, fully restart the app, run |
Development
npm install
npm test # builds and runs the end-to-end smoke test against a mock endpoint
npm run gen:openapisrc/spec.ts is the single list of actions. Add an action there and both the MCP tool and the OpenAPI schema appear.
License
GPL-2.0-or-later, same as the plugin.
This server cannot be deployed
Maintenance
Related MCP Connectors
Manage a WordPress site from your AI assistant: read, search, propose edits, Search Console data.
Manage WordPress blogs and WooCommerce shops from Claude, ChatGPT, Cursor and other MCP apps.
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
Marketing data and actions for AI agents: GA4, Search Console, ads, social, SEO and WordPress.
Related MCP Servers
- AlicenseCqualityCmaintenanceEnables AI agents to manage WordPress sites with 190+ tools for content management, theme/plugin customization, file system operations, WooCommerce, and complete site control through natural language.10038 npm56MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to manage WordPress sites via ~74 capabilities including content, media, plugins, themes, and more.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage WordPress sites through the WordPress REST API, supporting content, media, users, settings, and Elementor management with safety policies for production use.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with WordPress websites through structured tools, supporting posts, pages, media, users, categories, tags, plugins, themes, menus, and WooCommerce with secure authentication.32 npmMIT