{"_id":"@aalhommada/nextjs-docs-mcp","_rev":"8-0f416ea709d7da2979d458d4707be999","name":"@aalhommada/nextjs-docs-mcp","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@aalhommada/nextjs-docs-mcp","version":"1.0.0","keywords":["mcp","nextjs","documentation","claude"],"author":{"name":"Abdullah Al Hommada"},"license":"MIT","_id":"@aalhommada/nextjs-docs-mcp@1.0.0","maintainers":[{"name":"aalhommada","email":"aalhommada@gmail.com"}],"bin":{"nextjs-docs-mcp":"dist/index.js"},"dist":{"shasum":"a8a46913a197f3ebcf4b38355275cd49a5fe0c8d","tarball":"https://registry.npmjs.org/@aalhommada/nextjs-docs-mcp/-/nextjs-docs-mcp-1.0.0.tgz","fileCount":8,"integrity":"sha512-UCW8G1gLjnyfe6yfqhpm4jStP/BIFspTXyWa5FsJK95g2qcOhUQgVDrtj5Y8mhUMfLS4K9HU3bNSZ8Hw4OaJYQ==","signatures":[{"sig":"MEUCIQDkv2s2lU/S5vX7Fi4n2mITxK690LcmHc6iXSV5W+74AwIgNwNnzFzqfYqNiYYvdmg9hKnyi0ba6Kqd7wkfUhMF3k8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14370},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0"},"scripts":{"build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"aalhommada","email":"aalhommada@gmail.com"},"_npmVersion":"8.11.0","description":"MCP server for Next.js documentation access","directories":{},"_nodeVersion":"22.20.0","dependencies":{"cheerio":"^1.1.2","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.20.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.7.2"},"_npmOperationalInternal":{"tmp":"tmp/nextjs-docs-mcp_1.0.0_1760260993916_0.721272295858544","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aalhommada/nextjs-docs-mcp","version":"1.0.1","keywords":["mcp","nextjs","documentation","claude"],"author":{"name":"Abdullah Al Hommada"},"license":"MIT","_id":"@aalhommada/nextjs-docs-mcp@1.0.1","maintainers":[{"name":"aalhommada","email":"aalhommada@gmail.com"}],"bin":{"nextjs-docs-mcp":"dist/index.js"},"dist":{"shasum":"170db2e6e6481241323b43c8adc40bf6189b9558","tarball":"https://registry.npmjs.org/@aalhommada/nextjs-docs-mcp/-/nextjs-docs-mcp-1.0.1.tgz","fileCount":8,"integrity":"sha512-Cvk0q+KmqVnO2P6jo9iIYqBiIOy4GgKigzj/si9JIO3Yo9oT/M79HV+OIl39Ga+mtd9uklREE/nYtvbsJQ7qKA==","signatures":[{"sig":"MEUCIBxF1r5KOOzedNlZI78T5/JBN0ARBWKpsqsccZPDwcgDAiEAopQ9znC5SjD6kVGm3Ao8o8fpdKYrFnLtR/8WAALQim4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14370},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0"},"scripts":{"build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"aalhommada","email":"aalhommada@gmail.com"},"_npmVersion":"8.11.0","description":"MCP server for Next.js documentation access","directories":{},"_nodeVersion":"22.20.0","dependencies":{"cheerio":"^1.1.2","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.20.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.7.2"},"_npmOperationalInternal":{"tmp":"tmp/nextjs-docs-mcp_1.0.1_1760261157797_0.6852722036374301","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aalhommada/nextjs-docs-mcp","version":"1.0.2","keywords":["mcp","nextjs","documentation","claude"],"author":{"name":"Abdullah Al Hommada"},"license":"MIT","_id":"@aalhommada/nextjs-docs-mcp@1.0.2","maintainers":[{"name":"aalhommada","email":"aalhommada@gmail.com"}],"bin":{"nextjs-docs-mcp":"dist/index.js"},"dist":{"shasum":"760a9c2a41d3fe1b497982884491e62dea3c4d9b","tarball":"https://registry.npmjs.org/@aalhommada/nextjs-docs-mcp/-/nextjs-docs-mcp-1.0.2.tgz","fileCount":8,"integrity":"sha512-NOQVfo3hKZuLCuEmHbDRT2GHKQIa41qG7kxt7x8UbOgfnNZaLTAA17zQsSlYL//GrS1CNlGr5rMfCdbhSZ1qPg==","signatures":[{"sig":"MEUCIQDVBNERkhjVzW25wdLBW+tmNVVDeVFi14PepYzJ23gpMwIgCqhjsPv5719ESTN/fwXvci6oAf+zSSZnij5XsAusr9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14398},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0"},"scripts":{"build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"aalhommada","email":"aalhommada@gmail.com"},"_npmVersion":"8.11.0","description":"MCP server for Next.js documentation access","directories":{},"_nodeVersion":"22.20.0","dependencies":{"cheerio":"^1.1.2","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.20.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.7.2"},"_npmOperationalInternal":{"tmp":"tmp/nextjs-docs-mcp_1.0.2_1760261267882_0.2701840203027257","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aalhommada/nextjs-docs-mcp","version":"1.0.3","keywords":["mcp","nextjs","documentation","claude"],"author":{"name":"Abdullah Al Hommada"},"license":"MIT","_id":"@aalhommada/nextjs-docs-mcp@1.0.3","maintainers":[{"name":"aalhommada","email":"aalhommada@gmail.com"}],"homepage":"https://github.com/aalhommada/nextjs-docs-mcp#readme","bugs":{"url":"https://github.com/aalhommada/nextjs-docs-mcp/issues"},"bin":{"nextjs-docs-mcp":"dist/index.js"},"dist":{"shasum":"71979d6f45b49ab5c88f8a08dcbe7fab29e76073","tarball":"https://registry.npmjs.org/@aalhommada/nextjs-docs-mcp/-/nextjs-docs-mcp-1.0.3.tgz","fileCount":8,"integrity":"sha512-oDLYTxMkHkdmZG94IEggUBpKf0BZ8jE8UyoTCrh/8EvYTFgzhPethP6b2+oZDn4g53KbSV1Os0Mmpyjqg82wog==","signatures":[{"sig":"MEQCIES3vHxgcA6EP+3HceMW0v6018ij4+5GeNWfqwL8roKNAiAxWMNUYMHKFJAQvgvswDnQSjm5DpAY/sJ0dgW3aQ32pg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14900},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0"},"gitHead":"9acc8e680cedc40e55b8cff5a9b38a1128f58f75","scripts":{"build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"aalhommada","email":"aalhommada@gmail.com"},"repository":{"url":"git+https://github.com/aalhommada/nextjs-docs-mcp.git","type":"git"},"_npmVersion":"8.11.0","description":"MCP server for Next.js documentation access","directories":{},"_nodeVersion":"22.20.0","dependencies":{"cheerio":"^1.1.2","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.20.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.7.2"},"_npmOperationalInternal":{"tmp":"tmp/nextjs-docs-mcp_1.0.3_1760282482208_0.30374129980489584","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@aalhommada/nextjs-docs-mcp","version":"1.1.4","keywords":["mcp","nextjs","documentation","claude","ai","model-context-protocol","security","performance"],"author":{"name":"Abdullah Al Hommada"},"license":"MIT","_id":"@aalhommada/nextjs-docs-mcp@1.1.4","maintainers":[{"name":"aalhommada","email":"aalhommada@gmail.com"}],"homepage":"https://github.com/aalhommada/nextjs-docs-mcp#readme","bugs":{"url":"https://github.com/aalhommada/nextjs-docs-mcp/issues"},"bin":{"nextjs-docs-mcp":"dist/index.js"},"dist":{"shasum":"a717b5c4869c9e53134971e5d9de8356331b4409","tarball":"https://registry.npmjs.org/@aalhommada/nextjs-docs-mcp/-/nextjs-docs-mcp-1.1.4.tgz","fileCount":15,"integrity":"sha512-wzOikS4xnj7AUtRiM0JL0wWe/w6ikYn/1vRx20VSiPtVkf3dn5o9Y8PkCdJeqfVJjrjUHcf/bFe/jYaC/vKrRA==","signatures":[{"sig":"MEUCIQDtk8gRrPYdOvbppUEzvdmGRXVyUK48GGZ8ZwmI4ZW45QIgb+krvIDlAfPa6dk8PNToo46iSrCkBe5qV2uVJT8SRm4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47159},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0"},"gitHead":"a78f07ba76c645326c8fe80fb71cf26999ac22b9","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/index.js","prepare":"npm run build","configure-claude":"node scripts/configure-claude.js"},"_npmUser":{"name":"aalhommada","email":"aalhommada@gmail.com"},"repository":{"url":"git+https://github.com/aalhommada/nextjs-docs-mcp.git","type":"git"},"_npmVersion":"8.11.0","description":"Enhanced MCP server for Next.js documentation access with improved performance, security, and caching","directories":{},"_nodeVersion":"22.20.0","dependencies":{"cheerio":"^1.1.2","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.20.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.7.2"},"_npmOperationalInternal":{"tmp":"tmp/nextjs-docs-mcp_1.1.4_1760373967063_0.8995034032975575","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@aalhommada/nextjs-docs-mcp","version":"1.1.5","keywords":["mcp","nextjs","documentation","claude","ai","model-context-protocol","security","performance"],"author":{"name":"Abdullah Al Hommada"},"license":"MIT","_id":"@aalhommada/nextjs-docs-mcp@1.1.5","maintainers":[{"name":"aalhommada","email":"aalhommada@gmail.com"}],"homepage":"https://github.com/aalhommada/nextjs-docs-mcp#readme","bugs":{"url":"https://github.com/aalhommada/nextjs-docs-mcp/issues"},"bin":{"nextjs-docs-mcp":"dist/index.js"},"dist":{"shasum":"d9d8bed1467847aa37a1f9d817f8bb4e36d6e302","tarball":"https://registry.npmjs.org/@aalhommada/nextjs-docs-mcp/-/nextjs-docs-mcp-1.1.5.tgz","fileCount":15,"integrity":"sha512-evFfWTrgbGVX9LNPq0Q/HicWcBM3Ca6tVP3lrd/qi3lh34Hhzth6LeQuXJcAHCbQ/9Wb3G8/Tb72+d0eqBV2FQ==","signatures":[{"sig":"MEYCIQD+jGyWYXXPwX8KF1TbHPA+Ih8tScixDWMIcvRXOX/kRwIhAIgnwwW51pfEyHpZ+LPNtd11v/0w+xEoMJcHjdQ/eh3s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45938},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0"},"gitHead":"fdd282d4f31b89fe681dcae7f9ccc3aeda1fec23","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/index.js","prepare":"npm run build","configure-claude":"node scripts/configure-claude.js"},"_npmUser":{"name":"aalhommada","email":"aalhommada@gmail.com"},"repository":{"url":"git+https://github.com/aalhommada/nextjs-docs-mcp.git","type":"git"},"_npmVersion":"8.11.0","description":"Enhanced MCP server for Next.js documentation access with improved performance, security, and caching","directories":{},"_nodeVersion":"22.20.0","dependencies":{"cheerio":"^1.1.2","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.20.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.7.2"},"_npmOperationalInternal":{"tmp":"tmp/nextjs-docs-mcp_1.1.5_1760374754365_0.5621502092119119","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@aalhommada/nextjs-docs-mcp","version":"1.1.6","keywords":["mcp","nextjs","documentation","claude","ai","model-context-protocol","security","performance"],"author":{"name":"Abdullah Al Hommada"},"license":"MIT","_id":"@aalhommada/nextjs-docs-mcp@1.1.6","maintainers":[{"name":"aalhommada","email":"aalhommada@gmail.com"}],"homepage":"https://github.com/aalhommada/nextjs-docs-mcp#readme","bugs":{"url":"https://github.com/aalhommada/nextjs-docs-mcp/issues"},"bin":{"nextjs-docs-mcp":"dist/index.js"},"dist":{"shasum":"345f82c4e3c021a72dae5b2748767ae53856a1cd","tarball":"https://registry.npmjs.org/@aalhommada/nextjs-docs-mcp/-/nextjs-docs-mcp-1.1.6.tgz","fileCount":15,"integrity":"sha512-NTx0LqtAp8WYy738IazDz8ZOpbQy6FuKz/6lzw18Zb6a1Mp+gWcUdMtwEqaWqF+9ujWLSvuOjWFZSaHzPpUeZQ==","signatures":[{"sig":"MEQCIBg6w5JHlv7bt8ijnuCtEAbxzOtdBmdEJMV+K2mWqs9eAiBt4NWE9grFOo/5bD+0a0Z04qVK4w3DIZ8KrqY8aE7bgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45956},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0"},"gitHead":"fdd282d4f31b89fe681dcae7f9ccc3aeda1fec23","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/index.js","prepare":"npm run build","configure-claude":"node scripts/configure-claude.js"},"_npmUser":{"name":"aalhommada","email":"aalhommada@gmail.com"},"repository":{"url":"git+https://github.com/aalhommada/nextjs-docs-mcp.git","type":"git"},"_npmVersion":"8.11.0","description":"Enhanced MCP server for Next.js documentation access with improved performance, security, and caching","directories":{},"_nodeVersion":"22.20.0","dependencies":{"cheerio":"^1.1.2","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.20.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.7.2"},"_npmOperationalInternal":{"tmp":"tmp/nextjs-docs-mcp_1.1.6_1760375033433_0.4586127172929706","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@aalhommada/nextjs-docs-mcp","version":"1.2.0","description":"Enhanced MCP server for Next.js documentation access with improved performance, security, and caching","main":"dist/index.js","bin":{"nextjs-docs-mcp":"dist/index.js"},"scripts":{"build":"tsc","prepare":"npm run build","start":"node dist/index.js","configure-claude":"node scripts/configure-claude.js","install-claude":"node scripts/install-claude-cli.js","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mcp","nextjs","documentation","claude","ai","model-context-protocol","security","performance"],"author":{"name":"Abdullah Al Hommada"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aalhommada/nextjs-docs-mcp.git"},"bugs":{"url":"https://github.com/aalhommada/nextjs-docs-mcp/issues"},"homepage":"https://github.com/aalhommada/nextjs-docs-mcp#readme","engines":{"node":">=20.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.20.0","cheerio":"^1.1.2","node-fetch":"^3.3.2"},"devDependencies":{"@types/node":"^24.7.2","typescript":"^5.9.3"},"types":"./dist/index.d.ts","gitHead":"fdd282d4f31b89fe681dcae7f9ccc3aeda1fec23","_id":"@aalhommada/nextjs-docs-mcp@1.2.0","_nodeVersion":"22.20.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Vvtpg1UKwh4kMDs52cCJ36F5sEr+uYB9PFUXF8SZ+r8FIJfPt4JRE+rM/G7ZzN8wa1azFKtIAH85Oby5vxzmqA==","shasum":"87b388eb61d6f439e72bb7975d93ed2ff69dcfd8","tarball":"https://registry.npmjs.org/@aalhommada/nextjs-docs-mcp/-/nextjs-docs-mcp-1.2.0.tgz","fileCount":16,"unpackedSize":49479,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDpmmpTbDRlgPLLVEoDe7ynazuvS9g5bQsDnej0YWKxngIgKaQIZInMABOKXh7Pexns2Kxy8UiVnp6fSvQr8G13tGY="}]},"_npmUser":{"name":"aalhommada","email":"aalhommada@gmail.com"},"directories":{},"maintainers":[{"name":"aalhommada","email":"aalhommada@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nextjs-docs-mcp_1.2.0_1760376017670_0.2791645190818055"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-12T09:23:13.853Z","modified":"2025-10-13T17:20:18.050Z","1.0.0":"2025-10-12T09:23:14.119Z","1.0.1":"2025-10-12T09:25:58.002Z","1.0.2":"2025-10-12T09:27:48.087Z","1.0.3":"2025-10-12T15:21:22.398Z","1.1.4":"2025-10-13T16:46:07.238Z","1.1.5":"2025-10-13T16:59:14.563Z","1.1.6":"2025-10-13T17:03:53.607Z","1.2.0":"2025-10-13T17:20:17.858Z"},"bugs":{"url":"https://github.com/aalhommada/nextjs-docs-mcp/issues"},"author":{"name":"Abdullah Al Hommada"},"license":"MIT","homepage":"https://github.com/aalhommada/nextjs-docs-mcp#readme","keywords":["mcp","nextjs","documentation","claude","ai","model-context-protocol","security","performance"],"repository":{"type":"git","url":"git+https://github.com/aalhommada/nextjs-docs-mcp.git"},"description":"Enhanced MCP server for Next.js documentation access with improved performance, security, and caching","maintainers":[{"name":"aalhommada","email":"aalhommada@gmail.com"}],"readme":"# Next.js Documentation MCP Server\r\n\r\nA Model Context Protocol (MCP) server for accessing and searching Next.js documentation. This package provides programmatic access to Next.js documentation through a simple interface.\r\n\r\n## Features\r\n\r\n- 🔍 **Search Documentation**: Search through Next.js documentation with natural language queries\r\n- 📖 **Full Page Access**: Retrieve complete documentation pages by URL\r\n- 💡 **Best Practices**: Get curated best practices for specific Next.js topics\r\n- 📊 **Cache Statistics**: Monitor cache performance and statistics\r\n- 🔄 **Smart Caching**: Documentation is cached with size limits and expiration (6 hours)\r\n- ⚡ **Performance Optimized**: Concurrent scraping and efficient search algorithms\r\n- 🔒 **Security Enhanced**: Rate limiting (30 requests/minute) to prevent abuse\r\n- 🌐 **Comprehensive Coverage**: Covers all major Next.js documentation sections including:\r\n  - Getting Started\r\n  - App Router\r\n  - Pages Router\r\n  - API Reference\r\n  - Functions\r\n  - Optimization\r\n  - Security\r\n  - Advanced Topics\r\n\r\n## Quick Installation\r\n\r\nChoose your platform:\r\n\r\n**Claude Code Terminal (Windows):**\r\n\r\nDue to a Windows-specific issue with the `claude mcp add` command, use this automated installer:\r\n\r\n```bash\r\nnpx @aalhommada/nextjs-docs-mcp install-claude\r\n```\r\n\r\nOr manually run this PowerShell command:\r\n```powershell\r\npowershell -ExecutionPolicy Bypass -Command \"$config = Get-Content '$env:USERPROFILE\\.claude.json' | ConvertFrom-Json; $projectPath = (Get-Location).Path; if (-not $config.projects.$projectPath) { $config.projects | Add-Member -NotePropertyName $projectPath -NotePropertyValue @{allowedTools=@(); history=@(); mcpContextUris=@(); mcpServers=@{}; enabledMcpjsonServers=@(); disabledMcpjsonServers=@(); hasTrustDialogAccepted=$false} }; $config.projects.$projectPath.mcpServers.'nextjs-docs' = @{type='stdio'; command='cmd'; args=@('/c', 'npx', '-y', '@aalhommada/nextjs-docs-mcp'); env=@{}}; $config | ConvertTo-Json -Depth 100 | Set-Content '$env:USERPROFILE\\.claude.json'; Write-Host 'MCP installed! Run: claude mcp list'\"\r\n```\r\n\r\n**Claude Code Terminal (Mac/Linux):**\r\n```bash\r\nclaude mcp add --transport stdio nextjs-docs -- npx -y @aalhommada/nextjs-docs-mcp\r\n```\r\n\r\n**VS Code (Cline):**\r\nAdd to settings.json:\r\n```json\r\n{\r\n  \"mcp.servers\": {\r\n    \"nextjs-docs\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@aalhommada/nextjs-docs-mcp\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n**Cursor:**\r\nAdd to MCP Settings:\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"nextjs-docs\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@aalhommada/nextjs-docs-mcp\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## Requirements\r\n\r\n- Node.js >= 20.0\r\n\r\n## Usage\r\n\r\nThis package provides an MCP server that can be used with tools like Claude or other AI assistants that support the Model Context Protocol.\r\n\r\n### Available Tools\r\n\r\n1. **search_nextjs_docs**\r\n   - Search the Next.js documentation for relevant information\r\n   - Input: `query` (string)\r\n\r\n2. **get_nextjs_page**\r\n   - Get the full content of a specific Next.js documentation page\r\n   - Input: `url` (string)\r\n\r\n3. **get_nextjs_best_practices**\r\n   - Get current Next.js best practices for a specific topic\r\n   - Input: `topic` (string)\r\n\r\n4. **get_nextjs_cache_stats**\r\n   - Get statistics about the documentation cache\r\n   - Input: none\r\n\r\n### Using with Claude Code Terminal\r\n\r\n**Windows:**\r\n```bash\r\nnpx @aalhommada/nextjs-docs-mcp install-claude\r\n```\r\n\r\n**Mac/Linux:**\r\n```bash\r\nclaude mcp add --transport stdio nextjs-docs -- npx -y @aalhommada/nextjs-docs-mcp\r\n```\r\n\r\nVerify it's working:\r\n```bash\r\nclaude mcp list\r\n```\r\n\r\nNow you can ask Claude questions about Next.js documentation in any conversation:\r\n- \"How do I implement server-side rendering in Next.js?\"\r\n- \"Show me the best practices for data fetching\"\r\n- \"What are the latest features in App Router?\"\r\n\r\n### Using with VS Code (Cline Extension)\r\n\r\n1. Install the Cline extension from VS Code marketplace\r\n\r\n2. Open VS Code Settings (JSON) by pressing `Ctrl+Shift+P` (or `Cmd+Shift+P` on Mac) and search for \"Preferences: Open User Settings (JSON)\"\r\n\r\n3. Add this MCP server configuration to your settings:\r\n\r\n```json\r\n{\r\n  \"mcp.servers\": {\r\n    \"nextjs-docs\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@aalhommada/nextjs-docs-mcp\"],\r\n      \"transport\": \"stdio\"\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n4. Restart VS Code and the MCP server will automatically connect when you use Cline\r\n\r\nNow you can ask Next.js documentation questions directly in the Cline chat!\r\n\r\n### Using with Cursor\r\n\r\n1. Open Cursor Settings: `Cursor > Settings > Cursor Settings` (or press `Ctrl+Shift+J` / `Cmd+Shift+J`)\r\n\r\n2. Click on \"Models\" tab, scroll down to find \"MCP Settings\"\r\n\r\n3. Add this configuration to your MCP settings:\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"nextjs-docs\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@aalhommada/nextjs-docs-mcp\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n4. Restart Cursor and the MCP server will automatically connect\r\n\r\nNow you can ask questions in Cursor's chat:\r\n- \"How do I set up middleware in Next.js 14?\"\r\n- \"Show me examples of API routes\"\r\n- \"What are the best practices for image optimization?\"\r\n\r\n### Quick Start (npx)\r\n\r\nYou can also run the MCP server directly without installation:\r\n\r\n```bash\r\nnpx @aalhommada/nextjs-docs-mcp\r\n```\r\n\r\nThis is useful for testing or one-time usage.\r\n\r\n## Development\r\n\r\n1. Clone the repository:\r\n   ```bash\r\n   git clone https://github.com/aalhommada/nextjs-docs-mcp.git\r\n   cd nextjs-docs-mcp\r\n   ```\r\n\r\n2. Install dependencies:\r\n   ```bash\r\n   npm install\r\n   ```\r\n\r\n3. Build the project:\r\n   ```bash\r\n   npm run build\r\n   ```\r\n\r\n4. Start the server:\r\n   ```bash\r\n   npm start\r\n   ```\r\n\r\n## Performance & Security Features\r\n\r\n### Caching Strategy\r\n- Documentation is cached for 6 hours with automatic refresh\r\n- Maximum cache size of 500 pages\r\n- Content truncation for large pages (100KB limit)\r\n- Graceful degradation when scraping fails\r\n\r\n### Rate Limiting\r\n- 30 requests per minute per client\r\n- Automatic reset of counters\r\n- Clear error messages when limits are exceeded\r\n\r\n### Error Handling\r\n- Comprehensive error handling for network issues\r\n- Fallback to stale cache when scraping fails\r\n- Detailed logging for debugging\r\n\r\n## Technical Details\r\n\r\n- Built with TypeScript for type safety\r\n- Uses cheerio for HTML parsing\r\n- Implements efficient caching mechanism\r\n- Follows MCP server specifications\r\n- Secure by design with rate limiting\r\n\r\n\r\n## License\r\n\r\nMIT\r\n\r\n## Author\r\n\r\nAbdullah Al Hommada\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request.","readmeFilename":"README.md"}