Guides
Home / Documentation / MCP
MCP exposes the same site operations you use in the dashboard and REST API to AI agents over Streamable HTTP at /api/mcp. Agents can discover block shapes via schema:// resources and receive precise field-path errors on bad payloads.
Pass a Bearer token on every request. Workspace API keys prefixed with sh_live_ work the same as REST v1. Other bearer tokens use the OAuth 2.1 flow advertised from /.well-known/oauth-protected-resource; hosted login completes the authorize step. OAuth issuance needs MCPAUTH_SECRET and an RSA private key in the server environment.
Replace the origin with your deployment host. Example for this environment:
https://slatehut.com/api/mcpOne click to add the server — Cursor opens and pre-fills the config. You'll be prompted to enter your API key as the Authorization header value.
{
"mcpServers": {
"slatehut": {
"url": "https://slatehut.com/api/mcp"
}
}
}Add the snippet below to your claude_desktop_config.json. Uses mcp-remote to bridge the HTTP transport. Replace --header with your API key.
{
"mcpServers": {
"slatehut": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://slatehut.com/api/mcp"
]
}
}
}schema://blocks for the block catalog and schema://theme for theme enums.create_site with a rich prompt, or create_site_from_template if you already know the shape. Pass a subdomain hint to keep URLs memorable.update_site_theme with hex colors and enum values from the theme schema.update_page with blocks:[...] for atomic bulk replacement over looping add_block/delete_block.unsplash_search → unsplash_import returns a permanent blob URL plus the photographer attribution you must display.edit_site for natural-language refinements, or target specific blocks with update_block.get_site now returns a public url — share it.create_sitecreate_site_from_templatelist_sitesget_siteupdate_siteupdate_site_themedelete_siteedit_sitecheck_subdomainadd_pageupdate_pagedelete_pagelist_page_blocksget_blockadd_blockupdate_blockdelete_blockreorder_blocksupload_imageunsplash_searchunsplash_importlist_collections / get_collectioncreate_collection / update_collection / delete_collectionlist_items / get_itemcreate_item / update_item / delete_itemattach_dynamic_pageadd_domain / list_domains / remove_domainverify_domain / check_domain_verificationlist_form_submissions / list_newsletter_submissionslist_templatesResources are read-only; fetch them with your MCP client’s resource API (e.g. FetchMcpResource in Cursor). Use them before authoring to avoid guess-and-retry on block shapes.
schema://blocksschema://blocks/{type}schema://themeexample://blocks/{type}example://sites/{templateId}site://{subdomain}site://{subdomain}/pages/{pageSlug}MCP prompts are pre-built instructions you can invoke with your client's prompt API (e.g. GetMcpPrompt in Cursor). They accept a subdomain argument and expand into a detailed site-creation or editing brief — saving you from writing the same instructions each time. Requires the mcp:prompts OAuth scope.
create-startup-landing-pagecreate-portfoliocreate-restaurant-sitecreate-blogcreate-agency-sitecreate-event-pagecreate-ecommerce-landingcreate-coming-soonedit-polish-copyedit-theme-moodedit-add-pricingEvery block has the shape { id, type, anchorId?, fullWidth?, colorOverrides?, animation?, props }. Fetch schema://blocks/{type} for the exact props schema before adding or updating.
dividerBreathing room, line, or spacer between sections.bannerThin announcement or notification strip with optional link and icon.sectionPaste or write HTML and optional scoped CSS for layouts that are not covered by standard blocks. Optional AI assist to generate markup.heroHeadline, CTAs, imagery — background fill (gradient, solid, photo), patterns, splits, stacked/full-bleed/centered with optional below-fold image, trust row, highlights.animatedHeroHero with animated gradient, optional word marquee, and floating shapes — extends the standard hero.featuresSelling points: icon grid or alternating image rows (layout + per-item imageUrl/imageAlt), optional subheading.textSimple heading plus paragraph—great for policy or bios.richLong-form content with headings, lists, and formatting.imageTextPhoto or graphic beside a headline and body copy.listManually edited cards or rows (team, services, resources).stepsNumbered or icon steps for your process.timelineMilestones, roadmap, or history.comparisonSide-by-side comparison (not full pricing tables).bentoFeaturesAsymmetric feature cells in a bento-style grid.splitTwo columns for compare-and-contrast stories.calloutHighlighted callout box for tips, warnings, or important notes.featureShowcaseSticky scroll feature sections with alternating media and bullet lists.comparisonTableFull pricing-style comparison table with CTAs per column.statsKey metrics in a clean horizontal row.testimonialCustomer quote with name and role.testimonialsMultiple quotes: grid, featured (first quote large), or marquee layout.logosPartner or press logos: text names and/or optional image URLs per logo.teamTeam member grid with avatars, roles, bios, and social links.logoCloudPartner logos in a row, grid, or infinite marquee with optional grayscale.metricsBandAnimated or static KPI band with count-up numbers.imageGalleryRows of images with optional captions.youtubeResponsive embedded video player.marqueeInfinite horizontal scrolling ticker for logos, badges, or short text.gallery3dImage gallery with mosaic, parallax, tilt stack, or coverflow motion.ctaSingle focused pitch with one primary button; solid, outline, or muted section variant.pricingPlans with prices, bullets, and sign-up buttons.collectionListRepeating cards loaded from a content collection (blog posts, directory, etc.).collectionDetailRenders one CMS entry on detail URLs from your collection fields.faqAccordion-style questions and answers.mapLocation map visitors can pan and zoom.embedDrop in calendars, widgets, or other iframe tools.formCollect leads and messages—submissions land in your dashboard.newsletterEmail capture section with heading, inline input, and submit button.faqAccordionNative accordion FAQ with grouped, flat, or two-column layout.navbarTop bar with your brand, links, and optional CTA.footerBottom links, socials, and copyright.props.variant: Invalid enum value. Expected 'editorialStart' | 'split' | … plus a hint to fetch the matching schema://blocks/{type}.create_site, ai_site_generation, ai_credits) are returned with a human-readable message. Free plans typically allow 1 site — call delete_site to free the slot before retrying.update_site accepts expectUpdatedAt for optimistic locking; pass force: true to override.MCPAUTH_SECRET and an RSA private key are set in your server environment. The OAuth server metadata is available at /.well-known/oauth-authorization-server.mcp:prompts scope. API key auth always has full access.MCP calls share the same rate limits and AI budget rules as REST. create_site and edit_site consume AI credits; deterministic tools (block/page/theme CRUD, media import) do not. See AI credits for plan details.