Beschikbare MCP Tools
Compleet overzicht van alle OptimoCMS MCP tools met parameters en voorbeelden.
Beschikbare MCP Tools
OptimoCMS biedt 25 MCP tools verdeeld over 8 categorieën. Elke tool is beschikbaar in Cursor, Claude Desktop en Lovable.
Sites
list_sites
Alle websites ophalen die toegankelijk zijn met de huidige API key.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
limit | number | Nee | Max aantal sites (standaard 25, max 100) |
status | string | Nee | Filter op status: active, paused, building, error |
Voorbeeld-prompt: "Toon al mijn actieve sites."
get_site
Gedetailleerde informatie over een specifieke website, inclusief design tokens, domein en status.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
Voorbeeld-prompt: "Wat zijn de details van site site_abc123?"
Pagina's
list_pages
Alle pagina's van een website ophalen met titels, slugs en status.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
limit | number | Nee | Max aantal pagina's (standaard 25, max 100) |
status | string | Nee | Filter: published, draft, archived, all |
Voorbeeld-prompt: "Toon alle gepubliceerde pagina's van site site_abc123."
get_page
Volledige pagina-details inclusief content blocks, SEO metadata en timestamps.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
pageId | string | Ja | Het pagina ID |
Voorbeeld-prompt: "Haal de content op van pagina page_xyz789 op site site_abc123."
create_page
Nieuwe pagina aanmaken. Vereist write permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
title | string | Ja | Pagina titel |
slug | string | Nee | URL slug (auto-gegenereerd uit titel indien weggelaten) |
blocks | array | Nee | Content blocks |
Voorbeeld-prompt: "Maak een pagina 'Over Ons' aan op site site_abc123."
update_page
Bestaande pagina bijwerken. Kan titel, slug, blocks, SEO of status wijzigen.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
pageId | string | Ja | Het pagina ID |
title | string | Nee | Nieuwe titel |
slug | string | Nee | Nieuwe URL slug |
status | string | Nee | published, draft, archived |
blocks | array | Nee | Nieuwe content blocks (vervangt alle bestaande) |
seo | object | Nee | SEO metadata: title, description, ogImage, noIndex |
Voorbeeld-prompt: "Zet pagina page_xyz789 op draft."
Publiceren
publish_site
Website publiceren (deployen) naar productie. Rate limited: max 1 deploy per 5 minuten per site. Vereist publish permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
Voorbeeld-prompt: "Publiceer site site_abc123."
Media
search_media
Zoeken in de mediabibliotheek op bestandsnaam of alt-tekst. Optioneel filteren op MIME type.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
query | string | Ja | Zoekterm (op bestandsnaam en alt-tekst) |
mimeType | string | Nee | Filter op MIME type prefix, bijv. image/ of video/ |
limit | number | Nee | Max resultaten (standaard 25, max 100) |
Voorbeeld-prompt: "Zoek alle afbeeldingen met 'logo' in de naam op site site_abc123."
Analytics
get_analytics
Analytics samenvatting voor een website: pageviews, unieke bezoekers, gemiddelde sessieduur, bounce rate en top pagina's.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
period | string | Nee | Periode: last7d, last30d, last90d (standaard: last30d) |
Voorbeeld-prompt: "Hoe heeft site site_abc123 het de afgelopen 7 dagen gedaan?"
AI
generate_page
Nieuwe pagina genereren met AI vanuit een tekstprompt. Vereist ai permissie. Rate limited: 2 calls per minuut. Kosten: ~€0,30 per call.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
prompt | string | Ja | Beschrijving van de te genereren pagina |
language | string | Nee | Content taal: nl, en, de, fr, es |
style | string | Nee | Visuele stijl hint: minimalist, corporate, playful etc. |
Voorbeeld-prompt: "Genereer een moderne landingspagina voor een bakkerij in minimalistische stijl."
translate_page
Alle content blocks van een pagina vertalen naar een andere taal. Vereist ai permissie. Rate limited: 5 calls per minuut.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
pageId | string | Ja | Het pagina ID |
targetLanguage | string | Ja | Doeltaal: nl, en, de, fr, es |
Voorbeeld-prompt: "Vertaal pagina page_xyz789 naar het Duits."
assist_content
AI-gedreven content verbetering voor een bestaande pagina. Beschrijf wat je wilt veranderen. Vereist ai permissie. Rate limited: 5 calls per minuut.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
pageId | string | Ja | Het pagina ID |
instruction | string | Ja | Wat te veranderen (vrije tekst instructie) |
Voorbeeld-prompt: "Maak de toon van pagina page_xyz789 professioneler."
generate_template
Herbruikbaar component template genereren vanuit een beschrijving. Vereist ai permissie. Rate limited: 2 calls per minuut.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID (voor context zoals design tokens) |
prompt | string | Ja | Beschrijving van het template |
style | string | Nee | Visuele stijl hint |
Voorbeeld-prompt: "Maak een pricing table template met 3 tiers."
generate_template_variants
Stijlvarianten genereren van een bestaand template. Produceert meerdere visuele variaties. Vereist ai permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
templateId | string | Ja | Het basis template ID |
count | number | Nee | Aantal varianten (standaard 3, max 5) |
styles | string[] | Nee | Specifieke stijlnamen, bijv. ["dark", "playful", "corporate"] |
Voorbeeld-prompt: "Maak 3 varianten van template tmpl_abc: dark, playful en corporate."
Import
preview_import
Website URL crawlen en een preview tonen van wat de import zou opleveren. Maakt GEEN site aan. Vereist ai permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
url | string | Ja | De website URL om te previewer |
language | string | Nee | Doeltaal: nl, en, de, fr, es (standaard: nl) |
Voorbeeld-prompt: "Preview wat er zou worden geïmporteerd van https://voorbeeld.nl."
import_website
Website importeren via URL. Crawlt de site, detecteert layout, mapt secties naar componenten en maakt een nieuwe OptimoCMS site. Vereist ai permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
url | string | Ja | De website URL om te importeren |
language | string | Nee | Doeltaal (standaard: nl) |
siteName | string | Nee | Naam voor de nieuwe site |
siteId | string | Nee | Bestaand site ID om te overschrijven |
selectedSubPages | string[] | Nee | URLs van subpagina's om mee te nemen |
importBlogPosts | boolean | Nee | WordPress blogposts importeren (standaard: true) |
hdImport | boolean | Nee | HD Import met vision-guided refinement (professional+ tier) |
Voorbeeld-prompt: "Importeer https://voorbeeld.nl als 'Voorbeeld Site' met alle subpagina's."
Booking
get_available_slots
Beschikbare boekingstijdslots ophalen voor een datum. Vereist verticals permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
date | string | Ja | Datum in YYYY-MM-DD formaat |
serviceId | string | Nee | Specifieke service ID |
Voorbeeld-prompt: "Welke tijdslots zijn beschikbaar op 2026-06-15 voor site site_abc123?"
create_booking
Nieuwe boeking aanmaken. Controleer eerst beschikbare slots met get_available_slots. Vereist verticals permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
serviceId | string | Ja | De service ID |
date | string | Ja | Datum in YYYY-MM-DD formaat |
startTime | string | Ja | Starttijd in HH:mm formaat |
customerName | string | Ja | Klantnaam |
customerEmail | string | Ja | Klant e-mailadres |
customerPhone | string | Nee | Klant telefoonnummer |
staffId | string | Nee | Medewerker ID |
Voorbeeld-prompt: "Boek een afspraak voor Jan Jansen op 2026-06-15 om 14:00."
list_bookings
Boekingen ophalen, optioneel gefilterd op status of datum. Vereist verticals of read permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
status | string | Nee | Filter: pending, confirmed, cancelled, completed |
date | string | Nee | Filter op datum (YYYY-MM-DD) |
limit | number | Nee | Max resultaten (standaard 25, max 100) |
Voorbeeld-prompt: "Toon alle bevestigde boekingen van vandaag."
E-commerce
list_products
Producten ophalen uit de webshop. Vereist verticals of read permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
limit | number | Nee | Max resultaten (standaard 25, max 100) |
category | string | Nee | Filter op categorie |
Voorbeeld-prompt: "Toon alle producten in de categorie 'Brood' van site site_abc123."
create_product
Nieuw product aanmaken. Prijs in centen (bijv. 1999 = €19,99). Vereist verticals permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
title | string | Ja | Productnaam |
priceCents | number | Ja | Prijs in centen |
description | string | Nee | Productbeschrijving |
category | string | Nee | Categorie |
stock | number | Nee | Voorraad (null = onbeperkt) |
Voorbeeld-prompt: "Voeg een product 'Zuurdesembrood' toe voor €4,50 met 50 stuks op voorraad."
update_product
Bestaand product bijwerken. Alleen meegegeven velden worden gewijzigd. Vereist verticals permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
productId | string | Ja | Het product ID |
title | string | Nee | Nieuwe naam |
priceCents | number | Nee | Nieuwe prijs in centen |
description | string | Nee | Nieuwe beschrijving |
category | string | Nee | Nieuwe categorie |
active | boolean | Nee | Actief/inactief |
stock | number | Nee | Nieuwe voorraad |
Voorbeeld-prompt: "Verhoog de prijs van product prod_123 naar €5,99."
list_orders
Bestellingen ophalen. Vereist verticals of read permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
status | string | Nee | Filter: pending, paid, shipped, delivered, completed, cancelled, refunded |
limit | number | Nee | Max resultaten (standaard 25, max 100) |
Voorbeeld-prompt: "Toon alle onbetaalde bestellingen van site site_abc123."
Loyaliteit
get_member_status
Loyalty-programma lidstatus ophalen inclusief puntensaldo en tier. Vereist verticals of read permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
memberId | string | Ja | Het lid ID |
Voorbeeld-prompt: "Hoeveel punten heeft lid mem_456 op site site_abc123?"
earn_points
Loyaliteitspunten toekennen aan een lid. Vereist verticals permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
memberId | string | Ja | Het lid ID |
points | number | Ja | Aantal punten (positief geheel getal) |
description | string | Ja | Reden voor toekenning |
Voorbeeld-prompt: "Geef lid mem_456 100 punten voor een aankoop van €50."
list_rewards
Beschikbare loyalty beloningen ophalen. Vereist verticals of read permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
limit | number | Nee | Max resultaten (standaard 25, max 100) |
Voorbeeld-prompt: "Welke beloningen kunnen leden inwisselen op site site_abc123?"
Reviews
list_reviews
Reviews ophalen, optioneel gefilterd op status. Vereist verticals of read permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
status | string | Nee | Filter: all, pending, approved, rejected |
limit | number | Nee | Max resultaten (standaard 25, max 100) |
Voorbeeld-prompt: "Toon alle ongoedgekeurde reviews van site site_abc123."
Vacatures
list_jobs
Vacatures ophalen. Vereist verticals of read permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
status | string | Nee | Filter: draft, review, published, paused, closed, filled, archived |
limit | number | Nee | Max resultaten (standaard 25, max 100) |
Voorbeeld-prompt: "Toon alle openstaande vacatures van site site_abc123."
create_job
Nieuwe vacature aanmaken in draft status. Vereist verticals permissie.
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
siteId | string | Ja | Het site ID |
title | string | Ja | Functietitel |
description | string | Nee | Volledige beschrijving (ondersteunt markdown) |
location | string | Nee | Locatie (bijv. "Amsterdam" of "Remote") |
department | string | Nee | Afdeling |
jobType | string | Nee | full_time, part_time, contract, internship, volunteer, temporary |
Voorbeeld-prompt: "Maak een vacature aan voor Senior Frontend Developer in Amsterdam."
Permissies per tool
| Tool | Vereiste permissie |
|---|---|
list_sites, get_site, list_pages, get_page | read |
create_page, update_page | write |
publish_site | publish |
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 of read |
list_jobs, create_job | verticals |