Mintlify reference
Reference for working on Mintlify projects. This file covers essentials that apply to every task. For detailed reference on specific topics, read the files listed in the reference index below.
Reference index
Read these files only when your task requires them. They are in the reference/ directory next to this file.
| File |
When to read |
reference/components.md |
Adding or modifying components (callouts, cards, steps, tabs, accordions, code groups, fields, frames, icons, tooltips, badges, trees, mermaid, MDX, panels, prompts, colors, tiles, updates, views). Also covers table column widths. |
reference/configuration.md |
Changing docs.json settings (theme, colors, logo, fonts, appearance, navbar, footer, banner, redirects, SEO, integrations, API config). Also covers snippets, hidden pages, .mintignore, custom CSS/JS, and the complete frontmatter fields table. |
reference/navigation.md |
Modifying site navigation structure (groups, tabs, anchors, dropdowns, products, versions, languages, OpenAPI, and SDK references in nav). |
reference/api-docs.md |
Setting up API documentation (OpenAPI, AsyncAPI, MDX manual API pages, extensions, playground config). |
reference/cli.md |
Running common CLI commands (dev, validate, add-domain, automations, analytics, score, broken-links, a11y, format, and config) and their key flags. |
reference/product-context.md |
Before substantial content work (new site, broad restructure, first-time section setup) — check for and maintain .mintlify/product-brief.md. |
MCP servers
Two Mintlify MCP servers are available. Use them alongside the reference files in this skill.
Mintlify Search
Read-only access to Mintlify's published documentation. Use it when the reference files don't cover a specific detail, when you need an up-to-date component signature, or to verify an unfamiliar config option.
Tools:
search_mintlify — Search the Mintlify knowledge base by query. Good for finding guides, examples, and API references.
query_docs_filesystem_mintlify — Browse the docs file tree (ls, cat, grep, find, etc.). Good for reading a specific docs page.
submit_feedback — Report a docs page that is incorrect, outdated, confusing, or incomplete.
Mintlify Admin
Write access to a Mintlify project. Requires OAuth on first use. Complete authentication in the browser when prompted.
Use this server when the user wants to edit their Mintlify content, restructure navigation, or open a pull request. Content changes buffer on a session branch; nothing touches the deploy branch until save. Deployment management changes made through code mode apply immediately to the live deployment without a branch or pull request.
Workflow: call checkout first (always), then use read/search/edit_page/write_page/list_nodes/create_node/update_node/move_node/delete_node/update_config to make changes, then call save to publish (or discard_session to abandon).
Key tools:
checkout — Start a session on a branch (required first call). Returns an editorUrl to preview changes live.
list_branches — List existing branches; call before checkout to attach to one.
list_deployments — Discover which deployment(s) this connection can access.
read / search — Fetch a page's MDX or search across pages.
edit_page / write_page — Apply targeted edits or overwrite a page.
list_nodes / create_node / update_node / move_node / delete_node — Manage the navigation tree.
update_config — Modify docs.json (theme, nav roots, integrations, SEO).
search_code_operations / execute_code — Code mode for deployment-level operations with no dedicated tool (workflows, settings, members, billing, integrations, analytics). Search available methods, then run a TypeScript script against them. No checkout required. Writes apply immediately to the live deployment, so confirm the intended change first.
diff — See all changes relative to main.
get_session_state — Check the current session's status.
save — Publish the session. mode: "auto" (default) opens a PR, and Mintlify merges it immediately when the deployment's publishing setting allows direct pushes and the deploy branch isn't protected. mode: "pr" always opens a PR and leaves it open for review. mode: "commit" pushes to an existing PR branch without opening a new PR. Changing the publishing setting in the dashboard requires the admin role.
discard_session — Drop all in-session changes.
Keep each session focused on one change. Smaller sessions produce easier-to-review PRs. Open the editorUrl to watch changes render live.
Before you start
Before substantial content work, read reference/product-context.md and check for .mintlify/product-brief.md.
Read the project's docs.json file first. It defines the site's navigation, theme, colors, and configuration.
Search for existing content before creating new pages. You may need to update an existing page, add a section, or link to existing content rather than duplicating.
Read 2-3 similar pages to match the site's voice, structure, and formatting.
File format
Mintlify uses MDX files (.mdx or .md) with YAML frontmatter.
project/
├── docs.json # Site configuration (required)
├── index.mdx
├── quickstart.mdx
├── guides/
│ └── example.mdx
├── openapi.yml # API specification (optional)
├── images/ # Static assets
│ └── example.png
└── snippets/ # Reusable components
└── component.jsx
File naming
- Match existing patterns in the directory
- If no existing files or mixed file naming patterns, use kebab-case:
getting-started.mdx
- Add new pages to
docs.json navigation or they won't appear in the sidebar
Internal links
- Use root-relative paths without file extensions:
/getting-started/quickstart
- Do not use relative paths (
../) or absolute URLs for internal pages
Images
Store images in an images/ directory. Reference with root-relative paths. All images require descriptive alt text.

Page frontmatter
Include title, description, and keywords in frontmatter. title is technically optional (Mintlify generates one from the file path if omitted), but set it explicitly for clarity and SEO.
---
title: "Clear, descriptive title"
description: "Concise summary for SEO and navigation."
keywords: ["relevant", "search", "terms"]
---
Common frontmatter fields
| Field |
Type |
Description |
title |
string |
Page title in navigation and browser tabs. Auto-generated from the path if omitted. |
description |
string |
Brief description for SEO. Displays under the title. |
sidebarTitle |
string |
Short title for sidebar navigation. |
icon |
string |
Lucide, Font Awesome, or Tabler icon name. Also accepts a URL or file path. |
tag |
string |
Label next to page title in sidebar (e.g., "NEW"). |
hidden |
boolean |
Remove from sidebar. Page still accessible by URL. |
mode |
string |
Page layout: default, wide, custom, frame, center. |
keywords |
array |
Search terms for internal search and SEO. |
api |
string |
API endpoint for interactive playground (e.g., "POST /users"). |
openapi |
string |
OpenAPI endpoint reference (e.g., "GET /endpoint"). |
For the complete list including searchable, boost, deprecated, related, groups, and more, read reference/configuration.md.
Quick component reference
Below are the most commonly used components. For full props and all 26 components, read reference/components.md.
Callouts
<Note>Supplementary information, safe to skip.</Note>
<Info>Helpful context such as permissions or prerequisites.</Info>
<Tip>Recommendations or best practices.</Tip>
<Warning>Potentially destructive actions or important caveats.</Warning>
<Check>Success confirmation or completed status.</Check>
<Danger>Critical warnings about data loss or breaking changes.</Danger>
Steps
<Steps>
<Step title="First step">
Instructions for step one.
</Step>
<Step title="Second step">
Instructions for step two.
</Step>
</Steps>
Tabs and code groups
<Tabs>
<Tab title="npm">
```bash
npm install package-name
```
</Tab>
<Tab title="yarn">
```bash
yarn add package-name
```
</Tab>
</Tabs>
<CodeGroup>
```javascript example.js
const greeting = "Hello, world!";
```
```python example.py
greeting = "Hello, world!"
```
</CodeGroup>
Cards and columns
<Columns cols={2}>
<Card title="First card" icon="rocket" href="/quickstart">
Card description text.
</Card>
<Card title="Second card" icon="book" href="/guides">
Card description text.
</Card>
</Columns>
Use <Columns> to arrange cards (or other content) in a grid. cols accepts 1-4.
Accordions
<AccordionGroup>
<Accordion title="First section">Content one.</Accordion>
<Accordion title="Second section">Content two.</Accordion>
</AccordionGroup>
CLI commands
Install with npm i -g mint. Key commands: mint dev (local preview), mint validate, mint broken-links, mint a11y, mint test (generate tests for code blocks), mint score, mint automations, mint new, mint signup, mint index (install the Mintlify Index MCP server in supported coding agents). Read reference/cli.md for full flags and subcommands.
Writing standards
- Second-person voice ("you").
- Active voice, direct language.
- Sentence case for headings ("Getting started", not "Getting Started").
- Sentence case for code block titles.
- All code blocks must have language tags.
- All images must have descriptive alt text.
- No marketing language, filler phrases, or emoji.
- Keep code examples simple, practical, and tested.
Common mistakes
- Using
mint.json — it is deprecated. The config file is always docs.json.
- Missing language tag on a code block (use
```python, not ```).
- Using relative paths (
../page) instead of root-relative (/section/page).
- Forgetting to add new pages to
docs.json navigation.
- Images without alt text.
- Adding file extensions to internal links (
/page.mdx instead of /page).
1---2name: mintlify-23description: Comprehensive reference for building Mintlify documentation sites. Use when creating pages, configuring docs.json, adding components, setting up navigation, or working with API references. Routes to detailed reference files for all components and configuration options.4---56<!-- Generated from mintlify/docs/agent-context. Edit the canonical source, not this copy. -->78# Mintlify reference910Reference for working on Mintlify projects. This file covers essentials that apply to every task. For detailed reference on specific topics, read the files listed in the reference index below.1112## Reference index1314Read these files **only when your task requires them**. They are in the `reference/` directory next to this file.1516| File | When to read |17|------|-------------|18| `reference/components.md` | Adding or modifying components (callouts, cards, steps, tabs, accordions, code groups, fields, frames, icons, tooltips, badges, trees, mermaid, MDX, panels, prompts, colors, tiles, updates, views). Also covers table column widths. |19| `reference/configuration.md` | Changing docs.json settings (theme, colors, logo, fonts, appearance, navbar, footer, banner, redirects, SEO, integrations, API config). Also covers snippets, hidden pages, .mintignore, custom CSS/JS, and the complete frontmatter fields table. |20| `reference/navigation.md` | Modifying site navigation structure (groups, tabs, anchors, dropdowns, products, versions, languages, OpenAPI, and SDK references in nav). |21| `reference/api-docs.md` | Setting up API documentation (OpenAPI, AsyncAPI, MDX manual API pages, extensions, playground config). |22| `reference/cli.md` | Running common CLI commands (dev, validate, add-domain, automations, analytics, score, broken-links, a11y, format, and config) and their key flags. |23| `reference/product-context.md` | Before substantial content work (new site, broad restructure, first-time section setup) — check for and maintain `.mintlify/product-brief.md`. |2425## MCP servers2627Two Mintlify MCP servers are available. Use them alongside the reference files in this skill.2829### Mintlify Search3031Read-only access to Mintlify's published documentation. Use it when the reference files don't cover a specific detail, when you need an up-to-date component signature, or to verify an unfamiliar config option.3233Tools:34- `search_mintlify` — Search the Mintlify knowledge base by query. Good for finding guides, examples, and API references.35- `query_docs_filesystem_mintlify` — Browse the docs file tree (`ls`, `cat`, `grep`, `find`, etc.). Good for reading a specific docs page.36- `submit_feedback` — Report a docs page that is incorrect, outdated, confusing, or incomplete.3738### Mintlify Admin3940Write access to a Mintlify project. Requires OAuth on first use. Complete authentication in the browser when prompted.4142Use this server when the user wants to edit their Mintlify content, restructure navigation, or open a pull request. Content changes buffer on a session branch; nothing touches the deploy branch until `save`. Deployment management changes made through code mode apply immediately to the live deployment without a branch or pull request.4344Workflow: call `checkout` first (always), then use `read`/`search`/`edit_page`/`write_page`/`list_nodes`/`create_node`/`update_node`/`move_node`/`delete_node`/`update_config` to make changes, then call `save` to publish (or `discard_session` to abandon).4546Key tools:47- **`checkout`** — Start a session on a branch (required first call). Returns an `editorUrl` to preview changes live.48- **`list_branches`** — List existing branches; call before `checkout` to attach to one.49- **`list_deployments`** — Discover which deployment(s) this connection can access.50- **`read`** / **`search`** — Fetch a page's MDX or search across pages.51- **`edit_page`** / **`write_page`** — Apply targeted edits or overwrite a page.52- **`list_nodes`** / **`create_node`** / **`update_node`** / **`move_node`** / **`delete_node`** — Manage the navigation tree.53- **`update_config`** — Modify `docs.json` (theme, nav roots, integrations, SEO).54- **`search_code_operations`** / **`execute_code`** — Code mode for deployment-level operations with no dedicated tool (workflows, settings, members, billing, integrations, analytics). Search available methods, then run a TypeScript script against them. No `checkout` required. Writes apply immediately to the live deployment, so confirm the intended change first.55- **`diff`** — See all changes relative to `main`.56- **`get_session_state`** — Check the current session's status.57- **`save`** — Publish the session. `mode: "auto"` (default) opens a PR, and Mintlify merges it immediately when the deployment's publishing setting allows direct pushes and the deploy branch isn't protected. `mode: "pr"` always opens a PR and leaves it open for review. `mode: "commit"` pushes to an existing PR branch without opening a new PR. Changing the publishing setting in the dashboard requires the admin role.58- **`discard_session`** — Drop all in-session changes.5960Keep each session focused on one change. Smaller sessions produce easier-to-review PRs. Open the `editorUrl` to watch changes render live.6162## Before you start6364Before substantial content work, read `reference/product-context.md` and check for `.mintlify/product-brief.md`.6566Read the project's `docs.json` file first. It defines the site's navigation, theme, colors, and configuration.6768Search for existing content before creating new pages. You may need to update an existing page, add a section, or link to existing content rather than duplicating.6970Read 2-3 similar pages to match the site's voice, structure, and formatting.7172## File format7374Mintlify uses MDX files (`.mdx` or `.md`) with YAML frontmatter.7576```77project/78├── docs.json # Site configuration (required)79├── index.mdx80├── quickstart.mdx81├── guides/82│ └── example.mdx83├── openapi.yml # API specification (optional)84├── images/ # Static assets85│ └── example.png86└── snippets/ # Reusable components87 └── component.jsx88```8990### File naming9192- Match existing patterns in the directory93- If no existing files or mixed file naming patterns, use kebab-case: `getting-started.mdx`94- Add new pages to `docs.json` navigation or they won't appear in the sidebar9596### Internal links9798- Use root-relative paths without file extensions: `/getting-started/quickstart`99- Do not use relative paths (`../`) or absolute URLs for internal pages100101### Images102103Store images in an `images/` directory. Reference with root-relative paths. All images require descriptive alt text.104105```mdx106107```108109## Page frontmatter110111Include `title`, `description`, and `keywords` in frontmatter. `title` is technically optional (Mintlify generates one from the file path if omitted), but set it explicitly for clarity and SEO.112113```yaml114---115title: "Clear, descriptive title"116description: "Concise summary for SEO and navigation."117keywords: ["relevant", "search", "terms"]118---119```120121### Common frontmatter fields122123| Field | Type | Description |124|-------|------|-------------|125| `title` | string | Page title in navigation and browser tabs. Auto-generated from the path if omitted. |126| `description` | string | Brief description for SEO. Displays under the title. |127| `sidebarTitle` | string | Short title for sidebar navigation. |128| `icon` | string | Lucide, Font Awesome, or Tabler icon name. Also accepts a URL or file path. |129| `tag` | string | Label next to page title in sidebar (e.g., "NEW"). |130| `hidden` | boolean | Remove from sidebar. Page still accessible by URL. |131| `mode` | string | Page layout: `default`, `wide`, `custom`, `frame`, `center`. |132| `keywords` | array | Search terms for internal search and SEO. |133| `api` | string | API endpoint for interactive playground (e.g., `"POST /users"`). |134| `openapi` | string | OpenAPI endpoint reference (e.g., `"GET /endpoint"`). |135136For the complete list including `searchable`, `boost`, `deprecated`, `related`, `groups`, and more, read `reference/configuration.md`.137138## Quick component reference139140Below are the most commonly used components. For full props and all 26 components, read `reference/components.md`.141142### Callouts143144```mdx145<Note>Supplementary information, safe to skip.</Note>146<Info>Helpful context such as permissions or prerequisites.</Info>147<Tip>Recommendations or best practices.</Tip>148<Warning>Potentially destructive actions or important caveats.</Warning>149<Check>Success confirmation or completed status.</Check>150<Danger>Critical warnings about data loss or breaking changes.</Danger>151```152153### Steps154155```mdx156<Steps>157 <Step title="First step">158 Instructions for step one.159 </Step>160 <Step title="Second step">161 Instructions for step two.162 </Step>163</Steps>164```165166### Tabs and code groups167168```mdx169<Tabs>170 <Tab title="npm">171 ```bash172 npm install package-name173 ```174 </Tab>175 <Tab title="yarn">176 ```bash177 yarn add package-name178 ```179 </Tab>180</Tabs>181```182183````mdx184<CodeGroup>185186```javascript example.js187const greeting = "Hello, world!";188```189190```python example.py191greeting = "Hello, world!"192```193194</CodeGroup>195````196197### Cards and columns198199```mdx200<Columns cols={2}>201 <Card title="First card" icon="rocket" href="/quickstart">202 Card description text.203 </Card>204 <Card title="Second card" icon="book" href="/guides">205 Card description text.206 </Card>207</Columns>208```209210Use `<Columns>` to arrange cards (or other content) in a grid. `cols` accepts 1-4.211212### Accordions213214```mdx215<AccordionGroup>216 <Accordion title="First section">Content one.</Accordion>217 <Accordion title="Second section">Content two.</Accordion>218</AccordionGroup>219```220221## CLI commands222223Install with `npm i -g mint`. Key commands: `mint dev` (local preview), `mint validate`, `mint broken-links`, `mint a11y`, `mint test` (generate tests for code blocks), `mint score`, `mint automations`, `mint new`, `mint signup`, `mint index` (install the Mintlify Index MCP server in supported coding agents). Read `reference/cli.md` for full flags and subcommands.224225## Writing standards226227- Second-person voice ("you").228- Active voice, direct language.229- Sentence case for headings ("Getting started", not "Getting Started").230- Sentence case for code block titles.231- All code blocks must have language tags.232- All images must have descriptive alt text.233- No marketing language, filler phrases, or emoji.234- Keep code examples simple, practical, and tested.235236## Common mistakes237238- Using `mint.json` — it is deprecated. The config file is always `docs.json`.239- Missing language tag on a code block (use ` ```python `, not ` ``` `).240- Using relative paths (`../page`) instead of root-relative (`/section/page`).241- Forgetting to add new pages to `docs.json` navigation.242- Images without alt text.243- Adding file extensions to internal links (`/page.mdx` instead of `/page`).