{"_id":"@achmadya-dev/mcp-core","_rev":"8-701336dd60a1170d1e285077ab68df03","name":"@achmadya-dev/mcp-core","dist-tags":{"latest":"0.8.0"},"versions":{"0.3.0":{"name":"@achmadya-dev/mcp-core","version":"0.3.0","keywords":["mcp","model-context-protocol","core"],"author":{"name":"achmadya"},"license":"MIT","_id":"@achmadya-dev/mcp-core@0.3.0","maintainers":[{"name":"madyardwn","email":"achmadya.dev@gmail.com"}],"homepage":"https://github.com/achmadya-dev/mcp-core#readme","bugs":{"url":"https://github.com/achmadya-dev/mcp-core/issues"},"dist":{"shasum":"265f4d089b2168acf2edf89e2b67733f8093cf48","tarball":"https://registry.npmjs.org/@achmadya-dev/mcp-core/-/mcp-core-0.3.0.tgz","fileCount":19,"integrity":"sha512-G32ZDkTPuxgO40ZyuOtYeXfffo8BcP5D3U3H0TbbqO3DaESsndAaCZjEr09CQxonie3SqReygFoSHH9Nc55+3Q==","signatures":[{"sig":"MEQCIHW61cuY+ojdax55XHv5enUm0ThWj89d7RvloGH67HWjAiB3GddC5P/tiEoXzePEHqtkID4H3RzOVjiAcwuxK47RXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19558},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4d03e2d891c8538b513ef1eb4f510f4e633c6e14","scripts":{"build":"tsc -p tsconfig.build.json","prepare":"pnpm run build","changeset":"changeset","prepublishOnly":"pnpm run build","publish-packages":"pnpm run build && changeset publish","version-packages":"changeset version"},"_npmUser":{"name":"madyardwn","email":"achmadya.dev@gmail.com"},"repository":{"url":"git+https://github.com/achmadya-dev/mcp-core.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared MCP server runtime, types, and env helpers for @achmadya-dev MCP packages","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@modelcontextprotocol/server":"2.0.0-alpha.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"typescript":"5.7.2","@types/node":"22.10.0","@changesets/cli":"2.29.8"},"_npmOperationalInternal":{"tmp":"tmp/mcp-core_0.3.0_1781397027753_0.8943476605635468","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@achmadya-dev/mcp-core","version":"0.3.1","keywords":["mcp","model-context-protocol","core"],"author":{"name":"achmadya"},"license":"MIT","_id":"@achmadya-dev/mcp-core@0.3.1","maintainers":[{"name":"madyardwn","email":"achmadya.dev@gmail.com"}],"homepage":"https://github.com/achmadya-dev/mcp-core#readme","bugs":{"url":"https://github.com/achmadya-dev/mcp-core/issues"},"dist":{"shasum":"8cb870ed04ed78e203b50979db5739e9fb3a3ffc","tarball":"https://registry.npmjs.org/@achmadya-dev/mcp-core/-/mcp-core-0.3.1.tgz","fileCount":19,"integrity":"sha512-HjpM/pjVzszITtf1US40TvAgAMoU9jhrjSzHD17U7TeWgatJDXFcT3q5j/exSmXh4Nf0Rv2WGrX4cPACRSghNg==","signatures":[{"sig":"MEUCIQCabwpmcOOp43QZdrzfNDk4oBqqj0kZlnl/lKawIr3QXAIgZ8XvduWYxU2I1yTrTiVNq5MPbJkmfgr8XlnkwY427kE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21043},"main":"dist/index.js","type":"module","_from":"file:achmadya-dev-mcp-core-0.3.1.tgz","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.build.json","changeset":"changeset","publish-packages":"pnpm run build && changeset publish","version-packages":"changeset version"},"_npmUser":{"name":"madyardwn","email":"achmadya.dev@gmail.com"},"_resolved":"/tmp/a0565466bc1e5786b319f1cf68d1a9e2/achmadya-dev-mcp-core-0.3.1.tgz","_integrity":"sha512-HjpM/pjVzszITtf1US40TvAgAMoU9jhrjSzHD17U7TeWgatJDXFcT3q5j/exSmXh4Nf0Rv2WGrX4cPACRSghNg==","repository":{"url":"git+https://github.com/achmadya-dev/mcp-core.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared MCP server runtime, types, and env helpers for @achmadya-dev MCP packages","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@modelcontextprotocol/server":"2.0.0-alpha.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"5.7.2","@types/node":"22.10.0","@changesets/cli":"2.29.8"},"_npmOperationalInternal":{"tmp":"tmp/mcp-core_0.3.1_1781397484754_0.8507300841124743","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@achmadya-dev/mcp-core","version":"0.3.3","keywords":["mcp","model-context-protocol","core"],"author":{"name":"achmadya"},"license":"MIT","_id":"@achmadya-dev/mcp-core@0.3.3","maintainers":[{"name":"madyardwn","email":"achmadya.dev@gmail.com"}],"homepage":"https://github.com/achmadya-dev/mcp-core#readme","bugs":{"url":"https://github.com/achmadya-dev/mcp-core/issues"},"dist":{"shasum":"877ce748542be30d3f1bea305d9fd096f667d2d5","tarball":"https://registry.npmjs.org/@achmadya-dev/mcp-core/-/mcp-core-0.3.3.tgz","fileCount":19,"integrity":"sha512-Uv0lmar045P+rUM/oUDnvGuIQMCUVWR/0TwxrGF9if0AMNe+41hWXAOtALBDAydGMzb1U4Bq+6Dp4H0ZtjEudQ==","signatures":[{"sig":"MEYCIQCGXK//pzlgunlpohB33/4UcodOIzKflSDOqLPIiuRKogIhAPHz1lLoqbhIGhiBHSknkwBbr6Tg9pAqSYKwejzF2OGN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21082},"main":"dist/index.js","type":"module","_from":"file:achmadya-dev-mcp-core-0.3.3.tgz","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.build.json","changeset":"changeset","publish-packages":"pnpm run build && changeset publish","version-packages":"changeset version"},"_npmUser":{"name":"madyardwn","email":"achmadya.dev@gmail.com"},"_resolved":"/tmp/288e7abaa3e3d02ce58be9e946893612/achmadya-dev-mcp-core-0.3.3.tgz","_integrity":"sha512-Uv0lmar045P+rUM/oUDnvGuIQMCUVWR/0TwxrGF9if0AMNe+41hWXAOtALBDAydGMzb1U4Bq+6Dp4H0ZtjEudQ==","repository":{"url":"git+https://github.com/achmadya-dev/mcp-core.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared MCP server runtime, types, and env helpers for @achmadya-dev MCP packages","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/server":"2.0.0-alpha.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"5.7.2","@types/node":"22.10.0","@changesets/cli":"2.29.8"},"_npmOperationalInternal":{"tmp":"tmp/mcp-core_0.3.3_1781398523407_0.1232336670775831","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@achmadya-dev/mcp-core","version":"0.5.0","keywords":["mcp","model-context-protocol","core"],"author":{"name":"achmadya"},"license":"MIT","_id":"@achmadya-dev/mcp-core@0.5.0","maintainers":[{"name":"madyardwn","email":"achmadya.dev@gmail.com"}],"homepage":"https://github.com/achmadya-dev/mcp-core#readme","bugs":{"url":"https://github.com/achmadya-dev/mcp-core/issues"},"dist":{"shasum":"6939c142a73700a0be3307138d38e026ef8bf85b","tarball":"https://registry.npmjs.org/@achmadya-dev/mcp-core/-/mcp-core-0.5.0.tgz","fileCount":31,"integrity":"sha512-/qiD8eORghkrrc4zbSdwJhKmfytcIQP93glKdjC5e1UApAKiCUKMTIv/eHAu7U61wd2MYYMqdeJw0dhAVLXtIQ==","signatures":[{"sig":"MEUCIA/fGv3//VtekG0KfaqNuCfjrP4Si7msa4eidZZoeXKXAiEA6giiOpLpLvW9tNf5sw/pyG8F6Aycsl7zZYNdNZ0fMhI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43531},"main":"dist/index.js","type":"module","_from":"file:achmadya-dev-mcp-core-0.5.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ext-apps":{"types":"./dist/ext-apps.d.ts","import":"./dist/ext-apps.js"}},"scripts":{"build":"tsc -p tsconfig.build.json","changeset":"changeset","publish-packages":"pnpm run build && changeset publish","version-packages":"changeset version"},"_npmUser":{"name":"madyardwn","email":"achmadya.dev@gmail.com"},"_resolved":"/tmp/fa8bb254cd53851d4a6bf508129a65af/achmadya-dev-mcp-core-0.5.0.tgz","_integrity":"sha512-/qiD8eORghkrrc4zbSdwJhKmfytcIQP93glKdjC5e1UApAKiCUKMTIv/eHAu7U61wd2MYYMqdeJw0dhAVLXtIQ==","repository":{"url":"git+https://github.com/achmadya-dev/mcp-core.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared MCP server runtime, types, and env helpers for @achmadya-dev MCP packages","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/node":"2.0.0-alpha.2","@modelcontextprotocol/server":"2.0.0-alpha.2","@modelcontextprotocol/express":"2.0.0-alpha.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","typescript":"5.7.2","@types/node":"22.10.0","@types/express":"^5.0.0","@changesets/cli":"2.29.8","@modelcontextprotocol/ext-apps":"1.7.4"},"peerDependencies":{"@modelcontextprotocol/ext-apps":"^1.7.0"},"peerDependenciesMeta":{"@modelcontextprotocol/ext-apps":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/mcp-core_0.5.0_1781915738237_0.3626059018942904","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@achmadya-dev/mcp-core","version":"0.5.1","keywords":["mcp","model-context-protocol","core"],"author":{"name":"achmadya"},"license":"MIT","_id":"@achmadya-dev/mcp-core@0.5.1","maintainers":[{"name":"madyardwn","email":"achmadya.dev@gmail.com"}],"homepage":"https://github.com/achmadya-dev/mcp-core#readme","bugs":{"url":"https://github.com/achmadya-dev/mcp-core/issues"},"dist":{"shasum":"26376b23068aaedf8c5977507acb0fc4530f9dd3","tarball":"https://registry.npmjs.org/@achmadya-dev/mcp-core/-/mcp-core-0.5.1.tgz","fileCount":31,"integrity":"sha512-X3DJOqvZ4MWQAutEPhljl/i0oH3ubnxw7GMi+NYJiH6gbuKnLouQZbJB1WgzjimaEP/Ivmn1haLgP2ZizKdomw==","signatures":[{"sig":"MEYCIQCk7Ym2XMtwRbCiVR/BbKUgIp7eZebGK3VB0mseg3sBIQIhAMjz+FZEYfkS9UqetDolCRNJXhucW7tIyNg0wVpxNmiI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43693},"main":"dist/index.js","type":"module","_from":"file:achmadya-dev-mcp-core-0.5.1.tgz","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ext-apps":{"types":"./dist/ext-apps.d.ts","import":"./dist/ext-apps.js"}},"scripts":{"build":"tsc -p tsconfig.build.json","changeset":"changeset","publish-packages":"pnpm run build && changeset publish","version-packages":"changeset version"},"_npmUser":{"name":"madyardwn","email":"achmadya.dev@gmail.com"},"_resolved":"/tmp/8f20418603ce8268f6c82f82d7d58d08/achmadya-dev-mcp-core-0.5.1.tgz","_integrity":"sha512-X3DJOqvZ4MWQAutEPhljl/i0oH3ubnxw7GMi+NYJiH6gbuKnLouQZbJB1WgzjimaEP/Ivmn1haLgP2ZizKdomw==","repository":{"url":"git+https://github.com/achmadya-dev/mcp-core.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared MCP server runtime, types, and env helpers for @achmadya-dev MCP packages","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/node":"2.0.0-alpha.2","@modelcontextprotocol/server":"2.0.0-alpha.2","@modelcontextprotocol/express":"2.0.0-alpha.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","typescript":"5.7.2","@types/node":"22.10.0","@types/express":"^5.0.0","@changesets/cli":"2.29.8","@modelcontextprotocol/ext-apps":"1.7.4"},"peerDependencies":{"@modelcontextprotocol/ext-apps":"^1.7.0"},"peerDependenciesMeta":{"@modelcontextprotocol/ext-apps":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/mcp-core_0.5.1_1781916916507_0.9100053824971401","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@achmadya-dev/mcp-core","version":"0.6.0","keywords":["mcp","model-context-protocol","core"],"author":{"name":"achmadya"},"license":"MIT","_id":"@achmadya-dev/mcp-core@0.6.0","maintainers":[{"name":"madyardwn","email":"achmadya.dev@gmail.com"}],"homepage":"https://github.com/achmadya-dev/mcp-core#readme","bugs":{"url":"https://github.com/achmadya-dev/mcp-core/issues"},"dist":{"shasum":"043ec4cbca13780b1a9d2217f57e79942ace41cc","tarball":"https://registry.npmjs.org/@achmadya-dev/mcp-core/-/mcp-core-0.6.0.tgz","fileCount":43,"integrity":"sha512-r/RrvzyKlifLuhi0+ZAHG3UpmKakAhW/QxizA3fWcrNqtcuh2nrr64/U2nKwFLD6/iam5YSCrmKh60a7h36lbw==","signatures":[{"sig":"MEUCIQDnkpXEaPvztfoqxmJ8TVHa/Ig7LsMU+CpQ0LKKNNc4tQIgW0IopEKJihMuKBgYYpjbErIvKSWXdwNJRfOm2qCFCbU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74834},"main":"dist/index.js","type":"module","_from":"file:achmadya-dev-mcp-core-0.6.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ext-apps":{"types":"./dist/ext-apps.d.ts","import":"./dist/ext-apps.js"}},"scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.build.json","changeset":"changeset","publish-packages":"pnpm run build && changeset publish","version-packages":"changeset version"},"_npmUser":{"name":"madyardwn","email":"achmadya.dev@gmail.com"},"_resolved":"/tmp/2b5c91f652bf09d9be427f1a593a1eac/achmadya-dev-mcp-core-0.6.0.tgz","_integrity":"sha512-r/RrvzyKlifLuhi0+ZAHG3UpmKakAhW/QxizA3fWcrNqtcuh2nrr64/U2nKwFLD6/iam5YSCrmKh60a7h36lbw==","repository":{"url":"git+https://github.com/achmadya-dev/mcp-core.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared MCP server runtime, types, and env helpers for @achmadya-dev MCP packages","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/node":"2.0.0-alpha.2","@modelcontextprotocol/server":"2.0.0-alpha.2","@modelcontextprotocol/express":"2.0.0-alpha.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.20.3","husky":"9.1.7","typescript":"5.7.2","@types/node":"22.10.0","@types/express":"^5.0.0","@changesets/cli":"2.29.8","@modelcontextprotocol/ext-apps":"1.7.4"},"peerDependencies":{"@modelcontextprotocol/ext-apps":"^1.7.0"},"peerDependenciesMeta":{"@modelcontextprotocol/ext-apps":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/mcp-core_0.6.0_1782005056964_0.8496913355874307","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@achmadya-dev/mcp-core","version":"0.7.0","keywords":["mcp","model-context-protocol","core"],"author":{"name":"achmadya"},"license":"MIT","_id":"@achmadya-dev/mcp-core@0.7.0","maintainers":[{"name":"madyardwn","email":"achmadya.dev@gmail.com"}],"homepage":"https://github.com/achmadya-dev/mcp-core#readme","bugs":{"url":"https://github.com/achmadya-dev/mcp-core/issues"},"dist":{"shasum":"05b6900c56fc18cab7421db7b994c1858fb9533f","tarball":"https://registry.npmjs.org/@achmadya-dev/mcp-core/-/mcp-core-0.7.0.tgz","fileCount":43,"integrity":"sha512-UAGCL3o6zEScpbT58NbpRRQqHVvzubfBXb2yQK+b0VhLC0qh4iMMvQNtyYaiLDjJWBfcTOkNtBwudWCI5dkhhA==","signatures":[{"sig":"MEYCIQDXp1FWur+nMj883M9EFnwid8daXZE65DEegTsGQQgMPgIhAM9Z8hhdit4e/ZgBzoHNPZHstgAREPZoOWFUNLOuljsp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77258},"main":"dist/index.js","type":"module","_from":"file:achmadya-dev-mcp-core-0.7.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ext-apps":{"types":"./dist/ext-apps.d.ts","import":"./dist/ext-apps.js"}},"scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.build.json","changeset":"changeset","publish-packages":"pnpm run build && changeset publish","version-packages":"changeset version"},"_npmUser":{"name":"madyardwn","email":"achmadya.dev@gmail.com"},"_resolved":"/tmp/d1066b9f9fffd0a418232e577868ff1f/achmadya-dev-mcp-core-0.7.0.tgz","_integrity":"sha512-UAGCL3o6zEScpbT58NbpRRQqHVvzubfBXb2yQK+b0VhLC0qh4iMMvQNtyYaiLDjJWBfcTOkNtBwudWCI5dkhhA==","repository":{"url":"git+https://github.com/achmadya-dev/mcp-core.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared MCP server runtime, types, and env helpers for @achmadya-dev MCP packages","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/node":"2.0.0-alpha.2","@modelcontextprotocol/server":"2.0.0-alpha.2","@modelcontextprotocol/express":"2.0.0-alpha.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.20.3","husky":"9.1.7","typescript":"5.7.2","@types/node":"22.10.0","@types/express":"^5.0.0","@changesets/cli":"2.29.8","@modelcontextprotocol/ext-apps":"1.7.4"},"peerDependencies":{"@modelcontextprotocol/ext-apps":"^1.7.0"},"peerDependenciesMeta":{"@modelcontextprotocol/ext-apps":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/mcp-core_0.7.0_1782006236174_0.21592025852743646","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@achmadya-dev/mcp-core","version":"0.8.0","description":"Shared MCP server runtime, types, and env helpers for @achmadya-dev MCP packages","type":"module","author":{"name":"achmadya"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/achmadya-dev/mcp-core.git"},"keywords":["mcp","model-context-protocol","core"],"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ext-apps":{"types":"./dist/ext-apps.d.ts","import":"./dist/ext-apps.js"}},"peerDependenciesMeta":{"@modelcontextprotocol/ext-apps":{"optional":true}},"peerDependencies":{"@modelcontextprotocol/ext-apps":"^1.7.0"},"publishConfig":{"access":"public"},"engines":{"node":">=20"},"dependencies":{"@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/express":"2.0.0-alpha.2","@modelcontextprotocol/node":"2.0.0-alpha.2","@modelcontextprotocol/server":"2.0.0-alpha.2"},"devDependencies":{"@changesets/cli":"2.29.8","@modelcontextprotocol/ext-apps":"1.7.4","@types/express":"^5.0.0","@types/node":"22.10.0","husky":"9.1.7","tsx":"4.20.3","typescript":"5.7.2"},"scripts":{"build":"tsc -p tsconfig.build.json","test":"tsx --test test/*.test.ts","changeset":"changeset","version-packages":"changeset version","publish-packages":"pnpm run build && changeset publish"},"_id":"@achmadya-dev/mcp-core@0.8.0","bugs":{"url":"https://github.com/achmadya-dev/mcp-core/issues"},"homepage":"https://github.com/achmadya-dev/mcp-core#readme","_integrity":"sha512-/cczoEdXG003lTj8JB8f5k4Mo40zPfqrE7L5BP9uY/XSCQlEZLrHSc6wo4LAVBvlKi4FFAj0grDdMwKx6lkupQ==","_resolved":"/tmp/c34fdafb6371c6280a7073a8f01fd463/achmadya-dev-mcp-core-0.8.0.tgz","_from":"file:achmadya-dev-mcp-core-0.8.0.tgz","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-/cczoEdXG003lTj8JB8f5k4Mo40zPfqrE7L5BP9uY/XSCQlEZLrHSc6wo4LAVBvlKi4FFAj0grDdMwKx6lkupQ==","shasum":"763acab0c985bdd9698964a955c85a53caf3c199","tarball":"https://registry.npmjs.org/@achmadya-dev/mcp-core/-/mcp-core-0.8.0.tgz","fileCount":43,"unpackedSize":71676,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG5KPPvJzdKCLX2XeWuMs6oFUub6GFXDEwM7LF9FbXHRAiBdSbC6AIaKZqp/V5x3Dgrb+9AP1F5wV1bJocvFkvTMyQ=="}]},"_npmUser":{"name":"madyardwn","email":"achmadya.dev@gmail.com"},"directories":{},"maintainers":[{"name":"madyardwn","email":"achmadya.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-core_0.8.0_1782027649857_0.7384278071709889"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-14T00:30:27.621Z","modified":"2026-06-21T07:40:50.169Z","0.3.0":"2026-06-14T00:30:27.901Z","0.3.1":"2026-06-14T00:38:04.911Z","0.3.3":"2026-06-14T00:55:23.603Z","0.5.0":"2026-06-20T00:35:38.381Z","0.5.1":"2026-06-20T00:55:16.663Z","0.6.0":"2026-06-21T01:24:17.094Z","0.7.0":"2026-06-21T01:43:56.394Z","0.8.0":"2026-06-21T07:40:50.028Z"},"bugs":{"url":"https://github.com/achmadya-dev/mcp-core/issues"},"author":{"name":"achmadya"},"license":"MIT","homepage":"https://github.com/achmadya-dev/mcp-core#readme","keywords":["mcp","model-context-protocol","core"],"repository":{"type":"git","url":"git+https://github.com/achmadya-dev/mcp-core.git"},"description":"Shared MCP server runtime, types, and env helpers for @achmadya-dev MCP packages","maintainers":[{"name":"madyardwn","email":"achmadya.dev@gmail.com"}],"readme":"# @achmadya-dev/mcp-core\n\nShared MCP SDK wrapper for `@achmadya-dev` servers: stdio and Streamable HTTP transport, tool registration, JSON-safe responses, and env helpers.\n\nBuilt on **MCP TypeScript SDK v2** (`@modelcontextprotocol/server`). Tool schemas use [Standard Schema](https://standardschema.dev/) — pick any compatible library in your package.\n\n## Install\n\n```bash\npnpm add @achmadya-dev/mcp-core\n# plus a Standard Schema library in your MCP package, e.g. zod, valibot, arktype, …\n```\n\nInstalled automatically as a dependency of `@achmadya-dev/mcp-*-query` servers.\n\n## Quick start (stdio)\n\nPass a Standard Schema object to `inputSchema` / `outputSchema`. Examples below use Zod; other libraries work the same way.\n\n```bash\npnpm add zod\n```\n\n```typescript\nimport * as z from \"zod\";\nimport { defineTool, runMcp } from \"@achmadya-dev/mcp-core\";\n\nconst myTool = defineTool({\n  name: \"my_tool\",\n  description: \"Does something\",\n  inputSchema: z.object({\n    name: z.string().describe(\"Item name\"),\n  }),\n  outputSchema: z.object({ ok: z.boolean() }),\n  handler: async ({ name }) => ({ ok: true }),\n});\n\nawait runMcp({ name: \"My MCP\", version: \"1.0.0\", tools: [myTool] });\n```\n\nConfigure in Cursor (stdio — client spawns the process):\n\n```json\n{\n  \"mcpServers\": {\n    \"my-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@achmadya-dev/mcp-my-service\"]\n    }\n  }\n}\n```\n\n## Architecture\n\nOne `runMcp()` call = one MCP instance (one process, one transport).\n\n```mermaid\nflowchart TB\n  subgraph runMcp[\"runMcp(options)\"]\n    tools[\"tools: defineTool[]\"]\n    setup[\"setup(server)\"]\n    http[\"http.setupRoutes(app)\"]\n  end\n\n  tools --> bindTools[\"bindTools → server.registerTool + handler wrap\"]\n  setup --> sdk[\"SDK native: MCP Apps, resources, custom _meta\"]\n  http --> express[\"Express routes: /health, /api/…\"]\n\n  bindTools --> mcp[\"MCP protocol /mcp\"]\n  sdk --> mcp\n\n  transport{{\"transport?\"}}\n  transport -->|stdio| pipe[\"stdin/stdout — Cursor spawns process\"]\n  transport -->|http| port[\"HTTP :PORT/mcp — remote + MCP Apps\"]\n```\n\n| Hook | Use for |\n|------|---------|\n| `tools` | Standard tools from `defineTool` (auto-wrap JSON, `ToolError` → `fail`) |\n| `setup(server)` | SDK-native MCP features (`registerAppTool`, resources, custom `_meta`) |\n| `http.setupRoutes(app)` | Extra HTTP endpoints on the same port (health, webhooks) |\n\nNeed **both stdio and HTTP**? Run **two separate instances** (two processes) — not one `runMcp` with dual transport.\n\n## HTTP transport\n\nSame tools and config — set `transport: \"http\"` or env `TRANSPORT=http`:\n\n```typescript\nawait runMcp({\n  name: \"My MCP\",\n  version: \"1.0.0\",\n  tools: [myTool],\n  transport: \"http\",\n  http: {\n    port: 3001,\n    path: \"/mcp\",\n    setupRoutes: (app) => {\n      app.get(\"/health\", (_req, res) => res.json({ ok: true }));\n    },\n  },\n});\n```\n\nOr rely on env (default port `3001` via `PORT`):\n\n```bash\nTRANSPORT=http PORT=3001 node dist/index.js\n```\n\nConfigure in Cursor (remote HTTP):\n\n```json\n{\n  \"mcpServers\": {\n    \"my-mcp\": {\n      \"url\": \"http://127.0.0.1:3001/mcp\"\n    }\n  }\n}\n```\n\n## Environment variables\n\n| Variable | Default | Description |\n|---|---|---|\n| `TRANSPORT` | `stdio` | `stdio` or `http` when `runMcp` has no explicit `transport` |\n| `PORT` | `3001` | HTTP listen port (when `transport=http`) |\n\n`runMcp` reads `TRANSPORT` and `PORT` internally when not set in options. For tool-specific config in your package, use `envStr`, `envInt`, `envBool`, `envTrans`.\n\n## Schema libraries\n\n### Valibot\n\n```bash\npnpm add valibot @valibot/to-json-schema\n```\n\n```typescript\nimport * as v from \"valibot\";\nimport { toStandardJsonSchema } from \"@valibot/to-json-schema\";\nimport { defineTool, runMcp } from \"@achmadya-dev/mcp-core\";\n\nconst myTool = defineTool({\n  name: \"my_tool\",\n  description: \"Does something\",\n  inputSchema: toStandardJsonSchema(\n    v.object({ name: v.pipe(v.string(), v.description(\"Item name\")) })\n  ),\n  outputSchema: toStandardJsonSchema(v.object({ ok: v.boolean() })),\n  handler: async ({ name }) => ({ ok: true }),\n});\n\nawait runMcp({ name: \"My MCP\", version: \"1.0.0\", tools: [myTool] });\n```\n\n### ArkType\n\n```bash\npnpm add arktype\n```\n\n```typescript\nimport { type } from \"arktype\";\nimport { defineTool } from \"@achmadya-dev/mcp-core\";\n\ndefineTool({\n  name: \"my_tool\",\n  description: \"Does something\",\n  inputSchema: type({ name: \"string\" }),\n  outputSchema: type({ ok: \"boolean\" }),\n  handler: async ({ name }) => ({ ok: true }),\n});\n```\n\n### Raw JSON Schema\n\n```typescript\nimport { fromJsonSchema } from \"@modelcontextprotocol/server\";\nimport { defineTool } from \"@achmadya-dev/mcp-core\";\n\ndefineTool({\n  name: \"my_tool\",\n  description: \"Does something\",\n  inputSchema: fromJsonSchema({\n    type: \"object\",\n    properties: { name: { type: \"string\", description: \"Item name\" } },\n    required: [\"name\"],\n  }),\n  handler: async ({ name }) => ({ ok: true }),\n});\n```\n\nTools with no parameters: use an empty object schema from your library (e.g. `z.object({})`, `toStandardJsonSchema(v.object({}))`, `type({})`).\n\n## Advanced: resources, prompts, MCP Apps\n\nUse `setup` to register SDK features beyond tools — parameter `server` is already typed via `McpSetupHook`, no SDK import needed for typical cases.\n\n### Resources & prompts\n\n```typescript\nimport * as z from \"zod\";\nimport { defineTool, runMcp } from \"@achmadya-dev/mcp-core\";\n\nawait runMcp({\n  name: \"My MCP\",\n  version: \"1.0.0\",\n  tools: [myTool],\n  setup(server) {\n    server.registerResource(\n      \"config\",\n      \"config://app\",\n      { title: \"App Config\", mimeType: \"application/json\" },\n      async (uri) => ({\n        contents: [{ uri: uri.href, text: JSON.stringify({ ok: true }) }],\n      }),\n    );\n\n    server.registerPrompt(\n      \"review\",\n      {\n        title: \"Code Review\",\n        argsSchema: z.object({ code: z.string() }),\n      },\n      ({ code }) => ({\n        messages: [{ role: \"user\", content: { type: \"text\", text: `Review:\\n${code}` } }],\n      }),\n    );\n  },\n});\n```\n\n`createMcpApp` + `await app.createServer()` works the same way for manual SDK wiring.\n\n## Tool results\n\nMCP tools respond with a `CallToolResult` (`content` array + optional `structuredContent` / `isError`).\nWith `defineTool`, return plain JSON (auto-wrapped), the helpers below, or throw `ToolError` → `fail()`.\n\n### `ok(data)` — success\n\nObject values become formatted JSON text **and** `structuredContent`. Strings become a single text block.\n\n```typescript\nimport { defineTool, ok } from \"@achmadya-dev/mcp-core\";\n\ndefineTool({\n  name: \"query\",\n  description: \"Run SQL\",\n  inputSchema: z.object({ sql: z.string() }),\n  handler: async ({ sql }) => {\n    const rows = await db.query(sql);\n    return ok({ rows, count: rows.length });\n  },\n});\n\nreturn ok(\"Migration applied.\");\n```\n\nEquivalent to returning `{ rows, count }` directly from the handler (auto-wrapped).\n\n### `fail(msg)` — expected error\n\nSets `isError: true`. Same outcome as `throw new ToolError(msg)`.\n\n```typescript\nimport { defineTool, fail } from \"@achmadya-dev/mcp-core\";\n\nif (!sql.trim()) return fail(\"SQL is required\");\nreturn fail(new Error(\"Connection refused\"));\n```\n\n### `content(blocks)` — custom blocks\n\nMultiple content blocks (text, image, …). Optional `structured` metadata or `isError: true`.\n\n```typescript\nimport { defineTool, content } from \"@achmadya-dev/mcp-core\";\n\ndefineTool({\n  name: \"screenshot\",\n  description: \"Capture screen\",\n  inputSchema: z.object({}),\n  handler: async () => {\n    const base64 = await captureScreen();\n    return content(\n      [\n        { type: \"text\", text: \"Screenshot:\" },\n        { type: \"image\", data: base64, mimeType: \"image/png\" },\n      ],\n      { structured: { capturedAt: new Date().toISOString() } },\n    );\n  },\n});\n\nreturn content([{ type: \"text\", text: \"Invalid input\" }], { isError: true });\n```\n\n| Helper | When to use |\n|--------|-------------|\n| `ok(data)` | Success — object → JSON + `structuredContent`, string → text |\n| `fail(msg)` | Expected error; sets `isError: true` |\n| `content(blocks)` | Multiple blocks (text, image, …) |\n\n## Exports\n\n- `runMcp`, `createMcpApp`, `McpApp`\n- `defineTool`, `ToolError`\n- `ok`, `fail`, `content`, `isCalled` — tool result helpers\n- `envStr`, `envInt`, `envBool`, `envTrans`\n- `@achmadya-dev/mcp-core/ext-apps` — `registerAppResource`, `registerAppTool`, `RESOURCE_MIME_TYPE` (requires peer `@modelcontextprotocol/ext-apps`)\n- Types: `RunMcpOptions`, `McpSetupHook`, `McpTransport`, `HttpTransportOptions`, `McpAppConfig`, …\n\nSchema builders and runtime validation stay in each `@achmadya-dev/mcp-*` package.\n\n## Development\n\n```bash\npnpm install\npnpm run build\npnpm test        # 22 unit tests (also runs on pre-commit)\npnpm changeset   # before shipping user-facing changes\n```\n\n## Release\n\nUses [Changesets](https://github.com/changesets/changesets) — same flow as [`achmadya-dev/mcp`](https://github.com/achmadya-dev/mcp).\n\n1. Add a changeset when you ship user-facing changes:\n\n   ```bash\n   pnpm changeset\n   ```\n\n2. Push to `main`. GitHub Actions opens a **Version packages** PR (version bump + `CHANGELOG.md`).\n\n3. Merge that PR. Next push to `main` publishes to npm (`@achmadya-dev/mcp-core`).\n\n**Remote prerequisites:** GitHub secret `NPM_TOKEN` (npm automation token with bypass 2FA for `@achmadya-dev`).\n","readmeFilename":"README.md"}