Package documentation

How to install, initialize, build, and serve with static-mcpify.

Fastest Netlify path

Static starter

Use starters/netlify-static-starter when you want bundled filesystem content and an instant /mcp endpoint.

Contentful starter

Use starters/netlify-contentful-starter when you want bundled sample content now and Contentful-driven rebuilds later.

The deploy page has direct Netlify buttons for both starter directories so users do not need to wire netlify.toml, redirects, or function paths manually.

Install

npm install static-mcpify

Set Contentful credentials in a .env file if you are using the Contentful adapter.

CONTENTFUL_API_TOKEN=your_token
SPACE_ID=your_space

Initialize project config

npx smcp init --output my-mcp

The wizard lets you choose content types and define tool behavior for each type.

Build static artifacts

npx smcp build --output my-mcp
npx smcp build --output my-mcp --content-type blog

Build writes content into the static structure below:

my-mcp/
├── config.json
└── content/
    ├── assets/
    └── entries/
        └── <type>/<slug>/
            ├── data.json
            └── tools/*.md

Serve MCP endpoints

Serverless handler

import { handleMcpRequest } from 'static-mcpify/web-handler';

export default async (req: Request) => {
  if (req.method === 'GET') return new Response('{"status":"ok"}');
  return handleMcpRequest('./my-mcp/content', req);
};

Express handler

import express from 'express';
import { handleMcpRequest } from 'static-mcpify/handler';

const app = express();
app.use(express.json());
app.all('/mcp', (req, res) => handleMcpRequest('./my-mcp/content', req, res));
app.listen(3000);

For exhaustive technical details, see the project README on GitHub.