DOCS / API

REST API Reference

Direct HTTP access to all mumcp endpoints. Use these for custom integrations beyond MCP.

Authentication

All requests require the X-API-Key header:

curl -H "X-API-Key: spai_your_key_here" \
  https://yoursite.com/wp-json/site-pilot-ai/v1/site-info

API keys are generated in WordPress Admin → mumcp → Settings.

Keys support scoped permissions: read, write, admin

Base URL

https://yoursite.com/wp-json/site-pilot-ai/v1/

All endpoints below are relative to this base.

MCP Transport

POST /mcp — JSON-RPC 2.0 endpoint for MCP clients

This is the single endpoint MCP clients use. It accepts tools/list and tools/call methods.

POST /wp-json/site-pilot-ai/v1/mcp

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "wp_list_posts",
    "arguments": {"per_page": 5}
  },
  "id": 1
}

Posts Endpoints

MethodEndpointDescription
GET/postsList posts (per_page, page, status, search, category, tag)
GET/posts/{id}Get single post
POST/postsCreate post (title, content, status, categories, tags)
PUT/posts/{id}Update post
DELETE/posts/{id}Delete post (force)
POST/posts/{id}/featured-imageSet featured image (media_id)

Pages Endpoints

MethodEndpointDescription
GET/pagesList pages
GET/pages/{id}Get single page
GET/pages/by-slug/{slug}Find page by slug
POST/pagesCreate page (title, content, status, parent, slug)
PUT/pages/{id}Update page
DELETE/pages/{id}Delete page (force)
POST/pages/{id}/cloneClone page with Elementor data (title, status)
POST/pages/{id}/templateSet page template (template)
GET/templates/pageList available page templates

Elementor Endpoints

MethodEndpointDescription
GET/elementor/{id}Get Elementor data as JSON
POST/elementor/{id}Set Elementor data (elementor_data as JSON array)
POST/elementor/{id}/regenerate-cssRebuild Elementor CSS
POST/elementor/{id}/find-replaceFind and replace text in Elementor data (search, replace)

Menu Endpoints

MethodEndpointDescription
GET/menusList menus
POST/menusCreate menu (name)
DELETE/menus/{id}Delete menu
GET/menus/{id}/itemsList menu items
POST/menus/{id}/itemsAdd menu item (title, type, url/object_id, parent, position)
PUT/menu-items/{id}Update menu item
DELETE/menu-items/{id}Delete menu item
GET/menu-locationsList theme locations
POST/menus/assign-locationAssign menu to location (menu_id, location)

Other Endpoints

MethodEndpointDescription
GET/site-infoSite information and capabilities
POST/optionsUpdate site options (key-value pairs)
GET/mediaList media
POST/mediaUpload media
POST/media/from-urlUpload from URL (url, title)
GET/categoriesList categories
GET/tagsList tags
GET/draftsList drafts
DELETE/drafts/delete-allDelete all drafts
POST/batchBatch operations

Response Format

All responses return JSON with a consistent structure:

{
  "success": true,
  "data": { ... }
}

Errors return:

{
  "code": "error_code",
  "message": "Human-readable message",
  "data": {"status": 400}
}

Rate Limiting

10
requests per 10 seconds (burst)
200
requests per minute

Rate limit headers are included in all responses.

A 429 response includes a retry_after field indicating seconds to wait.

Continue exploring the documentation