{"_id":"@airmcp-dev/core","_rev":"9-42546ac15dbd21f8820eaf6bd05c4294","name":"@airmcp-dev/core","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@airmcp-dev/core","version":"0.1.0","author":{"name":"CodePedia Labs"},"license":"Apache-2.0","_id":"@airmcp-dev/core@0.1.0","maintainers":[{"name":"airmcp","email":"labs@codepedia.kr"}],"dist":{"shasum":"0eb5eff119b5324a70af90c8b43c41a69f13a916","tarball":"https://registry.npmjs.org/@airmcp-dev/core/-/core-0.1.0.tgz","fileCount":290,"integrity":"sha512-8O6amX5PcKd/K1SYoJVKrds9it8H0oR08TwBTRYe3jVF3/b44WrLVNyonWBL67ROqNYQH3+U3yrklaapvoQ/+w==","signatures":[{"sig":"MEUCIQDrQuuHgtwQEvSwblFY+AfD0Clf5PhknEKU66xY4VSvrQIgCBjA9i2O66DjcDCK/B1aMI1J4fPTMPYCr6bl9/Nmlmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310376},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"_npmUser":{"name":"airmcp","email":"labs@codepedia.kr"},"_npmVersion":"10.9.4","description":"MCP server framework — defineServer, defineTool, middleware, transport","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1775831345161_0.8061877610780097","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@airmcp-dev/core","version":"0.1.1","author":{"name":"CodePedia Labs"},"license":"Apache-2.0","_id":"@airmcp-dev/core@0.1.1","maintainers":[{"name":"airmcp","email":"labs@codepedia.kr"}],"dist":{"shasum":"5333b3808aadc5458a9078e2b2ef855bcbb7c1a6","tarball":"https://registry.npmjs.org/@airmcp-dev/core/-/core-0.1.1.tgz","fileCount":290,"integrity":"sha512-HUhvP28vy/BZAQzvEQWBMGXs51Bv1yHrEO2oWL7ScUCY6QR+7KQ9A8xNPk6PAul/OCOXd2TS+p6YJIao0kFLBQ==","signatures":[{"sig":"MEYCIQCKjP1bjWCgUzC1l5ZEMNA+MlgIHz+ECsU3NoXgMJ3rQQIhAM9gt46flgfQTT2YbiXi7WN+bVwqPWQE9uiJVugqR3KI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305048},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"_npmUser":{"name":"airmcp","email":"labs@codepedia.kr"},"_npmVersion":"10.9.4","description":"MCP server framework — defineServer, defineTool, middleware, transport","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.1_1775832266833_0.7294206151877365","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@airmcp-dev/core","version":"0.1.2","author":{"name":"CodePedia Labs"},"license":"Apache-2.0","_id":"@airmcp-dev/core@0.1.2","maintainers":[{"name":"airmcp","email":"labs@codepedia.kr"}],"dist":{"shasum":"70ee4226fe3166c112fd6548799097a35254ba6e","tarball":"https://registry.npmjs.org/@airmcp-dev/core/-/core-0.1.2.tgz","fileCount":290,"integrity":"sha512-COS0Kt2MAFtkco8LkPevPyW7UMT/vL6EtOvq+OcZTluWRQnrLK244xrexX9g9cNpvNIYMRRK/PGwyWfjUv0V/g==","signatures":[{"sig":"MEQCIB1SNIxllhJLUg6Ly8iTgqT2R+4mRFJU8St1Hb2nIuy+AiAZYU35ReKrWIk5l64MvTaYmNEoHo2kJWKijAs7Jl62nQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305048},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"5b87080e9fb9685f18e4b46febb6c335c04eb110","_npmUser":{"name":"airmcp","email":"labs@codepedia.kr"},"_npmVersion":"10.9.4","description":"MCP server framework — defineServer, defineTool, middleware, transport","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.2_1775833409511_0.8954456728400395","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@airmcp-dev/core","version":"0.1.3","author":{"name":"CodePedia Labs"},"license":"Apache-2.0","_id":"@airmcp-dev/core@0.1.3","maintainers":[{"name":"airmcp","email":"labs@codepedia.kr"}],"dist":{"shasum":"5971fba19a124e8f83edda85a01919deae554b6a","tarball":"https://registry.npmjs.org/@airmcp-dev/core/-/core-0.1.3.tgz","fileCount":290,"integrity":"sha512-FfkBmpfRrrm/M/GzXG6R8a0lUGqswob0qH5rsibWutmVzPcNxDLYTii32RqD57Yks/8re47hJLOaNNJxynMg6A==","signatures":[{"sig":"MEUCIEWSTehk0boywFxLCp9AmR/nDnTTP4hBynUoA738IhaEAiEAyWjB8l92hW3Cfw5xAXtKl1nqri2nEmjI3E6DF+H1miA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309405},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"c503db8d6b62ba615329164df4bcadc520413398","_npmUser":{"name":"airmcp","email":"labs@codepedia.kr"},"_npmVersion":"10.9.4","description":"MCP server framework — defineServer, defineTool, middleware, transport","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.3_1775833733928_0.6856141220261878","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@airmcp-dev/core","version":"0.1.4","keywords":["mcp","model-context-protocol","ai","agent","tool-server","claude","cursor","typescript","framework","plugins"],"author":{"name":"CodePedia Labs"},"license":"Apache-2.0","_id":"@airmcp-dev/core@0.1.4","maintainers":[{"name":"airmcp","email":"labs@codepedia.kr"}],"homepage":"https://docs.airmcp.dev","bugs":{"url":"https://github.com/airmcp-dev/air/issues"},"dist":{"shasum":"7192c6f039bc3e7b680ac790247957cb9b105947","tarball":"https://registry.npmjs.org/@airmcp-dev/core/-/core-0.1.4.tgz","fileCount":291,"integrity":"sha512-gH+d5RWKOWyrm2hgXvjv3C6qCjWsqqA9IJkywveY/PuYnKjaGSzmuyFlIdtc/joD5ikrLIdPD6yEbQoARaEqYQ==","signatures":[{"sig":"MEUCIQCoijBNszIqL/7sXrSBWF/CvZIN8YRzppr8YPADHx0c7gIgPS08/XyfPB8/RW2t5f8kDE4y1zva6b8g25xAb4b+SIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":312579},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"adb007cddb70b9805fc9b10c24a57b012e477167","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc"},"_npmUser":{"name":"airmcp","email":"labs@codepedia.kr"},"repository":{"url":"git+https://github.com/airmcp-dev/air.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.4","description":"MCP server framework — defineServer, defineTool, 19 plugins, storage, transport","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.4_1775911541147_0.3792850573181594","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@airmcp-dev/core","version":"0.1.5","keywords":["mcp","model-context-protocol","ai","agent","tool-server","claude","cursor","typescript","framework","plugins"],"author":{"name":"CodePedia Labs"},"license":"Apache-2.0","_id":"@airmcp-dev/core@0.1.5","maintainers":[{"name":"airmcp","email":"labs@codepedia.kr"}],"homepage":"https://docs.airmcp.dev","bugs":{"url":"https://github.com/airmcp-dev/air/issues"},"dist":{"shasum":"397a4ba043c312f3f399aa2aea677f25bdfe49f8","tarball":"https://registry.npmjs.org/@airmcp-dev/core/-/core-0.1.5.tgz","fileCount":291,"integrity":"sha512-sxwGnLuEyPDQblMVX2xgoXfvjyo0mfhQ1Qdxkxo7u3mscJsomIW3YQUexptu5cyKV10IaSNknX0LLjK7+bmZTA==","signatures":[{"sig":"MEUCIQCbYZjI6qpHjGgAazo0wLYuh1HudGO/f+shQSDomaBVgwIgD2KiY8HtNo9c/4iw8JiRSLNpYx7Ze0Kt20/vE0yVvSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318187},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b648ce14bf3486b9169467e0d55f027931a11ab6","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc"},"_npmUser":{"name":"airmcp","email":"labs@codepedia.kr"},"repository":{"url":"git+https://github.com/airmcp-dev/air.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.4","description":"MCP server framework — defineServer, defineTool, 19 plugins, storage, transport","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.5_1775922746073_0.7355433699966614","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@airmcp-dev/core","version":"0.1.6","keywords":["mcp","model-context-protocol","ai","agent","tool-server","claude","cursor","typescript","framework","plugins"],"author":{"name":"CodePedia Labs"},"license":"Apache-2.0","_id":"@airmcp-dev/core@0.1.6","maintainers":[{"name":"airmcp","email":"labs@codepedia.kr"}],"homepage":"https://docs.airmcp.dev","bugs":{"url":"https://github.com/airmcp-dev/air/issues"},"dist":{"shasum":"5e1d94733d311869181023394c68488a2ce874e9","tarball":"https://registry.npmjs.org/@airmcp-dev/core/-/core-0.1.6.tgz","fileCount":291,"integrity":"sha512-a4fdkPyFk06tGpPS5F0MAMExyg6zqjjD2YvAaV174v50PAtALXCXLZ2iz1SFH363ebJOCRF6LH8At987mDfLoA==","signatures":[{"sig":"MEQCHyVuoLcHwF47OJsco30Pio0vJ6zEr0xeJRg2cNi20okCIQCbP2RSTOuW76HHMT8sCdws3nDdVid9TrCEOuUjCfX/Dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318709},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3449bcf3994edeb761fc2de46d647880b758cbd5","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc"},"_npmUser":{"name":"airmcp","email":"labs@codepedia.kr"},"repository":{"url":"git+https://github.com/airmcp-dev/air.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.4","description":"MCP server framework — defineServer, defineTool, 19 plugins, storage, transport","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.6_1777647998388_0.28978160720204404","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@airmcp-dev/core","version":"0.2.0","keywords":["mcp","model-context-protocol","ai","agent","tool-server","claude","cursor","typescript","framework","plugins"],"author":{"name":"CodePedia Labs"},"license":"Apache-2.0","_id":"@airmcp-dev/core@0.2.0","maintainers":[{"name":"airmcp","email":"labs@codepedia.kr"}],"homepage":"https://docs.airmcp.dev","bugs":{"url":"https://github.com/airmcp-dev/air/issues"},"dist":{"shasum":"949195620892e8d982e8bf2d092c4f0457cfda61","tarball":"https://registry.npmjs.org/@airmcp-dev/core/-/core-0.2.0.tgz","fileCount":291,"integrity":"sha512-xxCMvbM/X+DQRgpUWC4fvH9PLenmAj141E6nvIcENFeSWzKqBNxPlmA+UIQqf85aVZ/0s9QUWkAV6n4GxGRZVQ==","signatures":[{"sig":"MEUCIFd5x7AHmJxNYDNtZqekmkG0+z6NunlUG4nRe6cOR1mMAiEAnai0jpzhNadKokd6uodkhysUrWMMSLmhckRwDF7epxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331030},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3449bcf3994edeb761fc2de46d647880b758cbd5","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc"},"_npmUser":{"name":"airmcp","email":"labs@codepedia.kr"},"repository":{"url":"git+https://github.com/airmcp-dev/air.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.4","description":"MCP server framework — defineServer, defineTool, 19 plugins, storage, transport","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0_1781402040956_0.8046602782022008","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@airmcp-dev/core","version":"0.3.0","author":{"name":"CodePedia Labs"},"license":"Apache-2.0","description":"MCP server framework — defineServer, defineTool, 19 plugins, storage, transport","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"homepage":"https://docs.airmcp.dev","repository":{"type":"git","url":"git+https://github.com/airmcp-dev/air.git","directory":"packages/core"},"bugs":{"url":"https://github.com/airmcp-dev/air/issues"},"keywords":["mcp","model-context-protocol","ai","agent","tool-server","claude","cursor","typescript","framework","plugins"],"engines":{"node":">=18.0.0"},"scripts":{"build":"tsc","test":"vitest run","lint":"tsc --noEmit"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","zod":"^3.25.0"},"devDependencies":{"typescript":"^5.5.0","vitest":"^2.0.0","@types/node":"^20.0.0"},"_id":"@airmcp-dev/core@0.3.0","gitHead":"6990567fcc471b33a8ae25f751f1236772e531cc","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-RyhR360yqVT/eGa3YEdvoSTIUEIPb0g+AgbWF4RHJ/GolV/vqGNFEAPu1/ynUhtrLsugFis2SWL823PAwMc0JA==","shasum":"eb32b51f292e19a39cdacadb3d39913b18d4abde","tarball":"https://registry.npmjs.org/@airmcp-dev/core/-/core-0.3.0.tgz","fileCount":295,"unpackedSize":345012,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICHAHBMNY0d2Nt8WUDL4MTYuKVvwzXX70RGWOgtMYHAPAiA53kSNBfexmZ9Ma52dghW5m3H5cZ/CtEVBDjCPnAvsLA=="}]},"_npmUser":{"name":"airmcp","email":"labs@codepedia.kr"},"directories":{},"maintainers":[{"name":"airmcp","email":"labs@codepedia.kr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.3.0_1782798256778_0.11647591513926381"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-10T14:29:05.076Z","modified":"2026-06-30T05:44:17.107Z","0.1.0":"2026-04-10T14:29:05.283Z","0.1.1":"2026-04-10T14:44:26.979Z","0.1.2":"2026-04-10T15:03:29.677Z","0.1.3":"2026-04-10T15:08:54.084Z","0.1.4":"2026-04-11T12:45:41.297Z","0.1.5":"2026-04-11T15:52:26.212Z","0.1.6":"2026-05-01T15:06:38.550Z","0.2.0":"2026-06-14T01:54:01.087Z","0.3.0":"2026-06-30T05:44:16.980Z"},"bugs":{"url":"https://github.com/airmcp-dev/air/issues"},"author":{"name":"CodePedia Labs"},"license":"Apache-2.0","homepage":"https://docs.airmcp.dev","keywords":["mcp","model-context-protocol","ai","agent","tool-server","claude","cursor","typescript","framework","plugins"],"repository":{"type":"git","url":"git+https://github.com/airmcp-dev/air.git","directory":"packages/core"},"description":"MCP server framework — defineServer, defineTool, 19 plugins, storage, transport","maintainers":[{"name":"airmcp","email":"labs@codepedia.kr"}],"readme":"# @airmcp-dev/core\n\nTypeScript framework for building MCP servers.\n\nOne function per tool. One line per plugin. Security, caching, retry — all built in.\n\n## Install\n\n```bash\nnpm install @airmcp-dev/core\n```\n\n## Quick Example\n\n```typescript\nimport { defineServer, defineTool, retryPlugin, cachePlugin } from '@airmcp-dev/core';\n\nconst server = defineServer({\n  name: 'my-server',\n  transport: { type: 'sse', port: 3510 },\n  use: [\n    retryPlugin({ maxRetries: 3 }),\n    cachePlugin({ ttlMs: 60_000 }),\n  ],\n  tools: [\n    defineTool('search', {\n      description: 'Search documents',\n      params: { query: 'string', limit: 'number?' },\n      handler: async ({ query, limit }) => doSearch(query, limit),\n    }),\n  ],\n});\n\nserver.start();\n```\n\n## Features\n\n- **defineTool** — string shorthand params (`'string'`, `'number?'`), auto Zod validation, auto MCP content conversion\n- **19 built-in plugins** — timeout, retry, cache, auth, rate limit, circuit breaker, webhook, i18n, and more\n- **Multi-transport** — stdio, SSE, HTTP with auto-detection\n- **Storage** — MemoryStore and FileStore (JSON + JSONL append-only logs)\n- **7-Layer Meter** — auto-classify calls from L1 (cache) to L7 (agent chain)\n- **Middleware** — before/after/onError hooks with abort and param modification\n- **Error handling** — AirError, McpErrors factory, auto error boundary\n\n## 19 Plugins\n\n| Category | Plugins |\n|----------|---------|\n| Stability | timeoutPlugin, retryPlugin, circuitBreakerPlugin, fallbackPlugin |\n| Performance | cachePlugin, dedupPlugin, queuePlugin |\n| Security | authPlugin, sanitizerPlugin, validatorPlugin |\n| Network | corsPlugin, webhookPlugin |\n| Data | transformPlugin, i18nPlugin |\n| Monitoring | jsonLoggerPlugin, perUserRateLimitPlugin |\n| Dev/Test | dryrunPlugin |\n\n## Documentation\n\nFull docs: **[docs.airmcp.dev](https://docs.airmcp.dev)** — 110 pages, EN/KO bilingual\n\n## Part of the air ecosystem\n\n| Package | Description |\n|---------|-------------|\n| **@airmcp-dev/core** | Server, tools, plugins, storage, transport |\n| [@airmcp-dev/cli](https://www.npmjs.com/package/@airmcp-dev/cli) | CLI (create, dev, connect, inspect) |\n| [@airmcp-dev/gateway](https://www.npmjs.com/package/@airmcp-dev/gateway) | Multi-server proxy, load balancing |\n| [@airmcp-dev/logger](https://www.npmjs.com/package/@airmcp-dev/logger) | Structured logging |\n| [@airmcp-dev/meter](https://www.npmjs.com/package/@airmcp-dev/meter) | 7-layer classification, cost tracking |\n\n## License\n\nApache-2.0 — [GitHub](https://github.com/airmcp-dev/air)\n","readmeFilename":"README.md"}