Available MCP Tools
Complete overview of all OptimoCMS MCP tools with parameters and examples.
Available MCP Tools
OptimoCMS provides 62 MCP tools across 19 categories. Every tool is available in Cursor, Claude Desktop, and Lovable.
Sites
list_sites
List all websites accessible with the current API key.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Max sites to return (default 25, max 100) |
status | string | No | Filter 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
Example prompt: "What are the details of site site_abc123?"
create_site
Create a new website. Requires admin role. Enforces site limit based on billing tier.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteName | string | Yes | Name for the new website |
language | string | No | Language: nl, en, de, fr, es (default: nl) |
Example prompt: "Create a new website called 'De Molen Bakery'."
delete_site
Delete a website and all its data. Requires admin role. Confirmation via site name required.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID to delete |
confirmName | string | Yes | Type the site name to confirm deletion |
Example prompt: "Delete site site_abc123 (confirm: De Molen Bakery)."
Pages
list_pages
List all pages for a website with titles, slugs, and status.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
limit | number | No | Max pages to return (default 25, max 100) |
status | string | No | Filter: 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
pageId | string | Yes | The page ID |
Example prompt: "Get the content of page page_xyz789 on site site_abc123."
create_page
Create a new page. Requires write permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
title | string | Yes | Page title |
slug | string | No | URL slug (auto-generated from title if omitted) |
blocks | array | No | Content 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
pageId | string | Yes | The page ID |
title | string | No | New title |
slug | string | No | New URL slug |
status | string | No | published, draft, archived |
blocks | array | No | New content blocks (replaces all existing) |
seo | object | No | SEO metadata: title, description, ogImage, noIndex |
Example prompt: "Set page page_xyz789 to draft."
delete_page
Delete (archive) a page. The page is soft-deleted and can be recovered.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
pageId | string | Yes | The page ID to delete |
Example prompt: "Delete page page_xyz789 from site site_abc123."
Publishing
publish_site
Publish (deploy) a website to production. Rate limited: max 1 deploy per 5 minutes per site. Requires publish permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
query | string | Yes | Search query (matched against filename and alt text) |
mimeType | string | No | Filter by MIME type prefix, e.g. image/ or video/ |
limit | number | No | Max 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
period | string | No | Period: 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. Optionally include an AI-generated hero video (Professional+ plans). Choose a video model: seedance-fast (1 credit, default), seedance-standard (2 credits, max quality), kling-standard (1 credit, budget). Requires ai permission. Rate limited: 2 calls per minute. Cost: ~€0.30 per call (excl. video).
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
prompt | string | Yes | Description of the page to generate |
language | string | No | Content language: nl, en, de, fr, es |
style | string | No | Visual style hint: minimalist, corporate, playful etc. |
useHeroVideo | boolean | No | Generate an AI hero video for the hero section (Professional+ plans). Default: false |
videoModelId | string | No | Video model: seedance-fast (1 credit, default), seedance-standard (2 credits), kling-standard (1 credit). Only relevant when useHeroVideo is true. |
AI media generation: When
useHeroVideois set totrue, a short background video is automatically generated for the hero section. This is available for Professional and Agency plans. On lower plans, the parameter is ignored.
Video models: Use
videoModelIdto select the model. Default isseedance-fast(best balance of quality/speed).seedance-standarddelivers maximum quality but costs 2 credits.kling-standardis the budget option.
Example prompt: "Generate a landing page for a bakery with hero video."
Example prompt (with model): "Generate a landing page for a bakery with a high-quality hero video."
Example prompt (without video): "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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
pageId | string | Yes | The page ID |
targetLanguage | string | Yes | Target 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
pageId | string | Yes | The page ID |
instruction | string | Yes | What 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID (for context like design tokens) |
prompt | string | Yes | Template description |
style | string | No | Visual 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
templateId | string | Yes | The base template ID |
count | number | No | Number of variants (default 3, max 5) |
styles | string[] | No | Specific 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The website URL to preview |
language | string | No | Target 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The website URL to import |
language | string | No | Target language (default: nl) |
siteName | string | No | Name for the new site |
siteId | string | No | Existing site ID to overwrite |
selectedSubPages | string[] | No | URLs of sub-pages to include |
importBlogPosts | boolean | No | Import WordPress blog posts (default: true) |
hdImport | boolean | No | HD 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
date | string | Yes | Date in YYYY-MM-DD format |
serviceId | string | No | Specific 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
serviceId | string | Yes | The service ID |
date | string | Yes | Date in YYYY-MM-DD format |
startTime | string | Yes | Start time in HH:mm format |
customerName | string | Yes | Customer full name |
customerEmail | string | Yes | Customer email address |
customerPhone | string | No | Customer phone number |
staffId | string | No | Staff 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
status | string | No | Filter: pending, confirmed, cancelled, completed |
date | string | No | Filter by date (YYYY-MM-DD) |
limit | number | No | Max 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
limit | number | No | Max results (default 25, max 100) |
category | string | No | Filter 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
title | string | Yes | Product name |
priceCents | number | Yes | Price in cents |
description | string | No | Product description |
category | string | No | Category |
stock | number | No | Stock 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
productId | string | Yes | The product ID |
title | string | No | New name |
priceCents | number | No | New price in cents |
description | string | No | New description |
category | string | No | New category |
active | boolean | No | Active/inactive |
stock | number | No | New stock quantity |
Example prompt: "Increase the price of product prod_123 to €5.99."
list_orders
List shop orders. Requires verticals or read permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
status | string | No | Filter: pending, paid, shipped, delivered, completed, cancelled, refunded |
limit | number | No | Max 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
memberId | string | Yes | The 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
memberId | string | Yes | The member ID |
points | number | Yes | Number of points (positive integer) |
description | string | Yes | Reason 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
limit | number | No | Max 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
status | string | No | Filter: all, pending, approved, rejected |
limit | number | No | Max 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
status | string | No | Filter: draft, review, published, paused, closed, filled, archived |
limit | number | No | Max 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
title | string | Yes | Job title |
description | string | No | Full description (supports markdown) |
location | string | No | Location (e.g. "Amsterdam" or "Remote") |
department | string | No | Department |
jobType | string | No | full_time, part_time, contract, internship, volunteer, temporary |
Example prompt: "Create a job posting for Senior Frontend Developer in Amsterdam."
Delivery
list_delivery_orders
List delivery orders with optional filters. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
status | string | No | Filter: received, preparing, ready, picked_up, in_transit, delivered, cancelled |
driverId | string | No | Filter by driver ID |
limit | number | No | Max results (default 25, max 100) |
Example prompt: "Show all delivery orders that are in transit."
update_delivery_status
Update the status of a delivery order. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
orderId | string | Yes | The delivery order ID |
status | string | Yes | New status: received, preparing, ready, picked_up, in_transit, delivered, cancelled |
Example prompt: "Mark delivery order ord_123 as delivered."
get_delivery_kpis
Get delivery dashboard KPIs: total orders, today's orders, average delivery time, active drivers. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
Example prompt: "What are the delivery KPIs for site site_abc123?"
Rental
list_rental_units
List available accommodations/rental units. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
limit | number | No | Max results (default 25, max 100) |
Example prompt: "Show all available accommodations on site site_abc123."
check_rental_availability
Check if a rental unit is available for given dates. Returns availability status and total price.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
unitId | string | Yes | The rental unit ID |
checkIn | string | Yes | Check-in date (YYYY-MM-DD) |
checkOut | string | Yes | Check-out date (YYYY-MM-DD) |
guests | number | No | Number of guests |
Example prompt: "Is unit unit_456 available from July 1 to 8, 2026 for 4 guests?"
create_rental_booking
Create a rental booking. Check availability first with check_rental_availability. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
unitId | string | Yes | The rental unit ID |
checkIn | string | Yes | Check-in date (YYYY-MM-DD) |
checkOut | string | Yes | Check-out date (YYYY-MM-DD) |
guests | number | Yes | Number of guests |
customerName | string | Yes | Customer full name |
customerEmail | string | Yes | Customer email |
customerPhone | string | No | Customer phone number |
Example prompt: "Book unit unit_456 from July 1-8 for John Smith."
list_rental_bookings
List rental bookings. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
status | string | No | Filter: pending, approved, declined, cancelled |
limit | number | No | Max results (default 25) |
Example prompt: "Show all approved rental bookings."
Real Estate
list_realestate_listings
List real estate listings with optional filters. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
status | string | No | Filter: draft, published, archived, sold |
type | string | No | Filter: sale, rent |
propertyType | string | No | Filter: apartment, house, villa, land, commercial, other |
limit | number | No | Max results (default 25, max 100) |
Example prompt: "Show all published properties for sale on site site_abc123."
create_realestate_listing
Create a new real estate listing. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
title | string | Yes | Listing title |
description | string | No | Property description |
type | string | Yes | sale or rent |
propertyType | string | Yes | apartment, house, villa, land, commercial, other |
price | number | Yes | Price in EUR |
address | string | Yes | Street address |
city | string | Yes | City name |
bedrooms | number | No | Number of bedrooms |
bathrooms | number | No | Number of bathrooms |
areaSqm | number | No | Living area in square meters |
Example prompt: "Add a 2-bedroom apartment in Amsterdam for €425,000."
search_realestate
Search real estate listings by location (geo search). Returns listings within a given radius of coordinates.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
lat | number | Yes | Latitude of search center |
lng | number | Yes | Longitude of search center |
radiusKm | number | Yes | Search radius in kilometers |
type | string | No | Filter: sale, rent |
Example prompt: "Find rental properties within 5 km of central Amsterdam."
Voice Agent
get_voice_agent_config
Get voice agent configuration (language, greeting, hours, voice). Sensitive fields are masked. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
Example prompt: "What is the current voice agent config for site site_abc123?"
update_voice_agent_config
Update voice agent settings (language, greeting, voice, after-hours action). Cannot set API keys. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
language | string | No | Default language: nl, en, de, fr, es |
greeting | string | No | Greeting message when call starts |
voiceId | string | No | Voice ID: eve, ara, rex, sal, leo |
afterHoursAction | string | No | After hours action: voicemail, message, off |
Example prompt: "Set the voice agent greeting to 'Welcome to our business'."
get_voice_agent_analytics
Get voice agent call analytics: total calls, average duration, missed calls, top intents. Requires verticals permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
period | string | No | Analytics period: 7d, 30d, 90d (default 30d) |
Example prompt: "Show call statistics for the last 30 days."
SEO & Design
update_site_seo
Update site-level SEO settings: meta title, description, OG image, and robots directive. Requires write permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
siteTitle | string | No | Meta title for the site |
siteDescription | string | No | Meta description for the site |
ogImage | string | No | Open Graph image URL (must be HTTPS) |
robotsDirective | string | No | Robots directive: index,follow, noindex,nofollow etc. |
Example prompt: "Set the SEO title to 'Amsterdam Bakery' for site site_abc123."
update_page_seo
Update page-level SEO settings: meta title, description, and canonical URL. Requires write permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
pageId | string | Yes | The page ID |
title | string | No | Meta title for the page |
description | string | No | Meta description for the page |
canonicalUrl | string | No | Canonical URL (must be HTTPS) |
Example prompt: "Set the meta description for page page_xyz789."
update_design_tokens
Update design tokens for a site: colors, fonts, spacing, and border-radius. Changes are merged with existing tokens. Requires write permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
colorPrimary | string | No | Primary color (hex, e.g. #2563eb) |
colorBackground | string | No | Background color |
colorText | string | No | Text color |
colorSurface | string | No | Surface/card color |
fontBody | string | No | Body font-family |
fontHeading | string | No | Heading font-family |
radiusCard | string | No | Border-radius for cards (e.g. 12px) |
radiusButton | string | No | Border-radius for buttons (e.g. 8px) |
Example prompt: "Change the primary color to #ff6600 and the heading font to Inter."
Push Notifications
send_push_campaign
Send a push notification to all subscribers of a site. Requires write permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
title | string | Yes | Notification title |
body | string | Yes | Notification message |
url | string | No | URL to open on click (must be HTTPS) |
imageUrl | string | No | Image URL for the notification (must be HTTPS) |
Example prompt: "Send a push notification 'Summer Sale 20%!' to all subscribers of site site_abc123."
Webhooks
create_webhook
Register a webhook for events on a site. Requires write permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
url | string | Yes | Webhook endpoint URL (must be HTTPS) |
events | string[] | Yes | Events to listen for: order.created, booking.created, form.submitted, page.published, review.created |
secret | string | No | Shared secret for HMAC signature verification |
Example prompt: "Register a webhook at https://my-crm.com/hook for order.created events."
list_webhooks
List all webhooks for a site. Requires read permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
Example prompt: "Show all webhooks for site site_abc123."
Chatbot
configure_chatbot
Activate and configure the chatbot for a site. Requires write permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
enabled | boolean | Yes | Chatbot on/off |
greeting | string | No | Greeting message |
primaryColor | string | No | Widget color (hex, e.g. #2563eb) |
language | string | No | Chatbot language: nl, en, de, fr, es |
Example prompt: "Activate the chatbot on site site_abc123 with an English greeting."
get_chatbot_config
Get the current chatbot configuration. Requires read permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
Example prompt: "What is the chatbot config for site site_abc123?"
Domains
check_domain_availability
Check if a domain is available for registration. Returns availability, price, and whether it's free with the current plan. Requires domains or admin permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | The domain to check (e.g. bakery-amsterdam.nl) |
Example prompt: "Is the domain bakery-amsterdam.nl available?"
register_domain
Register a domain and automatically link it to Cloudflare for hosting. Checks tier limits. Not available during trial. Requires domains or admin permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | The domain to register |
siteId | string | Yes | Site ID to link to |
registrant | object | Yes | Registrant details: firstName, lastName, email, phone, address, city, postalCode, country |
Example prompt: "Register bakery-amsterdam.nl for site site_abc123."
transfer_domain
Transfer a domain to OptimoCMS using an authorization code. Not available during trial. Requires domains or admin permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | The domain to transfer |
authCode | string | Yes | Authorization code (EPP code) from current registrar |
siteId | string | Yes | Site ID to link to |
registrant | object | Yes | Registrant details (same structure as register_domain) |
Example prompt: "Transfer mydomain.nl to OptimoCMS with auth code ABC123."
get_domain_status
Get detailed status and registration info for a domain. Requires domains or admin permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | The domain |
Example prompt: "What is the status of bakery-amsterdam.nl?"
list_domains
List all domains belonging to the agency. Requires domains or admin permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Max results (default 25, max 100) |
Example prompt: "Show all my registered domains."
create_mailbox
Create a mailbox for a site domain. Generates a secure password that is returned once. Checks tier limits. Not available during trial. Requires write permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
localPart | string | Yes | Part before the @ sign (e.g. info) |
displayName | string | Yes | Display name (e.g. Info Bakery) |
Example prompt: "Create an info@ mailbox for site site_abc123."
list_mailboxes
List all mailboxes for a site. Requires read permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
limit | number | No | Max results (default 25, max 100) |
Example prompt: "Show all mailboxes for site site_abc123."
get_email_dns_records
Get DNS records required for email (MX, SPF, DKIM). Also shows verification status per record. Requires read permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | The site ID |
Example prompt: "What DNS records are needed for email on site site_abc123?"
Orchestration
create_business
Launch a complete online business in one call. Generates a website, optionally registers a domain, sets up email, activates booking/ecommerce/voice agent/chatbot/loyalty, configures SEO, and publishes — all in a single orchestrated workflow. Site generation is the only hard blocker; all other steps are best-effort. Requires write + ai permission.
| Parameter | Type | Required | Description |
|---|---|---|---|
businessName | string | Yes | Name of the business (e.g. "Tandarts Valencia") |
businessType | string | Yes | Business type: dental_practice, restaurant, hair_salon, webshop, real_estate, hotel, gym, bakery |
language | string | No | Content language: nl, en, de, fr, es (default: nl) |
domain | string | No | Domain to register (e.g. tandarts-valencia.es) |
features | string[] | No | Features to activate: booking, voice_agent, ecommerce, chatbot, loyalty, push |
registrant | object | No | Contact details for domain registration (required fields: first_name, last_name, email, phone, address1, city, country, postal_code) |
style | string | No | Visual style: minimalist, corporate, playful, elegant |
Example prompt: "Create a dental practice in Valencia with online bookings and a voice agent. Register the domain tandarts-valencia.es."
Example prompt (minimal): "Create a website for Golden Crust Bakery."
See the Business Orchestrator guide for full documentation, error handling, and tier requirements.
Team Management
list_team_members
List all team members of the agency with name, email, role, and assigned sites. Requires admin role.
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) |
Example prompt: "Show all team members."
add_team_member
Add a new team member. Creates a user account. Enforces team member limit based on billing tier.
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address of the new team member |
displayName | string | No | Display name |
role | string | Yes | Role: admin, editor, team_member |
assignedSites | string[] | No | Site IDs to grant access to (empty = all sites) |
Example prompt: "Add jan@example.com as editor with access to site_abc123."
remove_team_member
Remove a team member. Deletes their account and access. Cannot remove super_admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | UID of the team member |
Example prompt: "Remove user uid_xyz789 from the team."
update_team_member_role
Update the role and/or assigned sites for a team member. Cannot modify super_admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | UID of the team member |
role | string | No | New role: admin, editor, team_member |
assignedSites | string[] | No | New site IDs |
Example prompt: "Make user uid_xyz789 an admin."
Permissions per tool
| Tool | Required permission |
|---|---|
list_sites, get_site, list_pages, get_page | read |
create_page, update_page, update_site_seo, update_page_seo, update_design_tokens | write |
publish_site | publish |
send_push_campaign, create_webhook, configure_chatbot | write |
search_media | read |
get_analytics | read |
generate_page, translate_page, assist_content, generate_template, generate_template_variants | ai |
preview_import, import_website | ai |
get_available_slots, create_booking, list_bookings | verticals |
list_products, create_product, update_product, list_orders | verticals |
get_member_status, earn_points, list_rewards | verticals |
list_reviews | verticals or read |
list_jobs, create_job | verticals |
list_delivery_orders, update_delivery_status, get_delivery_kpis | verticals |
list_rental_units, check_rental_availability, create_rental_booking, list_rental_bookings | verticals |
list_realestate_listings, create_realestate_listing, search_realestate | verticals |
get_voice_agent_config, update_voice_agent_config, get_voice_agent_analytics | verticals |
check_domain_availability, register_domain, transfer_domain, get_domain_status, list_domains | domains or admin |
create_mailbox | write |
list_mailboxes, get_email_dns_records | read |
list_webhooks, get_chatbot_config | read |
create_business | write + ai |
create_site, delete_site | admin |
delete_page | write |
list_team_members, add_team_member, remove_team_member, update_team_member_role | admin |