OptimoCMSDocs
MCP

Available MCP Tools

Complete overview of all OptimoCMS MCP tools with parameters and examples.

Available MCP Tools

OptimoCMS provides 25 MCP tools across 8 categories. Every tool is available in Cursor, Claude Desktop, and Lovable.

Sites

list_sites

List all websites accessible with the current API key.

ParameterTypeRequiredDescription
limitnumberNoMax sites to return (default 25, max 100)
statusstringNoFilter by status: active, paused, building, error

Example prompt: "Show all my active sites."

get_site

Get detailed information about a specific website including design tokens, domain, and status.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID

Example prompt: "What are the details of site site_abc123?"


Pages

list_pages

List all pages for a website with titles, slugs, and status.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
limitnumberNoMax pages to return (default 25, max 100)
statusstringNoFilter: published, draft, archived, all

Example prompt: "Show all published pages of site site_abc123."

get_page

Get full page detail including content blocks, SEO metadata, and timestamps.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
pageIdstringYesThe page ID

Example prompt: "Get the content of page page_xyz789 on site site_abc123."

create_page

Create a new page. Requires write permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
titlestringYesPage title
slugstringNoURL slug (auto-generated from title if omitted)
blocksarrayNoContent blocks

Example prompt: "Create an 'About Us' page on site site_abc123."

update_page

Update an existing page. Can change title, slug, blocks, SEO, or status.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
pageIdstringYesThe page ID
titlestringNoNew title
slugstringNoNew URL slug
statusstringNopublished, draft, archived
blocksarrayNoNew content blocks (replaces all existing)
seoobjectNoSEO metadata: title, description, ogImage, noIndex

Example prompt: "Set page page_xyz789 to draft."


Publishing

publish_site

Publish (deploy) a website to production. Rate limited: max 1 deploy per 5 minutes per site. Requires publish permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID

Example prompt: "Publish site site_abc123."


Media

search_media

Search the media library by filename or alt text. Optionally filter by MIME type.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
querystringYesSearch query (matched against filename and alt text)
mimeTypestringNoFilter by MIME type prefix, e.g. image/ or video/
limitnumberNoMax results (default 25, max 100)

Example prompt: "Find all images with 'logo' in the name on site site_abc123."


Analytics

get_analytics

Get analytics summary: pageviews, unique visitors, average session duration, bounce rate, and top pages.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
periodstringNoPeriod: last7d, last30d, last90d (default: last30d)

Example prompt: "How has site site_abc123 performed in the last 7 days?"


AI

generate_page

Generate a new page using AI from a text prompt. Requires ai permission. Rate limited: 2 calls per minute. Cost: ~€0.30 per call.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
promptstringYesDescription of the page to generate
languagestringNoContent language: nl, en, de, fr, es
stylestringNoVisual style hint: minimalist, corporate, playful etc.

Example prompt: "Generate a modern landing page for a bakery in minimalist style."

translate_page

Translate all content blocks of a page to another language. Requires ai permission. Rate limited: 5 calls per minute.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
pageIdstringYesThe page ID
targetLanguagestringYesTarget language: nl, en, de, fr, es

Example prompt: "Translate page page_xyz789 to German."

assist_content

AI-powered content improvement for an existing page. Describe what to change. Requires ai permission. Rate limited: 5 calls per minute.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
pageIdstringYesThe page ID
instructionstringYesWhat to change (free-text instruction)

Example prompt: "Make the tone of page page_xyz789 more professional."

generate_template

Generate a reusable component template from a description. Requires ai permission. Rate limited: 2 calls per minute.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID (for context like design tokens)
promptstringYesTemplate description
stylestringNoVisual style hint

Example prompt: "Create a pricing table template with 3 tiers."

generate_template_variants

Generate style variants of an existing template. Produces multiple visual variations. Requires ai permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
templateIdstringYesThe base template ID
countnumberNoNumber of variants (default 3, max 5)
stylesstring[]NoSpecific style names, e.g. ["dark", "playful", "corporate"]

Example prompt: "Create 3 variants of template tmpl_abc: dark, playful, and corporate."


Import

preview_import

Crawl a website URL and return a preview of what the import would produce. Does NOT create a site. Requires ai permission.

ParameterTypeRequiredDescription
urlstringYesThe website URL to preview
languagestringNoTarget language: nl, en, de, fr, es (default: nl)

Example prompt: "Preview what would be imported from https://example.com."

import_website

Import a website by URL into OptimoCMS. Crawls the site, detects layout, maps sections to components, and creates a new site. Requires ai permission.

ParameterTypeRequiredDescription
urlstringYesThe website URL to import
languagestringNoTarget language (default: nl)
siteNamestringNoName for the new site
siteIdstringNoExisting site ID to overwrite
selectedSubPagesstring[]NoURLs of sub-pages to include
importBlogPostsbooleanNoImport WordPress blog posts (default: true)
hdImportbooleanNoHD Import with vision-guided refinement (professional+ tier)

Example prompt: "Import https://example.com as 'Example Site' with all sub-pages."


Booking

get_available_slots

Get available booking time slots for a specific date. Requires verticals permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
datestringYesDate in YYYY-MM-DD format
serviceIdstringNoSpecific service ID

Example prompt: "What time slots are available on 2026-06-15 for site site_abc123?"

create_booking

Create a new booking. Check available slots first. Requires verticals permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
serviceIdstringYesThe service ID
datestringYesDate in YYYY-MM-DD format
startTimestringYesStart time in HH:mm format
customerNamestringYesCustomer full name
customerEmailstringYesCustomer email address
customerPhonestringNoCustomer phone number
staffIdstringNoStaff member ID

Example prompt: "Book an appointment for John Smith on 2026-06-15 at 14:00."

list_bookings

List bookings, optionally filtered by status or date. Requires verticals or read permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
statusstringNoFilter: pending, confirmed, cancelled, completed
datestringNoFilter by date (YYYY-MM-DD)
limitnumberNoMax results (default 25, max 100)

Example prompt: "Show all confirmed bookings for today."


E-commerce

list_products

List products in the site shop. Requires verticals or read permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
limitnumberNoMax results (default 25, max 100)
categorystringNoFilter by category

Example prompt: "Show all products in the 'Bread' category of site site_abc123."

create_product

Create a new product. Price in cents (e.g. 1999 = €19.99). Requires verticals permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
titlestringYesProduct name
priceCentsnumberYesPrice in cents
descriptionstringNoProduct description
categorystringNoCategory
stocknumberNoStock quantity (null = unlimited)

Example prompt: "Add a product 'Sourdough Bread' for €4.50 with 50 in stock."

update_product

Update an existing product. Only provided fields are changed. Requires verticals permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
productIdstringYesThe product ID
titlestringNoNew name
priceCentsnumberNoNew price in cents
descriptionstringNoNew description
categorystringNoNew category
activebooleanNoActive/inactive
stocknumberNoNew stock quantity

Example prompt: "Increase the price of product prod_123 to €5.99."

list_orders

List shop orders. Requires verticals or read permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
statusstringNoFilter: pending, paid, shipped, delivered, completed, cancelled, refunded
limitnumberNoMax results (default 25, max 100)

Example prompt: "Show all unpaid orders for site site_abc123."


Loyalty

get_member_status

Get loyalty program member status including points balance and tier. Requires verticals or read permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
memberIdstringYesThe member ID

Example prompt: "How many points does member mem_456 have on site site_abc123?"

earn_points

Award loyalty points to a member. Requires verticals permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
memberIdstringYesThe member ID
pointsnumberYesNumber of points (positive integer)
descriptionstringYesReason for awarding

Example prompt: "Give member mem_456 100 points for a €50 purchase."

list_rewards

List available loyalty rewards. Requires verticals or read permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
limitnumberNoMax results (default 25, max 100)

Example prompt: "What rewards can members redeem on site site_abc123?"


Reviews

list_reviews

List reviews, optionally filtered by status. Requires verticals or read permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
statusstringNoFilter: all, pending, approved, rejected
limitnumberNoMax results (default 25, max 100)

Example prompt: "Show all pending reviews for site site_abc123."


Jobs

list_jobs

List job vacancies. Requires verticals or read permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
statusstringNoFilter: draft, review, published, paused, closed, filled, archived
limitnumberNoMax results (default 25, max 100)

Example prompt: "Show all open vacancies for site site_abc123."

create_job

Create a new job vacancy in draft status. Requires verticals permission.

ParameterTypeRequiredDescription
siteIdstringYesThe site ID
titlestringYesJob title
descriptionstringNoFull description (supports markdown)
locationstringNoLocation (e.g. "Amsterdam" or "Remote")
departmentstringNoDepartment
jobTypestringNofull_time, part_time, contract, internship, volunteer, temporary

Example prompt: "Create a job posting for Senior Frontend Developer in Amsterdam."


Permissions per tool

ToolRequired permission
list_sites, get_site, list_pages, get_pageread
create_page, update_pagewrite
publish_sitepublish
search_mediaread
get_analyticsread
generate_page, translate_page, assist_content, generate_template, generate_template_variantsai
preview_import, import_websiteai
get_available_slots, create_booking, list_bookingsverticals
list_products, create_product, update_product, list_ordersverticals
get_member_status, earn_points, list_rewardsverticals
list_reviewsverticals or read
list_jobs, create_jobverticals

On this page