WPCafe MCP Server
Enables management of WooCommerce orders (food orders) within a WordPress site with WPCafe, including listing, updating status, and deleting orders.
Allows AI assistants to manage a WordPress site running the WPCafe restaurant plugin, including reservations, food orders, locations, QR codes, settings, analytics, and Pro features.
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., "@WPCafe MCP Server Show me all pending reservations for today."
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.
WPCafe MCP Server
Connect any MCP-compatible AI assistant — Claude, ChatGPT, Cursor, and others — to your WordPress site running the WPCafe restaurant plugin.
Once connected, your AI assistant can manage reservations, food orders, locations, QR codes, settings, analytics, and every other feature available in the WPCafe admin panel.
What you can do
Category | Actions |
Reservations | List, get, create, update, delete, bulk delete, cancel, check time slots, check capacity |
Food Orders | List, get, update status, delete (WooCommerce orders) |
Products | List food menu items, get product details, list categories |
Locations | List, get, create, update, delete, bulk delete branches |
QR Codes | List, get, create, update, delete scan-to-order QR codes |
Settings | Get all settings, get public settings, update settings |
Dashboard | Overview stats, food order analytics, reservation analytics, top-selling products |
Modules | List extensions, enable/disable modules, get integrations, get addon plugins |
Pro — Seat Plans | List, get, create, update, delete visual floor layouts |
Pro — Discounts | List, get, create, update, delete discount codes |
Pro — Receipts | List receipt layouts, get order receipt |
Pro — Timed Products | List, create time-availability rules for menu items |
Related MCP server: wordpress-seo-mcp
Prerequisites
Node.js 18 or later
WPCafe plugin (free) installed and active on your WordPress site
WordPress user with Administrator or Shop Manager role
A WordPress Application Password (created in WP Admin → Users → Your Profile)
Setup
Step 1 — Create a WordPress Application Password
Go to WordPress Admin → Users → Your Profile
Scroll down to Application Passwords
Enter a name (e.g.
WPCafe MCP) and click Add New Application PasswordCopy the password shown — it looks like
xxxx xxxx xxxx xxxx xxxx xxxxKeep it somewhere safe; WordPress will not show it again
Step 2 — Configure your AI client
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"wpcafe": {
"command": "npx",
"args": ["-y", "github:themewinter/wpcafe-mcp"],
"env": {
"WPCAFE_SITE_URL": "https://yoursite.com",
"WPCAFE_USERNAME": "your-admin-username",
"WPCAFE_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx"
}
}
}
}Restart Claude Desktop. WPCafe tools will appear automatically.
Cursor / VS Code (MCP extension)
{
"servers": {
"wpcafe": {
"command": "npx",
"args": ["-y", "github:themewinter/wpcafe-mcp"],
"env": {
"WPCAFE_SITE_URL": "https://yoursite.com",
"WPCAFE_USERNAME": "your-admin-username",
"WPCAFE_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx"
}
}
}
}Any other MCP client
The server speaks standard MCP over stdio. Use npx -y github:themewinter/wpcafe-mcp as the command with the three env vars set.
Example prompts
Show me all pending reservations for today.
Create a reservation for John Smith (john@example.com) on 2026-07-01 at 7pm for 4 guests.
List all food orders with status "processing".
What were the top 10 selling items this month?
Update the primary color in WPCafe settings to #FF5722.
Create a QR code named "Table 12" for location ID 3.
Enable the Delivery module.
Show me the dashboard overview for the past week.Optional: Enable full write access
By default the server works with Application Password authentication. A small subset of WPCafe operations (reservation creation, food-order listing) use WordPress's CSRF nonce system, which requires a one-time server-side snippet.
If you hit a message like "This operation requires a WordPress security nonce", add this to your site's functions.php (or any active plugin):
add_action( 'rest_api_init', function () {
register_rest_route( 'wpcafe/v2', '/nonce', [
'methods' => 'GET',
'callback' => fn() => [
'nonce' => wp_create_nonce( 'wp_rest' ),
'expires' => time() + 43200,
],
'permission_callback' => 'is_user_logged_in',
] );
} );Alternatively, upload wordpress-plugin/wpcafe-mcp-bridge.php (included in this repo) to your wp-content/plugins/ directory and activate it in WP Admin — same effect, no code editing required.
Security
How authentication works
You create an Application Password in your WordPress profile — it is separate from your login password and can be revoked at any time.
The MCP server sends it with every request as an
Authorization: Basicheader.WordPress verifies it and authenticates the request as that user.
All WPCafe permission checks (capabilities, roles) still apply — the MCP server does not bypass them.
What the MCP server does NOT do
It does not store or cache credentials on disk.
It does not bypass WordPress capability checks.
It does not expose any endpoint that isn't already in the WPCafe REST API.
It does not run any code inside WordPress — it only calls the existing REST API.
HTTPS requirement
Always use HTTPS for WPCAFE_SITE_URL. Application Passwords are sent in every request header; without HTTPS anyone on the network can read them. The server warns (but does not block) if it detects an HTTP URL for a non-localhost host.
Revoking access
Go to WordPress Admin → Users → Your Profile → Application Passwords and delete the WPCafe MCP entry. The server immediately loses access.
Role capabilities
Role | List / Get | Create | Update | Delete |
Administrator | All resources | All resources | All resources | All resources |
Shop Manager | Reservations, Orders, Products | Reservations | Order status, Reservation status | — |
Staff (wpcafe_manage_*) | Own + all reservations/orders | — | Status only | — |
Troubleshooting
"HTTP 401 Unauthorized"
Check that
WPCAFE_USERNAMEandWPCAFE_APP_PASSWORDare correct.Make sure Application Passwords are enabled (some security plugins disable them).
Verify the user exists and has the right role.
"HTTP 403 Forbidden" The authenticated user does not have the required capability. Use an administrator or shop manager account.
"This operation requires a WordPress security nonce"
Add the functions.php snippet above, or install wordpress-plugin/wpcafe-mcp-bridge.php.
Pro tools return 404 The wpcafe-pro plugin is not installed or not active. Pro tools are registered but return 404 on free-only installations.
Development
git clone https://github.com/themewinter/wpcafe-mcp.git
cd wpcafe-mcp
npm install
npm run dev # Run with tsx (no build step)
npm run build # Compile TypeScript to dist/
npm start # Run compiled outputTo add new tools, create a register function in src/tools/ following the pattern of existing files, then call it in src/index.ts.
License
GPL-2.0-or-later — same license as the WPCafe WordPress plugin.
Available Tools
53 toolsbulk_delete_locationsA
Delete multiple restaurant locations at once.
Inputs: ids (required).
bulk_delete_reservationsA
Delete multiple reservations at once by providing an array of IDs.
Inputs: ids (required).
cancel_reservationA
Cancel a reservation using invoice number and guest email (public-facing cancellation, no admin login required).
Inputs: email (required), invoice (required), notes.
create_discountB
[WPCafe Pro] Create a new discount code for food orders.
Inputs: code (required), type (required), amount (required), max_uses, +4 more.
create_locationB
Create a new restaurant location/branch. Requires a name and location coordinates (lat/lng object).
Inputs: location (required), restaurant_name (required), restaurant_type, restaurant_email, +3 more.
create_qrcodeA
Create a new QR code for a table or location. The QR encodes a URL that customers scan to open the food ordering page.
Inputs: name (required), table_id, location_id, redirect_url.
create_reservationC
Create a new table reservation. Requires guest name, email, date, start_time, end_time, and total_guest. The booking price is calculated server-side.
Inputs: date (required), name (required), email (required), end_time (required), +9 more.
create_seat_planB
[WPCafe Pro] Create a new seat plan layout for a restaurant location.
Inputs: name (required), location_id (required), canvas_data.
create_timed_productB
[WPCafe Pro] Create a time-availability rule for a product — restrict when it appears on the menu.
Inputs: schedule (required), product_id (required).
delete_discountB
[WPCafe Pro] Delete a discount code by ID.
Inputs: id (required).
delete_food_orderA
Move a food order to trash. The order is not permanently deleted — it can be restored from the WooCommerce orders screen.
Inputs: id (required).
delete_locationB
Delete a single restaurant location by ID.
Inputs: id (required).
delete_qrcodeA
Delete a QR code by ID. Scanning the deleted QR code will no longer open the ordering page.
Inputs: id (required).
delete_reservationB
Permanently delete a reservation by ID.
Inputs: id (required).
delete_seat_planB
[WPCafe Pro] Delete a seat plan by ID.
Inputs: id (required).
get_addon_pluginsA
Get the list of available WPCafe addon plugins (Elementor Addons, Bricks Builder, Multivendor) and whether they are installed and active.
Inputs: no named parameters.
get_dashboard_food_ordersB
Get a paginated list of food orders from the dashboard analytics view, optionally filtered by status and branch.
Inputs: paged, branch, status, per_page.
get_dashboard_overviewB
Get a high-level overview of restaurant performance: total revenue, orders, reservations, and new customers for a date range.
Inputs: branch, end_date, start_date.
get_dashboard_reservationsB
Get a paginated list of reservations from the dashboard analytics view, optionally filtered by status and branch.
Inputs: paged, branch, status, per_page.
get_discountB
[WPCafe Pro] Get details of a single discount code including type, amount, usage limits, and expiry.
Inputs: id (required).
get_food_orderA
Get full details of a single food order including line items, billing/shipping address, totals, and customer notes.
Inputs: id (required).
get_integrationsA
Get the status and configuration of WPCafe third-party integrations (WooCommerce, FluentCRM, Mailmint, WhatsApp, etc.).
Inputs: no named parameters.
get_locationA
Get details of a single restaurant location including address, coordinates, schedule, and capacity.
Inputs: id (required).
get_productA
Get full details of a single food menu product including price, description, categories, labels, images, and WooCommerce meta.
Inputs: id (required).
get_public_settingsA
Get public (non-sensitive) WPCafe settings. Safe to call without admin credentials. Returns reservation form config, colors, schedule, currency, and UI settings.
Inputs: no named parameters.
get_qrcodeA
Get details of a single QR code including the image URL, linked table/location, and scan statistics.
Inputs: id (required).
get_receiptA
[WPCafe Pro] Get a generated receipt/bill for a specific order. Returns the receipt data or PDF download URL.
Inputs: order_id (required).
get_reservationA
Get full details of a single reservation by its ID.
Inputs: id (required).
get_reservation_capacityB
Check how many seats are available, booked, and total for a specific date/time slot.
Inputs: date (required), end_time (required), start_time (required), branch_id.
get_reservation_time_slotsA
Get available reservation time slots for a date range. Used to show a calendar of open and blocked slots.
Inputs: end_date (required), start_date (required), location_id.
get_seat_planA
[WPCafe Pro] Get details of a specific seat plan including table positions, capacities, and shape data.
Inputs: id (required).
get_settingsA
Get all WPCafe plugin settings. Requires administrator or shop manager role. Sensitive credentials (WhatsApp token, webhook URLs) are only returned for administrators with manage_options capability.
Inputs: no named parameters.
get_top_selling_productsB
Get the top selling food menu items for a given time period and branch. Useful for menu optimization and promotions.
Inputs: branch, period, per_page.
list_discountsA
[WPCafe Pro] List discount codes configured for food ordering.
Inputs: paged, per_page.
list_extensionsA
List all WPCafe modules/extensions with their current on/off status. Includes both free modules (Reservation, Food Ordering, QR Code, Tipping, Mini Cart) and Pro modules (Delivery, Pickup, Discounts, Dine-In, Seat Plan, etc.).
Inputs: no named parameters.
list_food_ordersB
List WooCommerce food orders managed by WPCafe. Returns order summaries including customer, items count, total, and status.
Inputs: paged, search, status, date_to, +3 more.
list_locationsC
List all restaurant locations/branches configured in WPCafe.
Inputs: paged, search, per_page.
list_product_categoriesB
List WooCommerce product categories used in the WPCafe food menu.
Inputs: parent, search, per_page.
list_productsA
List WooCommerce food menu products managed by WPCafe. Supports filtering by category, location, search, and pagination.
Inputs: order, paged, search, orderby, +3 more.
list_qrcodesB
List all QR codes created in WPCafe. Each QR code links to a specific table or location for scan-to-order functionality.
Inputs: paged, search, per_page.
list_receipt_layoutsC
[WPCafe Pro] List custom receipt/bill layouts created with the Receipt Layout Builder.
Inputs: per_page.
list_reservationsA
List table reservations with optional filters. Returns paginated results including guest info, date/time, status, and branch.
Inputs: paged, branch, search, status, +4 more.
list_seat_plansC
[WPCafe Pro] List visual seat plans / floor layouts for restaurant locations.
Inputs: location_id.
list_timed_productsA
[WPCafe Pro] List products with time-based availability rules (e.g. breakfast items only available 6am-11am).
Inputs: per_page.
toggle_extensionA
Enable or disable a WPCafe module by its slug. Affects which features are active on the site.
Inputs: slug (required), status (required).
update_dashboard_order_statusA
Update the status of an order directly from the dashboard analytics view (shortcut for the restaurant management panel).
Inputs: id (required), status (required).
update_discountC
[WPCafe Pro] Update an existing discount code.
Inputs: id (required), code, type, amount, +2 more.
update_food_order_statusC
Update the WooCommerce status of a food order (e.g. mark as processing, completed, cancelled).
Inputs: id (required), status (required).
update_locationA
Update an existing restaurant location. Only provide fields you want to change.
Inputs: id (required), location, restaurant_name, restaurant_email, +3 more.
update_qrcodeA
Update an existing QR code — rename it or change its linked table/location.
Inputs: id (required), name, table_id, location_id, +1 more.
update_reservationA
Update an existing reservation. Only provide fields you want to change.
Inputs: id (required), date, name, email, +8 more.
update_seat_planB
[WPCafe Pro] Update an existing seat plan (rename or change canvas layout data).
Inputs: id (required), name, canvas_data.
update_settingsA
Update one or more WPCafe settings. Only provide the keys you want to change — all other settings remain unchanged. Requires administrator role.
Inputs: extra, currency, wc_status, primary_color, +16 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 53 tools
Most tools target distinct entities (locations, reservations, orders, QR codes, discounts, etc.), but there is minor overlap between get/list/dashboard variants for reservations and orders. However, descriptions clearly differentiate them, so agents can generally distinguish.
All tools follow a consistent verb_noun pattern in snake_case (e.g., create_location, delete_qrcode, list_products, update_settings), making the naming predictable and easy to understand.
With 53 tools, the set is quite large, but it covers multiple modules of a comprehensive restaurant management plugin (reservations, ordering, QR codes, discounts, seat plans, settings, etc.). It is borderline heavy but not unreasonable for such a broad domain.
The tool set provides extensive CRUD operations for most entities (locations, QR codes, reservations, discounts, seat plans, timed products) and includes dashboard analytics and management tools. Minor gaps exist, such as no tool to create a food order or product from the MCP side, but these are likely intentional.
Maintenance
Related MCP Connectors
Secure MCP Server for WordPress connects AI assistants and agents to WordPress with secure, controlled access. It lets AI interact with WordPress through MCP while helping organizations manage access, enforce policies, protect non-human identities (NHI), and require human approval for sensitive actions. Use it to securely connect tools such as ChatGPT, Claude, and Cursor with WordPress. Marketplace Link: https://wordpress.org/plugins/miniorange-secure-mcp-server/ Official website: https://plugins.miniorange.com/mcp-server-ai-policy-enforcement-wordpress ChatGpt Marketplace: https://chatgpt.com/plugins/plugin_asdk_app_6a312802286c8191bad0a7278a4e53ef Claude Marketplace: https://claude.ai/directory/miniorange-mcp-for-wordpress Cursor Marketplace: https://cursor.com/marketplace/miniorange
Manage WordPress blogs and WooCommerce shops from Claude, ChatGPT, Cursor and other MCP apps.
Connect e-commerce and marketing data to AI assistants via MCP.
Connect your business apps to your MCP compatible AI in 1 click
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage and interact with WordPress sites through MCP, providing tools for content creation, moderation, WooCommerce operations, and governance.47GPL 2.0
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to WordPress sites, enabling automated SEO analysis and fixes for meta tags, schema, content, images, and technical SEO via MCP tools.MIT
- FlicenseNot gradedqualityFmaintenanceEnables AI assistants to interact with a WordPress site, allowing content and taxonomy management (list, create, update, delete) through 17 MCP tools.2-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read, see, and directly work on WordPress sites via MCP, including SEO, WooCommerce, page builder editing, site speed optimization, and reversible writes with undo.2GPL 2.0