What Are MCP Manifests?
MCP manifests are structured JSON documents that describe your pages in a way AI systems can parse and act on. Instead of an AI agent scraping your HTML or guessing what your portfolio contains, it can read the manifest directly and understand:- Which pages exist and what they contain
- The section types that make up each page (hero, skills, timeline, etc.)
- The JSON Schema contract that governs the shape of each page’s data
- Metadata like titles and descriptions for every page
Manifest Endpoints
Your deployed site exposes four types of manifest endpoints, all served as static files from your CDN:Root Manifest
The root manifest at/mcp-manifest.json is the entry point for any agent discovering your portfolio. It lists every page alongside its manifest link and schema link.
Per-Page Manifests
Each page has its own manifest at/mcp-manifests/{slug}.json. This document describes the section types present on that page, their data shapes, and links to the full JSON Schema contract.
Per-Page JSON Schemas
The JSON Schema for each page lives at/schemas/{slug}.schema.json. These are the same Zod schemas used during the build, converted to standard JSON Schema format. External tools — validators, agent frameworks, OpenAPI integrations — can consume them directly.
HTML Link Tags
Every page’s<head> includes two link tags that allow agents and browsers to auto-discover the manifests for that specific page:
public/llms.txt
In addition to the JSON manifests, your site generates a plain-text file at /llms.txt. This file is specifically designed for LLM crawlers that index sites for use in AI assistants and search tools.
llms.txt follows an emerging convention for machine-readable site summaries. It describes your site’s purpose, lists your pages and their descriptions, and provides links to the full manifest index. It is generated by scripts/generate-llms-txt.mjs as part of the prebuild step.
How Manifests Are Generated
You never need to write or edit manifest files by hand. They are generated automatically by thescripts/bake.mjs prebuild script, which runs before every build:
1
Prebuild runs automatically
When you run
npm run build, the prebuild npm script executes first. This calls scripts/bake.mjs, which reads all your content from src/data/ and your section schemas.2
Manifests and schemas are written to `public/`
The bake script writes the root manifest, all per-page manifests, and all JSON Schema files into the
public/ directory. These become static assets served directly by your CDN.3
`llms.txt` is generated
scripts/generate-llms-txt.mjs runs and writes public/llms.txt using the same content data.4
Next.js build continues
With all static manifest files in place, the Next.js build proceeds normally. The
<link> tags are injected into each page’s <head> at build time.The generated files in
public/ are committed to your repository. This means they are available immediately on the CDN without any server-side rendering overhead, and they are versioned alongside your content.