Skip to main content
Each tool below is one switch in Settings → MCP Server. Your AI app sees a tool only when it is switched on for your role; every call is checked again on the server.

website

Website: view · Read only See the institute’s websites: pages and what each section shows, traffic, lead-capture health, pre-publish checks, and the interview an AI runs before building a site.
string
required
The action to run: list, get_page, find_section, context, analytics, lead_summary, audit, review, brief_checklist, schema, patterns, list_media, preview, compare, strings, data_inventory, data_audit, playbook.
string
Site name (from list). Optional when there is a single/default site.
string
Page route within the site, e.g. ‘home’, ‘about’, ‘admissions’. Defaults to the first page.
string
schema: which page archetype’s rules to include. review: judge the page as this type (default: the type it was created as, else what its content says, else by position/route). One of: homepage, courses, course-landing, about, admissions, contact, catalog.
boolean
review: true = the page reproduces a design (taste rules skipped); default: on for pages saved with design_source. preview: design-matching mode (1440 wide, sections, full height as tiles); on by default for pages created from a design.
boolean
get_page only: include each section’s text (capped).
boolean
context: add course tags / language / format / invites, folder libraries and product-page steps.
string
data_audit: the folder library to check courses against when the site names none yet. context: also list this folder library’s folders (id from folder_libraries).
integer
analytics / lead_summary: window in days (7, 30 or 90). Default 30.
string[]
schema: block types to return full example props for (e.g. [‘heroSection’,‘featureGrid’]).
string
find_section: the text to look for (case-insensitive). patterns: words to match against pattern ids, looks and Figma cues.
string[]
patterns: pattern ids to return in full (e.g. [‘catalog.hero’,‘cta.band’]); up to 20 per call.
string
patterns: only patterns of this block type (courseCatalog, ctaBanner, header, footer, globalSettings…).
string
preview: screenshot only this section.
string
preview: default desktop (1280px); mobile is 390px. One of: desktop, mobile.
integer
preview / compare: layout width in px (compare and fidelity default 1440).
string
preview / compare: render in this site language (a code from the site’s languages, e.g. ‘hi’).
boolean
preview: also return each top-level section’s id and box (top, height in px).
string
preview: click the element with this text first (opens a mega menu, a tab).
integer
preview: tallest capture in px (default and cap 16000).
object
compare: the design image — {asset_url} or {asset_id}, or {tiles:[{asset_url|asset_id}, …]} top to bottom; optional sections, frame_width, texts.
string
list_media: ‘logo’, ‘photo’ or ‘any’.
integer
list_media: max items (default 24). strings: max texts (default 200, max 500).
string
strings: the language to check, e.g. ‘hi’ (not the site’s base language).
integer
strings: skip this many untranslated texts (paging).
string
playbook: what the design is — a Figma file, screenshots, or an existing website. One of: figma, screenshot, url.
object
brief_checklist: the design the site is rebuilt from, e.g. {url:‘https://www.figma.com/design/…’} — {url} alone is enough, or {kind:‘screenshot’}. The interview then asks only data questions. Never put an access token here.

catalog_data_edit

Website: set up course data · Makes changes · Adds to live records — what it adds is visible straight away. · Turned on separately (opt-in) Let the connected AI app add the course data a website design needs: create folder libraries and folders (new folders start hidden), append tags to courses (existing tags are kept), create product pages as DRAFT and add catalogue courses to a store page. It shows each change first and never deletes, renames or hides anything; activating a product page and payment settings stay with you. These are live records, not drafts: tags added to live courses change the site’s filters at once, and courses added to an active store page are on sale at once. Uses no AI credits.
What keeps it safe: additive only; never deletes or renames existing records; new folder nodes start HIDDEN; tags are appended; product pages are created DRAFT. Every action is a dry run first: applying needs the dry run’s plan_token (10 minutes, refused when the data changed); a shown folder changes only while no live site uses its library; the store sync never switches a course off; activating a product page and invite payment vendors stay admin clicks
string
required
The action to run: create_folder_library, upsert_folder_nodes, add_course_tags, create_product_page, sync_store.
boolean
Default true: report the change without making it. false = apply (needs plan_token).
string
dry_run=false: the plan_token the dry run of these same arguments returned (valid 10 minutes). It is this server’s own check value, not a credential.
string
create_folder_library / create_product_page: its name.
string
create_folder_library: optional description.
string
upsert_folder_nodes: the library (website(data_inventory) folder_libraries).
object[]
upsert_folder_nodes: the folders.
object[]
add_course_tags: tags to append per course.
object[]
create_product_page: the courses, in display order.
string
create_product_page: default ‘path’. One of: path, store.
string
sync_store: the product page (website(data_inventory) product_pages code).

design_import

Website: import Figma designs · Makes changes · Drafts only — nothing goes live until someone publishes it in the admin portal. Let the connected AI app turn a Figma design it read with its own Figma tools into a site plan (colours, fonts, sections, the data it needs) and save it as a DRAFT site. The design files it sends are kept 24 hours for this institute only. Saving also needs ‘Build and edit pages’. Uses no AI credits.
What keeps it safe: draft-only: plan parses the Figma results the caller sends and stores them 24 h for this institute (its own table, never served elsewhere); save_draft saves a DRAFT through website_edit’s create_site / create_page and also needs website_edit’s group
string
required
The action to run: plan, save_draft.
string
plan: ‘client’ = you send the Figma results (the only supported source). One of: client, figma_url.
string
The figma.com link of the design (kept as the pages’ design source).
string
plan: get_metadata output exactly as returned.
object[]
plan: get_design_context output per frame.
object | string
plan: get_variable_defs output (optional).
string[]
plan: only these top-level frames (default: every frame).
string
plan: add to an earlier upload; save_draft: the plan to save.
boolean
plan: store this part and return without planning.
string
save_draft: create a NEW draft site with this name.
string
save_draft: add the pages to this existing site (as a draft).
string[]
save_draft: only these page routes from the plan.
object
save_draft: your corrected draft — {theme?, pages?, header?, footer?} in the shape of the plan’s site_json_draft. Keys you leave out come from the plan.
boolean
save_draft with tag_name: also set the design’s theme on that site’s draft (default false; a new site always gets it).

website_edit

Website: edit drafts · Makes changes · Drafts only — nothing goes live until someone publishes it in the admin portal. Let the connected AI app build and change websites — compose pages, edit sections, set colours and fonts, course formats and languages, translations, wire forms to lead campaigns and sections to folder libraries or product pages. Every change is saved as a draft; nothing goes live until you publish it in Manage Pages. Uses no AI credits.
What keeps it safe: draft-only: every action saves a draft revision; discard_draft undoes it; request_publish only reads (checks + diff vs live + editor link) — publishing is an admin click
string
required
The action to run: create_page, create_site, add_html_page, update_page, set_layout, add_section, set_theme, set_site_settings, set_courses, link_lead_form, set_seo, import_image, discard_draft, set_catalog_settings, set_translations, bind_data, request_publish.
string
Existing site (from website list).
string
create_page / create_site: name for a NEW site; becomes its URL path.
string
—
string
A section id from website(get_page).
object
A page you composed. Get the component contract from website(action=‘schema’) first.
object[]
create_site: the pages, in navigation order.
string
create_page: which archetype the page follows (drives the audit). One of: homepage, courses, course-landing, about, admissions, contact, catalog.
object
The design a page reproduces (a Figma frame, a screenshot, a site): create_page / create_site (site-wide, or per page inside pages[] when each page is its own frame), update_page (set it on an existing page, or {clear: true} to go back to standard review). Review then runs in FIDELITY mode — the design wins over the generic quality rules. Only kind, node and frame name are saved on the page (the published site is public): the link and file key are not stored. Never put an access token here.
string
link_lead_form: one form’s prop path from website(lead_summary), e.g. ‘props.newsletter.audienceId’.
object[]
—
object
One section, per website(action=‘schema’): {id (kebab-case, unique), type, enabled: true, props, style?}.
One section, per website(action=‘schema’): {id (kebab-case, unique), type, enabled: true, props, style?}.
string
add_html_page: URL path segment for the new page.
string
add_html_page: page title (defaults to the HTML <title>/<h1>).
string
add_html_page: the page’s HTML — a full document or the body markup. Max 200 KB.
string
add_html_page: extra stylesheet (in addition to any <style> in html). Max 150 KB.
object
—
boolean
add_html_page: hide the site header/footer on this page (default true — a pasted page usually brings its own).
boolean
add_html_page: overwrite a page that already has this route (only if it is an HTML page).
object
Colours and type. Omit a field to leave it unchanged.
object
Site-wide behaviour and search settings (globalSettings), apart from the theme.
string
Block type, e.g. testimonialSection, faqSection, courseShowcase, leadForm.
string
—
object
add_section: prop overrides for the new block.
string
import_image: public https image URL (incl. Figma MCP asset links).
string[]
import_image: several public https image URLs at once (max 16).
string
import_image: the image file itself, base64 or a data: URL (max 10 MB) — for local files / design exports.
string
import_image with data_base64: the file’s name (for the media library).
string
One of: logo, photo, banner, inspiration.
string
—
string
One of: all, showcase, product_page.
string
set_courses showcase mode. One of: newest, onSale, tag, picked, comingSoon.
string
set_courses mode=tag: the course tag.
integer
—
string
—
string
—
string
—
string
—
object
Catalogue-wide settings (globalSettings). Maps merge key by key (null removes a key); lists replace. Course ids and product page codes ONLY from website(action=‘context’).
string
set_translations: the language, e.g. ‘hi’.
object
set_translations: {exact source text: translation | null}.
boolean
set_translations: true offers the language on the site (switcher on); false turns the switcher off.
string
set_translations: what the language switcher shows, e.g. ‘हिन्दी’.
string
bind_data: what to bind. One of: folderLibrary, folder, productPage.
string
bind_data: the library id, folder id or product page CODE (from website(action=‘context’)).
integer
bind_data on the header: which navigation item (0-based) becomes the mega menu.
string
bind_data: an explicit prop path for the id inside an object the section already has, e.g. columnSections[1].productPageCode; on a featured learning path, featured.code or pathExtras[i].code (data_kind=‘productPage’).
string
bind_data data_kind=folder: the folder’s library when the section has none yet. request_publish: the library the data audit checks folders in.

website_publish

Website: publish · Makes changes · Changes live data — the change applies straight away. · Turned on separately (opt-in) Let the connected AI app publish a website draft, or roll the live site back to an earlier published version, after you say yes in the chat. Changes go live at once. Each publish needs a fresh check of that exact draft from the last 10 minutes; a draft older than the live site, or edited after the check, is refused, and a rollback never overwrites an unpublished draft. Every version stays in the history. Needs ‘Build and edit pages’ for the check. Turned on separately.
What keeps it safe: LIVE, two-step confirmed: publish needs a single-use confirm_token from website_edit(request_publish) less than 10 minutes earlier on the same draft (id + JSON hash) and live revision, and admin-core refuses a draft older than live (409, never overrideStale); rollback republishes an earlier PUBLISHED revision through a new draft + publish with the same token rule and refuses while a draft is open. Nothing is deleted: every version stays in the history
string
required
The action to run: publish, rollback.
string
The site (from website list); the token must be for it.
string
publish: publish_confirm.confirm_token from website_edit(request_publish). rollback: the token the first rollback call returned. Single use, 10 minutes.
integer
rollback: the published revision number to bring back.