Server data from the Official MCP Registry
Neural Draft MCP — CMS, blog, bookings, commerce backend for AI-built sites. 30 tools, OAuth.
Neural Draft MCP — CMS, blog, bookings, commerce backend for AI-built sites. 30 tools, OAuth.
A well-structured MCP server for Neural Draft's CMS/blog/commerce APIs with proper authentication, sensible permission scoping, and clean code practices. The server requires API key authentication via environment variables and makes appropriately narrow network calls to a single backend service. No malicious patterns, credential leaks, or dangerous vulnerabilities detected. Minor code quality observations present but do not compromise security. Supply chain analysis found 2 known vulnerabilities in dependencies (1 critical, 0 high severity). Package verification found 1 issue.
5 files analyzed · 7 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: NEURALDRAFT_API_KEY
Environment variable: NEURALDRAFT_API_URL
Environment variable: NEURALDRAFT_PROJECT_ID
Environment variable: NEURALDRAFT_DISPLAY_NAME
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-vbalagovic-neuraldraft-mcp": {
"env": {
"NEURALDRAFT_API_KEY": "your-neuraldraft-api-key-here",
"NEURALDRAFT_API_URL": "your-neuraldraft-api-url-here",
"NEURALDRAFT_PROJECT_ID": "your-neuraldraft-project-id-here",
"NEURALDRAFT_DISPLAY_NAME": "your-neuraldraft-display-name-here"
},
"args": [
"-y",
"@neuraldraft/mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
Make AI-built sites real businesses. Plug Neural Draft's CMS, blog, social, booking, and commerce APIs into Claude Code, Cursor, Continue, and any other MCP client.
@neuraldraft/mcp is a Model Context Protocol server that gives AI coding tools first-class access to the Neural Draft backend platform. When your AI assistant builds a site, it can:
A real Claude Code session driving Neural Draft via MCP. One natural-language prompt creates 4 translation keys (EN + HR) and registers a hero image.

AI codegen tools (Lovable, Claude Code, v0, Bolt, Cursor) are excellent at building frontends. They're terrible at the bits that make a frontend a real business — multi-language CMS, blog pipelines, social scheduling, bookings, e-commerce. Neural Draft is the backend that handles those. This MCP server is the wire between the two: the AI tool generates code that uses Neural Draft correctly by default, because the conventions and tools are exposed as MCP context.
The pitch: "Build your site with Lovable. Run the actual business on Neural Draft."
You need a Neural Draft project API key. Get one at neuraldraft.io/dashboard/api-keys. Test-mode keys (ndsk_test_…) work out of the box.
~/.config/claude-code/mcp.json:
{
"mcpServers": {
"neuraldraft": {
"command": "npx",
"args": ["-y", "@neuraldraft/mcp"],
"env": {
"NEURALDRAFT_API_KEY": "ndsk_live_xxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Or use the CLI:
claude mcp add neuraldraft \
-e NEURALDRAFT_API_KEY=ndsk_live_xxx \
-- npx -y @neuraldraft/mcp
.cursor/mcp.json (workspace) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"neuraldraft": {
"command": "npx",
"args": ["-y", "@neuraldraft/mcp"],
"env": {
"NEURALDRAFT_API_KEY": "ndsk_live_xxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
~/.continue/config.yaml:
experimental:
modelContextProtocolServers:
- transport:
type: stdio
command: npx
args: ["-y", "@neuraldraft/mcp"]
env:
NEURALDRAFT_API_KEY: ndsk_live_xxxxxxxxxxxxxxxxxxxxxxxx
Then restart your editor. You should see neuraldraft listed under MCP servers, with resources, tools, and prompts available.
The server reads two environment variables (set by your MCP client config — never commit them):
| Variable | Required | Default | Notes |
|---|---|---|---|
NEURALDRAFT_API_KEY | yes | — | Project API key. Format: ndsk_live_… or ndsk_test_… |
NEURALDRAFT_API_URL | no | https://api.neuraldraft.io/v1 | Override the API base. Useful for staging or local dev. |
NEURALDRAFT_PROJECT_ID | no | (derived from key) | Override when one key spans multiple projects. |
NEURALDRAFT_DISPLAY_NAME | no | — | Friendly name shown in your IDE's MCP list when you run multiple projects. |
NEURAL_DRAFT_* (with underscore) is also accepted as an alias for any of the above.
| URI | What |
|---|---|
brand://current | Project brand: voice, audience, content tone, colors, fonts, logo, target topics |
schema://blog-post | JSON schema for blog post API responses |
schema://product | JSON schema for product API responses |
schema://booking | JSON schema for bookable services + bookings |
conventions://editable-html | The data-translate / data-image-key markup spec the AI should follow |
conventions://api-usage | Auth, errors, rate limits, idempotency, async/job patterns |
| Tool | Description |
|---|---|
get_brand | Read the project's brand context (industry, audience, voice, colors, fonts) |
update_brand | Patch brand fields (voice, audience, colors, fonts, languages) |
register_component | Register generated HTML as editable in the admin. Call once per section. |
generate_blog_post | Kick off the AI blog pipeline (research → draft → image → SEO → translations) |
get_blog_post | Fetch a single blog post by id or slug (locale-aware) |
list_blog_posts | Paginated list with status / language / category / tag filters |
update_blog_post | Patch a post's title / body / SEO meta / status |
generate_image | Brand-consistent image generation (returns a Job) |
list_images | List registered image keys |
get_image | Resolve a single registered image URL by key |
register_image | Bind a direct image URL to a stable key (no AI) |
replace_image | Swap an image by URL or AI regeneration |
delete_image | Remove an image-key registration |
generate_video | Brand-aware video clip — budget (40 cr) or premium (300 cr) tier |
create_page | Create a TenantPage with per-page SEO meta |
list_pages | Paginated list of pages |
get_page | Fetch a page by id or slug (full SEO meta) |
update_page | Patch page fields and / or SEO meta (merge semantics) |
create_translation_keys | Bulk-create translation keys with default values |
get_content | Read a single translation key (resolved value + all_locales) |
list_content | Paginated key list with search / scope / language filters |
list_products | List the project's products (paginated) |
get_product | Fetch a single product by id or slug |
create_bookable_service | Create a bookable service (time-slot or date-range) |
setup_booking_widget | Get the embeddable booking widget HTML for a service |
list_newsletter_subscribers | List captured newsletter subscribers |
list_contact_form_submissions | List captured contact-form submissions |
get_usage | Current credit balance, monthly limit, reset date, breakdown |
get_job | Poll an async job (blog/image/video generation) for completion |
find_workspaces | List Neural Draft workspaces an email is registered against (calls the central host, not the per-tenant API) |
| Slash command | What it does |
|---|---|
/scaffold-marketing-site | Generate a complete marketing site (hero, features, testimonials, pricing, CTA, footer) wired through Neural Draft |
/scaffold-blog-page | Drop a /blog and /blog/[slug] page into an existing project |
/connect-existing-site | Walk a developer through migrating an existing static site to Neural Draft |
You: /scaffold-blog-page framework=next language=en
Claude: Reading brand://current… (voice: warm and grounded; audience: yoga-curious adults)
Claude: Reading schema://blog-post… (got it — id, slug, title, content, featured_image, tags, …)
Claude: Reading conventions://api-usage… (auth via Bearer ndsk_…, rate limit 60/min, RFC 7807 errors)
Claude: Generating /lib/neuraldraft.ts…
Claude: Generating /app/blog/page.tsx (index)…
Claude: Calling register_component { intent: 'blog_index_card', html: ... }
Claude: → cmp_2NgB7hKqL (edit at https://app.neuraldraft.io/c/cmp_2NgB7hKqL)
Claude: Generating /app/blog/[slug]/page.tsx…
Claude: Calling register_component { intent: 'blog_post_meta_block', html: ... }
Claude: → cmp_2NgC9qPLq (edit at https://app.neuraldraft.io/c/cmp_2NgC9qPLq)
Claude: Done. 2 components registered. Open the editor URLs to change copy.
You: Build a hero section that says "Find your calm" with a CTA to /book.
Claude: Reading brand://current… (deep sage #3F6B5C primary, linen #E8DCC4 secondary, Fraunces / Inter)
Claude: Reading conventions://editable-html… (every text node needs data-translate)
Claude: Calling generate_image { prompt: "Serene yoga studio at dawn, sage and linen tones, no people", aspect_ratio: "16:9", key: "hero.background" }
Claude: → job_img_7K9L (poll with get_job)
Claude: Drafting <section class="hero">…</section> with data-translate="hero.headline" / "hero.subhead" / "hero.cta"
Claude: Calling register_component { intent: "marketing_hero", page_slug: "home", html: ... }
Claude: → cmp_2NgD9KqL — translation keys created: hero.headline, hero.subhead, hero.cta.
Claude: I'll poll the image job…
Claude: Calling get_job { id: "job_img_7K9L" } → status: completed, url: https://cdn.neuraldraft.io/.../hero-bg.jpg
Claude: Done. The hero is in your admin (https://app.neuraldraft.io/c/cmp_2NgD9KqL) — you can change the headline, swap the image, or recolor without touching code.
You: I have 14 products in my Neural Draft project. Scaffold a /shop page.
Claude: Calling list_products { page_size: 20 } → 14 products returned (page 1/1).
Claude: Reading schema://product… (id, name, price_cents, currency, status, images, …)
Claude: Reading brand://current… (warm voice; primary #3F6B5C)
Claude: Reading conventions://editable-html…
Claude: Generating /app/shop/page.tsx with a grid of 14 ProductCard components.
Claude: Calling register_component { intent: "product_grid_header", page_slug: "shop", html: ... } → cmp_2NgE
Claude: Generating /app/shop/[slug]/page.tsx with get_product fetch + buy-button widget.
Claude: Calling register_component { intent: "product_detail_layout", page_slug: "shop_detail", html: ... } → cmp_2NgF
Claude: Done. The grid auto-renders your 14 products (real names, prices, images). Edit the page header in admin: https://app.neuraldraft.io/c/cmp_2NgE.
git clone https://github.com/vbalagovic/neuraldraft-mcp.git
cd mcp
npm install
npm run lint # tsc --noEmit
npm test
npm run build # → dist/
Run against a local API:
NEURALDRAFT_API_KEY=ndsk_test_xxx \
NEURALDRAFT_API_URL=http://localhost:8080/v1 \
npm run dev
Inspect interactively with the official MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.js
(Or npx @modelcontextprotocol/inspector --cli node dist/index.js --tool register_component --args '{"html":"<h1>Hi</h1>","intent":"hero"}' for one-shot CLI calls.)
This server is a thin wrapper over the Neural Draft Project API v1. Every tool maps to one (or a handful of) REST calls; resources are either constants (schemas, conventions docs) or cached reads (brand://current). The full API spec lives at openapi.yaml in the platform repo.
Stdio is the only transport in v0.x — every current AI coding tool spawns local processes. Streamable HTTP transport will arrive when there's hosted multi-tenant demand.
Issues and PRs welcome. See open issues for places to start. PRs should:
src/register* helper pattern when adding tools/resourcesSee CHANGELOG.md (TBD — this is the first public release).
MIT — open-source from day one.
Built by Neural Draft. Questions? developers@neuraldraft.io.
Be the first to review this server!
by Modelcontextprotocol · AI & ML
Dynamic and reflective problem-solving through structured thought sequences
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.