{"_id":"@corsenai/corsen-context-astro","_rev":"4-eaf40b55574e6eaf41709b20da8a9a31","name":"@corsenai/corsen-context-astro","dist-tags":{"latest":"2.0.1"},"versions":{"1.2.0":{"name":"@corsenai/corsen-context-astro","version":"1.2.0","keywords":["mcp","llms-txt","astro","ai","corsen"],"author":{"name":"Corsen AI","email":"contact@corsen.ai"},"license":"MIT","_id":"@corsenai/corsen-context-astro@1.2.0","maintainers":[{"name":"corsenai","email":"mordehai.attia@corsen.ai"}],"homepage":"https://github.com/CorsenAI/corsen-context","bugs":{"url":"https://github.com/CorsenAI/corsen-context/issues"},"dist":{"shasum":"c1455d42187c6f2b0bb89f4c33bd3b993cb100be","tarball":"https://registry.npmjs.org/@corsenai/corsen-context-astro/-/corsen-context-astro-1.2.0.tgz","fileCount":7,"integrity":"sha512-1a6MnL4sNgigUaCEe6gRmlF2mMMSavUN+rukzvLCW/ysTr2jazOdx3sCuZDdf5mOnLEhs1fjlgKP6e1mZ2/+CQ==","signatures":[{"sig":"MEQCIGwiczwNcCmUm/66tJPR0v9PEAVobYZ3RVYWTSJr1tRvAiAtew+MO8AJSbsbx5Ujqmycxdu5fCYjyXe3ltnim7WLPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21530},"main":"./dist/index.js","_from":"file:corsenai-corsen-context-astro-1.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --clean","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"corsenai","email":"mordehai.attia@corsen.ai"},"_resolved":"C:\\Users\\RTX6000\\AppData\\Local\\Temp\\claude\\C--Users-RTX6000-projects-corsen-context\\d6c21ee7-40cc-449c-8035-09b87447b4ef\\scratchpad\\tgz\\corsenai-corsen-context-astro-1.2.0.tgz","_integrity":"sha512-1a6MnL4sNgigUaCEe6gRmlF2mMMSavUN+rukzvLCW/ysTr2jazOdx3sCuZDdf5mOnLEhs1fjlgKP6e1mZ2/+CQ==","repository":{"url":"git+https://github.com/CorsenAI/corsen-context.git","type":"git","directory":"packages/astro-adapter"},"_npmVersion":"11.18.0","description":"Astro adapter for Corsen Context — AI Context Layer with MCP + llms.txt","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@corsenai/corsen-context":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/corsen-context-astro_1.2.0_1783991409151_0.4054560616462839","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@corsenai/corsen-context-astro","version":"1.3.0","keywords":["mcp","llms-txt","astro","ai","corsen"],"author":{"name":"Corsen AI","email":"contact@corsen.ai"},"license":"MIT","_id":"@corsenai/corsen-context-astro@1.3.0","maintainers":[{"name":"corsenai","email":"mordehai.attia@corsen.ai"}],"homepage":"https://github.com/CorsenAI/corsen-context","bugs":{"url":"https://github.com/CorsenAI/corsen-context/issues"},"dist":{"shasum":"2543777a5413d879b5363d4e0d1729fde383fc0f","tarball":"https://registry.npmjs.org/@corsenai/corsen-context-astro/-/corsen-context-astro-1.3.0.tgz","fileCount":7,"integrity":"sha512-iO3rvSx3Qt0oY12aZ5t+vHo6qAjPsttkzy4i6AHg+0EfchHBjbuKBIjLzO+ECsy5tLL9GeEjKqukAVVTnTjTGw==","signatures":[{"sig":"MEUCIQDrel9fsmVSOQfG8+WY7lsF4husuUkV1LSTHr+LlD9t8QIgb0blKTsH/I24cKX7e7tWU7RE8ooSQ1voCg4j0i3ETL8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF3FiLdd/n4gMWL91vWWwBNXu0FaB6oPLeJw/1/r0QsgAiBETxEQzPJdmgmWCUc1mbVtwhbydt51XVevKqQYr28ilg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24091},"main":"./dist/index.js","_from":"file:corsenai-corsen-context-astro-1.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --clean","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"corsenai","email":"mordehai.attia@corsen.ai"},"_resolved":"/tmp/4574634c108353ec6b5d83cfb833e091/corsenai-corsen-context-astro-1.3.0.tgz","_integrity":"sha512-iO3rvSx3Qt0oY12aZ5t+vHo6qAjPsttkzy4i6AHg+0EfchHBjbuKBIjLzO+ECsy5tLL9GeEjKqukAVVTnTjTGw==","repository":{"url":"git+https://github.com/CorsenAI/corsen-context.git","type":"git","directory":"packages/astro-adapter"},"_npmVersion":"11.17.0","description":"Astro adapter for Corsen Context — AI Context Layer with MCP + llms.txt","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@corsenai/corsen-context":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/corsen-context-astro_1.3.0_1788093590181_0.3736773521765189","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@corsenai/corsen-context-astro","version":"2.0.0","keywords":["mcp","llms-txt","astro","ai","corsen"],"author":{"name":"Corsen AI","email":"contact@corsen.ai"},"license":"MIT","_id":"@corsenai/corsen-context-astro@2.0.0","maintainers":[{"name":"corsenai","email":"mordehai.attia@corsen.ai"}],"homepage":"https://github.com/CorsenAI/corsen-context","bugs":{"url":"https://github.com/CorsenAI/corsen-context/issues"},"dist":{"shasum":"075cc8af2b42e9c02878c05d5e0953ce43cb8594","tarball":"https://registry.npmjs.org/@corsenai/corsen-context-astro/-/corsen-context-astro-2.0.0.tgz","fileCount":7,"integrity":"sha512-+VkoUZSLvFmw1ipGgvWXSNddjpwtImyBcein7YCjc8Vm8buumeJgFpPoh/00UcubXK9q3IGC7yscBPmz7ztkFw==","signatures":[{"sig":"MEUCIC0idmV29ymsgFCQ6yFy7pSNklwUjVfPesg0z80U3pH1AiEA/3KX8n+hOIZAyrEtFiz0a/cRRT05Uui/dx+WQeZzOLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGT9JhT0Pic9/Bym9MojiZRlSakf69oHX/cONXs3u1y5AiEAxf/lVoyQ5qRg/0Smmf2qJwE45T65EoE/8gZw9kYDBVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34010},"main":"./dist/index.js","_from":"file:corsenai-corsen-context-astro-2.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --clean","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"corsenai","email":"mordehai.attia@corsen.ai"},"_resolved":"C:\\Users\\RTX6000\\projects\\wordpressplugins\\corsen-context\\packages\\astro-adapter\\corsenai-corsen-context-astro-2.0.0.tgz","_integrity":"sha512-+VkoUZSLvFmw1ipGgvWXSNddjpwtImyBcein7YCjc8Vm8buumeJgFpPoh/00UcubXK9q3IGC7yscBPmz7ztkFw==","repository":{"url":"git+https://github.com/CorsenAI/corsen-context.git","type":"git","directory":"packages/astro-adapter"},"_npmVersion":"11.18.0","description":"Astro adapter for owner-controlled MCP, WebMCP, llms.txt, and sitemap surfaces","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@corsenai/corsen-context":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.2","vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/corsen-context-astro_2.0.0_1788120600253_0.8466282325927805","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"_id":"@corsenai/corsen-context-astro@2.0.1","bugs":{"url":"https://github.com/CorsenAI/corsen-context/issues"},"dist":{"shasum":"cefcffc4cb5aae1b669b509457ddbc4d7a0d5ba6","tarball":"https://registry.npmjs.org/@corsenai/corsen-context-astro/-/corsen-context-astro-2.0.1.tgz","fileCount":7,"integrity":"sha512-QnTWQtQwGvrHboqatFZhhVMlwWQL1FoRILkGF9sarIuS25CsPvruqcFe1sh4nFBSjD1MC85jhT1hxB3NKyd3BA==","signatures":[{"sig":"MEUCIQCTYnDB8c1xxQ71kjKwXso+kjXfyCwOh+sXW/AzStZQWwIgF3a0eo2sgu8ILURZN7/YQnMg+AyKKI5VGVcIgvlvXaI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDm7CaN3R2X6FgyRlYFb1TX8gkUmqutE381vb6ljMFa6AIgenJhfOQUhlCY0NUNkY0jUnP7A9jBCGRdowMBCDejNO0="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@corsenai%2fcorsen-context-astro@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33989},"main":"./dist/index.js","name":"@corsenai/corsen-context-astro","types":"./dist/index.d.ts","author":"Corsen AI <contact@corsen.ai>","module":"./dist/index.mjs","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"license":"MIT","scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --clean","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"version":"2.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:104caabc-9284-430f-8848-bca6b0bef856"}},"homepage":"https://github.com/CorsenAI/corsen-context","keywords":["mcp","llms-txt","astro","ai","corsen"],"repository":{"url":"https://github.com/CorsenAI/corsen-context.git","type":"git","directory":"packages/astro-adapter"},"description":"Astro adapter for owner-controlled MCP, WebMCP, llms.txt, and sitemap surfaces","directories":{},"maintainers":[{"name":"corsenai","email":"mordehai.attia@corsen.ai"}],"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@corsenai/corsen-context":"2.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.2","vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/corsen-context-astro_2.0.1_1788360625378_0.3499440322947751"}}},"time":{"created":"2026-07-14T01:10:08.979Z","modified":"2026-09-02T14:50:25.802Z","1.2.0":"2026-07-14T01:10:09.284Z","1.3.0":"2026-08-30T12:39:50.253Z","2.0.0":"2026-08-30T20:10:00.323Z","2.0.1":"2026-09-02T14:50:25.463Z"},"bugs":{"url":"https://github.com/CorsenAI/corsen-context/issues"},"author":"Corsen AI <contact@corsen.ai>","license":"MIT","homepage":"https://github.com/CorsenAI/corsen-context","keywords":["mcp","llms-txt","astro","ai","corsen"],"repository":{"url":"https://github.com/CorsenAI/corsen-context.git","type":"git","directory":"packages/astro-adapter"},"description":"Astro adapter for owner-controlled MCP, WebMCP, llms.txt, and sitemap surfaces","maintainers":[{"name":"corsenai","email":"mordehai.attia@corsen.ai"}],"readme":"# @corsenai/corsen-context-astro\n\nAstro adapter for **[Corsen Context](https://github.com/CorsenAI/corsen-context)** — drop-in API route handlers for the MCP endpoint and `llms.txt`, with built-in auth, rate limiting, CORS, and security headers. Uses Astro's `clientAddress` for accurate rate limiting.\n\n> Requires Astro SSR (`output: 'server'` or `'hybrid'`).\n\n```bash\nnpm install @corsenai/corsen-context @corsenai/corsen-context-astro\n```\n\nSet the canonical public origin with Astro's `site` option; Astro exposes it as\n`import.meta.env.SITE`:\n\n```typescript\n// astro.config.mjs\nexport default defineConfig({ site: 'https://www.example.com' });\n```\n\nThe placeholder fallback below keeps local scaffolds valid, but replace it\nbefore deployment.\n\n**MCP endpoint** — `src/pages/v1/mcp.ts`:\n\n```typescript\nimport { createMCPHandler } from '@corsenai/corsen-context-astro';\nimport { siteProvider } from '../../lib/corsen-provider';\n\nexport const { GET, POST, OPTIONS } = createMCPHandler(\n  { siteUrl: import.meta.env.SITE ?? 'https://example.com' },\n  siteProvider,\n);\n```\n\n**llms.txt** — `src/pages/llms.txt.ts`:\n\n```typescript\nimport { createLlmsTxtHandler } from '@corsenai/corsen-context-astro';\nimport { siteProvider } from '../lib/corsen-provider';\n\nexport const GET = createLlmsTxtHandler(\n  { siteUrl: import.meta.env.SITE ?? 'https://example.com' },\n  siteProvider,\n);\n```\n\n`createLlmsFullTxtHandler` is available for a separate\n`src/pages/llms-full.txt.ts` route, but it returns `404` unless\n`static.includeFullContent: true` is set explicitly. Full content is disabled\nby default.\n\n**WebMCP bridge** — `src/pages/webmcp.js.ts`:\n\n```typescript\nimport { createWebMCPScriptHandler } from '@corsenai/corsen-context-astro';\nimport { siteProvider } from '../lib/corsen-provider';\n\nexport const GET = createWebMCPScriptHandler(\n  { siteUrl: import.meta.env.SITE ?? 'https://example.com' },\n  siteProvider,\n);\n```\n\nLoad it from the shared page layout:\n\n```astro\n<script src=\"/webmcp.js\" defer></script>\n```\n\nBoth `/webmcp.js` and `/v1/mcp` must share the page's public origin. The\nbrowser bridge intentionally sends no API key or visitor credentials. When\nWebMCP is enabled, expose only public content through a read-only, rate-limited\nendpoint. Reserve a key-protected endpoint for authenticated server-side MCP\nclients and omit the browser bridge in that mode.\n\n`mcp.enabled: false` makes the adapter's MCP `GET`/`POST`/`OPTIONS` and WebMCP\nscript handlers return `404`. `static.generateLlmsTxt: false` makes both static\nhandlers return `404`; `static.includeFullContent: false` independently keeps\nthe full-content handler at `404`. Static output defaults to a 5 MiB UTF-8 byte\nlimit and accepts 64 KiB through 10 MiB. `content.maxPages` defaults to 500 and\naccepts 1 through 5000.\n\nThe MCP handler validates Origin before parsing, requires JSON request and\nresponse media compatibility, rate-limits before optional authentication, and\nreads at most 100 KiB from the actual body. Malformed JSON and oversized bodies\nproduce bounded JSON errors. `GET` returns `405`, a valid `OPTIONS` returns\n`204`, and accepted notifications return an empty `202`; SSE and resumable\nsessions are not implemented.\n\nFor production (multi-instance), pass a Redis cache and rate-limit store via the third `options` argument (`{ cache, rateLimitStore, logger }`).\n\n- **Full docs:** https://github.com/CorsenAI/corsen-context#readme\n- **License:** MIT\n","readmeFilename":""}