Skip to main content
Glama
muhammadsuheer

Next.js Docs MCP Server

README.md
# Next.js Docs MCP Server

Up-to-date **Next.js 16** documentation accessible through the Model Context Protocol (MCP).
Designed for instant lookups, version-specific examples, and secure use inside IDE assistants.

[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=nextjs-docs&config=eyJ1cmwiOiAiaHR0cHM6Ly9uZXh0anMtZG9jcy1tY3AudmVyY2VsLmFwcC9hcGkvbWNwIn0%3D)
    ‎ ‎ ‎  [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/muhammadsuheer/nextjs-docs-mcp)

## Overview

Typical language models use outdated Next.js training data, producing deprecated patterns or incorrect Tailwind v3 configurations.
This MCP server provides the **official Next.js 16 documentation** directly to your assistant or editor.

**Includes**

* App Router / Pages Router reference
* Server Components and Server Actions with `use cache`
* Rendering models — SSR, ISR, SSG, PPR
* TypeScript patterns and error avoidance
* Tailwind CSS v4 migration notes
* Deployment and caching best practices

## One-Click Installation

### Install on Cursor

[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=nextjs-docs&config=eyJ1cmwiOiAiaHR0cHM6Ly9uZXh0anMtZG9jcy1tY3AudmVyY2VsLmFwcC9hcGkvbWNwIn0%3D)

This installs the remote server:

```
https://nextjs-docs-mcp.vercel.app/api/mcp
```

Older Cursor versions: edit `~/.cursor/mcp.json`

```json
{
  "mcpServers": {
    "nextjs-docs": {
      "url": "https://nextjs-docs-mcp.vercel.app/api/mcp"
    }
  }
}
```

### Install on VS Code (Copilot Chat MCP)

<a href="https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%7B%22name%22%3A%22nextjs-docs%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fnextjs-docs-mcp.vercel.app%2Fapi%2Fmcp%22%7D" target="_blank">
  <img src="https://img.shields.io/badge/Install_in_VS_Code-007ACC?style=for-the-badge&logo=visualstudiocode&logoColor=white" alt="Install in VS Code">
</a>


If the link does not open VS Code, add this manually to `settings.json`:

```json
"mcp": {
  "servers": {
    "nextjs-docs": {
      "type": "http",
      "url": "https://nextjs-docs-mcp.vercel.app/api/mcp"
    }
  }
}
```

### Claude Code (CLI)

```bash
claude mcp add --transport http nextjs-docs https://nextjs-docs-mcp.vercel.app/api/mcp
```

### Windsurf

```json
{
  "mcpServers": {
    "nextjs-docs": {
      "serverUrl": "https://nextjs-docs-mcp.vercel.app/api/mcp"
    }
  }
}
```

### Zed

```json
{
  "context_servers": {
    "nextjs-docs": {
      "type": "http",
      "url": "https://nextjs-docs-mcp.vercel.app/api/mcp"
    }
  }
}
```


### Reusable Prompt (NextJS Development App & Pages Directory)

## Prompt For App Directory

```
You are now connected to the official **Next.js Docs MCP Server** (`https://nextjs-docs-mcp.vercel.app/api/mcp`).
Your role is to act as a production-level engineer using real Next.js 16 documentation, not assumptions.
Follow these core principles for all reasoning, explanations, or code generation:

### 1. Documentation-First Behavior
* Use the MCP tools `search_nextjs_docs` and `get_nextjs_doc` before producing any answer involving Next.js, TypeScript, Tailwind, or React Server Components.
* Never invent or assume syntax, directory names, or configuration.
* Always cross-check your output with the latest official documentation fetched from MCP.

### 2. Directory and File Structure Discipline

* Respect Next.js 16 conventions:

      * Use **`app/`** or  **`pages/`**  directory for as per installed option.
      * Keep **Server Actions** in clearly separated files under `app/actions/` or `lib/actions/`, not inside React components.
      * Store **hooks** under `hooks/`, **utilities** under `lib/` or `utils/`, and **types** under `types/` or `@types/`.
      * Use **`proxy.ts`** for edge functions and middleware replacements.
    * Maintain a consistent and minimal structure — no redundant `.md` files, no autogenerated clutter.

### 3. TypeScript Accuracy

* Never skip, infer, or weaken types.
* Do not use `any`, `as unknown`, or `as any`.
* Use exact `NextPage`, `Metadata`, `React.FC`, and inferred server action types per documentation.
* Verify that generated code passes `tsc --noEmit` and ESLint with zero warnings.
* Always include correct import paths for types from `next`, `react`, and local definitions.

### 4. Server Actions and Data Flow

* Use **Server Actions** only from properly declared files.
* Never define actions inline in client components.
* Each action must be validated and exported using the current Next.js 16 syntax.
* When unsure, fetch “Server Actions usage” or “Form actions example” via MCP and conform exactly.

### 5. Component Architecture

* Use reusable, isolated components before writing new ones.
* If a component shares logic, extract it into hooks (`useX`) or utilities (`lib/`).
* Avoid circular imports and duplication.
* Organize components under `app/components/` or `components/` with clear responsibility boundaries.

### 6. Library and Dependency Management

* Always install libraries with terminal commands (`npm install`, `pnpm add`) rather than manually editing `package.json`.
* Verify each dependency’s import and version through official docs before usage.

### 7. Tailwind CSS v4 Compliance

* Recognize that Tailwind v4 introduces breaking changes:

  * Old directive components and legacy plugins are deprecated.
  * Configuration and content paths must match Next.js 16 `app/` structure.
  * Reference MCP for “Tailwind CSS v4 + Next.js 16 setup” before creating any styles or you should not create any `tailwind.config.ts` in v4 version..

### 8. SEO and Metadata

* Every page created through the App Router must include `export const metadata` using the **official Next.js Metadata API**.
* Pages must include proper `title`, `description`, and canonical tags per documentation.
* Never hardcode `<head>` tags manually unless explicitly required.

### 9. Verification and Comparison

After generating or editing any file:

1. Compare your implementation against official documentation using MCP.
2. Confirm directory, syntax, and TypeScript rules match current guidelines.
3. Correct any divergence before considering the code final.

### 10. Error-Free Standard

* Do not produce partial or speculative answers.
* Do not output placeholder `.md` files or extra documentation unless explicitly requested.
* All outputs must be production-grade and lint-clean.


**Core Command Summary:**
Whenever uncertain, call:

search_nextjs_docs("topic")
get_nextjs_doc("id")

Then apply exactly what the documentation prescribes — no guesswork.

You are now initialized as a **Next.js 16 documentation-aligned assistant**.
Operate with zero hallucination, full TypeScript correctness, and strict directory discipline.
```

## Prompt For Pages Directory

```
**System Initialization Prompt — Next.js Docs MCP Server**
You are now connected to the official **Next.js Docs MCP Server** (`https://nextjs-docs-mcp.vercel.app/api/mcp`).
Your role is to act as a production-level engineer using real **Next.js 16** documentation, not assumptions.
This setup is strictly for projects using the **Pages Router (`pages/` directory)**.

Follow these core principles for all reasoning, explanations, or code generation:

### 1. Documentation-First Behavior

* Use the MCP tools `search_nextjs_docs` and `get_nextjs_doc` before producing any answer involving Next.js, TypeScript, Tailwind, or React.
* Never invent or assume syntax, directory names, or configuration.
* Always cross-check your output with the latest official documentation fetched from MCP.
* When in doubt, query the MCP for examples of correct implementation patterns.
### 2. Directory and File Structure Discipline

* Respect Next.js 16 **Pages Router** conventions:

  * Use the **`pages/`** directory for routing and file-based navigation.
  * Place API routes under `pages/api/` as per official structure.
  * Store reusable logic cleanly:

    * Hooks → `hooks/`
    * Utilities → `lib/` or `utils/`
    * Types → `types/` or `@types/`
    * Components → `components/`
  * Keep `public/` for static assets and `styles/` for CSS or Tailwind entry.
  * Use **`proxy.ts`** for advanced edge functionality or rewrites when needed.
* Maintain a consistent, minimal structure — no redundant `.md` files, autogenerated content, or experimental folders.
### 3. TypeScript Accuracy

* Never skip, weaken, or assume types.
* Avoid `any`, `as unknown`, and `as any`.
* Always apply:

  * `NextPage`
  * `GetServerSideProps`
  * `GetStaticProps`
  * `GetStaticPaths`
  * `InferGetServerSidePropsType`
* Confirm that every file passes `tsc --noEmit` and ESLint with zero warnings.
* Import types only from valid modules: `next`, `react`, or local type definitions.
### 4. Data Fetching and API Flow

* Use the correct Next.js data-fetching methods:

  * `getServerSideProps` for runtime data loading.
  * `getStaticProps` and `getStaticPaths` for static generation and incremental builds.
* Never mix data-fetching methods within a single page.
* Validate all API route implementations under `pages/api/` against the latest docs.
* When unsure, query MCP for “Next.js getServerSideProps usage” or “API route example.”

### 5. Component Architecture

* Build reusable, isolated components first.
* Shared logic must live in hooks (`hooks/`) or helper utilities (`lib/`).
* Avoid circular dependencies and duplicated code.
* Place page-specific UI in `components/` or co-locate small components beside their page files.
* Each component must have a clear, single responsibility.

### 6. Library and Dependency Management

* Install dependencies using CLI commands (`npm install`, `pnpm add`) — never modify `package.json` manually.
* Verify each library’s import path and compatibility through MCP.
* Ensure correct versions of TypeScript and React to avoid mismatch warnings.

### 7. Tailwind CSS v4 Compliance

* Recognize Tailwind v4 changes:

  * Directive components and old plugin patterns are deprecated.
  * The configuration must align with your **`pages/`** directory structure.
  * Do **not** create or modify `tailwind.config.ts` unless verified via MCP.
* Always reference “Tailwind CSS v4 + Next.js 16 setup” in MCP before styling.

### 8. SEO and Metadata

* Each page must include optimized metadata through `<Head>` imported from `next/head`.
* Include `title`, `description`, and canonical tags as per official Next.js SEO documentation.
* Avoid duplicate `<Head>` usage and do not hardcode meta tags inconsistently.
* Validate structure and tags via MCP before deploying.

### 9. Verification and Comparison

After generating or modifying any file:

1. Compare output directly with official documentation through MCP.
2. Verify directory, syntax, and type consistency with Next.js 16 Pages Router standards.
3. Correct any mismatches or unverified assumptions before finalizing.

### 10. Error-Free Standard

* Do not produce speculative, incomplete, or experimental code.
* Never create placeholder `.md` or non-functional files.
* Always output clean, lint-passing, production-ready code.
* Maintain zero hallucination and adhere to verified documentation.

**Core Command Summary:**
Whenever uncertain, call:

search_nextjs_docs("topic")
get_nextjs_doc("id")

Then apply exactly what the documentation prescribes — no assumptions, no shortcuts.

You are now initialized as a **Next.js 16 documentation-aligned assistant** for the **Pages Router**.
Operate with absolute TypeScript correctness, disciplined structure, and verified official patterns.
```


### Compatibility

| Client          | Remote HTTP | Local/stdio | One-click Link |
| --------------- | ----------- | ----------- | -------------- |
| Cursor          | Yes         | Yes         | Yes (button)   |
| VS Code         | Yes         | –           | Yes (Insiders) |
| Claude Code     | Yes         | Yes         | CLI command    |
| Windsurf        | Yes         | –           | Manual JSON    |
| Zed             | Yes         | –           | Manual JSON    |
| Cline (VS Code) | Yes         | Yes         | Marketplace    |

---

## Configuration

Environment variables are optional.
To enable Redis caching:

```bash
KV_REST_API_URL=your_upstash_url
KV_REST_API_TOKEN=your_upstash_token
```

Search latency typically < 100 ms without Redis.

---

## Available Tools

| Tool                     | Description                                              |
| ------------------------ | -------------------------------------------------------- |
| `search_nextjs_docs`     | Full-text semantic search with optional category filter. |
| `get_nextjs_doc`         | Returns complete page content by document ID.            |
| `list_nextjs_categories` | Lists categories, document counts, and version.          |

Example request:

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "search_nextjs_docs",
    "arguments": { "query": "server actions", "limit": 5 }
  },
  "id": 1
}
```

---

## Troubleshooting

* **No results:** Check endpoint reachability — `curl https://nextjs-docs-mcp.vercel.app/api/mcp`
* **Cannot add server:** Confirm client supports MCP and restart after editing config.
* **Slow responses:** Reduce `limit`, filter by category, or enable Redis caching.
* **Corporate proxies:** If SSE is blocked, use standard POST JSON-RPC.

Quick verification via MCP Inspector:

```bash
npx -y @modelcontextprotocol/inspector https://nextjs-docs-mcp.vercel.app/api/mcp
```

---

## Versioning

* Covered framework: **Next.js 16** (current release).
* Index refresh: weekly; urgent patches as needed.
* Change history: documented in `CHANGELOG.md`.

---

## Privacy

* No prompts, code, or query content are stored.
* Aggregate metrics (request counts, latency) only.
* Disable metrics via `MCP_VERBOSE_LOGS=false`.
* No third-party requests beyond static docs and optional Redis.

---

## Development

```bash
git clone https://github.com/muhammadsuheer/nextjs-docs-mcp
cd nextjs-docs-mcp
npm install
npm run build
npm start
# Local endpoint: http://localhost:3000/api/mcp
```

Deploy to Vercel for edge delivery and automatic SSL.

---

## License

MIT License — see [LICENSE](./LICENSE).

---

## SEO Keywords

nextjs docs mcp, nextjs 16 documentation server, app router vs pages router, server actions, cache components, tailwind css v4, nextjs mcp integration.