From 533a6477dcfd091cbf3ffb3ae2812f6e48b30d8a Mon Sep 17 00:00:00 2001 From: Denzell <32852291+cdxker@users.noreply.github.com> Date: Mon, 6 Jul 2026 17:45:28 -0700 Subject: [PATCH 01/30] Updated mintlify pages - Updated cli/install.mdx - Updated optimize/search.mdx - Updated ai/mintlify-mcp.mdx - Updated organize/navigation.mdx - Updated cli/commands.mdx - Updated organize/pages.mdx - Updated organize/hidden-pages.mdx - Updated .vale.ini - Updated ai/llmstxt.mdx - Updated credits.mdx - Updated optimize/analytics.mdx - Updated ai-native.mdx - Updated customize/fonts.mdx - Updated customize/custom-scripts.mdx - Updated quickstart.mdx Mintlify-Source: dashboard-editor --- .vale.ini | 31 ++++- ai-native.mdx | 11 +- ai/llmstxt.mdx | 4 +- ai/mintlify-mcp.mdx | 241 ++++++++++++++++++++++++++++++++--- cli/commands.mdx | 4 +- cli/install.mdx | 45 ++++--- credits.mdx | 43 +++++-- customize/custom-scripts.mdx | 188 ++++++++++++++++----------- customize/fonts.mdx | 72 ++++++----- optimize/analytics.mdx | 39 +++--- optimize/search.mdx | 4 +- organize/hidden-pages.mdx | 10 +- organize/navigation.mdx | 103 ++++++++------- organize/pages.mdx | 11 +- quickstart.mdx | 5 +- 15 files changed, 563 insertions(+), 248 deletions(-) diff --git a/.vale.ini b/.vale.ini index 3df30982ed..dd31a5033e 100644 --- a/.vale.ini +++ b/.vale.ini @@ -2,7 +2,7 @@ StylesPath = .vale/styles MinAlertLevel = suggestion -IgnoredScopes = code, tt, img, url, a +IgnoredScopes = code, code, tt, img, url, a SkippedScopes = script, style, pre, figure, code Vocab = Mintlify @@ -20,17 +20,22 @@ TokenIgnores = (?m)((?:import|export) .+?$), \ (?)(?!`), \ (<[A-Z]\w+>.+?<\/[A-Z]\w+>), \ (<[^>]*>), \ -\{(?!/\*)[^}]*\}, \ -(`[^`]*`), \ -(?m)^openapi: .+$, \ +\{(?!/\*)(?!/\*)[^}]*\}, \ +(`[^`]*`), \, \ +(?m)^openapi: .+$, \(?m)^openapi: .+$, \ +([\w-]+\.)+(?:json|jsonl|png|jpe?g|gif|svg|mdx?|txt|ya?ml|xml|com|dev|io|ts|js|tsx|jsx), \ +[\w-]+="[^"\n]*", \ +[\w.+-]+@[\w.-]+, \ +\(/[^)\s]*\) + ([\w-]+\.)+(?:json|jsonl|png|jpe?g|gif|svg|mdx?|txt|ya?ml|xml|com|dev|io|ts|js|tsx|jsx), \ [\w-]+="[^"\n]*", \ [\w.+-]+@[\w.-]+, \ \(/[^)\s]*\) BlockIgnores = (?sm)^(<\w+\n .*\s\/>)$, \ -(?sm)^({(?!/\*).+?})$, \ -(?sm)^[ \t]*```[\s\S]*?```$ +(?sm)^({(?!/\*)(?!/\*).+??})$, \ +(?sm)^[ \t]*[ \t]*```[\s\S]*?```$ CommentDelimiters = {/*, */} @@ -38,6 +43,20 @@ CommentDelimiters = {/*, */} BasedOnStyles = "" # Code-generator snippet with no prose content +# Code-generator snippet with no prose content +[snippets/vercel-json-generator.mdx] +BasedOnStyles = "" + +# Component docs use dotted JSX names (Color.Row, Tree.Folder) that +# false-positive the sentence-spacing rule +[components/{color,tree}.mdx] +Mintlify.Spacing = NO + +# Vale lints /api-playground/... link targets in these files in a pass +# that ignores in-document toggles +[{api-playground/asyncapi-setup.mdx,organize/settings-reference.mdx}] +Vale.Terms = NO + [snippets/vercel-json-generator.mdx] BasedOnStyles = "" diff --git a/ai-native.mdx b/ai-native.mdx index 73b1e4ceb0..c6a2d1655f 100644 --- a/ai-native.mdx +++ b/ai-native.mdx @@ -2,9 +2,14 @@ title: "AI-native documentation" sidebarTitle: "AI-native" description: "Discover how AI-native features enhance reading, writing, and discovering your documentation with the assistant, agent, and MCP server." -keywords: ["AI","assistant","agent","llms.txt","MCP","llms-full.txt"] +keywords: ["AI", "assistant", "agent", "llms.txt", "MCP", "llms-full.txt"] --- +| rob | | | +| --- | --- | --- | +| | | | +| | | | + When you host your documentation on Mintlify, built-in AI features help your users find answers and your team maintain content more efficiently. Your content provides the context for these AI-native features to improve the experiences of reading, writing, and discovering your documentation. ## What makes your documentation AI-native @@ -49,10 +54,12 @@ Select any of the following cards for more information. Configure the assistant to search external sites or direct people to your support team if it can't answer their questions. + Get documentation updates automatically on a schedule or when a push event occurs. + Add a menu to pages that lets users query AI tools, connect to your MCP server, and copy pages as context with one click. - + \ No newline at end of file diff --git a/ai/llmstxt.mdx b/ai/llmstxt.mdx index d4902743fa..bf40b1617a 100644 --- a/ai/llmstxt.mdx +++ b/ai/llmstxt.mdx @@ -9,7 +9,7 @@ import { PreviewButton } from "/snippets/previewbutton.jsx" The [llms.txt file](https://llmstxt.org) is an industry standard that helps LLMs index content more efficiently, similar to how a sitemap helps search engines. AI tools can use this file to understand your documentation structure and find content relevant to user queries. -Mintlify automatically hosts an `llms.txt` file at the root of your project that lists all available pages in your documentation. This file is always up to date and requires zero maintenance. You can optionally add a custom `llms.txt` file to the root of your project. +Mintlify automatically hosts an `llms.txt` file at the root of your project that lists all available pages in your documentation. This file is always up to date and requires zero maintenance. You can optionally add a custom `llms.txt` file to the root of your project. Authentication affects `llms.txt` and `llms-full.txt` differently depending on your site configuration: @@ -80,4 +80,4 @@ Mintlify automatically hosts an `llms-full.txt` file at the root of your project To add a custom `llms.txt` or `llms-full.txt` file, create an `llms.txt` or `llms-full.txt` file at the root of your project. Adding a custom file overrides the automatically generated file of the same name. If you delete a custom file, Mintlify restores the automatically generated file. -Your custom `llms.txt` or `llms-full.txt` file must have a site title as an H1 heading. Other content is optional. See [Format](https://llmstxt.org/#format) in the `llms.txt` specification for more information on optional sections and best practices. +Your custom `llms.txt` or `llms-full.txt` file must have a site title as an H1 heading. Other content is optional. See [Format](https://llmstxt.org/#format) in the `llms.txt` specification for more information on optional sections and best practices. \ No newline at end of file diff --git a/ai/mintlify-mcp.mdx b/ai/mintlify-mcp.mdx index 267467b4bc..bafbea8dea 100644 --- a/ai/mintlify-mcp.mdx +++ b/ai/mintlify-mcp.mdx @@ -9,7 +9,7 @@ keywords: ["MCP", "write access", "AI", "editing", "Claude", "Cursor", "branch", The admin MCP server gives AI tools write access to your Mintlify content and settings. Use it to update content and access your dashboard. With the admin MCP, you can use your preferred AI tools to edit pages, restructure navigation, update `docs.json`, open pull requests, change settings, create workflows, and more. -Connect any MCP client like Claude, Claude Code, or Cursor to the admin MCP server to collaborate on your Mintlify content and settings with the same tools you use to write code. When you use the admin MCP server, all changes happen on a branch and require a pull request to merge. If your organization has multiple deployments, a single admin MCP connection can access and switch between all of them. +Connect any MCP client like Claude, Claude Code, or Cursor to the admin MCP server to collaborate on your Mintlify content and settings with the same tools you use to write code. When you use the admin MCP server, all changes happen on a branch and require a pull request to merge. If your organization has multiple deployments, a single admin MCP connection can access and switch between all of them. If your organization has multiple deployments, a single admin MCP connection can access and switch between all of them. The admin MCP server allows AI tools to access your Mintlify dashboard. Treat it like a coworker with write access. Connect it only from trusted AI tools and review every pull request before merging. @@ -17,6 +17,8 @@ Connect any MCP client like Claude, Claude Code, or Cursor to the admin MCP serv The admin MCP is a hosted Mintlify service at `https://mcp.mintlify.com`. Every client connects to the same endpoint and authenticates with your Mintlify account. +The admin MCP is a hosted Mintlify service at `https://mcp.mintlify.com`. Every client connects to the same endpoint and authenticates with your Mintlify account. + ### How the admin MCP differs from the search MCP | | Admin MCP | Search MCP | @@ -26,17 +28,21 @@ The admin MCP is a hosted Mintlify service at `https://mcp.mintlify.com`. Every | **Endpoints** | Hosted by Mintlify, scoped to your project | `/mcp` on your site domain | | **Output** | Content edits, navigation changes, pull requests, workflow runs | Search results and page content | -## Prerequisites +## PrerequisitesPrerequisites + +Before connecting the admin MCP, confirm the following:Before connecting the admin MCP, confirm the following: -Before connecting the admin MCP, confirm the following: +- **Mintlify account**: You need a Mintlify account with access to the project you want to edit. The OAuth session inherits your dashboard permissions, so admin-only actions (such as `update_config` on protected settings) require an admin role on the project. +- **Git provider access**: The Mintlify GitHub App or GitLab connection for the project must have write access to the deploy branch's repository. `save` opens PRs through the same integration used for normal deploys. +- **MCP client**: An MCP-capable AI tool such as Claude, Claude Code, Cursor, or Codex. - **Mintlify account**: You need a Mintlify account with access to the project you want to edit. The OAuth session inherits your dashboard permissions, so admin-only actions (such as `update_config` on protected settings) require an admin role on the project. - **Git provider access**: The Mintlify GitHub App or GitLab connection for the project must have write access to the deploy branch's repository. `save` opens PRs through the same integration used for normal deploys. - **MCP client**: An MCP-capable AI tool such as Claude, Claude Code, Cursor, or Codex. -## Connect to the admin MCP +## Connect to the admin MCPConnect to the admin MCP -You must have an interactive OAuth login against your Mintlify account to connect to the admin MCP. AI tools exchange that login for a session token scoped to one or more deployments, depending on how you grant access. A connection scoped to specific deployments can only check out those, while an organization-wide connection can check out any deployment in your organization. +You must have an interactive OAuth login against your Mintlify account to connect to the admin MCP. AI tools exchange that login for a session token scoped to one project.You must have an interactive OAuth login against your Mintlify account to connect to the admin MCP. AI tools exchange that login for a session token scoped to one project. You must have an interactive OAuth login against your Mintlify account to connect to the admin MCP. AI tools exchange that login for a session token scoped to one or more deployments, depending on how you grant access. A connection scoped to specific deployments can only check out those, while an organization-wide connection can check out any deployment in your organization. You must have an interactive OAuth login against your Mintlify account to connect to the admin MCP. AI tools exchange that login for a session token scoped to one or more deployments, depending on how you grant access. A connection scoped to specific deployments can only check out those, while an organization-wide connection can check out any deployment in your organization. @@ -44,7 +50,7 @@ You must have an interactive OAuth login against your Mintlify account to connec 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. 2. Click **Add custom connector**. - 3. Add the connector: + 3. Add the connector:: - Name: Admin MCP - URL: `https://mcp.mintlify.com` 4. Click **Add** and complete the OAuth login. @@ -80,6 +86,29 @@ You must have an interactive OAuth login against your Mintlify account to connec 4. Reload Cursor and complete the OAuth login when prompted. + + + + 1. Open Claude Desktop settings and navigate to **Developer** \> **Edit Config**. + 2. Add the admin MCP server to `claude_desktop_config.json`: + + ```json + { + "mcpServers": { + "mintlify": { + "url": "https://mcp.mintlify.com" + } + } + } + ``` + + 3. Restart Claude Desktop and complete the OAuth login when prompted. + + + Select the Mintlify admin MCP from the tools menu in a new chat. Claude Desktop can now call the admin MCP tools while answering your prompt. + + + Add the admin MCP server to your Codex CLI config at `~/.codex/config.toml`: @@ -99,13 +128,16 @@ You must have an interactive OAuth login against your Mintlify account to connec Every admin MCP session binds to a single Git branch. The flow is: + + If your connection has access to more than one deployment, call `list_deployments` to see which `subdomain` values you can check out. Skip this step if your connection covers only a single deployment. + If your connection has access to more than one deployment, call `list_deployments` to see which `subdomain` values you can check out. Skip this step if your connection covers only a single deployment. - The first required call is `checkout {subdomain}`. It creates a fresh `mintlify-mcp/-` branch from that deployment's deploy branch (or attaches to an existing branch you name) and returns an `editorUrl` you can open to follow along in the dashboard editor. + The first required call is `checkout {subdomain}`. It creates a fresh `mintlify-mcp/-` branch from that deployment'srequired call is `checkout {subdomain}`. It creates a fresh `mintlify-mcp/-` branch from that deployment's deploy branch (or attaches to an existing branch you name) and returns an `editorUrl` you can open to follow along in the dashboard editor. - Call `list_branches` before `checkout` if you need to discover or filter existing branches in a deployment's repository. + Call `list_branches` before `checkout` if you need to discover or filter existing branches in a deployment'sa deployment's repository. The AI uses tools like `search`, `read`, `list_nodes`, `edit_page`, `write_page`, `create_node`, and `update_config` to make changes. All edits buffer on the session branch in real time—nothing touches your deploy branch yet. @@ -122,12 +154,121 @@ Every admin MCP session binds to a single Git branch. The flow is: - If your connection has access to multiple deployments, each checked-out deployment keeps its own session and branch in memory at the same time. - + If your connection has access to multiple deployments, each checked-out deployment keeps its own session and branch in memory at the same timeIf your connection has access to multiple deployments, each checked-out deployment keeps its own session and branch in memory at the same time. + + Calling `checkout` again with a different `subdomain` or branch switches which session is active. It doesn't discard the others. To abandon an in-progress draft instead of switching away from it, call `discard_session`. + Calling `checkout` again with a different `subdomain` or branch switches which session is active. It doesn't discard the others. To abandon an in-progress draft instead of switching away from it, call `discard_session`. -## What the admin MCP can do + + + + + 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. + 2. Click **Add custom connector**. + 3. Add the connector + - Name: Admin MCP + - URL: `https://mcp.mintlify.com` + 4. Click **Add** and complete the OAuth login. + + + Click the attachments button (the plus icon), then select your admin MCP server. Claude can now call the Mintlify admin MCP tools while answering your prompt. + + + + + Add the admin MCP server with the Claude Code CLI: + + ```bash + claude mcp add --transport http mintlify https://mcp.mintlify.com + ``` + + On first use, Claude Code opens a browser window to complete the OAuth login. After authenticating, the session is reused for subsequent calls. + + + 1. Open the command palette with Command \+ Shift \+ P (Ctrl \+ Shift \+ P on Windows). + 2. Search for **Open MCP settings** and click **Add custom MCP**. + 3. In `mcp.json`, add the admin MCP: + + ```json + { + "mcpServers": { + "mintlify": { + "url": "https://mcp.mintlify.com" + } + } + } + ``` + + 4. Reload Cursor and complete the OAuth login when prompted. + + + + + 1. Open Claude Desktop settings and navigate to **Developer** \> **Edit Config**. + 2. Add the admin MCP server to `claude_desktop_config.json`: + + ```json + { + "mcpServers": { + "mintlify": { + "url": "https://mcp.mintlify.com" + } + } + } + ``` + + 3. Restart Claude Desktop and complete the OAuth login when prompted. + + + Select the Mintlify admin MCP from the tools menu in a new chat. Claude Desktop can now call the admin MCP tools while answering your prompt. + + + + + Add the admin MCP server to your Codex CLI config at `~/.codex/config.toml`: + + ```toml + [mcp_servers.mintlify] + url = "https://mcp.mintlify.com" + ``` + + On first use, Codex opens a browser window to complete the OAuth login. After authenticating, the session is reused for subsequent calls. + + See the [Codex MCP documentation](https://developers.openai.com/codex/mcp) for more details. + + + +## How a session works + +Every admin MCP session binds to a single Git branch. The flow is: + + + + The first call must be `checkout`. It creates a fresh `mintlify-mcp/-` branch from your deploy branch (or attaches to an existing branch you name) and returns an `editorUrl` you can open to follow along in the dashboard editor. + + Call `list_branches` before `checkout` if you need to discover or filter existing branches in the repository. + + + The AI uses tools like `search`, `read`, `list_nodes`, `edit_page`, `write_page`, `create_node`, and `update_config` to make changes. All edits buffer on the session branch in real time—nothing touches your deploy branch yet. + + + Call `diff` at any time to see exactly what changed since `main`. Open the `editorUrl` in your dashboard to see the same changes rendered. + + + Call `save` to flush the branch to Git. Use `mode: "pr"` (default) to open a pull request, or `mode: "commit"` to push directly to an existing PR branch. + + + Call `discard_session` to drop all in-session changes and release the branch. + + + + + Calling `checkout` again during an active session switches the session to the new branch. Use this to abandon an in-progress draft and start fresh without ending the conversation. + + +## What the admin MCP can doWhat the admin MCP can do ### Content @@ -150,15 +291,81 @@ Every admin MCP session binds to a single Git branch. The flow is: ### Session -- **`list_deployments`** — List the deployments your connection can access, returning each `{subdomain, name}`. Call this to discover which `subdomain` to pass to `checkout`. -- **`checkout`** — Bind a session to a branch for a given deployment `subdomain`, or switch which deployment's session is active. -- **`list_branches`** — List Git branches available for a deployment's project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name. -- **`get_session_state`** — Inspect the current branch, edited files, and pending nav diff. +### Content + +- **`read`** — Fetch the full MDX of any page on the session branch. +- **`search`** — Find lines matching a substring or regular expression across every page. +- **`edit_page`** — Apply a targeted edit to a page. +- **`write_page`** — Overwrite a page's full MDX content. + +### Navigation + +- **`list_nodes`** — Walk the navigation tree with optional filters. Filter by `parentId` (use `recursive: true` to include all descendants), one or more node types, or any division scope: `language`, `version`, `tab`, `dropdown`, `anchor`, `product`, or `item`. Results paginate through an opaque `cursor`. +- **`create_node`** — Add a new page, group, tab, anchor, version, language, product, or dropdown. +- **`update_node`** — Update a node's properties in place (rename a group, change an icon, set a default version). +- **`move_node`** — Move a node, including renaming a page's path. +- **`delete_node`** — Remove a node from the navigation. + +### Configuration + +- **`update_config`** — Modify `docs.json` (theme, navigation roots, integrations, SEO settings). + +### Session + +- **`list_deployments`** — List the deployments your connection can access, returning each `{subdomain, name}`. Call this to discover which `subdomain` to pass to `checkout**list_deployments**` — List the deployments your connection can access, returning each `{subdomain, name}`. Call this to discover which `subdomain` to pass to `checkout`. +- **`checkout`** — Bind the session to a branch.**`checkout`** — Bind the session to a branch. **`checkout`** — Bind a session to a branch for a given deployment `subdomain`, or switch which deployment's session is activ**`checkout`** — Bind the session to a branch.**`checkout`** — Bind the session to a branch. **`checkout`** — Bind a session to a branch for a given deployment `subdomain`, or switch which deployment's session is active. +- **`list_branches`** — List Git branches available for the project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name.**`list_branches`** — List Git branches available for the project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name. **`list_branches`** — List Git branches available for a deployment's project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name. +- **`list_branches`** — List Git branches available for the project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name.**`list_branches`** — List Git branches available for the project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name. **`list_branches`** — List Git branches available for a deployment's project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name. +- **`get_session_state`** — Inspect the current branch, edited files, and pending nav diff.**`get_session_state`** — Inspect the current branch, edited files, and pending nav diff. +- **`diff`** — List all changes between the session and `main`. +- **`save`** — Open a pull request or commit to the session branch. +- **`discard_session`** — Drop the session and its in-flight changes. - **`diff`** — List all changes between the session and `main`. - **`save`** — Open a pull request or commit to the session branch. - **`discard_session`** — Drop the session and its in-flight changes. -## Example prompts +## Example promptExample prompts + +After you connect the admin MCP, you can drive it with natural-language prompts. For example: + +- _"Check out a branch called `add-billing-faq` and create a new page under the FAQ group titled 'Billing'. Draft answers for the five questions in this Linear issue."_ +- _"Find every page that mentions the deprecated `legacy_token` field and update the example to use `api_key` instead. Save as a PR titled 'docs: replace legacy\_token references'."_ +- _"Reorganize the API reference: move the webhooks pages into a new group called 'Webhooks' and update the icons to match the rest of the section."_ + +## Best practices + + + + Every `checkout` returns an `editorUrl`. Open it in a separate tab so you can watch the AI's changes render live in the dashboard editor while you prompt. + + + + The admin MCP is powerful enough to rewrite hundreds of pages in a single session. Before merging, read the PR diff and skim the rendered preview. Don't rubber-stamp large changes. + + + + Pass a `slug` to `checkout` (for example, `add-quickstart`) so the auto-generated branch is human-readable. Without it, the branch name derives from the session token and is hard to recognize in your repository. + + + + Keep each session focused to one change. Smaller sessions produce easier to review pull requests and preserve agents' context windows. Use `discard_session` and `checkout` again to pivot to unrelated work. + + + + + Sessions hold an in-memory branch on the Mintlify side. If you abandon a session without saving or discarding it, the branch persists until your next checkout overwrites it. Avoid leaving stale `mintlify-mcp/*` branches in your repository. Clean them up periodically. + + +## Disconnect or revoke access + +Disconnect the admin MCP when you no longer want an AI tool to edit your project, or when you want to force a fresh OAuth login. + +- **Revoke the OAuth grant**: In your Mintlify dashboard, navigate to **Settings → Security & access → Connected apps** and revoke the entry for the AI tool you connected. Revoking invalidates any active session tokens immediately, so in-flight tool calls fail and the tool must complete a new OAuth login on the next call. +- **Remove the connector in the client**: + - Claude: **Settings → Connectors**, then remove the admin MCP entry. + - Claude Code: `claude mcp remove mintlify`. + - Cursor: delete the `mintlify` entry from `mcp.json` and reload. + - Codex: delete the `[mcp_servers.mintlify]` block from `~/.codex/config.toml`. After you connect the admin MCP, you can drive it with natural-language prompts. For example: @@ -201,4 +408,4 @@ Disconnect the admin MCP when you no longer want an AI tool to edit your project - Cursor: delete the `mintlify` entry from `mcp.json` and reload. - Codex: delete the `[mcp_servers.mintlify]` block from `~/.codex/config.toml`. -Revoking the OAuth grant does not affect pull requests the MCP has already opened. Close or revert those PRs in your Git provider if you want to undo pending changes. \ No newline at end of file +Revoking the OAuth grant does not affect pull requests the MCP has already opened. If you want to undo pending changes, close or revert those PRs in your Git provider.Revoking the OAuth grant does not affect pull requests the MCP has already opened. If you want to undo pending changes, close or revert those PRs in your Git provider.Revoking the OAuth grant does not affect pull requests the MCP has already opened. If you want to undo pending changes, close or revert those PRs in your Git provider. Revoking the OAuth grant does not affect pull requests the MCP has already opened. Close or revert those PRs in your Git provider if you want to undo pending changes. Revoking the OAuth grant does not affect pull requests the MCP has already opened. Close or revert those PRs in your Git provider if you want to undo pending changes. \ No newline at end of file diff --git a/cli/commands.mdx b/cli/commands.mdx index 1c7c515ef6..c30ddb3820 100644 --- a/cli/commands.mdx +++ b/cli/commands.mdx @@ -197,7 +197,7 @@ Check for broken internal links in your documentation. mint broken-links [flags] ``` -The command scans `.mdx` and `.md` files for links and excludes files matching [.mintignore](/organize/mintignore) patterns. Links inside OpenAPI specification files (`.yaml`, `.yml`, `.json`) are not checked. Links that point to ignored files report as broken. +The command scans `.mdx` and `.md` files for links and excludes files matching [.mintignore](/organize/mintignore) patterns. Links inside OpenAPI specification files (`.yaml`, `.yml`, `.json`) are not checkedscans `.mdx` and `.md` files for links and excludes files matching [.mintignore](/organize/mintignore) patterns. Links inside OpenAPI specification files (`.yaml`, `.yml`, `.json`) are not checked. Links that point to ignored files report as broken. | Flag | Description | | --- | --- | @@ -395,4 +395,4 @@ You can also disable telemetry by setting one of these environment variables: | `MINTLIFY_TELEMETRY_DISABLED` | `1` | Disable Mintlify CLI telemetry. | | `DO_NOT_TRACK` | `1` | Disable telemetry using the [Console Do Not Track](https://consoledonottrack.com/) standard. | -Your preference saves in `~/.config/mintlify/config.json` and persists across CLI sessions. +Your preference saves in `~/.config/mintlify/config.json` and persists across CLI sessions. \ No newline at end of file diff --git a/cli/install.mdx b/cli/install.mdx index 85df56afaf..0ee2b8afcf 100644 --- a/cli/install.mdx +++ b/cli/install.mdx @@ -6,18 +6,20 @@ keywords: ["CLI", "npm", "install", "Node.js", "pnpm", "mint"] ## Prerequisites -- [Node.js](https://nodejs.org/en) v20.17.0+ (LTS versions recommended) +- [Node.js](https://nodejs.org/en) v20.17.0\+ (LTS versions recommended) qowij foawij efoaijw eofiaw efawe fawe f ## Install the CLI - ```bash npm - npm i -g mint - ``` - ```bash pnpm - pnpm add -g mint - ``` +```bash npm +npm i -g mint +``` + +```bash pnpm +pnpm add -g mint +``` + ## Create a new project @@ -68,13 +70,15 @@ mint update If `mint update` is not available on your version, reinstall the CLI with the latest version: - ```bash npm - npm i -g mint@latest - ``` - ```bash pnpm - pnpm add -g mint@latest - ``` +```bash npm +npm i -g mint@latest +``` + +```bash pnpm +pnpm add -g mint@latest +``` + ## Formatting @@ -91,22 +95,26 @@ For syntax highlighting and code formatting in MDX files, use the following exte This may be due to an outdated version of Node.js. Try the following: 1. Remove the currently installed version of the mint CLI: `npm uninstall -g mint` - 2. Upgrade to Node.js v20.17.0+. + 2. Upgrade to Node.js v20.17.0\+. 3. Reinstall the mint CLI: `npm install -g mint` + **Solution**: Go to the root of your device and delete the `~/.mintlify` folder. Afterwards, run `mint dev` again. + This is due to not having the required permissions to globally install node packages. **Solution**: Try running `sudo npm i -g mint`. When prompted, enter the password that you use to unlock your computer. + This is likely due to an outdated version of the CLI. **Solution**: Run `mint update` to get the latest changes. + If you have any problems with the CLI package, first run `npm ls -g` to see what packages are globally installed. If you don't use npm, try `which mint` to locate the installation. @@ -118,16 +126,15 @@ For syntax highlighting and code formatting in MDX files, use the following exte npm i -g mint ``` + If you run `mint version` and the client version displays as `none`, the CLI may be unable to download the client application due to a corporate firewall or VPN. **Solution**: Ask your IT administrator to add `releases.mintlify.com` to your network allowlist. + - In versions before `4.0.1125`, running `npx mint dev` or other commands from a docs - repository could cause the CLI to incorrectly detect itself as a local development - build. This made the CLI point to `localhost` URLs instead of the Mintlify production - API, resulting in connection errors or unexpected behavior. + In versions before `4.0.1125`, running `npx mint dev` or other commands from a docs repository could cause the CLI to incorrectly detect itself as a local development build. This made the CLI point to `localhost` URLs instead of the Mintlify production API, resulting in connection errors or unexpected behavior. **Solution**: Update to the latest CLI version: @@ -135,4 +142,4 @@ For syntax highlighting and code formatting in MDX files, use the following exte npm i -g mint@latest ``` - + \ No newline at end of file diff --git a/credits.mdx b/credits.mdx index 4c6b9c9c69..61f511371c 100644 --- a/credits.mdx +++ b/credits.mdx @@ -6,9 +6,9 @@ keywords: ["credits", "billing", "pricing", "AI chat", "messages", "tiers", "usa Some Mintlify features consume credits. -* Assistant responses -* Agent runs in the editor or on Slack -* Automation runs +- Assistant responses +- Agent runs in the editor or on Slack +- Automation runs For the most current pricing information, see the [Pricing page](https://mintlify.com/pricing) or view the [Usage](https://app.mintlify.com/settings/organization/usage) page in your dashboard. @@ -16,6 +16,25 @@ For the most current pricing information, see the [Pricing page](https://mintlif Credits are available on the **Pro plan and above**. Every Pro plan includes 10,000 credits per month, and you can purchase additional credits from the [Usage](https://app.mintlify.com/settings/organization/usage) page whenever you need more. +The free Starter plan does not include AI features and has no credit purchase path. To use the assistant, editor and Slack agents, or automations, upgrade to Pro. + + + Customers on legacy credit plans keep their existing credit packs and pricing. The tiers below apply to the Pro plan. + + +## Pricing tiers + +| Monthly credits | Monthly cost | +| :-- | :-- | +| 10,000 | \$0 | +| 25,000 | \$145 | +| 50,000 | \$370 | +| 100,000 | \$800 | + +## Plan availability + +Credits are available on the **Pro plan and above**. Every Pro plan includes 10,000 credits per month, and you can purchase additional credits from the [Usage](https://app.mintlify.com/settings/organization/usage) page whenever you need more. + The free Starter plan does not include AI features. You cannot purchase credits on the starter plan. To use the assistant, agent, or automations, upgrade to Pro or Enterprise. @@ -25,15 +44,15 @@ The free Starter plan does not include AI features. You cannot purchase credits ## Pricing tiers | Monthly credits | Monthly cost | -|:----------------|:-------------| -| 10,000 | $0 | -| 25,000 | $145 | -| 50,000 | $370 | -| 100,000 | $800 | +| :-- | :-- | +| 10,000 | \$0 | +| 25,000 | \$145 | +| 50,000 | \$370 | +| 100,000 | \$800 | If you need more than 100,000 credits per month, [contact sales](https://www.mintlify.com/contact/sales) to discuss a custom plan. -**Overages** cost an additional $0.01 per credit rather than triggering an automatic tier upgrade. You can set usage alerts to receive an email when you reach a certain percentage of your tier limit. Allowing overages can be cheaper than moving up a tier depending on your usage patterns. +**Overages** cost an additional \$0.01 per credit rather than triggering an automatic tier upgrade. You can set usage alerts to receive an email when you reach a certain percentage of your tier limit. Allowing overages can be cheaper than moving up a tier depending on your usage patterns. Overages default to off. You must enable them on the [Usage](https://app.mintlify.com/settings/organization/usage) page of your dashboard. @@ -52,7 +71,7 @@ For high-volume usage or custom credit packages, [contact sales](mailto:sales@mi Different features consume different amounts of credits per interaction: | Feature | Average credits per interaction | -|:--------|:--------------------------------| +| :-- | :-- | | Assistant response | 23 | | Editor agent run | 115 | | Slack agent run | 110 | @@ -60,7 +79,7 @@ Different features consume different amounts of credits per interaction: Automations also consume credits when they run: | Automation | Average credits per run | -|:---------|:------------------------| +| :-- | :-- | | Update from code changes | 180 | | Update from assistant conversations | 212 | | Broken link detection | 285 | @@ -93,4 +112,4 @@ The exported CSV includes the date, product, and credits consumed for each event **Schedule automations instead of triggering on every push.** Automations like SEO audits, writing style checks, and broken link detection don't need to run on every code change. Running these on a daily or weekly cron schedule rather than on every push significantly reduces credit consumption without meaningful impact on content quality. -**Monitor your usage patterns.** The [Usage](https://app.mintlify.com/settings/organization/usage) page in your dashboard shows a breakdown by feature category. If a particular automation is consuming more credits than expected, review its trigger or any custom instructions. +**Monitor your usage patterns.** The [Usage](https://app.mintlify.com/settings/organization/usage) page in your dashboard shows a breakdown by feature category. If a particular automation is consuming more credits than expected, review its trigger or any custom instructions. \ No newline at end of file diff --git a/customize/custom-scripts.mdx b/customize/custom-scripts.mdx index 2bede3b03f..1054fce68e 100644 --- a/customize/custom-scripts.mdx +++ b/customize/custom-scripts.mdx @@ -6,6 +6,8 @@ keywords: ["CSS", "JavaScript", "Tailwind CSS", "style customization"] Use CSS to style HTML elements or add custom CSS and JavaScript to fully customize the look and feel of your documentation. +/ + ## Style with Tailwind CSS Use Tailwind CSS v3 to style HTML elements. You can control layout, spacing, colors, and other visual properties. Some common classes are: @@ -59,83 +61,96 @@ Mintlify exposes two types of CSS targeting hooks: Each ID appears once per page. Use these as `#value` in CSS. For example, `#navbar { background: red; }`. - - - `#body-content` — Outermost wrapper for the page body. - - `#content-area` — Primary content area, excluding the sidebar and table of contents. - - `#content` — Inner content element within the content area. - - `#header` — Page-level header element. - - `#banner` — Announcement banner displayed above the navbar. - - `#footer` — Page footer. Also targetable as an element selector: `footer`. - - `#page-title` — The `

` heading at the top of each page. - - `#pagination` — Bottom pagination bar with previous and next page links. - - `#panel` — Floating panel overlay. Also targetable as an element selector: `panel`. - - `#background-color` — Page background color element. - - - - `#navbar` — Top navigation bar. - - `#topbar-cta-button` — Call-to-action button in the topbar. - - `#mobile-nav` — Mobile navigation overlay. - - `#mobile-nav-content` — Content area within the mobile navigation overlay. - - - - `#sidebar` — The sidebar navigation panel. - - `#sidebar-content` — Scrollable content area within the sidebar. - - - - `#table-of-contents` — Table of contents panel on the right side of the page. - - `#table-of-contents-layout` — Layout wrapper for the table of contents. - - `#table-of-contents-content` — Scrollable content within the table of contents. - - - - `#search-bar-entry` — Search bar trigger in the topbar. - - `#search-bar-entry-mobile` — Search bar trigger on mobile. - - `#search-input` — Text input field within the search modal. - - - - `#assistant-entry` — AI assistant button in the topbar. - - `#assistant-entry-mobile` — AI assistant button on mobile. - - `#chat-assistant-sheet` — AI assistant chat panel. - - `#chat-assistant-textarea` — Text input within the AI assistant panel. - - - - `#request-example` — Request example panel in the API playground. - - `#response-example` — Response example panel in the API playground. - - `#api-playground-input` — Input section of the API playground. - - `#endpoints-menu-trigger` — Button that opens the endpoint selector dropdown. - - - - `#ask-assistant-code-block-button` — "Ask Assistant" button that appears on code blocks. - - `#code-snippet-feedback-button` — Feedback button on code snippets. - - `#code-snippet-feedback-textarea` — Text area within the code snippet feedback form. - - - - `#feedback-thumbs-up` — Thumbs-up feedback button at the bottom of a page. - - `#feedback-thumbs-down` — Thumbs-down feedback button at the bottom of a page. - - `#feedback-form` — Feedback form shown after a thumbs-down response. - - `#feedback-form-input` — Text input within the feedback form. - - `#feedback-form-cancel` — Cancel button within the feedback form. - - `#feedback-form-submit` — Submit button within the feedback form. - - - - `#page-context-menu` — Contextual options menu for the current page. - - `#page-context-menu-button` — Button that triggers the page context menu. - - - - `#localization-select-trigger` — Button that opens the language selector. - - `#localization-select-content` — Dropdown content of the language selector. - - `#localization-select-item` — Individual language option within the selector. - - - - `#changelog-filters` — Filter controls on a changelog page. - - `#changelog-filters-content` — Content area within the changelog filter panel. - - - - `#multi-view-dropdown` — Dropdown for switching between documentation views. - - - - `#text-selection-tooltip` — Tooltip that appears when you select text on a page. - - `#text-selection-tooltip-button` — Action button within the text selection tooltip. - + + - `#body-content` — Outermost wrapper for the page body. + - `#content-area` — Primary content area, excluding the sidebar and table of contents. + - `#content` — Inner content element within the content area. + - `#header` — Page-level header element. + - `#banner` — Announcement banner displayed above the navbar. + - `#footer` — Page footer. Also targetable as an element selector: `footer`. + - `#page-title` — The `

` heading at the top of each page. + - `#pagination` — Bottom pagination bar with previous and next page links. + - `#panel` — Floating panel overlay. Also targetable as an element selector: `panel`. + - `#background-color` — Page background color element. + + + + - `#navbar` — Top navigation bar. + - `#topbar-cta-button` — Call-to-action button in the topbar. + - `#mobile-nav` — Mobile navigation overlay. + - `#mobile-nav-content` — Content area within the mobile navigation overlay. + + + + - `#sidebar` — The sidebar navigation panel. + - `#sidebar-content` — Scrollable content area within the sidebar. + + + + - `#table-of-contents` — Table of contents panel on the right side of the page. + - `#table-of-contents-layout` — Layout wrapper for the table of contents. + - `#table-of-contents-content` — Scrollable content within the table of contents. + + + + - `#search-bar-entry` — Search bar trigger in the topbar. + - `#search-bar-entry-mobile` — Search bar trigger on mobile. + - `#search-input` — Text input field within the search modal. + + + + - `#assistant-entry` — AI assistant button in the topbar. + - `#assistant-entry-mobile` — AI assistant button on mobile. + - `#chat-assistant-sheet` — AI assistant chat panel. + - `#chat-assistant-textarea` — Text input within the AI assistant panel. + + + + - `#request-example` — Request example panel in the API playground. + - `#response-example` — Response example panel in the API playground. + - `#api-playground-input` — Input section of the API playground. + - `#endpoints-menu-trigger` — Button that opens the endpoint selector dropdown. + + + + - `#ask-assistant-code-block-button` — "Ask Assistant" button that appears on code blocks. + - `#code-snippet-feedback-button` — Feedback button on code snippets. + - `#code-snippet-feedback-textarea` — Text area within the code snippet feedback form. + + + + - `#feedback-thumbs-up` — Thumbs-up feedback button at the bottom of a page. + - `#feedback-thumbs-down` — Thumbs-down feedback button at the bottom of a page. + - `#feedback-form` — Feedback form shown after a thumbs-down response. + - `#feedback-form-input` — Text input within the feedback form. + - `#feedback-form-cancel` — Cancel button within the feedback form. + - `#feedback-form-submit` — Submit button within the feedback form. + + + + - `#page-context-menu` — Contextual options menu for the current page. + - `#page-context-menu-button` — Button that triggers the page context menu. + + + + - `#localization-select-trigger` — Button that opens the language selector. + - `#localization-select-content` — Dropdown content of the language selector. + - `#localization-select-item` — Individual language option within the selector. + + + + - `#changelog-filters` — Filter controls on a changelog page. + - `#changelog-filters-content` — Content area within the changelog filter panel. + + + + - `#multi-view-dropdown` — Dropdown for switching between documentation views. + + + + - `#text-selection-tooltip` — Tooltip that appears when you select textyou select text on a page. + - `#text-selection-tooltip-button` — Action button within the text selection tooltip. + ### Element selectors @@ -165,6 +180,7 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `tooltip` — Tooltip element. - `update` — Changelog update entry. + - `mdx-content` — Rendered MDX content area. - `panel` — Floating panel component. Also targetable as an ID selector: `#panel`. @@ -173,6 +189,7 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `breadcrumb-list` — Breadcrumb navigation list. - `breadcrumb-item` — Individual breadcrumb item. + - `nav-logo` — Logo in the navigation bar. - `navbar-link` — Link element within the navigation bar. @@ -185,6 +202,7 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `nav-tag-pill` — Tag pill shown in the navigation. - `nav-tag-pill-text` — Text within a navigation tag pill. + - `nav-dropdown-trigger` — Button that opens a navigation dropdown. - `nav-dropdown-content` — Content container for a navigation dropdown. @@ -194,6 +212,7 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `nav-dropdown-item-description` — Description text within a dropdown item. - `nav-dropdown-item-icon` — Icon within a dropdown item. + - `nav-dropdown-products-selector-trigger` — Button that opens the products selector dropdown. - `nav-dropdown-products-selector-content` — Content container for the products selector. @@ -202,6 +221,7 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `nav-dropdown-products-selector-item-description` — Description of a product selector item. - `nav-dropdown-products-selector-item-icon` — Icon of a product selector item. + - `sidebar-group` — Group of related sidebar links. - `sidebar-group-icon` — Icon for a sidebar group. @@ -209,19 +229,23 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `sidebar-title` — Top-level title in the sidebar. - `sidebar-nav-group-divider` — Divider between sidebar navigation groups. + - `toc` — Table of contents container. - `toc-item` — Individual heading entry in the table of contents. + - `footer` — Standard page footer. Also targetable as an ID selector: `#footer`. - `advanced-footer` — Extended footer with additional columns or content. + - `pagination-prev` — Previous page link in the pagination bar. - `pagination-next` — Next page link in the pagination bar. - `pagination-title` — Page title shown in the pagination bar. + - `api-section` — Full section for a single API endpoint. - `api-section-heading` — Heading area for an API endpoint section. @@ -234,6 +258,7 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `method-nav-pill` — HTTP method badge shown in the sidebar navigation. - `prompt` — Prompt component in the API reference. + - `chat-assistant-sheet` — AI assistant panel container. - `chat-assistant-sheet-header` — Header of the AI assistant panel. @@ -245,6 +270,7 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `chat-assistant-payload-item` — Individual message or result item in the assistant panel. - `starter-question-text` — Suggested starter question shown in an empty assistant panel. + - `feedback-toolbar` — Toolbar containing page feedback controls. - `contextual-feedback-container` — Container for contextual inline feedback. @@ -254,6 +280,7 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `contextual-feedback-button` — Action button within the contextual feedback form. - `contextual-feedback-form-submit-button` — Submit button for the contextual feedback form. + - `code-snippet-feedback-popover-content` — Popover content for code snippet feedback. - `code-snippet-feedback-form` — Feedback form for a code snippet. @@ -262,10 +289,12 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `code-snippet-feedback-form-description` — Description text in the code snippet feedback form. - `code-snippet-feedback-form-submit-button` — Submit button for the code snippet feedback form. + - `login-link` — Link that initiates the login flow. - `logout-link` — Link that initiates the logout flow. + - `multi-view-item` — Individual view option in a multi-view switcher. - `multi-view-dropdown` — Dropdown for selecting between multiple views. @@ -273,12 +302,14 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `multi-view-dropdown-content` — Content area of the multi-view dropdown. - `multi-view-dropdown-item` — Individual item within the multi-view dropdown. + - `directory` — Root container for a directory page. - `directory-group` — Group of related pages within a directory. - `directory-page` — Individual page entry in a directory. - `directory-card` — Card-style page entry in a directory. + - `not-found-container` — Root container of the 404 page. - `not-found-status-code` — Status code display on the 404 page. @@ -287,16 +318,19 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `not-found-recommended-pages-list` — List of recommended pages shown on the 404 page. - `not-found-recommended-page-link` — Individual link in the recommended pages list. + - `color` — Color swatch element. - `color-row` — Row grouping color swatches. - `color-item` — Individual color item within a color row. + - `tree` — File tree container. - `tree-folder` — Folder entry within a file tree. - `tree-file` — File entry within a file tree. + Some elements expose data attributes you can use as CSS selectors. diff --git a/customize/fonts.mdx b/customize/fonts.mdx index d6bc0e1e7f..845dc95845 100644 --- a/customize/fonts.mdx +++ b/customize/fonts.mdx @@ -26,33 +26,32 @@ To use local fonts, place your font files in your project directory and referenc ### Set up local fonts - -For example, create a `fonts` directory and add your font files: - -```text -your-project/ -├── fonts/ -│ ├── InterDisplay-Regular.woff2 -│ └── InterDisplay-Bold.woff2 -├── docs.json -└── ... -``` - - - -Reference your local fonts using relative paths from your project root: - -```json docs.json -{ - "fonts": { - "family": "InterDisplay", - "source": "/fonts/InterDisplay-Regular.woff2", - "format": "woff2", - "weight": 400 - } -} -``` - + + For example, create a `fonts` directory and add your font files: + + ```text + your-project/ + ├── fonts/ + │ ├── InterDisplay-Regular.woff2 + │ └── InterDisplay-Bold.woff2 + ├── docs.json + └── ... + ``` + + + Reference your local fonts using relative paths from your project root: + + ```json docs.json + { + "fonts": { + "family": "InterDisplay", + "source": "/fonts/InterDisplay-Regular.woff2", + "format": "woff2", + "weight": 400 + } + } + ``` + ### Local fonts for headings and body @@ -102,15 +101,19 @@ Use externally hosted fonts by referencing a font source URL in your `docs.json` Font family name, such as "Inter" or "Playfair Display." + Font weight, such as 400 or 700. Variable fonts support precise weights such as 550. + - URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file, such as `/assets/fonts/InterDisplay.woff2`. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URL. + URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file, such as `/assets/fonts/InterDisplay.woff2`. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URLload automatically when you specify a Google Font `family` name, so you don't need a source URL. + Font file format. Required when using the `source` field. + Override font settings specifically for headings. @@ -118,17 +121,21 @@ Use externally hosted fonts by referencing a font source URL in your `docs.json` Font family name for headings. + Font weight for headings. + - URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file for headings. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URL. + URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file for headings. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URLload automatically when you specify a Google Font `family` name, so you don't need a source URL. + Font file format for headings. Required when using the `source` field. + Override font settings specifically for body text. @@ -136,16 +143,19 @@ Use externally hosted fonts by referencing a font source URL in your `docs.json` Font family name for body text. + Font weight for body text. + - URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file for body text. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URL. + URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file for body text. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URLload automatically when you specify a Google Font `family` name, so you don't need a source URL. + Font file format for body text. Required when using the `source` field. - + \ No newline at end of file diff --git a/optimize/analytics.mdx b/optimize/analytics.mdx index 3a224d86a8..23f1fcbaa0 100644 --- a/optimize/analytics.mdx +++ b/optimize/analytics.mdx @@ -1,7 +1,7 @@ --- title: "Analytics" description: "Track documentation analytics in the Mintlify dashboard to understand page views, visitor trends, search queries, and content effectiveness." -keywords: ["analytics","metrics","page views","traffic","trends","insights"] +keywords: ["analytics", "metrics", "page views", "traffic", "trends", "insights"] boost: 3 --- @@ -17,15 +17,14 @@ Filter your analytics data by traffic source to analyze AI agent traffic separat The traffic source filter on the analytics page. - The traffic source filter on the analytics page. @@ -37,15 +36,14 @@ Use the range selector to adjust the time period for displayed data. The range selector expanded to show options for viewing different time periods of data. - The range selector expanded to show options for viewing different time periods of data. @@ -59,9 +57,11 @@ Review your visitors analytics to: - **Identify popular pages**: Use popular pages to understand what content is most important to your users so that you can make sure it is up to date and comprehensive. - **Track traffic sources**: Understand where your users are coming from to help you optimize your content for the right audience. -### Agent visitors +### Agent visitorAgent visitors + +Agent visitors are identified by IP address and user agent. The agent visitor count approximates distinct sources of AI traffic rather than individual agent sessions or conversations. Multiple requests from the same IP address count as one visitor.Agent visitors are identified by IP address and user agent. The agent visitor count approximates distinct sources of AI traffic rather than individual agent sessions or conversations. Multiple requests from the same IP address count as one visitor. Mintlify identifies agent visitors by IP address and user agent. The agent visitor count approximates distinct sources of AI traffic rather than individual agent sessions or conversations. Multiple requests from the same IP address count as one visitor. Mintlify identifies agent visitors by IP address and user agent. The agent visitor count approximates distinct sources of AI traffic rather than individual agent sessions or conversations. Multiple requests from the same IP address count as one visitor. -Mintlify identifies agent visitors by IP address and user agent. The agent visitor count approximates distinct sources of AI traffic rather than individual agent sessions or conversations. Multiple requests from the same IP address count as one visitor. +When viewing agent traffic, top agents replaces referrals in the visitors tab. Top agents shows which AI agents are visiting your documentation. Use this information to help determine: When viewing agent traffic, top agents replaces referrals in the visitors tab. Top agents shows which AI agents are visiting your documentation. Use this information to help determine: @@ -94,15 +94,14 @@ The categories tab uses LLMs to automatically group conversations by topic or th The categories tab in the assistant analytics page. - The categories tab in the assistant analytics page. @@ -121,7 +120,7 @@ Click any message to view the complete chat thread, including the user's questio ## Searches -The Searches metric is only available when viewing human traffic. + The Searches metric is only available when viewing human traffic. The searches tab displays a bar chart of searches over time and specific queries. @@ -135,10 +134,10 @@ Review your searches analytics to: ## MCP searches -The MCP Searches metric is only available when viewing AI traffic. + The MCP Searches metric is only available when viewing AI traffic. -The MCP searches tab displays AI agent search interactions through the Model Context Protocol (MCP). This metric counts calls to your MCP server's search tool. It reflects agents that users connected to your MCP server and then issued a search, not general AI crawler traffic to your docs pages. +The MCP searches tab displays AI agent search interactions through the Model Context Protocol (MCP). This metric counts calls to your MCP server's search tool, so it reflects agents that users connected to your MCP server and issued a search, not general AI crawler traffic to your docs pagescounts calls to your MCP server's search tool, so it reflects agents that users connected to your MCP server and issued a search, not general AI crawler traffic to your docs pages. The MCP searches tab displays AI agent search interactions through the Model Context Protocol (MCP). This metric counts calls to your MCP server's search tool. It reflects agents that users connected to your MCP server and then issued a search, not general AI crawler traffic to your docs pages. The MCP searches tab displays AI agent search interactions through the Model Context Protocol (MCP). This metric counts calls to your MCP server's search tool. It reflects agents that users connected to your MCP server and then issued a search, not general AI crawler traffic to your docs pages. Review your MCP searches analytics to: @@ -157,10 +156,10 @@ See [Feedback](/optimize/feedback) for more information on using feedback data t Export any analytics tab to CSV for deeper analysis, reporting, or archival. Exports respect the current traffic source and time range filters. 1. Navigate to the [analytics](https://app.mintlify.com/products/analytics/) page of your dashboard. -1. Click the tab you want to export. -1. Optionally, adjust the traffic source and time range to narrow down the data you want to export. -1. Click **Export to CSV**. -1. Mintlify sends you an email with a download link when the export is ready. +2. ClickClick the tab you want to export. +3. Optionally, adjust the traffic source and time range to narrow down the data you want to export. +4. Click **Export to CSV**. +5. Mintlify sends you an email with a download link when the export is ready. ### Assistant exports @@ -172,4 +171,4 @@ Assistant exports include the queries, responses, sources, and a `resolutionStat - List any queries that had no sources cited. - Find patterns in unsuccessful interactions. - Group unanswered queries by topic to prioritize content updates. - + \ No newline at end of file diff --git a/optimize/search.mdx b/optimize/search.mdx index 3e75dac89a..c8b127f626 100644 --- a/optimize/search.mdx +++ b/optimize/search.mdx @@ -99,7 +99,7 @@ To exclude a page from both in-product search and external indexing, use [`noind Control how many results the search bar returns per query from your dashboard. The default is `6` results. You can set any value between `1` and `100`. -In your dashboard, navigate to **Settings** > **Deployment** > **Search**, set **Maximum search results** to the value you want, and select **Save changes**. +In your dashboard, navigate to **Settings** \> **Deployment** \> **Search**, set **Maximum search results** to the value you want, and select **Save changes**. **Deployment** > **Search**, set * /> -Higher values surface more matches per query, which is useful for sites with broad topic coverage where users expect to scan many candidates. Lower values keep the results panel compact and push users toward the top-ranked match. +Higher values surface more matches per query, which is useful for sites with broad topic coverage where users expect to scan many candidates. Lower values keep the results panel compact and push users toward the top-ranked match. \ No newline at end of file diff --git a/organize/hidden-pages.mdx b/organize/hidden-pages.mdx index cc8dccfd54..04bad7b22a 100644 --- a/organize/hidden-pages.mdx +++ b/organize/hidden-pages.mdx @@ -14,6 +14,12 @@ Use hidden pages for content you want users to access or reference as context fo If your content requires strict access control, you must configure [authentication](/deploy/authentication-setup). To restrict pages to specific user groups, set up [group-based access control](/deploy/authentication-setup#control-access-with-groups). + + Hidden pages are not private. Anyone with the URL can view them, and links shared externally still work. Hiding a page only removes it from the rendered navigation. + + If your content requires strict access control, you must configure [authentication](/deploy/authentication-setup). To restrict pages to specific user groups, set up [group-based access control](/deploy/authentication-setup#control-access-with-groups). + + See an [example of a hidden page](/organize/hidden-page-example). @@ -99,7 +105,7 @@ By default, hidden pages don't appear in indexing for search engines, documentat The following table summarizes how each property affects page visibility and indexing: | Property | Sidebar navigation | Site search | Sitemap | Search engine indexing | AI assistant context | -|---|---|---|---|---|---| +| --- | --- | --- | --- | --- | --- | | `hidden: true` | Hidden | Excluded | Excluded | Excluded | Excluded | | `noindex: true` | Visible | Excluded | Excluded | Excluded | Excluded | | `searchable: false` (page frontmatter) | Visible | Excluded | Included | Included | Excluded | @@ -159,6 +165,6 @@ Page-level `searchable` does not override `hidden: true` on the same page. To ma The relationship between `hidden` and `noindex` is one-directional: - **`hidden: true` → automatically applies `noindex`**: Hidden pages are automatically excluded from search engines, sitemaps, and AI context. -- **`noindex: true` → does NOT apply `hidden`**: Pages with `noindex: true` remain visible in navigation. They don't appear in site search, sitemaps, search engine indexing, or AI assistant context. +- **`noindex: true` → does NOT apply `hidden`**: Pages with `noindex: true` remain visible in navigation. They don't appear in site search, sitemaps, search engine indexing, ordon't appear in site search, sitemaps, search engine indexing, or AI assistant context. To exclude a specific page from search and indexing while keeping it visible in navigation, add `noindex: true` to its frontmatter. To hide a page from navigation as well, use `hidden: true`. To exclude a page only from your in-product search and AI assistant context while keeping it indexable by external search engines, use [`searchable: false`](/optimize/search#exclude-a-page-from-search) instead. \ No newline at end of file diff --git a/organize/navigation.mdx b/organize/navigation.mdx index 44f8bddebf..59a8927003 100644 --- a/organize/navigation.mdx +++ b/organize/navigation.mdx @@ -11,9 +11,23 @@ With proper navigation configuration, you can organize your content so that user Choose one primary organizational pattern at the root level of your navigation. Once you've chosen your primary pattern, you can nest other navigation elements within it. -### Choose a primary pattern +### Choose a primary patternChoose a primary pattern -Use the pattern that matches how you want visitors to move between top-level sections of your content. +Use the pattern that matches how you want visitors to move between top-level sections of your contentUse the pattern that matches how you want visitors to move between top-level sections of your content. + +| Pattern | Use when | Example | +| --- | --- | --- | +| [Groups](#groups) | Your content fits in one linear sidebar and you don't need a second axis of navigation. | A single-product SDK reference. | +| [Tabs](#tabs) | You have parallel sections that share the same audience. | Guides, API reference, and SDKs tabs for one product. | +| [Anchors](#anchors) | You want persistent links to a small number of top-level destinations (external or internal) visible at all times. | Community, status page, or another link alongside your product documentation. | +| [Dropdowns](#dropdowns) | Similar to tabs, but you want to use a dropdown menu for navigation. | Switching between product documentation, API reference, and partner integrations. | +| [Products](#products) | You maintain documentation for multiple distinct products under one deployment, and each product has its own full site. | A platform with separate content for Payments, Identity, and Analytics. | +| [Versions](#versions) | You publish multiple versions of the same content in parallel. | Maintaining `v1` and `v2` API docs simultaneously. | +| [Languages](#languages) | You publish translated versions of the same content. | English, Spanish, and Japanese documentation for one product. | + +## Pages + +Pages are the most fundamental navigation component. Each page is an MDX file in your documentation repository. | Pattern | Use when | Example | | --- | --- | --- | @@ -30,15 +44,14 @@ Use the pattern that matches how you want visitors to move between top-level sec Pages are the most fundamental navigation component. Each page is an MDX file in your documentation repository. Decorative graphic of pages. - Decorative graphic of pages. In the `navigation` object, `pages` is an array where each entry must reference the path to a [page file](/organize/pages). @@ -62,15 +75,14 @@ In the `navigation` object, `pages` is an array where each entry must reference Use groups to organize your sidebar navigation into sections. You can nest groups within each other, label them with tags, and style them with icons. Decorative graphic of groups. - Decorative graphic of groups. In the `navigation` object, `groups` is an array where each entry is an object that requires a `group` field and a `pages` field. The `icon`, `tag`, `root`, and `expanded` fields are optional. @@ -138,7 +150,7 @@ Use the `directory` property to automatically render a directory of child pages The `directory` property accepts three values: | Value | Behavior | -| :---------- | :------- | +| :-- | :-- | | `"none"` | No directory listing. Default value. | | `"accordion"` | Displays child pages in a collapsible list grouped by section. | | `"card"` | Displays child pages in a horizontal card layout. | @@ -181,6 +193,7 @@ You can set `directory` anywhere in the navigation object in your `docs.json` fi ``` In this example: + - **Help Center** uses `"accordion"` and its root page displays a directory listing. - **Getting Started** inherits `"accordion"` from its parent and also displays a directory listing. - **API Reference** overrides with `"none"`, so its root page does not display a directory listing. @@ -197,7 +210,7 @@ Use the `expanded` property to control the default state of a nested group in th - `expanded: false` or omitted: Collapses the group by default. - The `expanded` property only affects nested groups—groups within groups. Top-level groups always expand and you cannot collapse them. + The `expanded` property only affects nested groups——groups within groups. Top-level groups always expand and you cannot collapse them. ```json @@ -219,15 +232,14 @@ Use the `expanded` property to control the default state of a nested group in th Tabs create distinct sections of your documentation with separate URL paths. Tabs create a horizontal navigation bar at the top of your documentation that lets users switch between sections. Decorative graphic of a tab navigation. - Decorative graphic of a tab navigation. In the `navigation` object, `tabs` is an array where each entry is an object that requires a `tab` field and can contain other navigation fields such as groups, pages, icons, or links to external pages. @@ -317,15 +329,14 @@ Menu items can only contain groups, pages, and external links. Anchors add persistent navigation items to the top of your sidebar. Use anchors to section your content, provide quick access to external resources, or create prominent calls to action. Decorative graphic of an anchor navigation. - Decorative graphic of an anchor navigation. In the `navigation` object, `anchors` is an array where each entry is an object that requires an `anchor` field and can contain other navigation fields such as groups, pages, icons, or links to external pages. @@ -392,15 +403,14 @@ Global anchors support both external URLs and relative paths to pages within you ## Products Decorative graphic of a product switcher. - Decorative graphic of a product switcher. Products create a dedicated navigation division for organizing product-specific documentation. Use products to separate different offerings, services, or major feature sets within your documentation. @@ -458,15 +468,14 @@ In the `navigation` object, `products` is an array where each entry is an object Dropdowns are an expandable menu at the top of your sidebar navigation. Each item in a dropdown directs to a section of your documentation. Decorative graphic of a dropdown navigation. - Decorative graphic of a dropdown navigation. In the `navigation` object, `dropdowns` is an array where each entry is an object that requires a `dropdown` field and can contain other navigation fields such as groups, pages, icons, or links to external pages. @@ -510,7 +519,7 @@ Set a default OpenAPI specification at any level of your navigation hierarchy. C When you add the `openapi` property to a navigation element (such as an anchor, tab, or group) without specifying any pages, Mintlify automatically generates pages for **all endpoints** defined in your OpenAPI specification. - + To control which endpoints appear, explicitly list the desired endpoints in a `pages` array. @@ -548,15 +557,14 @@ For more information about referencing OpenAPI endpoints in your docs, see the [ Partition your navigation into different versions. Versions are selectable from a dropdown menu. Decorative graphic of a version switcher. - Decorative graphic of a version switcher. In the `navigation` object, `versions` is an array where each entry is an object that requires a `version` field and can contain any other navigation fields. @@ -668,20 +676,19 @@ Add a badge label to version entries in the version selector dropdown using the Partition your navigation into different languages. Languages are selectable from a dropdown menu. Decorative graphic of a language switcher. - Decorative graphic of a language switcher. In the `navigation` object, `languages` is an array where each entry is an object that requires a `language` field and can contain any other navigation fields, including language-specific banner, footer, and navbar configurations. -Mintlify supports the following languages for localization: +Mintlify supportsMintlify supports the following languages for localization: | Language | Code | | --- | --- | @@ -1058,6 +1065,7 @@ When a user expands a navigation group, some themes automatically navigate to th - Leave unset to use the theme's default behavior. + ```json Force navigation "interaction": { "drilldown": true // Force navigation to first page when a user expands a dropdown @@ -1069,4 +1077,5 @@ When a user expands a navigation group, some themes automatically navigate to th "drilldown": false // Never navigate, only expand or collapse the group } ``` - + + \ No newline at end of file diff --git a/organize/pages.mdx b/organize/pages.mdx index 2afddd9959..dc0ddd6bb8 100644 --- a/organize/pages.mdx +++ b/organize/pages.mdx @@ -35,8 +35,9 @@ Use frontmatter to control: The icon to display. - + Options: + - [Font Awesome icon](https://fontawesome.com/icons) name - [Lucide icon](https://lucide.dev/icons) name - [Tabler icon](https://tabler.io/icons) name @@ -46,7 +47,7 @@ Use frontmatter to control: For [Font Awesome](https://fontawesome.com/icons) icons only. The style of the icon. - + Options: `regular`, `solid`, `light`, `thin`, `sharp-solid`, `duotone`, `brands`. @@ -67,7 +68,7 @@ Use frontmatter to control: - Multiply the page's in-product search ranking by this factor. Use values greater than `1` to prioritize the page and values between `0` and `1` to de-prioritize it. See [Search](/optimize/search#boost-search-ranking) for details. `boost` has no effect when `searchable: false`, since the page doesn't appear in in-product search results. + Multiply the page's in-product search ranking by this factor. Use values greater than `1` to prioritize the page and values between `0` and `1` to de-prioritize it. See [Search](/optimize/search#boost-search-ranking) for details. `boost` has no effect when `searchable: false`, since the page doesn't appear indoesn't appear in in-product search results. @@ -213,7 +214,7 @@ keywords: ['configuration', 'setup', 'getting started'] ## Last modified timestamp -Show a "Last modified on [date]" timestamp on all pages by enabling `metadata.timestamp` in your [global settings](/organize/settings-seo#metadata). +Show a "Last modified on \[date\]" timestamp on all pages by enabling `metadata.timestamp` in your [global settings](/organize/settings-seo#metadata). ```json docs.json "metadata": { @@ -232,4 +233,4 @@ timestamp: false --- ``` -If you set `timestamp: true`, the page always shows the timestamp even if the global setting is `false`. If you set `timestamp: false`, the page hides the timestamp even if the global setting is `true`. +If you set `timestamp: true`, the page always shows the timestamp even if the global setting is `false`. If you set `timestamp: false`, the page hides the timestamp even if the global setting is `true`. \ No newline at end of file diff --git a/quickstart.mdx b/quickstart.mdx index 4fc7601ca7..e14dce0bbd 100644 --- a/quickstart.mdx +++ b/quickstart.mdx @@ -11,7 +11,7 @@ After you complete this guide, you'll have a live documentation site ready to cu ## Before you begin -Mintlify uses a docs-as-code approach to manage your documentation. Every page on your site has a corresponding file stored in your documentation repository. +Mintlify. uses a docs-as-code approach to manage your documentation. Every page on your site has a corresponding file stored in your documentation repository. When you connect your documentation repository to your project, you can work on your documentation locally or in the web editor and sync any changes to your remote repository. @@ -21,8 +21,6 @@ When you connect your documentation repository to your project, you can work on Copy the following prompt to add the Mintlify [skill](/ai/skillmd) and [MCP server](/ai/model-context-protocol) for better results when updating your documentation. - - ## Deploy your documentation site Go to [mintlify.com/start](https://mintlify.com/start) and complete the onboarding process. During onboarding, you'll connect your GitHub account, create or select a repository for your documentation, and install the GitHub App to enable automatic deployments. @@ -75,7 +73,6 @@ Find your exact URL on the **Overview** page of your [dashboard](https://app.min ``` ```bash pnpm - pnpm add -g mint ``` From 5e6c7a6b715f6e8b4f9a01a64b8d43bf99bac072 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 02:17:10 +0000 Subject: [PATCH 02/30] Updated mintlify pages - Updated ai/model-context-protocol.mdx - Updated assistant/index.mdx Mintlify-Source: dashboard-editor --- ai/model-context-protocol.mdx | 403 +++++++++++++++------------------- assistant/index.mdx | 16 +- 2 files changed, 188 insertions(+), 231 deletions(-) diff --git a/ai/model-context-protocol.mdx b/ai/model-context-protocol.mdx index 783398ac4c..78bc56145c 100644 --- a/ai/model-context-protocol.mdx +++ b/ai/model-context-protocol.mdx @@ -66,9 +66,9 @@ AI tools can search the web, but the search MCP provides distinct advantages. Mintlify generates a search MCP server for your site and hosts it at the `/mcp` path of your site URL. For example, Mintlify's search MCP server is available at `https://mintlify.com/docs/mcp`. -* For public content, your search MCP server is available to anyone. It searches all indexed public pages. -* For content with partial authentication, where some pages are public and others require login, you must enable your search MCP server before users can access it. Unauthenticated users can search public content. Users who authenticate can search all content they have permission to access based on their [user groups](/deploy/authentication-setup). -* For content where all pages require authentication, you must enable your search MCP server before it is available to users. Users must authenticate before connecting to your search MCP server. Your search MCP server searches only the content each user has access to based on their [user groups](/deploy/authentication-setup). +- For public content, your search MCP server is available to anyone. It searches all indexed public pages. +- For content with partial authentication, where some pages are public and others require login, you must enable your search MCP server before users can access it. Unauthenticated users can search public content. Users who authenticate can search all content they have permission to access based on their [user groups](/deploy/authentication-setup). +- For content where all pages require authentication, you must enable your search MCP server before it is available to users. Users must authenticate before connecting to your search MCP server. Your search MCP server searches only the content each user has access to based on their [user groups](/deploy/authentication-setup). If your site uses authentication, configure your hosted search MCP server from **Settings → Security & access → MCP** in your dashboard. The authenticated search MCP server is available at the `/authed/mcp` path of your site URL. @@ -85,6 +85,7 @@ Mintlify hosts a discovery document at `/.well-known/mcp` for agents and tools t `GET /.well-known/mcp` returns a JSON document describing your search MCP server: {/* vale Mintlify.Quotes = NO */} + ```json { "version": "1.0.0", @@ -106,6 +107,7 @@ Mintlify hosts a discovery document at `/.well-known/mcp` for agents and tools t ] } ``` + {/* vale Mintlify.Quotes = YES */} | Field | Description | @@ -126,6 +128,7 @@ For agent-readiness, the same discovery document is also available at `/.well-kn Each server card includes the standard discovery fields and a `tools` array that describes the MCP tools the server advertises. Use this to pre-populate tool metadata in MCP clients without making an `initialize` call to the server. {/* vale Mintlify.Quotes = NO */} + ```json { "name": "your-docs-search", @@ -160,6 +163,7 @@ Each server card includes the standard discovery fields and a `tools` array that ] } ``` + {/* vale Mintlify.Quotes = YES */} | Field | Description | @@ -190,9 +194,11 @@ If your site has partial authentication with both public and protected pages, yo The `/authed/mcp` endpoint uses its own OAuth flow at `/authed/mcp/oauth/*`. Redirect domains configured for your MCP server apply to both `/mcp` and `/authed/mcp`. -Popular MCP clients such as Claude, ChatGPT, Cursor, and Devin are always allowed to complete authentication against your MCP server. You do not need to add these clients to any allowlist. +Popular MCP clients such as Claude, ChatGPT, Cursor, and Devin are always allowed to complete authentication against your MCP server. You do not need to add these clients to any allowPopular MCP clients such as Claude, ChatGPT, Cursor, and Devin are always allowed to complete authentication against your MCP server. You do not need to add these clients to any allowlist. + +To let other web-based tools connect, add their redirect domains in your dashboard. A redirect domain is the hostname that an AI tool uses after a user completes authentication. Your users' AI tools cannot complete authentication unless their redirect domain is on this list or the tool is one of the always-allowed clientsTo let other web-based tools connect, add their redirect domains in your dashboard. A redirect domain is the hostname that an AI tool uses after a user completes authentication. Your users' AI tools cannot complete authentication unless their redirect domain is on this list or the tool is one of the always-allowed clients. -To let other web-based tools connect, add their redirect domains in your dashboard. A redirect domain is the hostname that an AI tool uses after a user completes authentication. Your users' AI tools cannot complete authentication unless their redirect domain is on this list or the tool is one of the always-allowed clients. +Mintlify enables your hosted MCP server automatically when your site has [authentication](/deploy/authentication-setup) configured. Mintlify enables your hosted MCP server automatically when your site has [authentication](/deploy/authentication-setup) configured. @@ -200,8 +206,8 @@ Mintlify enables your hosted MCP server automatically when your site has [authen In your dashboard, go to **Settings → Security & access → MCP**. - - Under **Allowed OAuth redirect URIs**, add the redirect domains for any additional AI tools you want to grant your users access to. You only need to add domains for clients that aren't already on the always-allowed list. + + Under **Allowed OAuth redirect URIs**, add the redirect domains for any additional AI tools you want to grant your users access to. You only need to add domains for clients that aren't already on the always-allowed lisany additional AI tools you want to grant your users access to. You only need to add domains for clients that aren't already on the always-allowed list. By default, redirect domains use `https://`. To allow a custom protocol scheme, include the full protocol in the domain entry. For example, a native app callback like `myapp://callback`. Mintlify always blocks dangerous protocols such as `javascript:`, `data:`, and `file:`. @@ -230,6 +236,7 @@ Client credentials authenticate against the `/authed/mcp` endpoint and return al Send a POST request to your MCP server's token endpoint with your client ID and secret. Your token endpoint is at the `/authed/mcp/oauth/token` path of your site's URL. + ```bash cURL curl -X POST https://your-docs.com/authed/mcp/oauth/token \ -H 'Content-Type: application/x-www-form-urlencoded' \ @@ -242,6 +249,7 @@ Client credentials authenticate against the `/authed/mcp` endpoint and return al -H 'Authorization: Basic BASE64_CLIENT_ID_COLON_SECRET' \ -d 'grant_type=client_credentials' ``` + The response includes an access token and a refresh token: @@ -262,6 +270,7 @@ Client credentials authenticate against the `/authed/mcp` endpoint and return al Use the access token as a bearer token when connecting to the `/authed/mcp` endpoint. + ```bash cURL curl -X POST https://your-docs.com/authed/mcp \ -H 'Authorization: Bearer ACCESS_TOKEN' \ @@ -284,6 +293,7 @@ Client credentials authenticate against the `/authed/mcp` endpoint and return al my-docs https://your-docs.com/authed/mcp \ --header "Authorization: Bearer ACCESS_TOKEN" ``` + @@ -304,7 +314,7 @@ You can manage your client credentials from **Settings → Security & access → To protect availability, Mintlify applies rate limits to MCP servers. | Scope | Limit | Description | -| :---- | :---- | :---------- | +| :-- | :-- | :-- | | Per user (IP address) | 5,000 requests per hour | Limits how frequently a single user can query your MCP server configuration. | | Search per site (domain) | 10,000 requests per hour | Limits total search tool calls across all users of your MCP server. | | Query docs filesystem per site (domain) | 10,000 requests per hour | Limits total query docs filesystem tool calls across all users of your MCP server. | @@ -360,123 +370,123 @@ Your users must connect your MCP server to their preferred AI tools. These are some of the ways you can help your users connect to your MCP server: - - Add options in the [contextual menu](/ai/contextual-menu) for your users to connect to your MCP server from any page on your site. - - | Option | Identifier | Description | - | :----- | :--------- | :---------- | - | **Copy MCP server URL** | `mcp` | Copies your MCP server URL to the user's clipboard. | - | **Copy MCP install command** | `add-mcp` | Copies the `npx add-mcp` command to install the MCP server. | - | **Connect to Cursor** | `cursor` | Installs your MCP server in Cursor. | - | **Connect to VS Code** | `vscode` | Installs your MCP server in VS Code. | - - - - - Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. - - - Create a guide for your users that includes your MCP server URL and the steps to connect it to Claude. - - 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. - 2. Click **Add custom connector**. - 3. Add your MCP server name and URL. - 4. Click **Add**. - 5. When using Claude, click the attachments button (the plus icon). - 6. Select your MCP server. - - - -See the [Model Context Protocol documentation](https://modelcontextprotocol.io/docs/tutorials/use-remote-mcp-server#connecting-to-a-remote-mcp-server) for more details. - - - - - Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. - - - Create a guide for your users that includes your MCP server URL and the command to connect it to Claude Code. - - ```bash - claude mcp add --transport http - ``` - - - -See the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/mcp#installing-mcp-servers) for more details. - - - - - Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. - - - Create a guide for your users that includes your MCP server URL and the steps to connect it to Codex CLI. - - In `~/.codex/config.toml`, add: - - ```toml - [mcp_servers.] - url = "" - ``` - - - -See the [Codex MCP documentation](https://developers.openai.com/codex/mcp) for more details. - - - - - Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. - - - Create a guide for your users that includes your MCP server URL and the steps to connect it to Cursor. - - 1. Use Command + Shift + P (Ctrl + Shift + P on Windows) to open the command palette. - 2. Search for `Open MCP settings`. - 3. Click **Add custom MCP**. This opens the `mcp.json` file. - 4. In `mcp.json`, configure your server: - - ```json - { - "mcpServers": { - "": { - "url": "" + + Add options in the [contextual menu](/ai/contextual-menu) for your users to connect to your MCP server from any page on your site. + + | Option | Identifier | Description | + | :-- | :-- | :-- | + | **Copy MCP server URL** | `mcp` | Copies your MCP server URL to the user's clipboard. | + | **Copy MCP install command** | `add-mcp` | Copies the `npx add-mcp` command to install the MCP server. | + | **Connect to Cursor** | `cursor` | Installs your MCP server in Cursor. | + | **Connect to VS Code** | `vscode` | Installs your MCP server in VS Code. | + + + + + Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. + + + Create a guide for your users that includes your MCP server URL and the steps to connect it to Claude. + + 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. + 2. Click **Add custom connector**. + 3. Add your MCP server name and URL. + 4. Click **Add**. + 5. When using Claude, click the attachments button (the plus icon). + 6. Select your MCP server. + + + + See the [Model Context Protocol documentation](https://modelcontextprotocol.io/docs/tutorials/use-remote-mcp-server#connecting-to-a-remote-mcp-server) for more details. + + + + + Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. + + + Create a guide for your users that includes your MCP server URL and the command to connect it to Claude Code. + + ```bash + claude mcp add --transport http + ``` + + + + See the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/mcp#installing-mcp-servers) for more details. + + + + + Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. + + + Create a guide for your users that includes your MCP server URL and the steps to connect it to Codex CLI. + + In `~/.codex/config.toml`, add: + + ```toml + [mcp_servers.] + url = "" + ``` + + + + See the [Codex MCP documentation](https://developers.openai.com/codex/mcp) for more details. + + + + + Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. + + + Create a guide for your users that includes your MCP server URL and the steps to connect it to Cursor. + + 1. Use Command \+ Shift \+ P (Ctrl \+ Shift \+ P on Windows) to open the command palette. + 2. Search for `Open MCP settings`. + 3. Click **Add custom MCP**. This opens the `mcp.json` file. + 4. In `mcp.json`, configure your server: + + ```json + { + "mcpServers": { + "": { + "url": "" + } } } - } - ``` - - - -See the [Cursor documentation](https://docs.cursor.com/en/context/mcp#installing-mcp-servers) for more details. - - - - - Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. - - - Create a guide for your users that includes your MCP server URL and the steps to connect it to VS Code. - - 1. Create a `.vscode/mcp.json` file. - 2. In `mcp.json`, configure your server: - - ```json - { - "servers": { - "": { - "type": "http", - "url": "" + ``` + + + + See the [Cursor documentation](https://docs.cursor.com/en/context/mcp#installing-mcp-servers) for more details. + + + + + Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. + + + Create a guide for your users that includes your MCP server URL and the steps to connect it to VS Code. + + 1. Create a `.vscode/mcp.json` file. + 2. In `mcp.json`, configure your server: + + ```json + { + "servers": { + "": { + "type": "http", + "url": "" + } } } - } - ``` - - + ``` + + -See the [VS Code documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more details. - + See the [VS Code documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more details. + ### Example: Connect to the Mintlify MCP server @@ -484,118 +494,65 @@ See the [VS Code documentation](https://code.visualstudio.com/docs/copilot/chat/ Connect to the Mintlify MCP server to search this documentation site within your preferred AI tool. This gives you more accurate answers about how to use Mintlify in your local environment and demonstrates how you can help your users connect to your MCP server. - - At the top of this page, click the contextual menu, then click **Connect to Cursor** or **Connect to VS Code** to connect the Mintlify MCP server to the IDE of your choice. - - - -To use the Mintlify MCP server with Claude: + + At the top of this page, click the contextual menu, then click **Connect to Cursor** or **Connect to VS Code** to connect the Mintlify MCP server to the IDE of your choice. + + + To use the Mintlify MCP server with Claude: + + + + 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. + 2. Click **Add custom connector**. + 3. Add the Mintlify MCP server: + + - Name: `Mintlify` + - URL: `https://mintlify.com/docs/mcp` + + 4. Click **Add**. + + + 1. When using Claude, click the attachments button (the plus icon). + 2. Select the Mintlify MCP server. + 3. Ask Claude a question about Mintlify. + + + + See the [Model Context Protocol documentation](https://modelcontextprotocol.io/docs/tutorials/use-remote-mcp-server#connecting-to-a-remote-mcp-server) for more details. + + + To use the Mintlify MCP server with Claude Code, run the following command: - - - 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. - 2. Click **Add custom connector**. - 3. Add the Mintlify MCP server: - - Name: `Mintlify` - - URL: `https://mintlify.com/docs/mcp` - 4. Click **Add**. - - - 1. When using Claude, click the attachments button (the plus icon). - 2. Select the Mintlify MCP server. - 3. Ask Claude a question about Mintlify. - - - -See the [Model Context Protocol documentation](https://modelcontextprotocol.io/docs/tutorials/use-remote-mcp-server#connecting-to-a-remote-mcp-server) for more details. - - - - -To use the Mintlify MCP server with Claude Code, run the following command: - -```bash -claude mcp add --transport http Mintlify https://mintlify.com/docs/mcp -``` - -Test the connection by running: - -```bash -claude mcp list -``` - -See the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/mcp#installing-mcp-servers) for more details. - - - -To connect the Mintlify MCP server to Codex CLI, add it to your config file at `~/.codex/config.toml`: - -```toml -[mcp_servers.mintlify] -url = "https://mintlify.com/docs/mcp" -``` - -Test the connection by starting a Codex session and asking: - -```text -What tools do you have available? -``` - -Codex should list the Mintlify MCP server as an available tool. - -See the [Codex MCP documentation](https://developers.openai.com/codex/mcp) for more details. - - + ```bash + claude mcp add --transport http Mintlify https://mintlify.com/docs/mcp + ``` -Install in Cursor + Test the connection by running: -To connect the Mintlify MCP server to Cursor, click the **Install in Cursor** button. Or to manually connect the MCP server, follow these steps: + ```bash + claude mcp list + ``` - - - 1. Use Command + Shift + P (Ctrl + Shift + P on Windows) to open the command palette. - 2. Search for `Open MCP settings`. - 3. Click **Add custom MCP**. This opens the `mcp.json` file. - - - In `mcp.json`, add: + See the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/mcp#installing-mcp-servers) for more details. + + + To connect the Mintlify MCP server to Codex CLI, add it to your config file at `~/.codex/config.toml`: - ```json - { - "mcpServers": { - "Mintlify": { - "url": "https://mintlify.com/docs/mcp" - } - } - } + ```toml + [mcp_servers.mintlify] + url = "https://mintlify.com/docs/mcp" ``` - - - In Cursor's chat, ask "What tools do you have available?" Cursor should show the Mintlify MCP server as an available tool. - - -See [Installing MCP servers](https://docs.cursor.com/en/context/mcp#installing-mcp-servers) in the Cursor documentation for more details. - - + Test the connection by starting a Codex session and asking: -Install in VS Code - -To connect the Mintlify MCP server to VS Code, click the **Install in VS Code** button. Or to manually connect the MCP server, create a `.vscode/mcp.json` file and add: + ```text + What tools do you have available? + ``` -```json -{ - "servers": { - "Mintlify": { - "type": "http", - "url": "https://mintlify.com/docs/mcp" - } - } -} -``` + Codex should list the Mintlify MCP server as an available tool. -See the [VS Code documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more details. - + See the [Codex MCP documentation](https://developers.openai.com/codex/mcp) for more details. + ### Use multiple MCP servers @@ -608,4 +565,4 @@ Best practices for using multiple MCP servers: - Connect only the MCP servers relevant to your current work. - Be specific in your prompts so the AI searches the most relevant server. -- Disconnect servers you're not actively using to reduce potential context usage. +- Disconnect servers you're not actively using to reduce potential context usage. \ No newline at end of file diff --git a/assistant/index.mdx b/assistant/index.mdx index 9b54fff982..8457c70855 100644 --- a/assistant/index.mdx +++ b/assistant/index.mdx @@ -6,7 +6,7 @@ boost: 3 --- - The assistant is available on the [Pro plan and above](https://mintlify.com/pricing?ref=assistant). Every Pro plan includes 10,000 credits per month shared across the assistant, agent, and automations. See [Manage billing](/assistant/configure#manage-billing) for more information about credit tiers and options. + The assistant is on by default. All organizations receive 5,000 trial credits shared across the assistant, agent, and automations. See [Manage billing](/assistant/configure#manage-billing) for more information about credit tiers and options. ## About the assistant @@ -15,12 +15,12 @@ The assistant answers questions about your documentation through natural languag The assistant uses tool calling to answer questions. When users ask questions, the assistant: -* **Searches and retrieves** relevant content from your documentation as Markdown to provide accurate answers. -* **Builds context** from the page a user is viewing when they ask questions. -* **Cites sources** and provides navigable links to take users directly to referenced pages. -* **Returns detailed API information** when answering questions about your API, including methods, parameters, request bodies, and response schemas from your OpenAPI specifications. -* **Generates copyable code examples** to help users implement solutions from your documentation. -* **Supports multiple modalities** by allowing users to add text, images, and other files as context. +- **Searches and retrieves** relevant content from your documentation as Markdown to provide accurate answers. +- **Builds context** from the page a user is viewing when they ask questions. +- **Cites sources** and provides navigable links to take users directly to referenced pages. +- **Returns detailed API information** when answering questions about your API, including methods, parameters, request bodies, and response schemas from your OpenAPI specifications. +- **Generates copyable code examples** to help users implement solutions from your documentation. +- **Supports multiple modalities** by allowing users to add text, images, and other files as context. ### How indexing works @@ -63,4 +63,4 @@ Structure your documentation to help the assistant provide accurate, relevant an Use the [`Visibility`](/components/visibility) component to tailor content for human readers and AI tools on the same page. Wrap UI-oriented content in `` and API-oriented or agent-only context in `` so the assistant and other AI tools see the most relevant information without cluttering your published pages. - + \ No newline at end of file From 101f6fd799229ae843533ac24dbe83b0519dadd5 Mon Sep 17 00:00:00 2001 From: Denzell <32852291+cdxker@users.noreply.github.com> Date: Tue, 7 Jul 2026 20:28:08 -0700 Subject: [PATCH 03/30] Updated mintlify pages - Updated .vale.ini - Updated ai-native.mdx - Updated ai/llmstxt.mdx - Updated ai/mintlify-mcp.mdx - Updated ai/model-context-protocol.mdx - Updated assistant/index.mdx - Updated cli/commands.mdx - Updated cli/install.mdx - Updated credits.mdx - Updated customize/custom-scripts.mdx - Updated customize/fonts.mdx - Updated optimize/analytics.mdx - Updated optimize/search.mdx - Updated organize/hidden-pages.mdx - Updated organize/navigation.mdx - Updated organize/pages.mdx - Updated quickstart.mdx Mintlify-Source: dashboard-editor --- .vale.ini | 31 +-- ai-native.mdx | 11 +- ai/llmstxt.mdx | 4 +- ai/mintlify-mcp.mdx | 241 ++------------------ ai/model-context-protocol.mdx | 403 +++++++++++++++++++--------------- assistant/index.mdx | 16 +- cli/commands.mdx | 4 +- cli/install.mdx | 45 ++-- credits.mdx | 43 +--- customize/custom-scripts.mdx | 188 +++++++--------- customize/fonts.mdx | 72 +++--- optimize/analytics.mdx | 39 ++-- optimize/search.mdx | 4 +- organize/hidden-pages.mdx | 10 +- organize/navigation.mdx | 103 ++++----- organize/pages.mdx | 11 +- quickstart.mdx | 5 +- 17 files changed, 479 insertions(+), 751 deletions(-) diff --git a/.vale.ini b/.vale.ini index dd31a5033e..3df30982ed 100644 --- a/.vale.ini +++ b/.vale.ini @@ -2,7 +2,7 @@ StylesPath = .vale/styles MinAlertLevel = suggestion -IgnoredScopes = code, code, tt, img, url, a +IgnoredScopes = code, tt, img, url, a SkippedScopes = script, style, pre, figure, code Vocab = Mintlify @@ -20,22 +20,17 @@ TokenIgnores = (?m)((?:import|export) .+?$), \ (?)(?!`), \ (<[A-Z]\w+>.+?<\/[A-Z]\w+>), \ (<[^>]*>), \ -\{(?!/\*)(?!/\*)[^}]*\}, \ -(`[^`]*`), \, \ -(?m)^openapi: .+$, \(?m)^openapi: .+$, \ -([\w-]+\.)+(?:json|jsonl|png|jpe?g|gif|svg|mdx?|txt|ya?ml|xml|com|dev|io|ts|js|tsx|jsx), \ -[\w-]+="[^"\n]*", \ -[\w.+-]+@[\w.-]+, \ -\(/[^)\s]*\) - +\{(?!/\*)[^}]*\}, \ +(`[^`]*`), \ +(?m)^openapi: .+$, \ ([\w-]+\.)+(?:json|jsonl|png|jpe?g|gif|svg|mdx?|txt|ya?ml|xml|com|dev|io|ts|js|tsx|jsx), \ [\w-]+="[^"\n]*", \ [\w.+-]+@[\w.-]+, \ \(/[^)\s]*\) BlockIgnores = (?sm)^(<\w+\n .*\s\/>)$, \ -(?sm)^({(?!/\*)(?!/\*).+??})$, \ -(?sm)^[ \t]*[ \t]*```[\s\S]*?```$ +(?sm)^({(?!/\*).+?})$, \ +(?sm)^[ \t]*```[\s\S]*?```$ CommentDelimiters = {/*, */} @@ -43,20 +38,6 @@ CommentDelimiters = {/*, */} BasedOnStyles = "" # Code-generator snippet with no prose content -# Code-generator snippet with no prose content -[snippets/vercel-json-generator.mdx] -BasedOnStyles = "" - -# Component docs use dotted JSX names (Color.Row, Tree.Folder) that -# false-positive the sentence-spacing rule -[components/{color,tree}.mdx] -Mintlify.Spacing = NO - -# Vale lints /api-playground/... link targets in these files in a pass -# that ignores in-document toggles -[{api-playground/asyncapi-setup.mdx,organize/settings-reference.mdx}] -Vale.Terms = NO - [snippets/vercel-json-generator.mdx] BasedOnStyles = "" diff --git a/ai-native.mdx b/ai-native.mdx index c6a2d1655f..73b1e4ceb0 100644 --- a/ai-native.mdx +++ b/ai-native.mdx @@ -2,14 +2,9 @@ title: "AI-native documentation" sidebarTitle: "AI-native" description: "Discover how AI-native features enhance reading, writing, and discovering your documentation with the assistant, agent, and MCP server." -keywords: ["AI", "assistant", "agent", "llms.txt", "MCP", "llms-full.txt"] +keywords: ["AI","assistant","agent","llms.txt","MCP","llms-full.txt"] --- -| rob | | | -| --- | --- | --- | -| | | | -| | | | - When you host your documentation on Mintlify, built-in AI features help your users find answers and your team maintain content more efficiently. Your content provides the context for these AI-native features to improve the experiences of reading, writing, and discovering your documentation. ## What makes your documentation AI-native @@ -54,12 +49,10 @@ Select any of the following cards for more information. Configure the assistant to search external sites or direct people to your support team if it can't answer their questions. - Get documentation updates automatically on a schedule or when a push event occurs. - Add a menu to pages that lets users query AI tools, connect to your MCP server, and copy pages as context with one click. - \ No newline at end of file + diff --git a/ai/llmstxt.mdx b/ai/llmstxt.mdx index bf40b1617a..d4902743fa 100644 --- a/ai/llmstxt.mdx +++ b/ai/llmstxt.mdx @@ -9,7 +9,7 @@ import { PreviewButton } from "/snippets/previewbutton.jsx" The [llms.txt file](https://llmstxt.org) is an industry standard that helps LLMs index content more efficiently, similar to how a sitemap helps search engines. AI tools can use this file to understand your documentation structure and find content relevant to user queries. -Mintlify automatically hosts an `llms.txt` file at the root of your project that lists all available pages in your documentation. This file is always up to date and requires zero maintenance. You can optionally add a custom `llms.txt` file to the root of your project. +Mintlify automatically hosts an `llms.txt` file at the root of your project that lists all available pages in your documentation. This file is always up to date and requires zero maintenance. You can optionally add a custom `llms.txt` file to the root of your project. Authentication affects `llms.txt` and `llms-full.txt` differently depending on your site configuration: @@ -80,4 +80,4 @@ Mintlify automatically hosts an `llms-full.txt` file at the root of your project To add a custom `llms.txt` or `llms-full.txt` file, create an `llms.txt` or `llms-full.txt` file at the root of your project. Adding a custom file overrides the automatically generated file of the same name. If you delete a custom file, Mintlify restores the automatically generated file. -Your custom `llms.txt` or `llms-full.txt` file must have a site title as an H1 heading. Other content is optional. See [Format](https://llmstxt.org/#format) in the `llms.txt` specification for more information on optional sections and best practices. \ No newline at end of file +Your custom `llms.txt` or `llms-full.txt` file must have a site title as an H1 heading. Other content is optional. See [Format](https://llmstxt.org/#format) in the `llms.txt` specification for more information on optional sections and best practices. diff --git a/ai/mintlify-mcp.mdx b/ai/mintlify-mcp.mdx index bafbea8dea..267467b4bc 100644 --- a/ai/mintlify-mcp.mdx +++ b/ai/mintlify-mcp.mdx @@ -9,7 +9,7 @@ keywords: ["MCP", "write access", "AI", "editing", "Claude", "Cursor", "branch", The admin MCP server gives AI tools write access to your Mintlify content and settings. Use it to update content and access your dashboard. With the admin MCP, you can use your preferred AI tools to edit pages, restructure navigation, update `docs.json`, open pull requests, change settings, create workflows, and more. -Connect any MCP client like Claude, Claude Code, or Cursor to the admin MCP server to collaborate on your Mintlify content and settings with the same tools you use to write code. When you use the admin MCP server, all changes happen on a branch and require a pull request to merge. If your organization has multiple deployments, a single admin MCP connection can access and switch between all of them. If your organization has multiple deployments, a single admin MCP connection can access and switch between all of them. +Connect any MCP client like Claude, Claude Code, or Cursor to the admin MCP server to collaborate on your Mintlify content and settings with the same tools you use to write code. When you use the admin MCP server, all changes happen on a branch and require a pull request to merge. If your organization has multiple deployments, a single admin MCP connection can access and switch between all of them. The admin MCP server allows AI tools to access your Mintlify dashboard. Treat it like a coworker with write access. Connect it only from trusted AI tools and review every pull request before merging. @@ -17,8 +17,6 @@ Connect any MCP client like Claude, Claude Code, or Cursor to the admin MCP serv The admin MCP is a hosted Mintlify service at `https://mcp.mintlify.com`. Every client connects to the same endpoint and authenticates with your Mintlify account. -The admin MCP is a hosted Mintlify service at `https://mcp.mintlify.com`. Every client connects to the same endpoint and authenticates with your Mintlify account. - ### How the admin MCP differs from the search MCP | | Admin MCP | Search MCP | @@ -28,21 +26,17 @@ The admin MCP is a hosted Mintlify service at `https://mcp.mintlify.com`. Every | **Endpoints** | Hosted by Mintlify, scoped to your project | `/mcp` on your site domain | | **Output** | Content edits, navigation changes, pull requests, workflow runs | Search results and page content | -## PrerequisitesPrerequisites - -Before connecting the admin MCP, confirm the following:Before connecting the admin MCP, confirm the following: +## Prerequisites -- **Mintlify account**: You need a Mintlify account with access to the project you want to edit. The OAuth session inherits your dashboard permissions, so admin-only actions (such as `update_config` on protected settings) require an admin role on the project. -- **Git provider access**: The Mintlify GitHub App or GitLab connection for the project must have write access to the deploy branch's repository. `save` opens PRs through the same integration used for normal deploys. -- **MCP client**: An MCP-capable AI tool such as Claude, Claude Code, Cursor, or Codex. +Before connecting the admin MCP, confirm the following: - **Mintlify account**: You need a Mintlify account with access to the project you want to edit. The OAuth session inherits your dashboard permissions, so admin-only actions (such as `update_config` on protected settings) require an admin role on the project. - **Git provider access**: The Mintlify GitHub App or GitLab connection for the project must have write access to the deploy branch's repository. `save` opens PRs through the same integration used for normal deploys. - **MCP client**: An MCP-capable AI tool such as Claude, Claude Code, Cursor, or Codex. -## Connect to the admin MCPConnect to the admin MCP +## Connect to the admin MCP -You must have an interactive OAuth login against your Mintlify account to connect to the admin MCP. AI tools exchange that login for a session token scoped to one project.You must have an interactive OAuth login against your Mintlify account to connect to the admin MCP. AI tools exchange that login for a session token scoped to one project. You must have an interactive OAuth login against your Mintlify account to connect to the admin MCP. AI tools exchange that login for a session token scoped to one or more deployments, depending on how you grant access. A connection scoped to specific deployments can only check out those, while an organization-wide connection can check out any deployment in your organization. You must have an interactive OAuth login against your Mintlify account to connect to the admin MCP. AI tools exchange that login for a session token scoped to one or more deployments, depending on how you grant access. A connection scoped to specific deployments can only check out those, while an organization-wide connection can check out any deployment in your organization. +You must have an interactive OAuth login against your Mintlify account to connect to the admin MCP. AI tools exchange that login for a session token scoped to one or more deployments, depending on how you grant access. A connection scoped to specific deployments can only check out those, while an organization-wide connection can check out any deployment in your organization. @@ -50,7 +44,7 @@ You must have an interactive OAuth login against your Mintlify account to connec 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. 2. Click **Add custom connector**. - 3. Add the connector:: + 3. Add the connector: - Name: Admin MCP - URL: `https://mcp.mintlify.com` 4. Click **Add** and complete the OAuth login. @@ -86,29 +80,6 @@ You must have an interactive OAuth login against your Mintlify account to connec 4. Reload Cursor and complete the OAuth login when prompted. - - - - 1. Open Claude Desktop settings and navigate to **Developer** \> **Edit Config**. - 2. Add the admin MCP server to `claude_desktop_config.json`: - - ```json - { - "mcpServers": { - "mintlify": { - "url": "https://mcp.mintlify.com" - } - } - } - ``` - - 3. Restart Claude Desktop and complete the OAuth login when prompted. - - - Select the Mintlify admin MCP from the tools menu in a new chat. Claude Desktop can now call the admin MCP tools while answering your prompt. - - - Add the admin MCP server to your Codex CLI config at `~/.codex/config.toml`: @@ -128,16 +99,13 @@ You must have an interactive OAuth login against your Mintlify account to connec Every admin MCP session binds to a single Git branch. The flow is: - - If your connection has access to more than one deployment, call `list_deployments` to see which `subdomain` values you can check out. Skip this step if your connection covers only a single deployment. - If your connection has access to more than one deployment, call `list_deployments` to see which `subdomain` values you can check out. Skip this step if your connection covers only a single deployment. - The first required call is `checkout {subdomain}`. It creates a fresh `mintlify-mcp/-` branch from that deployment'srequired call is `checkout {subdomain}`. It creates a fresh `mintlify-mcp/-` branch from that deployment's deploy branch (or attaches to an existing branch you name) and returns an `editorUrl` you can open to follow along in the dashboard editor. + The first required call is `checkout {subdomain}`. It creates a fresh `mintlify-mcp/-` branch from that deployment's deploy branch (or attaches to an existing branch you name) and returns an `editorUrl` you can open to follow along in the dashboard editor. - Call `list_branches` before `checkout` if you need to discover or filter existing branches in a deployment'sa deployment's repository. + Call `list_branches` before `checkout` if you need to discover or filter existing branches in a deployment's repository. The AI uses tools like `search`, `read`, `list_nodes`, `edit_page`, `write_page`, `create_node`, and `update_config` to make changes. All edits buffer on the session branch in real time—nothing touches your deploy branch yet. @@ -154,121 +122,12 @@ Every admin MCP session binds to a single Git branch. The flow is: - If your connection has access to multiple deployments, each checked-out deployment keeps its own session and branch in memory at the same timeIf your connection has access to multiple deployments, each checked-out deployment keeps its own session and branch in memory at the same time. - - Calling `checkout` again with a different `subdomain` or branch switches which session is active. It doesn't discard the others. To abandon an in-progress draft instead of switching away from it, call `discard_session`. - + If your connection has access to multiple deployments, each checked-out deployment keeps its own session and branch in memory at the same time. + Calling `checkout` again with a different `subdomain` or branch switches which session is active. It doesn't discard the others. To abandon an in-progress draft instead of switching away from it, call `discard_session`. - - - - - 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. - 2. Click **Add custom connector**. - 3. Add the connector - - Name: Admin MCP - - URL: `https://mcp.mintlify.com` - 4. Click **Add** and complete the OAuth login. - - - Click the attachments button (the plus icon), then select your admin MCP server. Claude can now call the Mintlify admin MCP tools while answering your prompt. - - - - - Add the admin MCP server with the Claude Code CLI: - - ```bash - claude mcp add --transport http mintlify https://mcp.mintlify.com - ``` - - On first use, Claude Code opens a browser window to complete the OAuth login. After authenticating, the session is reused for subsequent calls. - - - 1. Open the command palette with Command \+ Shift \+ P (Ctrl \+ Shift \+ P on Windows). - 2. Search for **Open MCP settings** and click **Add custom MCP**. - 3. In `mcp.json`, add the admin MCP: - - ```json - { - "mcpServers": { - "mintlify": { - "url": "https://mcp.mintlify.com" - } - } - } - ``` - - 4. Reload Cursor and complete the OAuth login when prompted. - - - - - 1. Open Claude Desktop settings and navigate to **Developer** \> **Edit Config**. - 2. Add the admin MCP server to `claude_desktop_config.json`: - - ```json - { - "mcpServers": { - "mintlify": { - "url": "https://mcp.mintlify.com" - } - } - } - ``` - - 3. Restart Claude Desktop and complete the OAuth login when prompted. - - - Select the Mintlify admin MCP from the tools menu in a new chat. Claude Desktop can now call the admin MCP tools while answering your prompt. - - - - - Add the admin MCP server to your Codex CLI config at `~/.codex/config.toml`: - - ```toml - [mcp_servers.mintlify] - url = "https://mcp.mintlify.com" - ``` - - On first use, Codex opens a browser window to complete the OAuth login. After authenticating, the session is reused for subsequent calls. - - See the [Codex MCP documentation](https://developers.openai.com/codex/mcp) for more details. - - - -## How a session works - -Every admin MCP session binds to a single Git branch. The flow is: - - - - The first call must be `checkout`. It creates a fresh `mintlify-mcp/-` branch from your deploy branch (or attaches to an existing branch you name) and returns an `editorUrl` you can open to follow along in the dashboard editor. - - Call `list_branches` before `checkout` if you need to discover or filter existing branches in the repository. - - - The AI uses tools like `search`, `read`, `list_nodes`, `edit_page`, `write_page`, `create_node`, and `update_config` to make changes. All edits buffer on the session branch in real time—nothing touches your deploy branch yet. - - - Call `diff` at any time to see exactly what changed since `main`. Open the `editorUrl` in your dashboard to see the same changes rendered. - - - Call `save` to flush the branch to Git. Use `mode: "pr"` (default) to open a pull request, or `mode: "commit"` to push directly to an existing PR branch. - - - Call `discard_session` to drop all in-session changes and release the branch. - - - - - Calling `checkout` again during an active session switches the session to the new branch. Use this to abandon an in-progress draft and start fresh without ending the conversation. - - -## What the admin MCP can doWhat the admin MCP can do +## What the admin MCP can do ### Content @@ -291,81 +150,15 @@ Every admin MCP session binds to a single Git branch. The flow is: ### Session -### Content - -- **`read`** — Fetch the full MDX of any page on the session branch. -- **`search`** — Find lines matching a substring or regular expression across every page. -- **`edit_page`** — Apply a targeted edit to a page. -- **`write_page`** — Overwrite a page's full MDX content. - -### Navigation - -- **`list_nodes`** — Walk the navigation tree with optional filters. Filter by `parentId` (use `recursive: true` to include all descendants), one or more node types, or any division scope: `language`, `version`, `tab`, `dropdown`, `anchor`, `product`, or `item`. Results paginate through an opaque `cursor`. -- **`create_node`** — Add a new page, group, tab, anchor, version, language, product, or dropdown. -- **`update_node`** — Update a node's properties in place (rename a group, change an icon, set a default version). -- **`move_node`** — Move a node, including renaming a page's path. -- **`delete_node`** — Remove a node from the navigation. - -### Configuration - -- **`update_config`** — Modify `docs.json` (theme, navigation roots, integrations, SEO settings). - -### Session - -- **`list_deployments`** — List the deployments your connection can access, returning each `{subdomain, name}`. Call this to discover which `subdomain` to pass to `checkout**list_deployments**` — List the deployments your connection can access, returning each `{subdomain, name}`. Call this to discover which `subdomain` to pass to `checkout`. -- **`checkout`** — Bind the session to a branch.**`checkout`** — Bind the session to a branch. **`checkout`** — Bind a session to a branch for a given deployment `subdomain`, or switch which deployment's session is activ**`checkout`** — Bind the session to a branch.**`checkout`** — Bind the session to a branch. **`checkout`** — Bind a session to a branch for a given deployment `subdomain`, or switch which deployment's session is active. -- **`list_branches`** — List Git branches available for the project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name.**`list_branches`** — List Git branches available for the project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name. **`list_branches`** — List Git branches available for a deployment's project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name. -- **`list_branches`** — List Git branches available for the project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name.**`list_branches`** — List Git branches available for the project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name. **`list_branches`** — List Git branches available for a deployment's project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name. -- **`get_session_state`** — Inspect the current branch, edited files, and pending nav diff.**`get_session_state`** — Inspect the current branch, edited files, and pending nav diff. -- **`diff`** — List all changes between the session and `main`. -- **`save`** — Open a pull request or commit to the session branch. -- **`discard_session`** — Drop the session and its in-flight changes. +- **`list_deployments`** — List the deployments your connection can access, returning each `{subdomain, name}`. Call this to discover which `subdomain` to pass to `checkout`. +- **`checkout`** — Bind a session to a branch for a given deployment `subdomain`, or switch which deployment's session is active. +- **`list_branches`** — List Git branches available for a deployment's project, with optional `query` filtering. Returns the branch names, total count, and the deploy branch. Call this before `checkout` to attach to an existing branch by name. +- **`get_session_state`** — Inspect the current branch, edited files, and pending nav diff. - **`diff`** — List all changes between the session and `main`. - **`save`** — Open a pull request or commit to the session branch. - **`discard_session`** — Drop the session and its in-flight changes. -## Example promptExample prompts - -After you connect the admin MCP, you can drive it with natural-language prompts. For example: - -- _"Check out a branch called `add-billing-faq` and create a new page under the FAQ group titled 'Billing'. Draft answers for the five questions in this Linear issue."_ -- _"Find every page that mentions the deprecated `legacy_token` field and update the example to use `api_key` instead. Save as a PR titled 'docs: replace legacy\_token references'."_ -- _"Reorganize the API reference: move the webhooks pages into a new group called 'Webhooks' and update the icons to match the rest of the section."_ - -## Best practices - - - - Every `checkout` returns an `editorUrl`. Open it in a separate tab so you can watch the AI's changes render live in the dashboard editor while you prompt. - - - - The admin MCP is powerful enough to rewrite hundreds of pages in a single session. Before merging, read the PR diff and skim the rendered preview. Don't rubber-stamp large changes. - - - - Pass a `slug` to `checkout` (for example, `add-quickstart`) so the auto-generated branch is human-readable. Without it, the branch name derives from the session token and is hard to recognize in your repository. - - - - Keep each session focused to one change. Smaller sessions produce easier to review pull requests and preserve agents' context windows. Use `discard_session` and `checkout` again to pivot to unrelated work. - - - - - Sessions hold an in-memory branch on the Mintlify side. If you abandon a session without saving or discarding it, the branch persists until your next checkout overwrites it. Avoid leaving stale `mintlify-mcp/*` branches in your repository. Clean them up periodically. - - -## Disconnect or revoke access - -Disconnect the admin MCP when you no longer want an AI tool to edit your project, or when you want to force a fresh OAuth login. - -- **Revoke the OAuth grant**: In your Mintlify dashboard, navigate to **Settings → Security & access → Connected apps** and revoke the entry for the AI tool you connected. Revoking invalidates any active session tokens immediately, so in-flight tool calls fail and the tool must complete a new OAuth login on the next call. -- **Remove the connector in the client**: - - Claude: **Settings → Connectors**, then remove the admin MCP entry. - - Claude Code: `claude mcp remove mintlify`. - - Cursor: delete the `mintlify` entry from `mcp.json` and reload. - - Codex: delete the `[mcp_servers.mintlify]` block from `~/.codex/config.toml`. +## Example prompts After you connect the admin MCP, you can drive it with natural-language prompts. For example: @@ -408,4 +201,4 @@ Disconnect the admin MCP when you no longer want an AI tool to edit your project - Cursor: delete the `mintlify` entry from `mcp.json` and reload. - Codex: delete the `[mcp_servers.mintlify]` block from `~/.codex/config.toml`. -Revoking the OAuth grant does not affect pull requests the MCP has already opened. If you want to undo pending changes, close or revert those PRs in your Git provider.Revoking the OAuth grant does not affect pull requests the MCP has already opened. If you want to undo pending changes, close or revert those PRs in your Git provider.Revoking the OAuth grant does not affect pull requests the MCP has already opened. If you want to undo pending changes, close or revert those PRs in your Git provider. Revoking the OAuth grant does not affect pull requests the MCP has already opened. Close or revert those PRs in your Git provider if you want to undo pending changes. Revoking the OAuth grant does not affect pull requests the MCP has already opened. Close or revert those PRs in your Git provider if you want to undo pending changes. \ No newline at end of file +Revoking the OAuth grant does not affect pull requests the MCP has already opened. Close or revert those PRs in your Git provider if you want to undo pending changes. \ No newline at end of file diff --git a/ai/model-context-protocol.mdx b/ai/model-context-protocol.mdx index 78bc56145c..783398ac4c 100644 --- a/ai/model-context-protocol.mdx +++ b/ai/model-context-protocol.mdx @@ -66,9 +66,9 @@ AI tools can search the web, but the search MCP provides distinct advantages. Mintlify generates a search MCP server for your site and hosts it at the `/mcp` path of your site URL. For example, Mintlify's search MCP server is available at `https://mintlify.com/docs/mcp`. -- For public content, your search MCP server is available to anyone. It searches all indexed public pages. -- For content with partial authentication, where some pages are public and others require login, you must enable your search MCP server before users can access it. Unauthenticated users can search public content. Users who authenticate can search all content they have permission to access based on their [user groups](/deploy/authentication-setup). -- For content where all pages require authentication, you must enable your search MCP server before it is available to users. Users must authenticate before connecting to your search MCP server. Your search MCP server searches only the content each user has access to based on their [user groups](/deploy/authentication-setup). +* For public content, your search MCP server is available to anyone. It searches all indexed public pages. +* For content with partial authentication, where some pages are public and others require login, you must enable your search MCP server before users can access it. Unauthenticated users can search public content. Users who authenticate can search all content they have permission to access based on their [user groups](/deploy/authentication-setup). +* For content where all pages require authentication, you must enable your search MCP server before it is available to users. Users must authenticate before connecting to your search MCP server. Your search MCP server searches only the content each user has access to based on their [user groups](/deploy/authentication-setup). If your site uses authentication, configure your hosted search MCP server from **Settings → Security & access → MCP** in your dashboard. The authenticated search MCP server is available at the `/authed/mcp` path of your site URL. @@ -85,7 +85,6 @@ Mintlify hosts a discovery document at `/.well-known/mcp` for agents and tools t `GET /.well-known/mcp` returns a JSON document describing your search MCP server: {/* vale Mintlify.Quotes = NO */} - ```json { "version": "1.0.0", @@ -107,7 +106,6 @@ Mintlify hosts a discovery document at `/.well-known/mcp` for agents and tools t ] } ``` - {/* vale Mintlify.Quotes = YES */} | Field | Description | @@ -128,7 +126,6 @@ For agent-readiness, the same discovery document is also available at `/.well-kn Each server card includes the standard discovery fields and a `tools` array that describes the MCP tools the server advertises. Use this to pre-populate tool metadata in MCP clients without making an `initialize` call to the server. {/* vale Mintlify.Quotes = NO */} - ```json { "name": "your-docs-search", @@ -163,7 +160,6 @@ Each server card includes the standard discovery fields and a `tools` array that ] } ``` - {/* vale Mintlify.Quotes = YES */} | Field | Description | @@ -194,11 +190,9 @@ If your site has partial authentication with both public and protected pages, yo The `/authed/mcp` endpoint uses its own OAuth flow at `/authed/mcp/oauth/*`. Redirect domains configured for your MCP server apply to both `/mcp` and `/authed/mcp`. -Popular MCP clients such as Claude, ChatGPT, Cursor, and Devin are always allowed to complete authentication against your MCP server. You do not need to add these clients to any allowPopular MCP clients such as Claude, ChatGPT, Cursor, and Devin are always allowed to complete authentication against your MCP server. You do not need to add these clients to any allowlist. - -To let other web-based tools connect, add their redirect domains in your dashboard. A redirect domain is the hostname that an AI tool uses after a user completes authentication. Your users' AI tools cannot complete authentication unless their redirect domain is on this list or the tool is one of the always-allowed clientsTo let other web-based tools connect, add their redirect domains in your dashboard. A redirect domain is the hostname that an AI tool uses after a user completes authentication. Your users' AI tools cannot complete authentication unless their redirect domain is on this list or the tool is one of the always-allowed clients. +Popular MCP clients such as Claude, ChatGPT, Cursor, and Devin are always allowed to complete authentication against your MCP server. You do not need to add these clients to any allowlist. -Mintlify enables your hosted MCP server automatically when your site has [authentication](/deploy/authentication-setup) configured. +To let other web-based tools connect, add their redirect domains in your dashboard. A redirect domain is the hostname that an AI tool uses after a user completes authentication. Your users' AI tools cannot complete authentication unless their redirect domain is on this list or the tool is one of the always-allowed clients. Mintlify enables your hosted MCP server automatically when your site has [authentication](/deploy/authentication-setup) configured. @@ -206,8 +200,8 @@ Mintlify enables your hosted MCP server automatically when your site has [authen In your dashboard, go to **Settings → Security & access → MCP**. - - Under **Allowed OAuth redirect URIs**, add the redirect domains for any additional AI tools you want to grant your users access to. You only need to add domains for clients that aren't already on the always-allowed lisany additional AI tools you want to grant your users access to. You only need to add domains for clients that aren't already on the always-allowed list. + + Under **Allowed OAuth redirect URIs**, add the redirect domains for any additional AI tools you want to grant your users access to. You only need to add domains for clients that aren't already on the always-allowed list. By default, redirect domains use `https://`. To allow a custom protocol scheme, include the full protocol in the domain entry. For example, a native app callback like `myapp://callback`. Mintlify always blocks dangerous protocols such as `javascript:`, `data:`, and `file:`. @@ -236,7 +230,6 @@ Client credentials authenticate against the `/authed/mcp` endpoint and return al Send a POST request to your MCP server's token endpoint with your client ID and secret. Your token endpoint is at the `/authed/mcp/oauth/token` path of your site's URL. - ```bash cURL curl -X POST https://your-docs.com/authed/mcp/oauth/token \ -H 'Content-Type: application/x-www-form-urlencoded' \ @@ -249,7 +242,6 @@ Client credentials authenticate against the `/authed/mcp` endpoint and return al -H 'Authorization: Basic BASE64_CLIENT_ID_COLON_SECRET' \ -d 'grant_type=client_credentials' ``` - The response includes an access token and a refresh token: @@ -270,7 +262,6 @@ Client credentials authenticate against the `/authed/mcp` endpoint and return al Use the access token as a bearer token when connecting to the `/authed/mcp` endpoint. - ```bash cURL curl -X POST https://your-docs.com/authed/mcp \ -H 'Authorization: Bearer ACCESS_TOKEN' \ @@ -293,7 +284,6 @@ Client credentials authenticate against the `/authed/mcp` endpoint and return al my-docs https://your-docs.com/authed/mcp \ --header "Authorization: Bearer ACCESS_TOKEN" ``` - @@ -314,7 +304,7 @@ You can manage your client credentials from **Settings → Security & access → To protect availability, Mintlify applies rate limits to MCP servers. | Scope | Limit | Description | -| :-- | :-- | :-- | +| :---- | :---- | :---------- | | Per user (IP address) | 5,000 requests per hour | Limits how frequently a single user can query your MCP server configuration. | | Search per site (domain) | 10,000 requests per hour | Limits total search tool calls across all users of your MCP server. | | Query docs filesystem per site (domain) | 10,000 requests per hour | Limits total query docs filesystem tool calls across all users of your MCP server. | @@ -370,123 +360,123 @@ Your users must connect your MCP server to their preferred AI tools. These are some of the ways you can help your users connect to your MCP server: - - Add options in the [contextual menu](/ai/contextual-menu) for your users to connect to your MCP server from any page on your site. - - | Option | Identifier | Description | - | :-- | :-- | :-- | - | **Copy MCP server URL** | `mcp` | Copies your MCP server URL to the user's clipboard. | - | **Copy MCP install command** | `add-mcp` | Copies the `npx add-mcp` command to install the MCP server. | - | **Connect to Cursor** | `cursor` | Installs your MCP server in Cursor. | - | **Connect to VS Code** | `vscode` | Installs your MCP server in VS Code. | - - - - - Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. - - - Create a guide for your users that includes your MCP server URL and the steps to connect it to Claude. - - 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. - 2. Click **Add custom connector**. - 3. Add your MCP server name and URL. - 4. Click **Add**. - 5. When using Claude, click the attachments button (the plus icon). - 6. Select your MCP server. - - - - See the [Model Context Protocol documentation](https://modelcontextprotocol.io/docs/tutorials/use-remote-mcp-server#connecting-to-a-remote-mcp-server) for more details. - - - - - Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. - - - Create a guide for your users that includes your MCP server URL and the command to connect it to Claude Code. - - ```bash - claude mcp add --transport http - ``` - - - - See the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/mcp#installing-mcp-servers) for more details. - - - - - Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. - - - Create a guide for your users that includes your MCP server URL and the steps to connect it to Codex CLI. - - In `~/.codex/config.toml`, add: - - ```toml - [mcp_servers.] - url = "" - ``` - - - - See the [Codex MCP documentation](https://developers.openai.com/codex/mcp) for more details. - - - - - Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. - - - Create a guide for your users that includes your MCP server URL and the steps to connect it to Cursor. - - 1. Use Command \+ Shift \+ P (Ctrl \+ Shift \+ P on Windows) to open the command palette. - 2. Search for `Open MCP settings`. - 3. Click **Add custom MCP**. This opens the `mcp.json` file. - 4. In `mcp.json`, configure your server: - - ```json - { - "mcpServers": { - "": { - "url": "" - } + + Add options in the [contextual menu](/ai/contextual-menu) for your users to connect to your MCP server from any page on your site. + + | Option | Identifier | Description | + | :----- | :--------- | :---------- | + | **Copy MCP server URL** | `mcp` | Copies your MCP server URL to the user's clipboard. | + | **Copy MCP install command** | `add-mcp` | Copies the `npx add-mcp` command to install the MCP server. | + | **Connect to Cursor** | `cursor` | Installs your MCP server in Cursor. | + | **Connect to VS Code** | `vscode` | Installs your MCP server in VS Code. | + + + + + Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. + + + Create a guide for your users that includes your MCP server URL and the steps to connect it to Claude. + + 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. + 2. Click **Add custom connector**. + 3. Add your MCP server name and URL. + 4. Click **Add**. + 5. When using Claude, click the attachments button (the plus icon). + 6. Select your MCP server. + + + +See the [Model Context Protocol documentation](https://modelcontextprotocol.io/docs/tutorials/use-remote-mcp-server#connecting-to-a-remote-mcp-server) for more details. + + + + + Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. + + + Create a guide for your users that includes your MCP server URL and the command to connect it to Claude Code. + + ```bash + claude mcp add --transport http + ``` + + + +See the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/mcp#installing-mcp-servers) for more details. + + + + + Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. + + + Create a guide for your users that includes your MCP server URL and the steps to connect it to Codex CLI. + + In `~/.codex/config.toml`, add: + + ```toml + [mcp_servers.] + url = "" + ``` + + + +See the [Codex MCP documentation](https://developers.openai.com/codex/mcp) for more details. + + + + + Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. + + + Create a guide for your users that includes your MCP server URL and the steps to connect it to Cursor. + + 1. Use Command + Shift + P (Ctrl + Shift + P on Windows) to open the command palette. + 2. Search for `Open MCP settings`. + 3. Click **Add custom MCP**. This opens the `mcp.json` file. + 4. In `mcp.json`, configure your server: + + ```json + { + "mcpServers": { + "": { + "url": "" } } - ``` - - - - See the [Cursor documentation](https://docs.cursor.com/en/context/mcp#installing-mcp-servers) for more details. - - - - - Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. - - - Create a guide for your users that includes your MCP server URL and the steps to connect it to VS Code. - - 1. Create a `.vscode/mcp.json` file. - 2. In `mcp.json`, configure your server: - - ```json - { - "servers": { - "": { - "type": "http", - "url": "" - } + } + ``` + + + +See the [Cursor documentation](https://docs.cursor.com/en/context/mcp#installing-mcp-servers) for more details. + + + + + Your MCP server URL is the `/mcp` path of your site URL. For example, `https://your-docs.com/mcp`. If your site requires authentication, use the `/authed/mcp` path instead. + + + Create a guide for your users that includes your MCP server URL and the steps to connect it to VS Code. + + 1. Create a `.vscode/mcp.json` file. + 2. In `mcp.json`, configure your server: + + ```json + { + "servers": { + "": { + "type": "http", + "url": "" } } - ``` - - + } + ``` + + - See the [VS Code documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more details. - +See the [VS Code documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more details. + ### Example: Connect to the Mintlify MCP server @@ -494,65 +484,118 @@ These are some of the ways you can help your users connect to your MCP server: Connect to the Mintlify MCP server to search this documentation site within your preferred AI tool. This gives you more accurate answers about how to use Mintlify in your local environment and demonstrates how you can help your users connect to your MCP server. - - At the top of this page, click the contextual menu, then click **Connect to Cursor** or **Connect to VS Code** to connect the Mintlify MCP server to the IDE of your choice. - - - To use the Mintlify MCP server with Claude: - - - - 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. - 2. Click **Add custom connector**. - 3. Add the Mintlify MCP server: - - - Name: `Mintlify` - - URL: `https://mintlify.com/docs/mcp` - - 4. Click **Add**. - - - 1. When using Claude, click the attachments button (the plus icon). - 2. Select the Mintlify MCP server. - 3. Ask Claude a question about Mintlify. - - - - See the [Model Context Protocol documentation](https://modelcontextprotocol.io/docs/tutorials/use-remote-mcp-server#connecting-to-a-remote-mcp-server) for more details. - - - To use the Mintlify MCP server with Claude Code, run the following command: + + At the top of this page, click the contextual menu, then click **Connect to Cursor** or **Connect to VS Code** to connect the Mintlify MCP server to the IDE of your choice. + + - ```bash - claude mcp add --transport http Mintlify https://mintlify.com/docs/mcp - ``` +To use the Mintlify MCP server with Claude: - Test the connection by running: + + + 1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in the Claude settings. + 2. Click **Add custom connector**. + 3. Add the Mintlify MCP server: + - Name: `Mintlify` + - URL: `https://mintlify.com/docs/mcp` + 4. Click **Add**. + + + 1. When using Claude, click the attachments button (the plus icon). + 2. Select the Mintlify MCP server. + 3. Ask Claude a question about Mintlify. + + - ```bash - claude mcp list - ``` +See the [Model Context Protocol documentation](https://modelcontextprotocol.io/docs/tutorials/use-remote-mcp-server#connecting-to-a-remote-mcp-server) for more details. - See the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/mcp#installing-mcp-servers) for more details. - - - To connect the Mintlify MCP server to Codex CLI, add it to your config file at `~/.codex/config.toml`: + + - ```toml - [mcp_servers.mintlify] - url = "https://mintlify.com/docs/mcp" - ``` +To use the Mintlify MCP server with Claude Code, run the following command: + +```bash +claude mcp add --transport http Mintlify https://mintlify.com/docs/mcp +``` + +Test the connection by running: + +```bash +claude mcp list +``` + +See the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/mcp#installing-mcp-servers) for more details. + + + +To connect the Mintlify MCP server to Codex CLI, add it to your config file at `~/.codex/config.toml`: + +```toml +[mcp_servers.mintlify] +url = "https://mintlify.com/docs/mcp" +``` + +Test the connection by starting a Codex session and asking: + +```text +What tools do you have available? +``` + +Codex should list the Mintlify MCP server as an available tool. - Test the connection by starting a Codex session and asking: +See the [Codex MCP documentation](https://developers.openai.com/codex/mcp) for more details. + + - ```text - What tools do you have available? +Install in Cursor + +To connect the Mintlify MCP server to Cursor, click the **Install in Cursor** button. Or to manually connect the MCP server, follow these steps: + + + + 1. Use Command + Shift + P (Ctrl + Shift + P on Windows) to open the command palette. + 2. Search for `Open MCP settings`. + 3. Click **Add custom MCP**. This opens the `mcp.json` file. + + + In `mcp.json`, add: + + ```json + { + "mcpServers": { + "Mintlify": { + "url": "https://mintlify.com/docs/mcp" + } + } + } ``` + + + In Cursor's chat, ask "What tools do you have available?" Cursor should show the Mintlify MCP server as an available tool. + + + +See [Installing MCP servers](https://docs.cursor.com/en/context/mcp#installing-mcp-servers) in the Cursor documentation for more details. + + + +Install in VS Code + +To connect the Mintlify MCP server to VS Code, click the **Install in VS Code** button. Or to manually connect the MCP server, create a `.vscode/mcp.json` file and add: - Codex should list the Mintlify MCP server as an available tool. +```json +{ + "servers": { + "Mintlify": { + "type": "http", + "url": "https://mintlify.com/docs/mcp" + } + } +} +``` - See the [Codex MCP documentation](https://developers.openai.com/codex/mcp) for more details. - +See the [VS Code documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more details. + ### Use multiple MCP servers @@ -565,4 +608,4 @@ Best practices for using multiple MCP servers: - Connect only the MCP servers relevant to your current work. - Be specific in your prompts so the AI searches the most relevant server. -- Disconnect servers you're not actively using to reduce potential context usage. \ No newline at end of file +- Disconnect servers you're not actively using to reduce potential context usage. diff --git a/assistant/index.mdx b/assistant/index.mdx index 8457c70855..9b54fff982 100644 --- a/assistant/index.mdx +++ b/assistant/index.mdx @@ -6,7 +6,7 @@ boost: 3 --- - The assistant is on by default. All organizations receive 5,000 trial credits shared across the assistant, agent, and automations. See [Manage billing](/assistant/configure#manage-billing) for more information about credit tiers and options. + The assistant is available on the [Pro plan and above](https://mintlify.com/pricing?ref=assistant). Every Pro plan includes 10,000 credits per month shared across the assistant, agent, and automations. See [Manage billing](/assistant/configure#manage-billing) for more information about credit tiers and options. ## About the assistant @@ -15,12 +15,12 @@ The assistant answers questions about your documentation through natural languag The assistant uses tool calling to answer questions. When users ask questions, the assistant: -- **Searches and retrieves** relevant content from your documentation as Markdown to provide accurate answers. -- **Builds context** from the page a user is viewing when they ask questions. -- **Cites sources** and provides navigable links to take users directly to referenced pages. -- **Returns detailed API information** when answering questions about your API, including methods, parameters, request bodies, and response schemas from your OpenAPI specifications. -- **Generates copyable code examples** to help users implement solutions from your documentation. -- **Supports multiple modalities** by allowing users to add text, images, and other files as context. +* **Searches and retrieves** relevant content from your documentation as Markdown to provide accurate answers. +* **Builds context** from the page a user is viewing when they ask questions. +* **Cites sources** and provides navigable links to take users directly to referenced pages. +* **Returns detailed API information** when answering questions about your API, including methods, parameters, request bodies, and response schemas from your OpenAPI specifications. +* **Generates copyable code examples** to help users implement solutions from your documentation. +* **Supports multiple modalities** by allowing users to add text, images, and other files as context. ### How indexing works @@ -63,4 +63,4 @@ Structure your documentation to help the assistant provide accurate, relevant an Use the [`Visibility`](/components/visibility) component to tailor content for human readers and AI tools on the same page. Wrap UI-oriented content in `` and API-oriented or agent-only context in `` so the assistant and other AI tools see the most relevant information without cluttering your published pages. - \ No newline at end of file + diff --git a/cli/commands.mdx b/cli/commands.mdx index c30ddb3820..1c7c515ef6 100644 --- a/cli/commands.mdx +++ b/cli/commands.mdx @@ -197,7 +197,7 @@ Check for broken internal links in your documentation. mint broken-links [flags] ``` -The command scans `.mdx` and `.md` files for links and excludes files matching [.mintignore](/organize/mintignore) patterns. Links inside OpenAPI specification files (`.yaml`, `.yml`, `.json`) are not checkedscans `.mdx` and `.md` files for links and excludes files matching [.mintignore](/organize/mintignore) patterns. Links inside OpenAPI specification files (`.yaml`, `.yml`, `.json`) are not checked. Links that point to ignored files report as broken. +The command scans `.mdx` and `.md` files for links and excludes files matching [.mintignore](/organize/mintignore) patterns. Links inside OpenAPI specification files (`.yaml`, `.yml`, `.json`) are not checked. Links that point to ignored files report as broken. | Flag | Description | | --- | --- | @@ -395,4 +395,4 @@ You can also disable telemetry by setting one of these environment variables: | `MINTLIFY_TELEMETRY_DISABLED` | `1` | Disable Mintlify CLI telemetry. | | `DO_NOT_TRACK` | `1` | Disable telemetry using the [Console Do Not Track](https://consoledonottrack.com/) standard. | -Your preference saves in `~/.config/mintlify/config.json` and persists across CLI sessions. \ No newline at end of file +Your preference saves in `~/.config/mintlify/config.json` and persists across CLI sessions. diff --git a/cli/install.mdx b/cli/install.mdx index 0ee2b8afcf..85df56afaf 100644 --- a/cli/install.mdx +++ b/cli/install.mdx @@ -6,20 +6,18 @@ keywords: ["CLI", "npm", "install", "Node.js", "pnpm", "mint"] ## Prerequisites -- [Node.js](https://nodejs.org/en) v20.17.0\+ (LTS versions recommended) qowij foawij efoaijw eofiaw efawe fawe f +- [Node.js](https://nodejs.org/en) v20.17.0+ (LTS versions recommended) ## Install the CLI + ```bash npm + npm i -g mint + ``` -```bash npm -npm i -g mint -``` - -```bash pnpm -pnpm add -g mint -``` - + ```bash pnpm + pnpm add -g mint + ``` ## Create a new project @@ -70,15 +68,13 @@ mint update If `mint update` is not available on your version, reinstall the CLI with the latest version: + ```bash npm + npm i -g mint@latest + ``` -```bash npm -npm i -g mint@latest -``` - -```bash pnpm -pnpm add -g mint@latest -``` - + ```bash pnpm + pnpm add -g mint@latest + ``` ## Formatting @@ -95,26 +91,22 @@ For syntax highlighting and code formatting in MDX files, use the following exte This may be due to an outdated version of Node.js. Try the following: 1. Remove the currently installed version of the mint CLI: `npm uninstall -g mint` - 2. Upgrade to Node.js v20.17.0\+. + 2. Upgrade to Node.js v20.17.0+. 3. Reinstall the mint CLI: `npm install -g mint` - **Solution**: Go to the root of your device and delete the `~/.mintlify` folder. Afterwards, run `mint dev` again. - This is due to not having the required permissions to globally install node packages. **Solution**: Try running `sudo npm i -g mint`. When prompted, enter the password that you use to unlock your computer. - This is likely due to an outdated version of the CLI. **Solution**: Run `mint update` to get the latest changes. - If you have any problems with the CLI package, first run `npm ls -g` to see what packages are globally installed. If you don't use npm, try `which mint` to locate the installation. @@ -126,15 +118,16 @@ For syntax highlighting and code formatting in MDX files, use the following exte npm i -g mint ``` - If you run `mint version` and the client version displays as `none`, the CLI may be unable to download the client application due to a corporate firewall or VPN. **Solution**: Ask your IT administrator to add `releases.mintlify.com` to your network allowlist. - - In versions before `4.0.1125`, running `npx mint dev` or other commands from a docs repository could cause the CLI to incorrectly detect itself as a local development build. This made the CLI point to `localhost` URLs instead of the Mintlify production API, resulting in connection errors or unexpected behavior. + In versions before `4.0.1125`, running `npx mint dev` or other commands from a docs + repository could cause the CLI to incorrectly detect itself as a local development + build. This made the CLI point to `localhost` URLs instead of the Mintlify production + API, resulting in connection errors or unexpected behavior. **Solution**: Update to the latest CLI version: @@ -142,4 +135,4 @@ For syntax highlighting and code formatting in MDX files, use the following exte npm i -g mint@latest ``` - \ No newline at end of file + diff --git a/credits.mdx b/credits.mdx index 61f511371c..4c6b9c9c69 100644 --- a/credits.mdx +++ b/credits.mdx @@ -6,9 +6,9 @@ keywords: ["credits", "billing", "pricing", "AI chat", "messages", "tiers", "usa Some Mintlify features consume credits. -- Assistant responses -- Agent runs in the editor or on Slack -- Automation runs +* Assistant responses +* Agent runs in the editor or on Slack +* Automation runs For the most current pricing information, see the [Pricing page](https://mintlify.com/pricing) or view the [Usage](https://app.mintlify.com/settings/organization/usage) page in your dashboard. @@ -16,25 +16,6 @@ For the most current pricing information, see the [Pricing page](https://mintlif Credits are available on the **Pro plan and above**. Every Pro plan includes 10,000 credits per month, and you can purchase additional credits from the [Usage](https://app.mintlify.com/settings/organization/usage) page whenever you need more. -The free Starter plan does not include AI features and has no credit purchase path. To use the assistant, editor and Slack agents, or automations, upgrade to Pro. - - - Customers on legacy credit plans keep their existing credit packs and pricing. The tiers below apply to the Pro plan. - - -## Pricing tiers - -| Monthly credits | Monthly cost | -| :-- | :-- | -| 10,000 | \$0 | -| 25,000 | \$145 | -| 50,000 | \$370 | -| 100,000 | \$800 | - -## Plan availability - -Credits are available on the **Pro plan and above**. Every Pro plan includes 10,000 credits per month, and you can purchase additional credits from the [Usage](https://app.mintlify.com/settings/organization/usage) page whenever you need more. - The free Starter plan does not include AI features. You cannot purchase credits on the starter plan. To use the assistant, agent, or automations, upgrade to Pro or Enterprise. @@ -44,15 +25,15 @@ The free Starter plan does not include AI features. You cannot purchase credits ## Pricing tiers | Monthly credits | Monthly cost | -| :-- | :-- | -| 10,000 | \$0 | -| 25,000 | \$145 | -| 50,000 | \$370 | -| 100,000 | \$800 | +|:----------------|:-------------| +| 10,000 | $0 | +| 25,000 | $145 | +| 50,000 | $370 | +| 100,000 | $800 | If you need more than 100,000 credits per month, [contact sales](https://www.mintlify.com/contact/sales) to discuss a custom plan. -**Overages** cost an additional \$0.01 per credit rather than triggering an automatic tier upgrade. You can set usage alerts to receive an email when you reach a certain percentage of your tier limit. Allowing overages can be cheaper than moving up a tier depending on your usage patterns. +**Overages** cost an additional $0.01 per credit rather than triggering an automatic tier upgrade. You can set usage alerts to receive an email when you reach a certain percentage of your tier limit. Allowing overages can be cheaper than moving up a tier depending on your usage patterns. Overages default to off. You must enable them on the [Usage](https://app.mintlify.com/settings/organization/usage) page of your dashboard. @@ -71,7 +52,7 @@ For high-volume usage or custom credit packages, [contact sales](mailto:sales@mi Different features consume different amounts of credits per interaction: | Feature | Average credits per interaction | -| :-- | :-- | +|:--------|:--------------------------------| | Assistant response | 23 | | Editor agent run | 115 | | Slack agent run | 110 | @@ -79,7 +60,7 @@ Different features consume different amounts of credits per interaction: Automations also consume credits when they run: | Automation | Average credits per run | -| :-- | :-- | +|:---------|:------------------------| | Update from code changes | 180 | | Update from assistant conversations | 212 | | Broken link detection | 285 | @@ -112,4 +93,4 @@ The exported CSV includes the date, product, and credits consumed for each event **Schedule automations instead of triggering on every push.** Automations like SEO audits, writing style checks, and broken link detection don't need to run on every code change. Running these on a daily or weekly cron schedule rather than on every push significantly reduces credit consumption without meaningful impact on content quality. -**Monitor your usage patterns.** The [Usage](https://app.mintlify.com/settings/organization/usage) page in your dashboard shows a breakdown by feature category. If a particular automation is consuming more credits than expected, review its trigger or any custom instructions. \ No newline at end of file +**Monitor your usage patterns.** The [Usage](https://app.mintlify.com/settings/organization/usage) page in your dashboard shows a breakdown by feature category. If a particular automation is consuming more credits than expected, review its trigger or any custom instructions. diff --git a/customize/custom-scripts.mdx b/customize/custom-scripts.mdx index 1054fce68e..2bede3b03f 100644 --- a/customize/custom-scripts.mdx +++ b/customize/custom-scripts.mdx @@ -6,8 +6,6 @@ keywords: ["CSS", "JavaScript", "Tailwind CSS", "style customization"] Use CSS to style HTML elements or add custom CSS and JavaScript to fully customize the look and feel of your documentation. -/ - ## Style with Tailwind CSS Use Tailwind CSS v3 to style HTML elements. You can control layout, spacing, colors, and other visual properties. Some common classes are: @@ -61,96 +59,83 @@ Mintlify exposes two types of CSS targeting hooks: Each ID appears once per page. Use these as `#value` in CSS. For example, `#navbar { background: red; }`. - - - `#body-content` — Outermost wrapper for the page body. - - `#content-area` — Primary content area, excluding the sidebar and table of contents. - - `#content` — Inner content element within the content area. - - `#header` — Page-level header element. - - `#banner` — Announcement banner displayed above the navbar. - - `#footer` — Page footer. Also targetable as an element selector: `footer`. - - `#page-title` — The `

` heading at the top of each page. - - `#pagination` — Bottom pagination bar with previous and next page links. - - `#panel` — Floating panel overlay. Also targetable as an element selector: `panel`. - - `#background-color` — Page background color element. - - - - - `#navbar` — Top navigation bar. - - `#topbar-cta-button` — Call-to-action button in the topbar. - - `#mobile-nav` — Mobile navigation overlay. - - `#mobile-nav-content` — Content area within the mobile navigation overlay. - - - - - `#sidebar` — The sidebar navigation panel. - - `#sidebar-content` — Scrollable content area within the sidebar. - - - - - `#table-of-contents` — Table of contents panel on the right side of the page. - - `#table-of-contents-layout` — Layout wrapper for the table of contents. - - `#table-of-contents-content` — Scrollable content within the table of contents. - - - - - `#search-bar-entry` — Search bar trigger in the topbar. - - `#search-bar-entry-mobile` — Search bar trigger on mobile. - - `#search-input` — Text input field within the search modal. - - - - - `#assistant-entry` — AI assistant button in the topbar. - - `#assistant-entry-mobile` — AI assistant button on mobile. - - `#chat-assistant-sheet` — AI assistant chat panel. - - `#chat-assistant-textarea` — Text input within the AI assistant panel. - - - - - `#request-example` — Request example panel in the API playground. - - `#response-example` — Response example panel in the API playground. - - `#api-playground-input` — Input section of the API playground. - - `#endpoints-menu-trigger` — Button that opens the endpoint selector dropdown. - - - - - `#ask-assistant-code-block-button` — "Ask Assistant" button that appears on code blocks. - - `#code-snippet-feedback-button` — Feedback button on code snippets. - - `#code-snippet-feedback-textarea` — Text area within the code snippet feedback form. - - - - - `#feedback-thumbs-up` — Thumbs-up feedback button at the bottom of a page. - - `#feedback-thumbs-down` — Thumbs-down feedback button at the bottom of a page. - - `#feedback-form` — Feedback form shown after a thumbs-down response. - - `#feedback-form-input` — Text input within the feedback form. - - `#feedback-form-cancel` — Cancel button within the feedback form. - - `#feedback-form-submit` — Submit button within the feedback form. - - - - - `#page-context-menu` — Contextual options menu for the current page. - - `#page-context-menu-button` — Button that triggers the page context menu. - - - - - `#localization-select-trigger` — Button that opens the language selector. - - `#localization-select-content` — Dropdown content of the language selector. - - `#localization-select-item` — Individual language option within the selector. - - - - - `#changelog-filters` — Filter controls on a changelog page. - - `#changelog-filters-content` — Content area within the changelog filter panel. - - - - - `#multi-view-dropdown` — Dropdown for switching between documentation views. - - - - - `#text-selection-tooltip` — Tooltip that appears when you select textyou select text on a page. - - `#text-selection-tooltip-button` — Action button within the text selection tooltip. - + + - `#body-content` — Outermost wrapper for the page body. + - `#content-area` — Primary content area, excluding the sidebar and table of contents. + - `#content` — Inner content element within the content area. + - `#header` — Page-level header element. + - `#banner` — Announcement banner displayed above the navbar. + - `#footer` — Page footer. Also targetable as an element selector: `footer`. + - `#page-title` — The `

` heading at the top of each page. + - `#pagination` — Bottom pagination bar with previous and next page links. + - `#panel` — Floating panel overlay. Also targetable as an element selector: `panel`. + - `#background-color` — Page background color element. + + + - `#navbar` — Top navigation bar. + - `#topbar-cta-button` — Call-to-action button in the topbar. + - `#mobile-nav` — Mobile navigation overlay. + - `#mobile-nav-content` — Content area within the mobile navigation overlay. + + + - `#sidebar` — The sidebar navigation panel. + - `#sidebar-content` — Scrollable content area within the sidebar. + + + - `#table-of-contents` — Table of contents panel on the right side of the page. + - `#table-of-contents-layout` — Layout wrapper for the table of contents. + - `#table-of-contents-content` — Scrollable content within the table of contents. + + + - `#search-bar-entry` — Search bar trigger in the topbar. + - `#search-bar-entry-mobile` — Search bar trigger on mobile. + - `#search-input` — Text input field within the search modal. + + + - `#assistant-entry` — AI assistant button in the topbar. + - `#assistant-entry-mobile` — AI assistant button on mobile. + - `#chat-assistant-sheet` — AI assistant chat panel. + - `#chat-assistant-textarea` — Text input within the AI assistant panel. + + + - `#request-example` — Request example panel in the API playground. + - `#response-example` — Response example panel in the API playground. + - `#api-playground-input` — Input section of the API playground. + - `#endpoints-menu-trigger` — Button that opens the endpoint selector dropdown. + + + - `#ask-assistant-code-block-button` — "Ask Assistant" button that appears on code blocks. + - `#code-snippet-feedback-button` — Feedback button on code snippets. + - `#code-snippet-feedback-textarea` — Text area within the code snippet feedback form. + + + - `#feedback-thumbs-up` — Thumbs-up feedback button at the bottom of a page. + - `#feedback-thumbs-down` — Thumbs-down feedback button at the bottom of a page. + - `#feedback-form` — Feedback form shown after a thumbs-down response. + - `#feedback-form-input` — Text input within the feedback form. + - `#feedback-form-cancel` — Cancel button within the feedback form. + - `#feedback-form-submit` — Submit button within the feedback form. + + + - `#page-context-menu` — Contextual options menu for the current page. + - `#page-context-menu-button` — Button that triggers the page context menu. + + + - `#localization-select-trigger` — Button that opens the language selector. + - `#localization-select-content` — Dropdown content of the language selector. + - `#localization-select-item` — Individual language option within the selector. + + + - `#changelog-filters` — Filter controls on a changelog page. + - `#changelog-filters-content` — Content area within the changelog filter panel. + + + - `#multi-view-dropdown` — Dropdown for switching between documentation views. + + + - `#text-selection-tooltip` — Tooltip that appears when you select text on a page. + - `#text-selection-tooltip-button` — Action button within the text selection tooltip. + ### Element selectors @@ -180,7 +165,6 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `tooltip` — Tooltip element. - `update` — Changelog update entry. - - `mdx-content` — Rendered MDX content area. - `panel` — Floating panel component. Also targetable as an ID selector: `#panel`. @@ -189,7 +173,6 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `breadcrumb-list` — Breadcrumb navigation list. - `breadcrumb-item` — Individual breadcrumb item. - - `nav-logo` — Logo in the navigation bar. - `navbar-link` — Link element within the navigation bar. @@ -202,7 +185,6 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `nav-tag-pill` — Tag pill shown in the navigation. - `nav-tag-pill-text` — Text within a navigation tag pill. - - `nav-dropdown-trigger` — Button that opens a navigation dropdown. - `nav-dropdown-content` — Content container for a navigation dropdown. @@ -212,7 +194,6 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `nav-dropdown-item-description` — Description text within a dropdown item. - `nav-dropdown-item-icon` — Icon within a dropdown item. - - `nav-dropdown-products-selector-trigger` — Button that opens the products selector dropdown. - `nav-dropdown-products-selector-content` — Content container for the products selector. @@ -221,7 +202,6 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `nav-dropdown-products-selector-item-description` — Description of a product selector item. - `nav-dropdown-products-selector-item-icon` — Icon of a product selector item. - - `sidebar-group` — Group of related sidebar links. - `sidebar-group-icon` — Icon for a sidebar group. @@ -229,23 +209,19 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `sidebar-title` — Top-level title in the sidebar. - `sidebar-nav-group-divider` — Divider between sidebar navigation groups. - - `toc` — Table of contents container. - `toc-item` — Individual heading entry in the table of contents. - - `footer` — Standard page footer. Also targetable as an ID selector: `#footer`. - `advanced-footer` — Extended footer with additional columns or content. - - `pagination-prev` — Previous page link in the pagination bar. - `pagination-next` — Next page link in the pagination bar. - `pagination-title` — Page title shown in the pagination bar. - - `api-section` — Full section for a single API endpoint. - `api-section-heading` — Heading area for an API endpoint section. @@ -258,7 +234,6 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `method-nav-pill` — HTTP method badge shown in the sidebar navigation. - `prompt` — Prompt component in the API reference. - - `chat-assistant-sheet` — AI assistant panel container. - `chat-assistant-sheet-header` — Header of the AI assistant panel. @@ -270,7 +245,6 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `chat-assistant-payload-item` — Individual message or result item in the assistant panel. - `starter-question-text` — Suggested starter question shown in an empty assistant panel. - - `feedback-toolbar` — Toolbar containing page feedback controls. - `contextual-feedback-container` — Container for contextual inline feedback. @@ -280,7 +254,6 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `contextual-feedback-button` — Action button within the contextual feedback form. - `contextual-feedback-form-submit-button` — Submit button for the contextual feedback form. - - `code-snippet-feedback-popover-content` — Popover content for code snippet feedback. - `code-snippet-feedback-form` — Feedback form for a code snippet. @@ -289,12 +262,10 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `code-snippet-feedback-form-description` — Description text in the code snippet feedback form. - `code-snippet-feedback-form-submit-button` — Submit button for the code snippet feedback form. - - `login-link` — Link that initiates the login flow. - `logout-link` — Link that initiates the logout flow. - - `multi-view-item` — Individual view option in a multi-view switcher. - `multi-view-dropdown` — Dropdown for selecting between multiple views. @@ -302,14 +273,12 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `multi-view-dropdown-content` — Content area of the multi-view dropdown. - `multi-view-dropdown-item` — Individual item within the multi-view dropdown. - - `directory` — Root container for a directory page. - `directory-group` — Group of related pages within a directory. - `directory-page` — Individual page entry in a directory. - `directory-card` — Card-style page entry in a directory. - - `not-found-container` — Root container of the 404 page. - `not-found-status-code` — Status code display on the 404 page. @@ -318,19 +287,16 @@ Multiple instances of these elements can appear on a page. Use these as `value` - `not-found-recommended-pages-list` — List of recommended pages shown on the 404 page. - `not-found-recommended-page-link` — Individual link in the recommended pages list. - - `color` — Color swatch element. - `color-row` — Row grouping color swatches. - `color-item` — Individual color item within a color row. - - `tree` — File tree container. - `tree-folder` — Folder entry within a file tree. - `tree-file` — File entry within a file tree. - Some elements expose data attributes you can use as CSS selectors. diff --git a/customize/fonts.mdx b/customize/fonts.mdx index 845dc95845..d6bc0e1e7f 100644 --- a/customize/fonts.mdx +++ b/customize/fonts.mdx @@ -26,32 +26,33 @@ To use local fonts, place your font files in your project directory and referenc ### Set up local fonts - - For example, create a `fonts` directory and add your font files: - - ```text - your-project/ - ├── fonts/ - │ ├── InterDisplay-Regular.woff2 - │ └── InterDisplay-Bold.woff2 - ├── docs.json - └── ... - ``` - - - Reference your local fonts using relative paths from your project root: - - ```json docs.json - { - "fonts": { - "family": "InterDisplay", - "source": "/fonts/InterDisplay-Regular.woff2", - "format": "woff2", - "weight": 400 - } - } - ``` - + +For example, create a `fonts` directory and add your font files: + +```text +your-project/ +├── fonts/ +│ ├── InterDisplay-Regular.woff2 +│ └── InterDisplay-Bold.woff2 +├── docs.json +└── ... +``` + + + +Reference your local fonts using relative paths from your project root: + +```json docs.json +{ + "fonts": { + "family": "InterDisplay", + "source": "/fonts/InterDisplay-Regular.woff2", + "format": "woff2", + "weight": 400 + } +} +``` + ### Local fonts for headings and body @@ -101,19 +102,15 @@ Use externally hosted fonts by referencing a font source URL in your `docs.json` Font family name, such as "Inter" or "Playfair Display." - Font weight, such as 400 or 700. Variable fonts support precise weights such as 550. - - URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file, such as `/assets/fonts/InterDisplay.woff2`. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URLload automatically when you specify a Google Font `family` name, so you don't need a source URL. + URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file, such as `/assets/fonts/InterDisplay.woff2`. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URL. - Font file format. Required when using the `source` field. - Override font settings specifically for headings. @@ -121,21 +118,17 @@ Use externally hosted fonts by referencing a font source URL in your `docs.json` Font family name for headings. - Font weight for headings. - - URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file for headings. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URLload automatically when you specify a Google Font `family` name, so you don't need a source URL. + URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file for headings. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URL. - Font file format for headings. Required when using the `source` field. - Override font settings specifically for body text. @@ -143,19 +136,16 @@ Use externally hosted fonts by referencing a font source URL in your `docs.json` Font family name for body text. - Font weight for body text. - - URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file for body text. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URLload automatically when you specify a Google Font `family` name, so you don't need a source URL. + URL to your font source, such as `https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2`, or path to your local font file for body text. Google Fonts load automatically when you specify a Google Font `family` name, so you don't need a source URL. - Font file format for body text. Required when using the `source` field. - \ No newline at end of file + diff --git a/optimize/analytics.mdx b/optimize/analytics.mdx index 23f1fcbaa0..3a224d86a8 100644 --- a/optimize/analytics.mdx +++ b/optimize/analytics.mdx @@ -1,7 +1,7 @@ --- title: "Analytics" description: "Track documentation analytics in the Mintlify dashboard to understand page views, visitor trends, search queries, and content effectiveness." -keywords: ["analytics", "metrics", "page views", "traffic", "trends", "insights"] +keywords: ["analytics","metrics","page views","traffic","trends","insights"] boost: 3 --- @@ -17,14 +17,15 @@ Filter your analytics data by traffic source to analyze AI agent traffic separat The traffic source filter on the analytics page. + The traffic source filter on the analytics page. @@ -36,14 +37,15 @@ Use the range selector to adjust the time period for displayed data. The range selector expanded to show options for viewing different time periods of data. + The range selector expanded to show options for viewing different time periods of data. @@ -57,11 +59,9 @@ Review your visitors analytics to: - **Identify popular pages**: Use popular pages to understand what content is most important to your users so that you can make sure it is up to date and comprehensive. - **Track traffic sources**: Understand where your users are coming from to help you optimize your content for the right audience. -### Agent visitorAgent visitors - -Agent visitors are identified by IP address and user agent. The agent visitor count approximates distinct sources of AI traffic rather than individual agent sessions or conversations. Multiple requests from the same IP address count as one visitor.Agent visitors are identified by IP address and user agent. The agent visitor count approximates distinct sources of AI traffic rather than individual agent sessions or conversations. Multiple requests from the same IP address count as one visitor. Mintlify identifies agent visitors by IP address and user agent. The agent visitor count approximates distinct sources of AI traffic rather than individual agent sessions or conversations. Multiple requests from the same IP address count as one visitor. Mintlify identifies agent visitors by IP address and user agent. The agent visitor count approximates distinct sources of AI traffic rather than individual agent sessions or conversations. Multiple requests from the same IP address count as one visitor. +### Agent visitors -When viewing agent traffic, top agents replaces referrals in the visitors tab. Top agents shows which AI agents are visiting your documentation. Use this information to help determine: +Mintlify identifies agent visitors by IP address and user agent. The agent visitor count approximates distinct sources of AI traffic rather than individual agent sessions or conversations. Multiple requests from the same IP address count as one visitor. When viewing agent traffic, top agents replaces referrals in the visitors tab. Top agents shows which AI agents are visiting your documentation. Use this information to help determine: @@ -94,14 +94,15 @@ The categories tab uses LLMs to automatically group conversations by topic or th The categories tab in the assistant analytics page. + The categories tab in the assistant analytics page. @@ -120,7 +121,7 @@ Click any message to view the complete chat thread, including the user's questio ## Searches - The Searches metric is only available when viewing human traffic. +The Searches metric is only available when viewing human traffic. The searches tab displays a bar chart of searches over time and specific queries. @@ -134,10 +135,10 @@ Review your searches analytics to: ## MCP searches - The MCP Searches metric is only available when viewing AI traffic. +The MCP Searches metric is only available when viewing AI traffic. -The MCP searches tab displays AI agent search interactions through the Model Context Protocol (MCP). This metric counts calls to your MCP server's search tool, so it reflects agents that users connected to your MCP server and issued a search, not general AI crawler traffic to your docs pagescounts calls to your MCP server's search tool, so it reflects agents that users connected to your MCP server and issued a search, not general AI crawler traffic to your docs pages. The MCP searches tab displays AI agent search interactions through the Model Context Protocol (MCP). This metric counts calls to your MCP server's search tool. It reflects agents that users connected to your MCP server and then issued a search, not general AI crawler traffic to your docs pages. The MCP searches tab displays AI agent search interactions through the Model Context Protocol (MCP). This metric counts calls to your MCP server's search tool. It reflects agents that users connected to your MCP server and then issued a search, not general AI crawler traffic to your docs pages. +The MCP searches tab displays AI agent search interactions through the Model Context Protocol (MCP). This metric counts calls to your MCP server's search tool. It reflects agents that users connected to your MCP server and then issued a search, not general AI crawler traffic to your docs pages. Review your MCP searches analytics to: @@ -156,10 +157,10 @@ See [Feedback](/optimize/feedback) for more information on using feedback data t Export any analytics tab to CSV for deeper analysis, reporting, or archival. Exports respect the current traffic source and time range filters. 1. Navigate to the [analytics](https://app.mintlify.com/products/analytics/) page of your dashboard. -2. ClickClick the tab you want to export. -3. Optionally, adjust the traffic source and time range to narrow down the data you want to export. -4. Click **Export to CSV**. -5. Mintlify sends you an email with a download link when the export is ready. +1. Click the tab you want to export. +1. Optionally, adjust the traffic source and time range to narrow down the data you want to export. +1. Click **Export to CSV**. +1. Mintlify sends you an email with a download link when the export is ready. ### Assistant exports @@ -171,4 +172,4 @@ Assistant exports include the queries, responses, sources, and a `resolutionStat - List any queries that had no sources cited. - Find patterns in unsuccessful interactions. - Group unanswered queries by topic to prioritize content updates. - \ No newline at end of file + diff --git a/optimize/search.mdx b/optimize/search.mdx index c8b127f626..3e75dac89a 100644 --- a/optimize/search.mdx +++ b/optimize/search.mdx @@ -99,7 +99,7 @@ To exclude a page from both in-product search and external indexing, use [`noind Control how many results the search bar returns per query from your dashboard. The default is `6` results. You can set any value between `1` and `100`. -In your dashboard, navigate to **Settings** \> **Deployment** \> **Search**, set **Maximum search results** to the value you want, and select **Save changes**. +In your dashboard, navigate to **Settings** > **Deployment** > **Search**, set **Maximum search results** to the value you want, and select **Save changes**. **Deployment** \> **Search**, set /> -Higher values surface more matches per query, which is useful for sites with broad topic coverage where users expect to scan many candidates. Lower values keep the results panel compact and push users toward the top-ranked match. \ No newline at end of file +Higher values surface more matches per query, which is useful for sites with broad topic coverage where users expect to scan many candidates. Lower values keep the results panel compact and push users toward the top-ranked match. diff --git a/organize/hidden-pages.mdx b/organize/hidden-pages.mdx index 04bad7b22a..cc8dccfd54 100644 --- a/organize/hidden-pages.mdx +++ b/organize/hidden-pages.mdx @@ -14,12 +14,6 @@ Use hidden pages for content you want users to access or reference as context fo If your content requires strict access control, you must configure [authentication](/deploy/authentication-setup). To restrict pages to specific user groups, set up [group-based access control](/deploy/authentication-setup#control-access-with-groups). - - Hidden pages are not private. Anyone with the URL can view them, and links shared externally still work. Hiding a page only removes it from the rendered navigation. - - If your content requires strict access control, you must configure [authentication](/deploy/authentication-setup). To restrict pages to specific user groups, set up [group-based access control](/deploy/authentication-setup#control-access-with-groups). - - See an [example of a hidden page](/organize/hidden-page-example). @@ -105,7 +99,7 @@ By default, hidden pages don't appear in indexing for search engines, documentat The following table summarizes how each property affects page visibility and indexing: | Property | Sidebar navigation | Site search | Sitemap | Search engine indexing | AI assistant context | -| --- | --- | --- | --- | --- | --- | +|---|---|---|---|---|---| | `hidden: true` | Hidden | Excluded | Excluded | Excluded | Excluded | | `noindex: true` | Visible | Excluded | Excluded | Excluded | Excluded | | `searchable: false` (page frontmatter) | Visible | Excluded | Included | Included | Excluded | @@ -165,6 +159,6 @@ Page-level `searchable` does not override `hidden: true` on the same page. To ma The relationship between `hidden` and `noindex` is one-directional: - **`hidden: true` → automatically applies `noindex`**: Hidden pages are automatically excluded from search engines, sitemaps, and AI context. -- **`noindex: true` → does NOT apply `hidden`**: Pages with `noindex: true` remain visible in navigation. They don't appear in site search, sitemaps, search engine indexing, ordon't appear in site search, sitemaps, search engine indexing, or AI assistant context. +- **`noindex: true` → does NOT apply `hidden`**: Pages with `noindex: true` remain visible in navigation. They don't appear in site search, sitemaps, search engine indexing, or AI assistant context. To exclude a specific page from search and indexing while keeping it visible in navigation, add `noindex: true` to its frontmatter. To hide a page from navigation as well, use `hidden: true`. To exclude a page only from your in-product search and AI assistant context while keeping it indexable by external search engines, use [`searchable: false`](/optimize/search#exclude-a-page-from-search) instead. \ No newline at end of file diff --git a/organize/navigation.mdx b/organize/navigation.mdx index 59a8927003..44f8bddebf 100644 --- a/organize/navigation.mdx +++ b/organize/navigation.mdx @@ -11,23 +11,9 @@ With proper navigation configuration, you can organize your content so that user Choose one primary organizational pattern at the root level of your navigation. Once you've chosen your primary pattern, you can nest other navigation elements within it. -### Choose a primary patternChoose a primary pattern +### Choose a primary pattern -Use the pattern that matches how you want visitors to move between top-level sections of your contentUse the pattern that matches how you want visitors to move between top-level sections of your content. - -| Pattern | Use when | Example | -| --- | --- | --- | -| [Groups](#groups) | Your content fits in one linear sidebar and you don't need a second axis of navigation. | A single-product SDK reference. | -| [Tabs](#tabs) | You have parallel sections that share the same audience. | Guides, API reference, and SDKs tabs for one product. | -| [Anchors](#anchors) | You want persistent links to a small number of top-level destinations (external or internal) visible at all times. | Community, status page, or another link alongside your product documentation. | -| [Dropdowns](#dropdowns) | Similar to tabs, but you want to use a dropdown menu for navigation. | Switching between product documentation, API reference, and partner integrations. | -| [Products](#products) | You maintain documentation for multiple distinct products under one deployment, and each product has its own full site. | A platform with separate content for Payments, Identity, and Analytics. | -| [Versions](#versions) | You publish multiple versions of the same content in parallel. | Maintaining `v1` and `v2` API docs simultaneously. | -| [Languages](#languages) | You publish translated versions of the same content. | English, Spanish, and Japanese documentation for one product. | - -## Pages - -Pages are the most fundamental navigation component. Each page is an MDX file in your documentation repository. +Use the pattern that matches how you want visitors to move between top-level sections of your content. | Pattern | Use when | Example | | --- | --- | --- | @@ -44,14 +30,15 @@ Pages are the most fundamental navigation component. Each page is an MDX file in Pages are the most fundamental navigation component. Each page is an MDX file in your documentation repository. Decorative graphic of pages. + Decorative graphic of pages. In the `navigation` object, `pages` is an array where each entry must reference the path to a [page file](/organize/pages). @@ -75,14 +62,15 @@ In the `navigation` object, `pages` is an array where each entry must reference Use groups to organize your sidebar navigation into sections. You can nest groups within each other, label them with tags, and style them with icons. Decorative graphic of groups. + Decorative graphic of groups. In the `navigation` object, `groups` is an array where each entry is an object that requires a `group` field and a `pages` field. The `icon`, `tag`, `root`, and `expanded` fields are optional. @@ -150,7 +138,7 @@ Use the `directory` property to automatically render a directory of child pages The `directory` property accepts three values: | Value | Behavior | -| :-- | :-- | +| :---------- | :------- | | `"none"` | No directory listing. Default value. | | `"accordion"` | Displays child pages in a collapsible list grouped by section. | | `"card"` | Displays child pages in a horizontal card layout. | @@ -193,7 +181,6 @@ You can set `directory` anywhere in the navigation object in your `docs.json` fi ``` In this example: - - **Help Center** uses `"accordion"` and its root page displays a directory listing. - **Getting Started** inherits `"accordion"` from its parent and also displays a directory listing. - **API Reference** overrides with `"none"`, so its root page does not display a directory listing. @@ -210,7 +197,7 @@ Use the `expanded` property to control the default state of a nested group in th - `expanded: false` or omitted: Collapses the group by default. - The `expanded` property only affects nested groups——groups within groups. Top-level groups always expand and you cannot collapse them. + The `expanded` property only affects nested groups—groups within groups. Top-level groups always expand and you cannot collapse them. ```json @@ -232,14 +219,15 @@ Use the `expanded` property to control the default state of a nested group in th Tabs create distinct sections of your documentation with separate URL paths. Tabs create a horizontal navigation bar at the top of your documentation that lets users switch between sections. Decorative graphic of a tab navigation. + Decorative graphic of a tab navigation. In the `navigation` object, `tabs` is an array where each entry is an object that requires a `tab` field and can contain other navigation fields such as groups, pages, icons, or links to external pages. @@ -329,14 +317,15 @@ Menu items can only contain groups, pages, and external links. Anchors add persistent navigation items to the top of your sidebar. Use anchors to section your content, provide quick access to external resources, or create prominent calls to action. Decorative graphic of an anchor navigation. + Decorative graphic of an anchor navigation. In the `navigation` object, `anchors` is an array where each entry is an object that requires an `anchor` field and can contain other navigation fields such as groups, pages, icons, or links to external pages. @@ -403,14 +392,15 @@ Global anchors support both external URLs and relative paths to pages within you ## Products Decorative graphic of a product switcher. + Decorative graphic of a product switcher. Products create a dedicated navigation division for organizing product-specific documentation. Use products to separate different offerings, services, or major feature sets within your documentation. @@ -468,14 +458,15 @@ In the `navigation` object, `products` is an array where each entry is an object Dropdowns are an expandable menu at the top of your sidebar navigation. Each item in a dropdown directs to a section of your documentation. Decorative graphic of a dropdown navigation. + Decorative graphic of a dropdown navigation. In the `navigation` object, `dropdowns` is an array where each entry is an object that requires a `dropdown` field and can contain other navigation fields such as groups, pages, icons, or links to external pages. @@ -519,7 +510,7 @@ Set a default OpenAPI specification at any level of your navigation hierarchy. C When you add the `openapi` property to a navigation element (such as an anchor, tab, or group) without specifying any pages, Mintlify automatically generates pages for **all endpoints** defined in your OpenAPI specification. - + To control which endpoints appear, explicitly list the desired endpoints in a `pages` array. @@ -557,14 +548,15 @@ For more information about referencing OpenAPI endpoints in your docs, see the [ Partition your navigation into different versions. Versions are selectable from a dropdown menu. Decorative graphic of a version switcher. + Decorative graphic of a version switcher. In the `navigation` object, `versions` is an array where each entry is an object that requires a `version` field and can contain any other navigation fields. @@ -676,19 +668,20 @@ Add a badge label to version entries in the version selector dropdown using the Partition your navigation into different languages. Languages are selectable from a dropdown menu. Decorative graphic of a language switcher. + Decorative graphic of a language switcher. In the `navigation` object, `languages` is an array where each entry is an object that requires a `language` field and can contain any other navigation fields, including language-specific banner, footer, and navbar configurations. -Mintlify supportsMintlify supports the following languages for localization: +Mintlify supports the following languages for localization: | Language | Code | | --- | --- | @@ -1065,7 +1058,6 @@ When a user expands a navigation group, some themes automatically navigate to th - Leave unset to use the theme's default behavior. - ```json Force navigation "interaction": { "drilldown": true // Force navigation to first page when a user expands a dropdown @@ -1077,5 +1069,4 @@ When a user expands a navigation group, some themes automatically navigate to th "drilldown": false // Never navigate, only expand or collapse the group } ``` - - \ No newline at end of file + diff --git a/organize/pages.mdx b/organize/pages.mdx index dc0ddd6bb8..2afddd9959 100644 --- a/organize/pages.mdx +++ b/organize/pages.mdx @@ -35,9 +35,8 @@ Use frontmatter to control: The icon to display. - + Options: - - [Font Awesome icon](https://fontawesome.com/icons) name - [Lucide icon](https://lucide.dev/icons) name - [Tabler icon](https://tabler.io/icons) name @@ -47,7 +46,7 @@ Use frontmatter to control: For [Font Awesome](https://fontawesome.com/icons) icons only. The style of the icon. - + Options: `regular`, `solid`, `light`, `thin`, `sharp-solid`, `duotone`, `brands`. @@ -68,7 +67,7 @@ Use frontmatter to control: - Multiply the page's in-product search ranking by this factor. Use values greater than `1` to prioritize the page and values between `0` and `1` to de-prioritize it. See [Search](/optimize/search#boost-search-ranking) for details. `boost` has no effect when `searchable: false`, since the page doesn't appear indoesn't appear in in-product search results. + Multiply the page's in-product search ranking by this factor. Use values greater than `1` to prioritize the page and values between `0` and `1` to de-prioritize it. See [Search](/optimize/search#boost-search-ranking) for details. `boost` has no effect when `searchable: false`, since the page doesn't appear in in-product search results. @@ -214,7 +213,7 @@ keywords: ['configuration', 'setup', 'getting started'] ## Last modified timestamp -Show a "Last modified on \[date\]" timestamp on all pages by enabling `metadata.timestamp` in your [global settings](/organize/settings-seo#metadata). +Show a "Last modified on [date]" timestamp on all pages by enabling `metadata.timestamp` in your [global settings](/organize/settings-seo#metadata). ```json docs.json "metadata": { @@ -233,4 +232,4 @@ timestamp: false --- ``` -If you set `timestamp: true`, the page always shows the timestamp even if the global setting is `false`. If you set `timestamp: false`, the page hides the timestamp even if the global setting is `true`. \ No newline at end of file +If you set `timestamp: true`, the page always shows the timestamp even if the global setting is `false`. If you set `timestamp: false`, the page hides the timestamp even if the global setting is `true`. diff --git a/quickstart.mdx b/quickstart.mdx index e14dce0bbd..4fc7601ca7 100644 --- a/quickstart.mdx +++ b/quickstart.mdx @@ -11,7 +11,7 @@ After you complete this guide, you'll have a live documentation site ready to cu ## Before you begin -Mintlify. uses a docs-as-code approach to manage your documentation. Every page on your site has a corresponding file stored in your documentation repository. +Mintlify uses a docs-as-code approach to manage your documentation. Every page on your site has a corresponding file stored in your documentation repository. When you connect your documentation repository to your project, you can work on your documentation locally or in the web editor and sync any changes to your remote repository. @@ -21,6 +21,8 @@ When you connect your documentation repository to your project, you can work on Copy the following prompt to add the Mintlify [skill](/ai/skillmd) and [MCP server](/ai/model-context-protocol) for better results when updating your documentation. + + ## Deploy your documentation site Go to [mintlify.com/start](https://mintlify.com/start) and complete the onboarding process. During onboarding, you'll connect your GitHub account, create or select a repository for your documentation, and install the GitHub App to enable automatic deployments. @@ -73,6 +75,7 @@ Find your exact URL on the **Overview** page of your [dashboard](https://app.min ``` ```bash pnpm + pnpm add -g mint ``` From 02edf8adbeb2bc9a59883f87ec9af0d0061666df Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 03:28:37 +0000 Subject: [PATCH 04/30] Updated mintlify pages - Updated ai/contextual-menu.mdx - Updated docs.json Mintlify-Source: dashboard-editor --- ai/contextual-menu.mdx | 72 ++++++++++++++++++++---------------------- docs.json | 2 +- 2 files changed, 36 insertions(+), 38 deletions(-) diff --git a/ai/contextual-menu.mdx b/ai/contextual-menu.mdx index 885e0b0f24..9651ce57d2 100644 --- a/ai/contextual-menu.mdx +++ b/ai/contextual-menu.mdx @@ -1,5 +1,5 @@ --- -title: "Contextual menu" +title: "Context" description: "Add a contextual menu to your docs with one-click AI integrations for ChatGPT, Claude, Perplexity, Google AI Studio, Devin, Devin Desktop, and MCP tools." keywords: ["AI tools", "ChatGPT", "Claude", "Perplexity", "MCP", "Grok", "cursor", "vscode", "vs code", "Google AI Studio", "aistudio", "Devin", "Windsurf", "Devin Desktop", "pdf", "copy page", "copy button", "copy markdown", "copy as markdown", "view as markdown", "context menu", "page menu", "AI menu", "AI actions", "open in", "download pdf", "export pdf", "ask ai", "openapi", "download spec"] --- @@ -18,7 +18,7 @@ The contextual menu provides quick access to AI-optimized content and direct int The contextual menu includes several pre-built options that you can enable by adding their identifier to your configuration. | Option | Identifier | Description | -|:--------|:------------|:-------------| +| :-- | :-- | :-- | | **Copy page** | `copy` | Copies the current page as Markdown for pasting as context into AI tools | | **View as Markdown** | `view` | Opens the current page as Markdown | | **Ask assistant** | `assistant` | Opens the [assistant](/assistant/index) with the current page as context | @@ -39,10 +39,7 @@ The contextual menu includes several pre-built options that you can enable by ad | **Custom options** | Object | Add custom options to the contextual menu | - The expanded contextual menu showing the Copy page, View as Markdown, Open in ChatGPT, and Open in Claude menu items. + ![The expanded contextual menu showing the Copy page, View as Markdown, Open in ChatGPT, and Open in Claude menu items.](/images/contextual-menu/contextual-menu.png) ## Enable the contextual menu @@ -88,7 +85,7 @@ By default, the contextual menu appears in the page header. You can configure it ``` | Value | Description | -|:------|:------------| +| :-- | :-- | | `header` | Displays options in the top-of-page context menu (default) | | `toc` | Displays options in the table of contents sidebar | @@ -108,7 +105,7 @@ Create custom options in the contextual menu by adding an object to the `options The href of the option. Use a string for simple links or an object for dynamic links with query parameters. - + The base URL for the option. @@ -124,6 +121,7 @@ Create custom options in the contextual menu by adding an object to the `options The query parameter value. Mintlify replaces the following placeholders with the corresponding values: + - Use `$page` to insert the current page content in Markdown. - Use `$path` to insert the current page path. - Use `$mcp` to insert the hosted MCP server URL. @@ -135,7 +133,7 @@ Create custom options in the contextual menu by adding an object to the `options Example custom option: -```json {9-14} wrap +```json highlight={9-14} wrap { "contextual": { "options": [ @@ -158,33 +156,33 @@ Example custom option: ### Custom option examples - -```json -{ - "title": "Request a feature", - "description": "Join the discussion on GitHub", - "icon": "plus", - "href": "https://github.com/orgs/mintlify/discussions/categories/feature-requests" -} -``` - - - -```json -{ - "title": "Share on X", - "description": "Share this page on X", - "icon": "x", - "href": { - "base": "https://x.com/intent/tweet", - "query": [ - { - "key": "text", - "value": "Check out this documentation: $page" + + ```json + { + "title": "Request a feature", + "description": "Join the discussion on GitHub", + "icon": "plus", + "href": "https://github.com/orgs/mintlify/discussions/categories/feature-requests" + } + ``` + + + + ```json + { + "title": "Share on X", + "description": "Share this page on X", + "icon": "x", + "href": { + "base": "https://x.com/intent/tweet", + "query": [ + { + "key": "text", + "value": "Check out this documentation: $page" + } + ] } - ] - } -} -``` - + } + ``` + \ No newline at end of file diff --git a/docs.json b/docs.json index b624806509..63a841d9dc 100644 --- a/docs.json +++ b/docs.json @@ -230,13 +230,13 @@ ] }, "credits", - "ai/contextual-menu", "optimize/analytics", "optimize/feedback", "ai/llmstxt", "ai/skillmd", "ai/model-context-protocol", "optimize/search", + "ai/contextual-menu", "optimize/seo", "ai/markdown-export", "optimize/pdf-exports", From 84096baa15826bcee940b42b0eb3fa50391a8136 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 03:29:27 +0000 Subject: [PATCH 05/30] Updated mintlify pages - Updated optimize/analytics.mdx - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 3 ++- optimize/analytics.mdx | 33 +++++++++++++++------------------ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/docs.json b/docs.json index 63a841d9dc..29a20297ce 100644 --- a/docs.json +++ b/docs.json @@ -224,6 +224,7 @@ "root": "assistant/index", "pages": [ "assistant/configure", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -237,7 +238,7 @@ "ai/model-context-protocol", "optimize/search", "ai/contextual-menu", - "optimize/seo", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { diff --git a/optimize/analytics.mdx b/optimize/analytics.mdx index 3a224d86a8..72426ed642 100644 --- a/optimize/analytics.mdx +++ b/optimize/analytics.mdx @@ -1,7 +1,7 @@ --- title: "Analytics" description: "Track documentation analytics in the Mintlify dashboard to understand page views, visitor trends, search queries, and content effectiveness." -keywords: ["analytics","metrics","page views","traffic","trends","insights"] +keywords: ["analytics", "metrics", "page views", "traffic", "trends", "insights"] boost: 3 --- @@ -9,7 +9,7 @@ boost: 3 Analytics require a [Pro or Enterprise plan](https://mintlify.com/pricing?ref=analytics). -The [analytics](https://app.mintlify.com/products/analytics/v2/) page in your dashboard shows data about visitors to your docs, how they interact with the assistant, what they search for, and their feedback. Use this information to identify which pages are most valuable to your users and track trends over time. +The [analytics](https://app.mintlify.com/products/analytics/v2/) page in your dashboard shows data about visitors to your docs, how they interact with the assistan awef awef awef awef awt, what they search for, and their feedback. Use this information to identify which pages are most valuable to your users and track trends over awef awef awef aweftime. awef ## Filter by AI or human visitors @@ -17,15 +17,14 @@ Filter your analytics data by traffic source to analyze AI agent traffic separat The traffic source filter on the analytics page. - The traffic source filter on the analytics page. @@ -37,15 +36,14 @@ Use the range selector to adjust the time period for displayed data. The range selector expanded to show options for viewing different time periods of data. - The range selector expanded to show options for viewing different time periods of data. @@ -94,15 +92,14 @@ The categories tab uses LLMs to automatically group conversations by topic or th The categories tab in the assistant analytics page. - The categories tab in the assistant analytics page. @@ -121,7 +118,7 @@ Click any message to view the complete chat thread, including the user's questio ## Searches -The Searches metric is only available when viewing human traffic. + The Searches metric is only available when viewing human traffic. The searches tab displays a bar chart of searches over time and specific queries. @@ -135,7 +132,7 @@ Review your searches analytics to: ## MCP searches -The MCP Searches metric is only available when viewing AI traffic. + The MCP Searches metric is only available when viewing AI traffic. The MCP searches tab displays AI agent search interactions through the Model Context Protocol (MCP). This metric counts calls to your MCP server's search tool. It reflects agents that users connected to your MCP server and then issued a search, not general AI crawler traffic to your docs pages. @@ -157,10 +154,10 @@ See [Feedback](/optimize/feedback) for more information on using feedback data t Export any analytics tab to CSV for deeper analysis, reporting, or archival. Exports respect the current traffic source and time range filters. 1. Navigate to the [analytics](https://app.mintlify.com/products/analytics/) page of your dashboard. -1. Click the tab you want to export. -1. Optionally, adjust the traffic source and time range to narrow down the data you want to export. -1. Click **Export to CSV**. -1. Mintlify sends you an email with a download link when the export is ready. +2. Click the tab you want to export. +3. Optionally, adjust the traffic source and time range to narrow down the data you want to export. +4. Click **Export to CSV**. +5. Mintlify sends you an email with a download link when the export is ready. ### Assistant exports @@ -172,4 +169,4 @@ Assistant exports include the queries, responses, sources, and a `resolutionStat - List any queries that had no sources cited. - Find patterns in unsuccessful interactions. - Group unanswered queries by topic to prioritize content updates. - + \ No newline at end of file From 67f599bc15105c6681aee9e0637e2ff103586fb4 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 03:29:51 +0000 Subject: [PATCH 06/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 29a20297ce..e1ea642a23 100644 --- a/docs.json +++ b/docs.json @@ -225,6 +225,7 @@ "pages": [ "assistant/configure", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -239,6 +240,7 @@ "optimize/search", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 8b51fe4cae15effd978812b2bb33021d651c1df7 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 03:46:57 +0000 Subject: [PATCH 07/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index e1ea642a23..38d582efda 100644 --- a/docs.json +++ b/docs.json @@ -226,6 +226,7 @@ "assistant/configure", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -241,6 +242,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From c06d1ef8ea84d0d373196afa67118d422cfc9459 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 03:53:18 +0000 Subject: [PATCH 08/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 38d582efda..97cb88eb16 100644 --- a/docs.json +++ b/docs.json @@ -227,6 +227,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -243,6 +244,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 728ce9b05aa38fd902ee2b8b11b464c52e126505 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 03:56:31 +0000 Subject: [PATCH 09/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 97cb88eb16..b6684e98b5 100644 --- a/docs.json +++ b/docs.json @@ -228,6 +228,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -245,6 +246,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From f3ba2cf8831b25a5a5f438d535ecc9c62034917a Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 03:58:03 +0000 Subject: [PATCH 10/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index b6684e98b5..4ab717f291 100644 --- a/docs.json +++ b/docs.json @@ -229,6 +229,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -247,6 +248,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From da8562fd2126664f8ef7afeb7370d00b7776ef7b Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 04:20:02 +0000 Subject: [PATCH 11/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 4ab717f291..8702289684 100644 --- a/docs.json +++ b/docs.json @@ -230,6 +230,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -249,6 +250,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From ade76b20814cf3d475c052b2629b4756131c96ce Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 05:58:01 +0000 Subject: [PATCH 12/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 8702289684..7d875a10d4 100644 --- a/docs.json +++ b/docs.json @@ -231,6 +231,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -251,6 +252,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 70a60113c266a522ab5d8144482c46d9efee9589 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 06:59:24 +0000 Subject: [PATCH 13/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 7d875a10d4..cf92c39bb1 100644 --- a/docs.json +++ b/docs.json @@ -232,6 +232,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -253,6 +254,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From c0e91db91e453faaa6aff001739b59d9df3e9de9 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 08:06:46 +0000 Subject: [PATCH 14/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index cf92c39bb1..a2aaaae32d 100644 --- a/docs.json +++ b/docs.json @@ -233,6 +233,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -255,6 +256,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 75e1a9e3c32485969b469664712290aa10e79d9d Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:54:22 +0000 Subject: [PATCH 15/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index a2aaaae32d..6295894d69 100644 --- a/docs.json +++ b/docs.json @@ -234,6 +234,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -257,6 +258,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 3e4b4f0374d05d61e507b5699103b2d96da8f21e Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 11:11:27 +0000 Subject: [PATCH 16/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 6295894d69..9c7010f5c5 100644 --- a/docs.json +++ b/docs.json @@ -235,6 +235,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -259,6 +260,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 96146f32cdc2ecb012711797277d1dd71e861204 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:21:34 +0000 Subject: [PATCH 17/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 9c7010f5c5..508b4d7391 100644 --- a/docs.json +++ b/docs.json @@ -236,6 +236,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -261,6 +262,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 0fbe8325288629d3b3d8ab4c8df39d0e276e62d6 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:55:15 +0000 Subject: [PATCH 18/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 508b4d7391..c35f7a3dd3 100644 --- a/docs.json +++ b/docs.json @@ -237,6 +237,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -263,6 +264,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From e515ead2a8d75f7c8bb9fdb7022a4d5ea3cb8bfa Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:56:20 +0000 Subject: [PATCH 19/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index c35f7a3dd3..36815d962b 100644 --- a/docs.json +++ b/docs.json @@ -238,6 +238,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -265,6 +266,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From a93069418d63d321feb486d14c88594c9a1428f4 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 14:57:37 +0000 Subject: [PATCH 20/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 36815d962b..e32e240430 100644 --- a/docs.json +++ b/docs.json @@ -239,6 +239,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -267,6 +268,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From e6d2746e3deb05d992d6861b9222237fa23e5f28 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 15:58:16 +0000 Subject: [PATCH 21/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index e32e240430..bad81a4ba9 100644 --- a/docs.json +++ b/docs.json @@ -240,6 +240,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -269,6 +270,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From a75c71748e0d8797b3fd93cacb5393b7204c925f Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:48:31 +0000 Subject: [PATCH 22/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index bad81a4ba9..5228cfc206 100644 --- a/docs.json +++ b/docs.json @@ -241,6 +241,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -271,6 +272,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From bef635195ef54322e7f6350726b60c7d9e82f9c3 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:48:58 +0000 Subject: [PATCH 23/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 5228cfc206..26b21f2703 100644 --- a/docs.json +++ b/docs.json @@ -242,6 +242,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -273,6 +274,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 136a8a2e0dc02eb2f2cc34cf0e8a7401ba1854e9 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:03:34 +0000 Subject: [PATCH 24/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 26b21f2703..6d8a021759 100644 --- a/docs.json +++ b/docs.json @@ -243,6 +243,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -275,6 +276,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From c1397001d82dc1807640b88233edda1167635998 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:04:17 +0000 Subject: [PATCH 25/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 6d8a021759..52171280fc 100644 --- a/docs.json +++ b/docs.json @@ -244,6 +244,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -277,6 +278,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 7347889664fb2964762ce16ad43928e0c17977a7 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:05:51 +0000 Subject: [PATCH 26/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 52171280fc..50ac8924d6 100644 --- a/docs.json +++ b/docs.json @@ -245,6 +245,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -279,6 +280,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From a941814aaef30a875670ec683d770152fbc95aaa Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:10:17 +0000 Subject: [PATCH 27/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 50ac8924d6..34d8b61380 100644 --- a/docs.json +++ b/docs.json @@ -246,6 +246,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -281,6 +282,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 6d9f92ca3821520690439b76ff3ec4df09e3d269 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:11:26 +0000 Subject: [PATCH 28/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 34d8b61380..17e3129288 100644 --- a/docs.json +++ b/docs.json @@ -247,6 +247,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -283,6 +284,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From ea596965b3a4f4bec808b163f039a84ee8fa2f94 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:33:04 +0000 Subject: [PATCH 29/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 17e3129288..525a041fe0 100644 --- a/docs.json +++ b/docs.json @@ -248,6 +248,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -285,6 +286,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", { From 0b4856be42156e39c9f1652fafcb251d9d9bf74a Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:34:57 +0000 Subject: [PATCH 30/30] Updated mintlify pages - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs.json b/docs.json index 525a041fe0..27e17a6ad8 100644 --- a/docs.json +++ b/docs.json @@ -249,6 +249,7 @@ "optimize/seo", "optimize/seo", "optimize/seo", + "optimize/seo", "assistant/customize", "assistant/skills", "assistant/use" @@ -287,6 +288,7 @@ "ai/contextual-menu", "ai/contextual-menu", "ai/contextual-menu", + "ai/contextual-menu", "ai/markdown-export", "optimize/pdf-exports", {