{"_id":"docusaurus-plugin-mcp-server","_rev":"12-59e4b0aecc9e804cf6d3eece23d6f41c","name":"docusaurus-plugin-mcp-server","dist-tags":{"latest":"1.0.0"},"versions":{"0.5.0":{"name":"docusaurus-plugin-mcp-server","version":"0.5.0","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.5.0","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.mjs"},"dist":{"shasum":"ed5e9c574522b2200a5123d7027bee96548f5c60","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.5.0.tgz","fileCount":29,"integrity":"sha512-CxxvUnirzOD2xe93LXDDfKBnhrdcPk0LuJtA1cEZyfDJZBkDPMyBQrdWJ7VkhjXhY7KLQeBWx/l66Hnd+08Hkw==","signatures":[{"sig":"MEUCIEfF9EqwI+LH9X6PcK6bpCWNtJPX0PLWwLT7Pv+BLGuvAiEAo9oE7Tw3kv4ryg3s164i5p3nCK8t7P9dPrefPjfnaGo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":746453},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.mjs","require":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.mjs","require":"./dist/adapters-entry.js"}},"gitHead":"762ee27521420a43ff66428fcea2cedd97840f33","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.0.0","@gleanwork/mcp-config-schema":"^4.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^9.39.2","release-it":"^19.2.4","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^18.0.0","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^0.12.0","@release-it-plugins/lerna-changelog":"^8.0.1"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.5.0_1769310730824_0.6907249529995823","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"docusaurus-plugin-mcp-server","version":"0.6.0","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.6.0","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.mjs"},"dist":{"shasum":"dd4be6f1f726e05c2e556bbf94ecc4d943a114d9","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.6.0.tgz","fileCount":29,"integrity":"sha512-Z8UXI3Fp4EUxOjG3iW8shNcrZI9L2g7lZj74SzOjIHuqiO2WId0ESG8/kwSgOzPqLarimNK+4jPaRnbXT5IdCw==","signatures":[{"sig":"MEMCH2PXcxUT/33BBCzJwscVGB4ne2kkkau1K6h5dOrcU4cCIH+E6HhUZeiTvaALiP7nUPt8Fx0xU4jZDdPPbdnzYkru","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":771183},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.mjs","require":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.mjs","require":"./dist/adapters-entry.js"}},"gitHead":"7ab57a61b6243c28e8e4ae6540bd5f3e0b79216c","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"overrides":{"tar":"^7.5.6"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.0.0","@gleanwork/mcp-config-schema":"^4.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^9.39.2","release-it":"^19.2.4","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^18.0.0","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^0.12.0","@release-it-plugins/lerna-changelog":"^8.0.1"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.6.0_1769315691956_0.03316148526923812","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"docusaurus-plugin-mcp-server","version":"0.7.0","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.7.0","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.mjs"},"dist":{"shasum":"01106fa3abd42488487a2b198c37a4d0d55eeece","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.7.0.tgz","fileCount":29,"integrity":"sha512-JIdAfCE7cUJqgW1JkOKbu9IcCDE/0XooPWOD2zczdSHTmvOtrdfnnHhPsGb/iX5WUjymn1rj4zuNpLMo+Q4l7Q==","signatures":[{"sig":"MEMCIFSVzaeJFSwmDe/DOOvRK4gi7q2LV/pbBsmbBus1sePiAh8G0GG36igXlWgjYtV5rRyZgZc+q85IzMPwKiEtRxwL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":939249},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.mjs","require":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.mjs","require":"./dist/adapters-entry.js"}},"gitHead":"db2064fa4f9cdcbf1c48c99c4fdc5149266022bb","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"overrides":{"tar":"^7.5.6"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.0.0","@gleanwork/mcp-config-schema":"^4.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^9.39.2","release-it":"^19.2.4","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^18.0.0","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^0.12.0","@release-it-plugins/lerna-changelog":"^8.0.1"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.7.0_1769397998967_0.3868369021114826","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"docusaurus-plugin-mcp-server","version":"0.8.0","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.8.0","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.mjs"},"dist":{"shasum":"403a0c0da90da6bb0a2a5707efe2f4f17e786d75","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.8.0.tgz","fileCount":29,"integrity":"sha512-/Lpb+33DIQO/3Wien+xN0whoeiz/aixPduqS4BbK5ojpMvKevVVuj3CSVOr7BADYQP+8Wbs7XySZRjt1yUpX1g==","signatures":[{"sig":"MEQCIDNnhCNsNXNdcc9q5U3FWAqDpg5m6wb3lWuvP2VTC27CAiBwViVcfBx7WhseNTb6yeNZ9vH7drW0iX/hPHQ4Zn5TKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":836302},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.mjs","require":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.mjs","require":"./dist/adapters-entry.js"}},"gitHead":"32e6eb83e5e56ddbd04bbd0fc7d91c6f9b37e80f","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"overrides":{"tar":"^7.5.6"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.0.0","@gleanwork/mcp-config-schema":"^4.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^9.39.2","release-it":"^19.2.4","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^18.0.0","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^0.12.0","@release-it-plugins/lerna-changelog":"^8.0.1"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.8.0_1769441964455_0.5285553025165839","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"docusaurus-plugin-mcp-server","version":"0.9.0","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.9.0","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.mjs"},"dist":{"shasum":"0db9770cd2eb4ff615f3b43f254a5aaf724ee06e","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.9.0.tgz","fileCount":29,"integrity":"sha512-4rzRtxiUI7D8l9iR8EBuoKjmXJp3qyfHsvy2ZAKT1cjJoPTx6qgt7sP5wlp74Rvh+llX13bBF3PlPsClsYAabw==","signatures":[{"sig":"MEQCIBQ6vEhKlJZGOiIL2Zehu24f0SetMI5bXX6LeA5OhNgjAiAvcsQQltKC62sHsq5h7qZD1muoPqy44MQsM9J1VXPPAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":829947},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.mjs","require":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.mjs","require":"./dist/adapters-entry.js"}},"gitHead":"481a66814fa7850c207900662d37c440546d2fde","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"overrides":{"tar":"^7.5.6"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-html":"^9.0.5","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.0.0","@gleanwork/mcp-config-schema":"^4.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^9.39.2","release-it":"^19.2.4","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^18.0.0","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^0.12.0","@release-it-plugins/lerna-changelog":"^8.0.1"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.9.0_1769451162804_0.08051911549832402","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"docusaurus-plugin-mcp-server","version":"0.10.0","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.10.0","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.mjs"},"dist":{"shasum":"5dd8696b1067151ab2c330b6b6c7ea97f380eb86","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.10.0.tgz","fileCount":29,"integrity":"sha512-CUe73qWIZCJHZbsHoTLXeqQ3QhFAKMr4yPCGMNBsqj353pEkfbeiTGJ9FLn/865CeBxKm4no7rPqrz+9+9/vRA==","signatures":[{"sig":"MEYCIQDfuTSTF/georIXNqMi55lxxlBHLSSWpgHvk7rlzSLzyQIhAJMXsoXEzohqAu1R0GVMsPzNNBbYd2RLum50VvGsrrTR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":830942},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.mjs","require":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.mjs","require":"./dist/adapters-entry.js"}},"gitHead":"1cc639deba175a8c8c875ae857df1d9c513a70b4","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"overrides":{"tar":"^7.5.6"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-html":"^9.0.5","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.0.0","@gleanwork/mcp-config-schema":"^4.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^9.39.2","release-it":"^19.2.4","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^18.0.0","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^0.12.0","@release-it-plugins/lerna-changelog":"^8.0.1"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.10.0_1769617022892_0.8971945451696686","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"docusaurus-plugin-mcp-server","version":"0.10.1","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.10.1","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.js"},"dist":{"shasum":"4a998a756c2bd8fe2c0f37d70b62f08b2b04708b","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.10.1.tgz","fileCount":16,"integrity":"sha512-JJ42pxQpmjoJ+4CeAQiynQ/pQBw7FNQN03QoiLj6PVAO/VNs6sxft0daqYdrTq1PtvyIdlESaPkNKNDq2SErEw==","signatures":[{"sig":"MEUCIB5Y+OECVfUZwAtNallPFSJZwiMmvacyeq+5A6oFD7rrAiEAy7PJHhX7s8mXTNDEm06TGuB1c4mJDiEKWeDzE9mSrz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422866},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.js"}},"gitHead":"a2a4f3bdf05e7fdc6e9d26faab8fe19c97b8e3f5","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"overrides":{"tar":"^7.5.6"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-html":"^9.0.5","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.0.0","@gleanwork/mcp-config-schema":"^4.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^9.39.2","release-it":"^19.2.4","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^18.0.0","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^0.12.0","@release-it-plugins/lerna-changelog":"^8.0.1"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.10.1_1769801559252_0.25280652579422225","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"docusaurus-plugin-mcp-server","version":"0.10.2","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.10.2","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.js"},"dist":{"shasum":"9451f689a5e2a10cb35a7999a05437e01bd792d7","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.10.2.tgz","fileCount":16,"integrity":"sha512-JPLD8UufsOZMAbboDAG/ec7001SVVz15zZBTYgIN2ceRaaM5ZS0ccLtZEfUlhC6pZVOeK3k46lh/VUfHipz95Q==","signatures":[{"sig":"MEQCIDY1XTwX1Z5FHMhXWiFHSD36hlhpGnm8msi07CtQt6H9AiArCpsOQ9wdSLuXP/8e3IIuf9lk2FrD1Y0bdEB8X3T/8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422989},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.js","default":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.js","default":"./dist/adapters-entry.js"}},"gitHead":"440e2052eb596a5811e725dbf0645d5cec879cb0","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"overrides":{"tar":"^7.5.6"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.6.2","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-html":"^9.0.5","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.0.0","@gleanwork/mcp-config-schema":"^4.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^9.39.2","release-it":"^19.2.4","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^18.0.0","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^0.12.0","@release-it-plugins/lerna-changelog":"^8.0.1"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.10.2_1769803039015_0.5433782794551456","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"docusaurus-plugin-mcp-server","version":"0.11.0","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.11.0","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.js"},"dist":{"shasum":"ac0dc9e898e0cdc3eeb5d808b1bfe6f6668a5115","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.11.0.tgz","fileCount":16,"integrity":"sha512-lNltBXJGAHMKQFzbYh5nPWejYBCpOlrx2bVHOeaTzhnAp91sOosbw4tRq1mx3y4WM/V3/Utx+NIpzxNBa4ipeA==","signatures":[{"sig":"MEYCIQCfbqiTofqv0idKn3tM/FCYNNVdczUdYIwimY/f6Qg8mwIhAKKic1S3eD+NT6RWj7L8qJPZLRcwh4g9Q2PWZ7hDTYtg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423368},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.js","default":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.js","default":"./dist/adapters-entry.js"}},"gitHead":"fd637e3d0c9953cb38b46cbacd02af52c9426ac8","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"overrides":{"tar":"^7.5.6"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.8.0","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.13.1","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-html":"^9.0.5","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.0.0","@gleanwork/mcp-config-schema":"^4.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^9.39.2","release-it":"^19.2.4","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^18.0.0","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^0.12.0","@release-it-plugins/lerna-changelog":"^8.0.1"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.11.0_1773790463605_0.6938292902147134","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"docusaurus-plugin-mcp-server","version":"0.12.0","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.12.0","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.js"},"dist":{"shasum":"dd45ff36581131be7919a0352157a46a517baa19","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.12.0.tgz","fileCount":16,"integrity":"sha512-8qAomIqUNQtFK9HjFZTzeX1QBvbTesSWGILlgAclxMaur2QFtpf83NY/568a8DxH03k2ZTW4dXb97YYGMxhkZg==","signatures":[{"sig":"MEUCIQCVwR19uTiCHVGTX/NktNvTtTaYnu9+WJ7uAHS9iIEHKQIgN8oK1MPyY2BNjlLkBJBX9b1CXzKR0O1GI1BOlbH0NDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":432604},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.js","default":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.js","default":"./dist/adapters-entry.js"}},"gitHead":"e6c928bb4daa83ace5444454c15ba23f40fd81b5","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"overrides":{"tar":"^7.5.6"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.8.0","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.13.1","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-html":"^9.0.5","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.25.0","@gleanwork/mcp-config-schema":"^4.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^10.2.0","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^10.0.1","release-it":"^19.2.4","typescript":"^5.0.0","@types/node":"^25.6.0","@types/react":"^18.0.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^18.0.0","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^0.12.0","@release-it-plugins/lerna-changelog":"^8.0.1"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.12.0_1776029409994_0.4254068789859409","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"docusaurus-plugin-mcp-server","version":"0.13.0","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"author":{"name":"Steve Calvert"},"license":"MIT","_id":"docusaurus-plugin-mcp-server@0.13.0","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"bin":{"docusaurus-mcp-verify":"dist/cli/verify.js"},"dist":{"shasum":"9ddefb60a4e3a3bb7cbf1dbdf1c869ec206a5585","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-0.13.0.tgz","fileCount":16,"integrity":"sha512-ZFddSzR/rUIgTKGZ2VhNADEN4XxkMN55PalwIGiF7xTXbl4gYHi3EWUpArdlsS/ETgenI7kqD2ffdHEGvp/Kvw==","signatures":[{"sig":"MEUCIAS8Sn9m1c5QwyCEfBAOlxLmNEPJOgF+7azgrWUHLu+DAiEAj7pge6BY8DcFBAZO7yYwMBRoEmRCLX9ctnzESOOwVV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":424281},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.js","default":"./dist/theme/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.js","default":"./dist/adapters-entry.js"}},"gitHead":"63713764334d1be20fbde0a26e7f0ca51045d910","scripts":{"dev":"tsup --watch","lint":"eslint src/ tests/ && prettier --check .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp && npm run snippets:check","test:mcp":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","snippets:sync":"markdown-code sync","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","snippets:check":"markdown-code check"},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"overrides":{"tar":"^7.5.6","esbuild":"^0.28.1","serialize-javascript":"^7.0.5"},"release-it":{"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"},"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}}},"repository":{"url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","directories":{},"_nodeVersion":"24.15.0","dependencies":{"p-map":"^7.0.0","unified":"^11.0.0","fs-extra":"^11.0.0","flexsearch":"^0.7.43","remark-gfm":"^4.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","hast-util-select":"^6.0.0","remark-stringify":"^11.0.0","hast-util-to-html":"^9.0.5","hast-util-to-string":"^3.0.0","@modelcontextprotocol/sdk":"^1.25.0","@gleanwork/mcp-config-schema":"^5.0.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","tsup":"^8.0.0","eslint":"^10.2.0","vitest":"^4.0.18","globals":"^17.1.0","prettier":"^3.0.0","@eslint/js":"^10.0.1","release-it":"^20.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/react":"^19.2.14","markdown-code":"^1.1.0","@types/fs-extra":"^11.0.0","@docusaurus/core":"^3.9.2","@playwright/test":"^1.58.0","@types/react-dom":"^19.2.3","@docusaurus/types":"^3.9.2","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","@gleanwork/mcp-server-tester":"^1.0.0","@release-it-plugins/lerna-changelog":"^9.0.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"@docusaurus/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/docusaurus-plugin-mcp-server_0.13.0_1781910516196_0.9542618121863542","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"docusaurus-plugin-mcp-server","version":"1.0.0","description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"repository":{"type":"git","url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git"},"license":"MIT","author":{"name":"Steve Calvert"},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./adapters":{"types":"./dist/adapters-entry.d.ts","import":"./dist/adapters-entry.js","default":"./dist/adapters-entry.js"},"./adapters/node":{"types":"./dist/adapters-node.d.ts","import":"./dist/adapters-node.js","default":"./dist/adapters-node.js"},"./theme":{"types":"./dist/theme/index.d.ts","import":"./dist/theme/index.js","default":"./dist/theme/index.js"}},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","bin":{"docusaurus-mcp-verify":"dist/cli/verify.js"},"scripts":{"build":"tsup","dev":"tsup --watch","format":"prettier --write .","lint":"eslint src/ tests/ && prettier --check .","lint:fix":"eslint src/ tests/ --fix && prettier --write .","prepublishOnly":"npm run lint && npm run typecheck && npm run test && npm run build","snippets:check":"markdown-code check","snippets:sync":"markdown-code sync","test":"vitest run","test:all":"npm run lint && npm run typecheck && npm run test && npm run test:mcp && npm run snippets:check","test:coverage":"vitest run --coverage","test:mcp":"playwright test","test:watch":"vitest","typecheck":"tsc --noEmit"},"dependencies":{"@gleanwork/mcp-config-schema":"^5.0.0","@modelcontextprotocol/sdk":"^1.29.0","flexsearch":"^0.7.43","fs-extra":"^11.0.0","hast-util-select":"^6.0.0","hast-util-to-html":"^9.0.5","hast-util-to-string":"^3.0.0","p-map":"^7.0.0","rehype-parse":"^9.0.0","rehype-remark":"^10.0.0","remark-gfm":"^4.0.0","remark-stringify":"^11.0.0","unified":"^11.0.0"},"devDependencies":{"@docusaurus/core":"^3.9.2","@docusaurus/types":"^3.9.2","@eslint/js":"^10.0.1","@gleanwork/mcp-server-tester":"^1.0.0","@playwright/test":"^1.58.0","@release-it-plugins/lerna-changelog":"^9.0.0","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@types/fs-extra":"^11.0.0","@types/node":"^26.0.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","eslint":"^10.2.0","globals":"^17.1.0","jsdom":"^29.1.1","markdown-code":"^1.1.0","prettier":"^3.0.0","react":"^19.2.7","react-dom":"^19.2.7","release-it":"^20.0.0","tsup":"^8.0.0","typescript":"^5.0.0","typescript-eslint":"^8.53.1","vitest":"^4.0.18","zod":"^4.3.6"},"peerDependencies":{"@docusaurus/core":"^3.0.0","@docusaurus/types":"^3.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","zod":"^3.0.0 || ^4.0.0"},"peerDependenciesMeta":{"@docusaurus/core":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"engines":{"node":">=20.0.0"},"overrides":{"tar":"^7.5.6","serialize-javascript":"^7.0.5","esbuild":"^0.28.1"},"publishConfig":{"registry":"https://registry.npmjs.org"},"release-it":{"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}},"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"}},"gitHead":"9918231fb6e6bb57b28287f9299f6908ecff3c0f","_id":"docusaurus-plugin-mcp-server@1.0.0","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-YXx/X2JwIntMjZBYALhn+hVHysUwMSev6gAHYzQKGUF9FEwV7UttViKZJV3Bi9QclR/AJ9ICBUUz1mcAKhCV2w==","shasum":"80db29637893d1fd8b65b071e2113ef871dc60fe","tarball":"https://registry.npmjs.org/docusaurus-plugin-mcp-server/-/docusaurus-plugin-mcp-server-1.0.0.tgz","fileCount":19,"unpackedSize":499958,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEo31/cxhP184OY9uQbhfRCEBZuOgJT4I27DWvuDUi4jAiEAmaargIaBFnrlG4I/lst6UwdGvyvjzlntzGB545cjipc="}]},"_npmUser":{"name":"scalvert","email":"steve.calvert@gmail.com"},"directories":{},"maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/docusaurus-plugin-mcp-server_1.0.0_1782530832236_0.007041474070111464"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-25T03:12:10.823Z","modified":"2026-06-27T03:27:12.461Z","0.5.0":"2026-01-25T03:12:11.088Z","0.6.0":"2026-01-25T04:34:52.137Z","0.7.0":"2026-01-26T03:26:39.144Z","0.8.0":"2026-01-26T15:39:24.631Z","0.9.0":"2026-01-26T18:12:43.011Z","0.10.0":"2026-01-28T16:17:03.112Z","0.10.1":"2026-01-30T19:32:39.439Z","0.10.2":"2026-01-30T19:57:19.226Z","0.11.0":"2026-03-17T23:34:23.768Z","0.12.0":"2026-04-12T21:30:10.165Z","0.13.0":"2026-06-19T23:08:36.343Z","1.0.0":"2026-06-27T03:27:12.359Z"},"bugs":{"url":"https://github.com/scalvert/docusaurus-plugin-mcp-server/issues"},"author":{"name":"Steve Calvert"},"license":"MIT","homepage":"https://github.com/scalvert/docusaurus-plugin-mcp-server#readme","keywords":["docusaurus","docusaurus-plugin","mcp","model-context-protocol","documentation","ai","search","llm","claude","cursor"],"repository":{"type":"git","url":"git+https://github.com/scalvert/docusaurus-plugin-mcp-server.git"},"description":"A Docusaurus plugin that exposes an MCP server endpoint for AI agents to search and retrieve documentation","maintainers":[{"name":"scalvert","email":"steve.calvert@gmail.com"}],"readme":"# docusaurus-plugin-mcp-server\n\n![CI Build](https://github.com/scalvert/docusaurus-plugin-mcp-server/actions/workflows/ci.yml/badge.svg)\n[![npm version](https://badge.fury.io/js/docusaurus-plugin-mcp-server.svg)](https://badge.fury.io/js/docusaurus-plugin-mcp-server)\n[![License](https://img.shields.io/npm/l/docusaurus-plugin-mcp-server.svg)](https://github.com/scalvert/docusaurus-plugin-mcp-server/blob/main/LICENSE)\n\nA Docusaurus plugin that exposes an [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server endpoint, allowing AI agents like Claude, Cursor, and other MCP-compatible tools to search and retrieve your documentation.\n\n## Installation\n\n```bash\nnpm install docusaurus-plugin-mcp-server\n```\n\n## Quick Start\n\n### 1. Add the Plugin\n\n```javascript snippet=readme/snippet-01.js\n// docusaurus.config.js\nmodule.exports = {\n  plugins: [\n    [\n      'docusaurus-plugin-mcp-server',\n      {\n        server: {\n          name: 'my-docs',\n          version: '1.0.0',\n        },\n      },\n    ],\n  ],\n};\n```\n\n### 2. Create the API Endpoint\n\nThe MCP server runs on any web-standard serverless or edge runtime — Cloudflare Workers, modern Netlify functions, Vercel Edge, Deno, Bun. Import the build artifacts and pass them to `createWebRequestHandler`, which returns a standard `(request: Request) => Promise<Response>`. (These runtimes can't read the filesystem, so the data is imported as modules rather than loaded from disk.)\n\n```javascript snippet=readme/snippet-06.js\nimport { createWebRequestHandler } from 'docusaurus-plugin-mcp-server/adapters';\nimport docs from '../build/mcp/docs.json';\nimport searchIndex from '../build/mcp/search-index.json';\n\nexport default {\n  fetch: createWebRequestHandler({\n    docs,\n    searchIndexData: searchIndex,\n    name: 'my-docs',\n    baseUrl: 'https://docs.example.com',\n  }),\n};\n```\n\nThe `export default { fetch }` form works on Cloudflare Workers, Deno, and Bun. Other runtimes use their own entry convention (e.g. modern Netlify functions `export default async (request) => Response`) — the handler is identical, only the export wrapper differs.\n\nThe handler is unauthenticated and allows all origins (`Access-Control-Allow-Origin: *`) by default, since a docs MCP endpoint is meant to be public — pass `corsOrigin` to restrict it.\n\nFor local development, run the server over Node's `http` with `createNodeServer` from `docusaurus-plugin-mcp-server/adapters/node` (see [Adapter Exports](#adapter-exports)).\n\n### 3. Build and Deploy\n\n```bash\nnpm run build\n# Deploy to your platform\n```\n\n### 4. Connect Your AI Tool\n\n**Claude Code:**\n\n```bash\nclaude mcp add --transport http my-docs https://docs.example.com/mcp\n```\n\n**Cursor / VS Code:**\n\n```json snippet=readme/snippet-07.json\n{\n  \"mcpServers\": {\n    \"my-docs\": {\n      \"url\": \"https://docs.example.com/mcp\"\n    }\n  }\n}\n```\n\n### 5. Add an Install Button (Optional)\n\nAdd a dropdown button to your docs site so users can easily install the MCP server in their AI tool:\n\n```tsx snippet=readme/snippet-08.tsx\nimport { McpInstallButton } from 'docusaurus-plugin-mcp-server/theme';\n\nfunction NavbarItems() {\n  return <McpInstallButton serverUrl=\"https://docs.example.com/mcp\" serverName=\"my-docs\" />;\n}\n```\n\nThe button shows a dropdown with copy-to-clipboard configurations for all supported MCP clients.\n\n| Light Mode | Dark Mode |\n|:----------:|:---------:|\n| ![MCP Install Button - Light Mode](./img/mcp-button-light.png) | ![MCP Install Button - Dark Mode](./img/mcp-button-dark.png) |\n\n**Props:**\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `serverUrl` | `string` | (plugin config) | MCP server endpoint URL. Falls back to the plugin's global data when omitted |\n| `serverName` | `string` | (plugin config) | MCP server name. Falls back to the plugin's global data when omitted |\n| `label` | `string` | (none) | Button label. If omitted, shows only the MCP icon |\n| `headerText` | `string` | `\"Choose your AI tool:\"` | Text shown at the top of the dropdown |\n| `className` | `string` | `\"\"` | Optional CSS class |\n| `clients` | `ClientId[]` | All HTTP-capable | Which clients to show |\n\n## MCP Tools\n\nThe server exposes two tools for AI agents:\n\n### `docs_search`\n\nSearch across documentation with relevance ranking. Returns matching documents with URLs, snippets, and relevance scores.\n\n```json snippet=readme/snippet-09.json\n{\n  \"name\": \"docs_search\",\n  \"arguments\": {\n    \"query\": \"authentication\",\n    \"limit\": 16\n  }\n}\n```\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `query` | `string` | required | Search query |\n| `limit` | `number` | `16` | Max results (1-20) |\n\n**Response includes:**\n\n- Full URL for each result (use with `docs_fetch`)\n- Title and relevance score\n- Snippet of matching content\n- Matching headings\n\n### `docs_fetch`\n\nRetrieve full page content as markdown. Use this after searching to get the complete content of a specific page.\n\n```json snippet=readme/snippet-10.json\n{\n  \"name\": \"docs_fetch\",\n  \"arguments\": {\n    \"url\": \"https://docs.example.com/docs/authentication\"\n  }\n}\n```\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `url` | `string` | Full URL of the page (from search results) |\n\n**Response includes:**\n\n- Page title and description\n- Table of contents with anchor links\n- Full markdown content\n\n## Plugin Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `outputDir` | `string` | `'mcp'` | Output directory for MCP artifacts (relative to build dir) |\n| `contentSelectors` | `string[]` | `['article', 'main', ...]` | CSS selectors for finding content |\n| `excludeSelectors` | `string[]` | `['nav', 'header', ...]` | CSS selectors for elements to remove |\n| `minContentLength` | `number` | `50` | Minimum content length to consider a page valid |\n| `server.name` | `string` | `'docs-mcp-server'` | Name of the MCP server |\n| `server.version` | `string` | `'1.0.0'` | Version of the MCP server |\n| `server.url` | `string` | (derived) | Explicit MCP HTTP endpoint URL for the install button |\n| `server.urlBase` | `'origin' \\| 'site'` | `'origin'` | How to derive the MCP URL when `server.url` is not set. `'origin'` → `{siteUrl}/{outputDir}`; `'site'` → under Docusaurus `baseUrl` |\n| `excludeRoutes` | `string[]` | `['/404*', '/search*']` | Routes to exclude (glob patterns) |\n| `indexers` | `string[] \\| false` | `['flexsearch']` | Indexers to run during build. Use `false` to disable. Supports built-in (`'flexsearch'`), relative paths, or npm packages. |\n| `search` | `string` | `'flexsearch'` | Search provider module for runtime queries. Supports built-in (`'flexsearch'`), relative paths, or npm packages. |\n| `flexsearch` | `FlexSearchConfig` | (tuned defaults) | Tuning for the built-in FlexSearch index (`tokenize`, `resolution`, `context`, `fieldWeights`). Must be the same at build and runtime, or the index deserializes wrong. |\n\nBuild-time options control artifact generation and the install-button URL (`server.url` / `server.urlBase`). Runtime-only options such as `instructions`, `tools`, and `baseUrl` belong on the adapter/handler config — see [Server Configuration](#server-configuration).\n\n### Default Selectors\n\n**Content selectors** (in priority order):\n\n```javascript snippet=readme/snippet-11.js\n['article', 'main', '.main-wrapper', '[role=\"main\"]'];\n```\n\n**Exclude selectors**:\n\n```javascript snippet=readme/snippet-12.js\n[\n  'nav',\n  'header',\n  'footer',\n  'aside',\n  '[role=\"navigation\"]',\n  '[role=\"banner\"]',\n  '[role=\"contentinfo\"]',\n];\n```\n\n## Custom Providers\n\nThe plugin uses a two-phase provider model: **indexers** run at build time to process documents, and **search providers** handle queries at runtime. Both are pluggable.\n\n### ContentIndexer\n\nImplement `ContentIndexer` to push documents to an external system during build:\n\n```typescript snippet=readme/snippet-13.ts\nimport type { ContentIndexer, ProviderContext, ProcessedDoc } from 'docusaurus-plugin-mcp-server';\n\nexport default class AlgoliaIndexer implements ContentIndexer {\n  readonly name = 'algolia';\n\n  shouldRun(): boolean {\n    return process.env.ALGOLIA_SYNC === 'true';\n  }\n\n  async initialize(context: ProviderContext): Promise<void> {\n    console.log(`[Algolia] Initializing for ${context.baseUrl}`);\n  }\n\n  async indexDocuments(docs: ProcessedDoc[]): Promise<void> {\n    // Push docs to Algolia\n  }\n\n  async finalize(): Promise<Map<string, unknown>> {\n    // No local artifacts needed\n    return new Map();\n  }\n}\n```\n\n### SearchProvider\n\nImplement `SearchProvider` to delegate runtime search to an external service:\n\n```typescript snippet=readme/snippet-14.ts\nimport type {\n  SearchProvider,\n  ProviderContext,\n  SearchOptions,\n  SearchResult,\n} from 'docusaurus-plugin-mcp-server';\n\nexport default class GleanSearchProvider implements SearchProvider {\n  readonly name = 'glean';\n\n  private apiEndpoint = process.env.GLEAN_API_ENDPOINT!;\n  private apiToken = process.env.GLEAN_API_TOKEN!;\n\n  async initialize(context: ProviderContext): Promise<void> {\n    if (!this.apiEndpoint || !this.apiToken) {\n      throw new Error('GLEAN_API_ENDPOINT and GLEAN_API_TOKEN required');\n    }\n  }\n\n  isReady(): boolean {\n    return !!this.apiEndpoint && !!this.apiToken;\n  }\n\n  async search(query: string, options?: SearchOptions): Promise<SearchResult[]> {\n    // Call Glean Search API and transform results\n    return [];\n  }\n}\n```\n\n### Configuring Custom Providers\n\n```javascript snippet=readme/snippet-15.js\n// docusaurus.config.js\nmodule.exports = {\n  plugins: [\n    [\n      'docusaurus-plugin-mcp-server',\n      {\n        // Run both the built-in FlexSearch indexer and a custom one\n        indexers: ['flexsearch', './my-algolia-indexer.js'],\n        // Use a custom search provider at runtime\n        search: '@myorg/glean-search',\n      },\n    ],\n  ],\n};\n```\n\n## Server Configuration\n\nThese options apply to `createWebRequestHandler`, `createNodeServer`, and `createNodeHandler` — where the MCP server actually runs. They are **not** `McpServerPluginOptions`; the Docusaurus plugin only builds `docs.json` and the search index at build time.\n\n| Option | Type | Required | Description |\n|--------|------|----------|-------------|\n| `docsPath` | `string` | Yes* | Path to `docs.json` |\n| `indexPath` | `string` | Yes* | Path to `search-index.json` |\n| `docs` | `object` | Yes* | Pre-loaded docs (web handler) |\n| `searchIndexData` | `object` | Yes* | Pre-loaded search index (web handler) |\n| `name` | `string` | Yes | Server name |\n| `version` | `string` | No | Server version |\n| `baseUrl` | `string` | No | Base URL for full page URLs in responses |\n| `instructions` | `string` | No | Instructions describing how to use the server, surfaced to MCP clients in the `initialize` response |\n| `tools` | `object` | No | Per-tool overrides. Supports `docs_search.description` and `docs_fetch.description` to customize tool descriptions |\n\n*Use file paths (`createNodeServer`, local dev) or pre-loaded data (`createWebRequestHandler`, serverless/edge).\n\nExample with extended configuration:\n\n```javascript\nexport default {\n  fetch: createWebRequestHandler({\n    docs,\n    searchIndexData: searchIndex,\n    name: 'my-docs',\n    baseUrl: 'https://docs.example.com',\n    instructions: 'Search the Acme product docs. Use docs_search to find pages, then docs_fetch for full content.',\n    tools: {\n      docs_search: { description: 'Search the Acme product documentation.' },\n      docs_fetch: { description: 'Fetch the full markdown of an Acme docs page.' },\n    },\n  }),\n};\n```\n\n## Verifying Your Build\n\nAfter running `npm run build`, use the included CLI to verify the MCP output:\n\n```bash\nnpx docusaurus-mcp-verify\n```\n\nThis checks that:\n\n- All required files exist (`docs.json`, `search-index.json`, `manifest.json`)\n- Document structure is valid\n- The MCP server can initialize and load the content\n\nYou can specify a custom build directory:\n\n```bash\nnpx docusaurus-mcp-verify ./custom-build\n```\n\nExample output:\n\n```sh\n🔍 MCP Build Verification\n==================================================\nBuild directory: /path/to/your/project/build\n\n📁 Checking build output...\n   ✓ Found 42 documents\n   ✓ All required files present\n   ✓ File structure valid\n\n🚀 Testing MCP server...\n   ✓ Server initialized with 42 documents\n\n✅ All checks passed!\n```\n\n## Testing the Endpoint\n\nThe easiest way to test your MCP server is with the official MCP Inspector:\n\n```bash\nnpx @modelcontextprotocol/inspector\n```\n\nThis opens a visual interface where you can:\n\n- Connect to your server URL\n- Browse available tools\n- Execute tool calls interactively\n- View responses in a formatted display\n\nAlternatively, test with curl:\n\n```bash\n# List available tools\ncurl -X POST https://docs.example.com/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}'\n\n# Search documentation\ncurl -X POST https://docs.example.com/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\":\"2.0\",\n    \"id\":2,\n    \"method\":\"tools/call\",\n    \"params\":{\n      \"name\":\"docs_search\",\n      \"arguments\":{\"query\":\"getting started\"}\n    }\n  }'\n```\n\n## How It Works\n\n![How It Works](./img/how-it-works.svg)\n\nThe plugin operates in two phases:\n\n**Build Time:** During `docusaurus build`, the plugin's `postBuild` hook processes all rendered HTML pages, extracts content, converts to markdown, builds a FlexSearch index, and outputs artifacts to `build/mcp/`.\n\n**Runtime:** A serverless function loads the pre-built artifacts and handles MCP JSON-RPC requests from AI agents. The server is stateless and fast since all indexing happens at build time.\n\n## Features\n\n- **Full-text Search** - FlexSearch-powered search with relevance ranking\n- **Page Retrieval** - Get complete page content as clean markdown\n- **Runs Anywhere** - One web-standard handler (`createWebRequestHandler`) for any serverless/edge runtime — Cloudflare Workers, modern Netlify functions, Vercel Edge, Deno, Bun — plus a Node server (`createNodeServer`) for local development\n- **CORS Support** - The web and Node handlers send CORS headers for browser-based clients; restrict with `corsOrigin`\n- **Build-time Processing** - Extracts content from rendered HTML, capturing React component output\n- **Zero Runtime Docusaurus Dependency** - The MCP server runs independently\n\n## Local Development\n\nRun a local MCP server for testing using the built-in Node adapter:\n\n```javascript snippet=readme/snippet-16.js\n// mcp-server.mjs\nimport { createNodeServer } from 'docusaurus-plugin-mcp-server/adapters/node';\n\ncreateNodeServer({\n  docsPath: './build/mcp/docs.json',\n  indexPath: './build/mcp/search-index.json',\n  name: 'my-docs',\n  baseUrl: 'http://localhost:3000',\n}).listen(3456, () => {\n  console.log('MCP server at http://localhost:3456');\n});\n```\n\nThe Node adapter handles CORS, preflight requests, and health checks (GET) automatically.\n\nConnect Claude Code:\n\n```bash\nclaude mcp add --transport http my-docs http://localhost:3456\n```\n\n## API Reference\n\n### Main Exports\n\n```javascript snippet=readme/snippet-17.js\nimport {\n  // Docusaurus plugin (also the default export)\n  mcpServerPlugin,\n\n  // MCP server class (advanced / custom runtimes)\n  McpDocsServer,\n\n  // Tool definitions\n  docsSearchTool,\n  docsFetchTool,\n\n  // Provider loaders (built-in 'flexsearch' or custom indexers/providers)\n  loadIndexer,\n  loadSearchProvider,\n\n  // Resolve the MCP endpoint URL the install button uses\n  resolveServerUrl,\n\n  // Default plugin options\n  DEFAULT_PLUGIN_OPTIONS,\n} from 'docusaurus-plugin-mcp-server';\n```\n\n### `resolveServerUrl`\n\nDerives the public MCP HTTP endpoint URL — the same logic the plugin uses for the install button and `globalData`. Use this when building custom theme UI that must stay in sync with plugin URL resolution.\n\nTypes `ResolveServerUrlInput` and `ServerUrlBase` are also exported from `.`.\n\n```typescript\nimport { resolveServerUrl, type ResolveServerUrlInput } from 'docusaurus-plugin-mcp-server';\n\nconst serverUrl = resolveServerUrl({\n  siteUrl: 'https://docs.example.com',\n  baseUrl: '/docs/',\n  outputDir: 'mcp',\n  server: { urlBase: 'site' },\n});\n// → 'https://docs.example.com/docs/mcp'\n```\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `siteUrl` | `string` | Docusaurus `siteConfig.url` |\n| `baseUrl` | `string` | Docusaurus `siteConfig.baseUrl` |\n| `outputDir` | `string` | Plugin `outputDir` (default `'mcp'`) |\n| `server.url` | `string` | Explicit endpoint; when set, `urlBase` is ignored |\n| `server.urlBase` | `ServerUrlBase` | `'origin'` (default) → `{siteUrl}/{outputDir}`; `'site'` → under `baseUrl` |\n\n`ServerUrlBase` is `'origin' | 'site'`. Mirrors the `server.url` / `server.urlBase` plugin options.\n\n### Adapter Exports\n\n```javascript snippet=readme/snippet-18.js\nimport { createWebRequestHandler } from 'docusaurus-plugin-mcp-server/adapters';\nimport { createNodeServer, createNodeHandler } from 'docusaurus-plugin-mcp-server/adapters/node';\n```\n\n- `createNodeServer(options)` — Creates a complete Node.js HTTP server for local development. Returns an `http.Server` ready to `.listen()`.\n- `createNodeHandler(options)` — Creates a request handler function compatible with `http.createServer()`. Use this when you need to integrate with an existing server.\n\n### Theme Exports\n\n```tsx snippet=readme/snippet-19.tsx\nimport {\n  McpInstallButton,\n  type McpInstallButtonProps,\n  useMcpRegistry,\n  createDocsRegistry,\n  createDocsRegistryOptions,\n  type McpConfig,\n} from 'docusaurus-plugin-mcp-server/theme';\n```\n\n- `McpInstallButton` — Dropdown button for users to install the MCP server in their AI tool.\n- `useMcpRegistry()` — React hook that returns the MCP config registry from plugin global data. Returns `undefined` if the plugin is not installed.\n- `createDocsRegistry(config)` — Creates a pre-configured `MCPConfigRegistry` for documentation servers.\n- `createDocsRegistryOptions(config)` — Returns registry options without creating the registry.\n- `McpConfig` — Type for `{ serverUrl: string; serverName: string }`.\n\n## Requirements\n\n- Node.js >= 20\n- Docusaurus 3.x\n\n## License\n\nMIT\n\n<!-- configure-agents:skills start -->\n\n## Agent skills\n\nThis repository ships agent skill(s) under `skills/`. Install them into your\nAI agent with [`npx skills`](https://github.com/agentskills/agentskills):\n\n```sh\nnpx skills add -g scalvert/docusaurus-plugin-mcp-server   # global — available in every repo\nnpx skills add scalvert/docusaurus-plugin-mcp-server      # or scoped to the current repo\n```\n\n<!-- configure-agents:skills end -->\n","readmeFilename":"README.md"}