Skip to main content
This is the reference the AI sees through the MCP protocol. The exact same information is included in the server’s responses to resources/list, tools/list, and prompts/list, so a curious model can rediscover all of this at runtime.

Resources

Resources are read-only context. The AI fetches them once per session — they don’t take parameters and they don’t have side effects.

brand://current

The single source of truth for your project’s brand. The first thing the AI should read in any UI generation session.
Backed by GET /v1/brand. Refresh in a long session by re-reading the resource.

schema://blog-post

JSON Schema for Post and PostTranslation. The AI reads it before generating a /blog page so the rendered markup matches what the API returns.

schema://product

JSON Schema for Product and ProductVariant. Drives storefront page generation and product-card components.

schema://booking

JSON Schema for BookableService, BookingAvailability, and Booking. Drives booking flow generation.

conventions://editable-html

The most important resource. A short markdown doc describing the markup rules the AI must follow to make generated sections editable in the project’s admin.

conventions://api-usage

REST patterns: how auth headers work, error envelope shape, the async-job contract, idempotency. The AI uses this when generating server-side code that calls Neural Draft.

Tools

Tools have side effects. Each one wraps a real call to the v1 Project API.

register_component

The AI calls this for every section it generates. The component appears in your admin as editable, with data-translate keys discovered automatically.
Backs onto POST /v1/components/register.

create_translation_keys

Bulk-create translation key namespaces. Useful when the AI is about to emit a component with many keys and wants to seed each with default per-language values.

generate_blog_post

Kick off the full blog generation pipeline. Returns a job id; poll or stream.

generate_image

Brand-consistent image generation. Returns a job id; poll for the URL.

connect_social_account

Returns the OAuth URL the AI surfaces to the user. They click, authorize, return; the AI can then call social_post.publish.

list_products / get_product

Reads. The AI uses these when generating a product-grid or product-detail page so the rendered fields match real data.

setup_booking_widget

Returns the embed snippet for a service. The AI inserts it into the page.

create_bookable_service

Create a service customers can book. Two modes — both share the same tool; pick booking_type to switch:
  • time_slot (default) — meeting / appointment style with duration_minutes, buffer_before_minutes, buffer_after_minutes, max_bookings_per_slot.
  • date_range — apartment / rental style with min_nights, max_nights.
After creation, call setup_booking_widget with the returned service_id.

Pages — create_page / list_pages / get_page / update_page

Multi-page authoring with per-page SEO meta. Call create_page once per page before registering its components if you want a real meta_title / meta_description. If you skip it, register_component auto-creates a stub page that you can backfill via update_page.
update_page uses merge semantics — only the fields you pass are overwritten, the rest are preserved. Pass null to clear a meta field. Named, ordered image collections. One slug per gallery, an items array of {url, alt} (max 200). Slugs auto-derive from name on create with -2/-3/… suffixed on collision. items updates are full-replace — read with get_gallery, mutate the array, send the complete new list back.
delete_gallery removes the gallery record only — underlying image URLs stay in the images registry / media library.

Destructive deletes — delete_content / delete_page / delete_component / delete_image

Fill the gap on the destructive side of the catalog. All four take the identifier and return 204. No undo.

generate_video

Short-form clip generation. Returns a Job; poll get_job until complete. Two tiers — pick budget (default, Wan 2.1) for 40 credits or premium (Kling v2.1 / Runway Gen4) for 300 credits. Premium requires a Build plan or higher; Free / Hobby calling with tier=premium get 402 plan_required.

get_brand / update_brand

Read or patch the project’s brand context as a tool, for clients that don’t list MCP resources. get_brand is identical to the brand://current resource — read-only, free. update_brand accepts a partial patch (pass null on a field to clear it) and writes through PATCH /v1/brand.
Example prompt: “Read the current brand context and tighten the voice to something punchier — under 40 words.”

get_content / list_content

Lookups for translation keys. get_content(key, lang?) returns one value plus the full all_locales map; list_content({ scope?, lang?, page_size? }) paginates the project’s keys. Read-only, free.
Example prompt: “List the first 50 translation keys on this project, then tell me which ones still have empty French values.”

get_usage

Read the project’s current credit balance and per-operation breakdown for the active billing period. Wraps GET /v1/projects/me/usage. Read-only, free.
Example prompt: “How much of my Neural Draft monthly budget have I burned so far this period? Break it down by operation.”

list_blog_posts

Paginated read of the project’s posts. Filter by status, lang, category, tag, plus sort (created_at, published_at, descending with -). Read-only, free.
Example prompt: “List my most-recent draft posts so I can decide which to publish first.”

find_workspaces

Look up the Neural Draft workspaces (tenants) registered against an email address. Hits the central host (e.g. https://app.neuraldraft.io), not the per-tenant API, and does NOT require an API key. Always returns 200 (empty list for unknown emails — defeats enumeration). Free.
Example prompt: “Help me find all my Neural Draft workspaces for this email address — I forgot which one I logged into last.”

list_newsletter_subscribers / list_contact_form_submissions

Read-only listings of the project’s captured leads. Both support page, page_size (max 200) and search (substring match against email + subject
  • message). The newsletter listing also accepts an app_lead boolean to filter trial leads from real subscribers.
Submissions are written to the project from the public v1 endpoints (POST /v1/newsletters/subscribe, POST /v1/contact-forms). Form-submit topics are not currently in the outgoing-webhook event whitelist — poll these list endpoints (or the matching v1 admin endpoints) to inspect what came in. These tools are read-only.

Prompts (slash commands)

Prompts are user-invoked. They expand into a long instruction the AI then executes — like a parameterised macro.

/scaffold-marketing-site

Generates a full Lovable/Next.js/Astro/Nuxt marketing site whose content lives in Neural Draft. The expanded prompt instructs the AI to:
  1. Read brand://current and apply colors/fonts/voice.
  2. Read conventions://editable-html and follow the markup rules.
  3. Read schema://blog-post if generating a /blog route.
  4. Generate the requested pages.
  5. For every section, call register_component so the customer admin shows them as editable.
  6. Use @neuraldraft/sdk for runtime fetches; print the editor_url for each section.

/scaffold-blog-page

Drops a blog index + dynamic post page into the current project. Reads schema://blog-post and renders an SSG-friendly page that fetches via the v1 API.

/connect-existing-site

For static sites that already exist. Replaces hardcoded text with {{ __('key') }}-style fetches and adds data-translate attributes so the admin editor works.

/add-booking-widget

Single-flow embed: AI calls list_services, asks the user to pick one, calls setup_booking_widget, then drops the snippet into the right place in the page.

Annotations

Each tool advertises MCP annotations so smart clients can surface confirm-prompts before destructive ops:

Observability

Every tool call is logged in your project’s audit log under the synthetic agent mcp:<machine-name>. The dashboard’s “MCP usage” pane shows the most common tool/resource calls and tail latency, so you can spot a misbehaving session.

Source

The MCP server ships as the @neuraldraft/mcp npm package; source lives at github.com/vbalagovic/neuraldraft-mcp. File issues there. We follow SemVer; non-breaking additions are normal.