Deploy static-mcpify on Netlify

Pick a starter, click deploy, and get a hosted MCP endpoint with sample content already wired up.

Starter deploy buttons

Static starter

Filesystem content, zero CMS setup

Deploy preloaded Markdown and JSON content with a Netlify Function already mapped to /mcp.

Base directory: starters/netlify-static-starter
Endpoint: /mcp
Includes: content/, netlify.toml, function, landing page
Contentful starter

Sample content now, Contentful sync when ready

Ship a working MCP server immediately, then set CONTENTFUL_API_TOKEN and SPACE_ID so Netlify rebuilds from your Contentful space.

Base directory: starters/netlify-contentful-starter
Endpoint: /mcp
Build behavior: bundled sample content unless Contentful env vars are present

Smooth deployment flow

1
Choose a starter

Pick static/filesystem mode or the Contentful-ready starter.

2
Click deploy

Netlify uses the starter directory as the site base automatically.

3
Use the hosted endpoint

Your MCP server is immediately available at /mcp.

4
Customize content

Edit files in content/ or, for Contentful, add credentials and let Netlify rebuild on deploy.

Starter netlify.toml shape

[build]
publish = "public"
command = "if [ -n \"$CONTENTFUL_API_TOKEN\" ] && [ -n \"$SPACE_ID\" ]; then npm run build:contentful; else npm run build; fi"

[functions]
directory = "netlify/functions"
node_bundler = "nft"

[[redirects]]
from = "/mcp"
to = "/.netlify/functions/mcp"
status = 200

The static starter uses the same function and redirect shape, but skips the Contentful rebuild because its bundled filesystem content is already ready.

Endpoint checklist

GET health check

Return starter metadata like {"status":"ok","endpoint":"/mcp"} so users can verify the function quickly.

POST MCP JSON-RPC

Accept MCP requests at /mcp with no additional routing work after deploy.

The new starter directories are self-contained Netlify bases, so users can launch from sample static files or a Contentful-ready scaffold without editing infrastructure first.