{"_id":"apcore-mcp","_rev":"32-be93a4b15aeb2dac2b769b6a906de998","name":"apcore-mcp","dist-tags":{"latest":"0.22.1"},"versions":{"0.1.0":{"name":"apcore-mcp","version":"0.1.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent"],"license":"Apache-2.0","_id":"apcore-mcp@0.1.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"6376ef1cbacc73aafa63e734bb420fc5a7f4e774","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.1.0.tgz","fileCount":62,"integrity":"sha512-i6A0BDrPD4TU2QSW1mgf+och1Q6toq699q/fyleDKdc0EJa1wIym+nzk4TMy/Tltcnu87BnQ6c9cgYl94swE2w==","signatures":[{"sig":"MEQCIHgyVzn/dT/F4j02sf/iXSbI7nUCC8RwPZSbaMEXafxPAiAiBH0zaOpQ1RIG2oGjBKCCbXhAE50gHYFTy7gHuzWhjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108477},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1319bb70d4bff2c39b46cb25b6d26dcb48f09fc3","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.1.1","typescript":"^5.5.0","@types/node":"^20.0.0","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.1.0_1771329976653_0.4146937367508068","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"apcore-mcp","version":"0.1.1","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent"],"license":"Apache-2.0","_id":"apcore-mcp@0.1.1","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"bd776ea4dbb5a5072c2c6dd4390acd6dfe58dba3","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.1.1.tgz","fileCount":62,"integrity":"sha512-fJeImbEzgVb59myOneqnLOGgrTEL155SACOE6oSoUFgp4l25+Dm8L3F0RVWzf6gzrjJQxNV0d8AF6xXvaML5mA==","signatures":[{"sig":"MEYCIQC3Q5doIJvoWsiRdI26mA02++LfGQzmUP7NpfYsS4FBswIhAKd7jizRXBzk0MlFpPQRK+iFqT4UfFWgreV56MKh3qdp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113066},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b3b751190a869d197b24ada7c47721ec384a0db8","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.1.1","typescript":"^5.5.0","@types/node":"^20.0.0","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.1.1_1771401000106_0.6422602511519495","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"apcore-mcp","version":"0.2.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent"],"license":"Apache-2.0","_id":"apcore-mcp@0.2.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"aba15778e0a0afca13ffe14b79bf687d11d6efbf","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.2.0.tgz","fileCount":62,"integrity":"sha512-BVyWRs7w+pXdM+lYu5AfBA2UXsF0IyCdgmPONRGMzoNF1+3qftvWEewyKpSkIRBovqhm3jLFzzH2gkq13F8oiw==","signatures":[{"sig":"MEUCIQCKcM9b+vKwctdb8WTY2TIV8ANcumzt0PVQo4jMKEXqEgIgS5LDJdC41qMcpDBiLwwKwRzfx/0EaRQkysDdNXPmENg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120994},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"47fae6082c420836aa83d1d2877e638b46f02630","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.1.1","typescript":"^5.5.0","@types/node":"^20.0.0","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.2.0_1771559006694_0.7135175194322689","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"apcore-mcp","version":"0.3.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent"],"license":"Apache-2.0","_id":"apcore-mcp@0.3.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"b2afd8d45a07401519e974395c4a415f7deb4701","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.3.0.tgz","fileCount":70,"integrity":"sha512-whKGQXXP2cS9UShBvj4Jl0/qL8aHoHS1S+UvvwJ8rm7te2iPDQop3op/Dk4uQfDLh78KLciRxEOSZCbw5ngiwQ==","signatures":[{"sig":"MEQCIGc/DkekxUBYRZvUc6+GVgoFlUAFq9UsVpfwh21qfbxAAiBvIYeVStS2thmihhCJtfNvOV2rNawJwUBOLszJRRECsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141057},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"875c2c88a405ed8b85de4d6e37abda7e160d2ff9","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.1.1","typescript":"^5.5.0","@types/node":"^20.0.0","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.3.0_1771740931307_0.12074573622878115","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"apcore-mcp","version":"0.4.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.4.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"4737179287c514189819b585d15d50527b9de776","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.4.0.tgz","fileCount":70,"integrity":"sha512-ueex7onmCK7/bqEcaz735gox5dxICAD6OqJ39treKHB0f1Y4gnxJ21Olrq8F7Z45gsi2UdFmnaArjcIFX+CM/w==","signatures":[{"sig":"MEQCIFBc2sdkuCU8yZHSymp6o5vqJsB1YAFXIweKK+lwOcmKAiAC7kzH72hmA4cCEH+TA99JGc69S6Iq0eCOO8Sc4e3/0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167592},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1041c2f72d9c625abc6eca8eb75fd6b0513c57ba","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.1.1","typescript":"^5.5.0","@types/node":"^20.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"apcore-js":">=0.6.0"},"peerDependenciesMeta":{"apcore-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.4.0_1771828292770_0.0822466979388703","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"apcore-mcp","version":"0.5.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.5.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"9df5770e6428e8f91cb7f38c2ac889b521dcaab7","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.5.0.tgz","fileCount":82,"integrity":"sha512-oelifeT3P4adQdfkEs46IeG58rI+QSuDbJyPA8IgSsRjlhO1C0e/YaF8f7PVPSU3euwBMF2/eyIgGV36vNMR9Q==","signatures":[{"sig":"MEUCIQDOY1WGHZEVT9jZe46oEGLYIWa7/8nwQp/oYOykmABb+wIgZm6dkloFxitcN6qTGDbYro/Y78tKYMsfBhFG4qQPkbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208973},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5fee48c5be7264fa7520a42bf867a1326edd6a6b","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.1.1","typescript":"^5.5.0","@types/node":"^20.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"apcore-js":">=0.6.0"},"peerDependenciesMeta":{"apcore-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.5.0_1771995487335_0.8937814092633143","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"apcore-mcp","version":"0.6.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.6.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"26c7287e564203acd45eab083e3e884be1f57478","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.6.0.tgz","fileCount":82,"integrity":"sha512-EqSa8cQetxil9I08e08NLjnce+jhPA+nrNNFnHrB3bQhfjiKF8uBVHGMFDVJ7sKEaVElNcELi0Mrgxm5CQbxwg==","signatures":[{"sig":"MEUCIQDlB4gVcoq5fsBCaTgRnAL840RH2Y6K2fQV9/BHIMdO8gIgElavV+bVNYgE3p6RUTN54qRIKjmADJm66k3TqCLDvCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216294},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"afb03508f6dc6181efc7d4e1577f2d2ec2d136d5","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"apcore-js":"^0.6.0"},"peerDependenciesMeta":{"apcore-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.6.0_1772016678602_0.13313538504759603","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"apcore-mcp","version":"0.6.1","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.6.1","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"16dd4568d5ce8a63c6cdef40a2a97a0471bb9561","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.6.1.tgz","fileCount":82,"integrity":"sha512-J8fZBzVjlvUh5W5BOlyFbmK6IGkJK43j5fN5pDOvhPsJ3gftfg19+CutgnaqA6jbWfx3q84UZyXsK8NXWjALJw==","signatures":[{"sig":"MEQCICWBaf6ih4f/PPOqs7/IJRRqbMCCRM3g+wzKgUNDoq91AiBSwzIX5Npz8e0pX/Fi/evFtGm7OvWXVV4sa6ekStg7jQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216600},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8835cebf684afc4c7c598c5353815e54c941a90c","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":"^0.6.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.6.1_1772154170191_0.5561016127194369","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"apcore-mcp","version":"0.7.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.7.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"51d8bfa70918bfb57a22dc16ebc6769dda147e63","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.7.0.tgz","fileCount":98,"integrity":"sha512-L1c93rBnNftAeetl5qSBLfEMlZgXWdxC4nURwjpnf7NJSmU2Svv9xXEIMKIuNQqTO0f3Gx4nlQRSuwYDr4DwkA==","signatures":[{"sig":"MEQCIHW1FaHY1yn6XW2DU07GtS+bRPUG6+kDeMOX9ScYiEuvAiA0tIihU894P9dlWSKo9/LfZfliA8AcAa6MNiMRH7EKNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260018},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"12e746ef63ae40401db5daff72dfd1f2c1a7a5da","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":"^0.6.0","jsonwebtoken":"^9.0.3","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.7.0_1772269903429_0.46893440190770064","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"apcore-mcp","version":"0.8.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.8.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"d476594d82e14814e67c4ecdab2f9cd950762e8c","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.8.0.tgz","fileCount":102,"integrity":"sha512-n12R1FhpKvPALibE49upJCOf+Avu2rInEkuAOOSqchAPUyuXQhFcAZx2AHt377oyx+79/nuwPJ5fDg59251PWA==","signatures":[{"sig":"MEUCIQDe4Jnw4kYii5snF0bE44tRSEMGBQQWTqzpFnl53F2AUgIgTOPrTCAAtqWlvVe72anVT6BMhizOUpltPSHOoEsZ7yM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278737},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f18e621cccf1cfcf4d200bb94cc6ccc11cc7f13a","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":"^0.6.0","jsonwebtoken":"^9.0.3","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.8.0_1772446597270_0.5378940645309773","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"apcore-mcp","version":"0.8.1","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.8.1","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aipartnerup","bugs":{"url":"https://github.com/aipartnerup/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"9b0b2eb95d736c72c5c4e5fed53bb5519a33d5f6","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.8.1.tgz","fileCount":102,"integrity":"sha512-WSZm+mDsZ4AFrN4s7jubgh5k+LwxBJ3SNbHoj3w/xDWwkpHrnGCsOfKrklbUt7QbooxoZ7Ok5PV+mgcMteeqMw==","signatures":[{"sig":"MEUCIQChVrrqodP18WdywfKJoKhZj9PrhAjjfC2wYmmFJvGzGgIgQi0ekw+kgM+VvQms34tOuiqfey0qmV8+/rQCRpax1Vg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279494},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9933904857360dfd2b7e220d500d15863d39eb27","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aipartnerup/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":"^0.6.0","jsonwebtoken":"^9.0.3","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.8.1_1772448225738_0.8081568394510685","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"apcore-mcp","version":"0.9.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.9.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aipartnerup","bugs":{"url":"https://github.com/aipartnerup/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"0041cfb143ddfe9326f252bd16e051f9e5dd9624","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.9.0.tgz","fileCount":102,"integrity":"sha512-36N9eEL/p17xCzXd+LgsXgHLrU2D7JrK0rEBjgU3LMHb7SRQM0xj8R3RoOfya6xtZNI9nYyuiArKScWl/2JmvA==","signatures":[{"sig":"MEUCIBwrbQ+pWbrbDJUjSLYGJU/Y/l73RwbVoe+xa269GpbJAiEAr9wkIgtXAW6VFzsCQD+AD8IYbe0R7DoFso/eAo1IBX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303100},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2d927ea67954aefc4d696302ed2cdef19a1c410f","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aipartnerup/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":"^0.9.0","jsonwebtoken":"^9.0.3","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.9.0_1772793672598_0.19881695730254734","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"apcore-mcp","version":"0.10.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.10.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aipartnerup","bugs":{"url":"https://github.com/aipartnerup/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"60ca22cbdcdaa90b59ded80c6565666e6dfe5a52","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.10.0.tgz","fileCount":98,"integrity":"sha512-DSLcP0317cJbERIUrQ3osZQCE8fuvLyWQRHrcOf2B1WKnIikNeY2o5HyM193YTcBm9n+H8taSVcOoD+DmAWinw==","signatures":[{"sig":"MEUCIGiOPand55OktHk6L6B19Btt8PbY6cfjJCxHykW6ubczAiEA0vZPs51pkRw4dWdOQy50vRBc376EvK7KkGyGJNDCino=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":282921},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d0155ffec4c1d046ad241838611bd949f8d325e1","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aipartnerup/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"11.11.0","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"25.8.1","dependencies":{"apcore-js":"^0.13.0","jsonwebtoken":"^9.0.3","mcp-embedded-ui":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.10.0_1773479595624_0.8538971578899339","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"apcore-mcp","version":"0.10.1","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.10.1","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aipartnerup","bugs":{"url":"https://github.com/aipartnerup/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"dd914527728846435b20d646d209f82af79784ee","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.10.1.tgz","fileCount":98,"integrity":"sha512-3dJ0AWhIBQsWLLdVr9zZNuoVdcKJDrIQuCK1xI4hFGanKzzruFEPoT8Iwa8U6VocFz1TEssVEWuLSuUWu5TJRA==","signatures":[{"sig":"MEUCIFS81LJxO1/2ToLvazacgf4iFm8ERZVAax6hAWS8OE8rAiEAzNgxADLsSr1UaXC+FAqimzX0dcVyInl/qY9ouUlmtV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281245},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"38c48b84ba990da4fdb84d803f2d15599af10cff","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aipartnerup/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"11.11.0","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"25.8.1","dependencies":{"apcore-js":"^0.13.0","jsonwebtoken":"^9.0.3","mcp-embedded-ui":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.10.1_1774076711041_0.6535014648053232","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"apcore-mcp","version":"0.10.2","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.10.2","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"21091d1af8a328b2acbd3065125a3e4c7dc47530","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.10.2.tgz","fileCount":98,"integrity":"sha512-BXDbTdF5QXDapWGaFmO6oxj8suVV64u0+moIEm52LUp57hcLUGbJ3DfgDCuH6++AOsbRdjALO6G03XYCFQ12dQ==","signatures":[{"sig":"MEYCIQCHIDMtEfN3/+gh7AC4Q9SQgexR29ivcBt0tzDmg6TiWAIhAMQ4cBr81ny9AQH1PrSmlLVMz0IC8DsaLniPZJ7oVWPl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281259},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2e443aaf8defde08dc3725cc1ca9228edd037933","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"11.11.0","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"25.8.1","dependencies":{"apcore-js":"^0.13.0","jsonwebtoken":"^9.0.3","mcp-embedded-ui":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":"^0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.10.2_1774184693698_0.9014204245143622","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"apcore-mcp","version":"0.11.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.11.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"b0db4bb1c4d7ce4b72c7413a85722bcffd6ff790","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.11.0.tgz","fileCount":98,"integrity":"sha512-8gG0Jh169Eto2E+gmFlCpyiCMDXx/UmL7n3O+/t1nHACm826FhMLm8WNZVWoCPkRH6a93KonNyZKLVgyoX6Bgg==","signatures":[{"sig":"MEYCIQCS+M8zJ1yzsVUxm7XN1PWP1CNGZKgUUfAUZXDcLZV2UQIhALqtBT0vWJAlMNt8cog2YRNs6tvfT7iFBEQEpCxrygW3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284012},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1720b6f2feafe13c881d8390266f03c6b5f6e164","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.14.0","jsonwebtoken":"^9.0.3","mcp-embedded-ui":">=0.3.2","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":">=0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.11.0_1774516140361_0.22897965384451968","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"apcore-mcp","version":"0.12.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.12.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"befecf2fa791858080964c5a6d0f95e121ddeff7","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.12.0.tgz","fileCount":106,"integrity":"sha512-plvpLFq9Y48Yo8n+xLd6uo6w+GmIhGYqaGvxWSO925iLdi6xHZqegIzzvH6A8uIt47Qeuq77SBfpEmX95EPYsA==","signatures":[{"sig":"MEUCIQDYhwSue1lEOOmDeGBNOl1pStwAx7YcrUtWwR8C0d+bGQIgMPy0zVVWVjVDH7SdxOlGK90RsL3q/hqYLBLJ7PMWXUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293230},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5fdaef43ed100aaa7508ec3e61dba425e4eda8db","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.15.1","jsonwebtoken":"^9.0.3","mcp-embedded-ui":">=0.3.2","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":">=0.2.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.12.0_1775012513544_0.8425687678159077","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"apcore-mcp","version":"0.13.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.13.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"d0f7564d28466600248de08eabdc4878e6bef925","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.13.0.tgz","fileCount":106,"integrity":"sha512-7NRFaf/tJ/TTbwj+gtGRqaaDVKEC33p383zRW7AjLf/AQb/2+XV5I9242eVYiI/vaqM6liBPTOMR/pQT5e62dQ==","signatures":[{"sig":"MEQCIBaBDHsayrZrfNEhY2aogpLqAk14VO6CckVIcIZF74LtAiBtyxbuWXaYzkTYcoUlbBwzWW/Pa5fJ4JMpP4hg2oxr8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318972},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4319df2d9a0eafa525e9d973dc57382f3d813535","scripts":{"dev":"tsc --watch","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"11.11.0","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"25.8.1","dependencies":{"apcore-js":">=0.17.1","jsonwebtoken":"^9.0.3","mcp-embedded-ui":">=0.3.2","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","apdev-js":">=0.2.4","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.13.0_1775478085744_0.6950232910441763","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"apcore-mcp","version":"0.14.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.14.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"9cb9ab82d75240889e9863d87a9253e8918cab45","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.14.0.tgz","fileCount":135,"integrity":"sha512-eE+eD1/bbKUJ3wIKnLr1i476Ht3z55rHyMkuqk7+XecrUafgKThUEX8582Q03Yqdq8CZxd9I3Ax7YZ9S8r6J0g==","signatures":[{"sig":"MEUCIHFoWoZiHt4aqq/LRlZrRzvz6K7wEFWSeXsX9MF0f/yXAiEAg97iYvmpUekDA2jFUIphDVEtBSiSwP2u9ex4/FuP9lg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":524041},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ddead0fbff94f1ae84cde40fe19a12c96fe40f90","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"11.12.1","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"25.9.0","dependencies":{"apcore-js":">=0.19.0","jsonwebtoken":"^9.0.3","mcp-embedded-ui":">=0.4.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"optionalDependencies":{"apcore-toolkit":">=0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.14.0_1777607669930_0.1301614426475799","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"apcore-mcp","version":"0.15.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.15.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"6f6875e5b96845fc98860a2683d0e420bcb3445b","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.15.0.tgz","fileCount":131,"integrity":"sha512-L0C82lQgAZoxDNfWUwdGibCPAYwIOxvU+cbG4l8c0f6Xc3evWEyZp7vQufay3IzOP38k+Ck0VOi46z/yq+O22w==","signatures":[{"sig":"MEYCIQDYjX0YZ3yNMdOjhz6myhoFPSasoJos9I4maeHT7bHEJwIhAJcucDqZ0IXeRGH4hwJnC7co482LGaPzVNbHrjmFnzNU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":585060},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"837987457a8a540d6a4ef133047307c0bda1b9cd","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.22.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.8.0","mcp-embedded-ui":">=0.4.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.15.0_1780035031248_0.7963089820244265","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"apcore-mcp","version":"0.16.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.16.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"7c1ff579876dd6f5f4a2717a4d77847e2476ddc2","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.16.0.tgz","fileCount":139,"integrity":"sha512-VgrTxHGQbamofV5CCOvo6TTSD2xT9bxgcjs692dD3GcYbH6lRSAiw7rOFtdb/Tv8COvSHvKqRX01tdAXVrLkDA==","signatures":[{"sig":"MEUCIDQBpkCZQApK3aF1hXJEa8ZM/JSLTEcKRbtoC2Twej7jAiEA//xb31rzji9Z7mRiaQ8oLF845QiYgww1ctztgJL/144=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":613329},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"05a62b22555b2c8acc7c64ae1560bf73aa5feec2","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.24.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.8.0","mcp-embedded-ui":">=0.4.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.16.0_1781256016663_0.7376564390787834","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"apcore-mcp","version":"0.16.1","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.16.1","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"2de20c1591aa74ffa4b9f5dcc6e9c69fc954440c","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.16.1.tgz","fileCount":139,"integrity":"sha512-wY64mJOrbRTuiNtO1EcsEV5+Ovh9znvkwQhIxVQYeKA0bsW1ml+JiWZ12BdptnK5UntA7Ap2fUa+Yxt1crSzFA==","signatures":[{"sig":"MEUCIQCSGNd20GVUEHS+rAkWzvNiRyQnZ9ZkI9R49SOwY+JLRgIgGY8nFBHT4B3O0uYj7E8DGG6uDVWmTtdeD7b9GsPMjRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":611521},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"45ff7ec29008bc42dc315c32d0260dac8b05f7dc","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.24.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.8.0","mcp-embedded-ui":">=0.4.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.16.1_1781764918840_0.29614714533166775","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"apcore-mcp","version":"0.17.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.17.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"d4b7c0b4b4d816f9d8ca2adb0d900784d0378b31","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.17.0.tgz","fileCount":139,"integrity":"sha512-WYqTrdevPfdi/wG2D/x25SP6feO7Ykm8k7N2xbn0LPqGacp9e4alUPng+U9CO0Ck289EcpcV2becq8V9NNPGKQ==","signatures":[{"sig":"MEUCIGJcbLOtW84m83SfX8DbeZz3V6qzEmv4GOgyzAnFng+eAiEA3gfDK7lBH9KK4E2mUDa0POMkkU/qqCCiGTYgqGqMVPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620104},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"973b86838900475733479527a1107b20df7ad82d","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.25.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.9.1","mcp-embedded-ui":">=0.4.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.17.0_1782205488621_0.7743249899839222","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"apcore-mcp","version":"0.17.1","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.17.1","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"3b9d6b0c73613e173a3d3b7106d90721853319d8","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.17.1.tgz","fileCount":139,"integrity":"sha512-nOQ6YGR/yYkq6ZCrHYotmdRT0ETvyx6Jgm9Kjxt+FfMSbz5ojAcNs9xLgK2eeTfMfrXtkG9YJ9g7sUCg4sLbpw==","signatures":[{"sig":"MEQCIEcTnWK/9MPMp28/c0VZb+Ic+wezcaGU6BwrHgvy32mLAiAHaur/STvFQshRGEmxBGdHanGrFFHhY5+E+2l1Am7ntA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620105},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7667912fdea92585a1c0ae540364652c5473b3c2","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.25.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.10.0","mcp-embedded-ui":">=0.4.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.17.1_1783417725425_0.34809242272260965","host":"s3://npm-registry-packages-npm-production"}},"0.17.2":{"name":"apcore-mcp","version":"0.17.2","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.17.2","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"43d0b008859b7f36b5a43a03cbc06cb00ad11474","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.17.2.tgz","fileCount":139,"integrity":"sha512-ceYKD2gE6xOY1B2ML+y808/SIhPDVqdkCL4PbvZV7uj1H3+feuQU/u4zm45OotZsVvwmXL7MeUZdITi76ZSSAg==","signatures":[{"sig":"MEUCIQDYLw5qNPuT0PzvyO/ysthOP6DT2QV4fsFphrYx1aR/xQIgRhBB5UIHKH3hdJjqvVgLmq0yfY+WNOnujI5c5lYADAY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621888},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"fe9480eba29e9b9f6a91a777c5fd7ae08ce3b08f","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.26.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.10.0","mcp-embedded-ui":">=0.4.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.17.2_1784101968777_0.05003129429746922","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"apcore-mcp","version":"0.18.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.18.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"a8540209a8fd7a7c2a7ee8dc0e7f487d34e89245","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.18.0.tgz","fileCount":139,"integrity":"sha512-ed427GR4CEcjS/y4lVQLQoqKsru+cVZmdX8CbqzW2S0NolEaB5oZDn2rli3VWRpeFudEO+90twYBKAKo+BJD0Q==","signatures":[{"sig":"MEYCIQDpJVdMG8odsAUGlmIyizQr4rrs78ceKYQkkOp4hb8zpQIhAMXfr+I6wrHj6zGbYw3ZMbrxk2cevkZ9SizaAoZ1nL13","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633777},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"46d81366a189d1995a98c2acd766c4a659c3ad65","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit && tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.27.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.10.0","mcp-embedded-ui":">=0.4.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.18.0_1787101782096_0.5578976109164695","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"apcore-mcp","version":"0.18.1","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.18.1","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"dbff3c96694c24ecc9bc3d438e5cb10f72b4fb0a","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.18.1.tgz","fileCount":139,"integrity":"sha512-2rxPEXj76x/+m6ib3XzBCkApKT8uAmcTBonk4M1/92a5P7i7QNPgah7uyu1DmIeUTk/+EOpSqDR7PhRMK9CFwA==","signatures":[{"sig":"MEUCIBgg8GaDN0Dhxt/MjKZIFgpClLPFhvywciKX+rYYRuVfAiEAtW4jZ7vUeiUN7lG/u38p54uTg8ASPkWJrLDzPkyhDFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633777},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7f6a045ab9fbf66a1d7673d27523fd17d8b515f8","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit && tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.27.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.10.0","mcp-embedded-ui":">=0.5.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.18.1_1787220057139_0.01890109032170284","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"apcore-mcp","version":"0.19.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.19.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"a0bc971b457fc8d2ba148afa422b442b790061af","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.19.0.tgz","fileCount":143,"integrity":"sha512-MFnwz0zv+9ihMF+3TuOJ7FVX+UvqpZauGPRxnU6+/CB3Gsf/gE4AI+sJkh+dNr5fToxbuRvvEE3aC/2FCRdEWA==","signatures":[{"sig":"MEUCIQCPLDksoScUrro3XwuceV+8P1m5ME355EomXbXHwhr2pAIgH5zLKmYW03hpdaCEutyi1aV+8NJOdPru+LcYDlKqDiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIA8JK7khq8fGGJd4mEiDKyFPzWj6EZ4rDBI6PP45jfbuAiAKMf2F1arh4889lNWiUJMz+PxBQcbqydSZvhZXtp0YbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":683336},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0743d0c6d93eaa866aa65ec7aafe8ef0a71b48e6","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit && tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.28.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.10.2","mcp-embedded-ui":">=0.5.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.1","devDependencies":{"tsx":"^4.23.12","eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.19.0_1788313313387_0.14072391929518147","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"apcore-mcp","version":"0.20.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.20.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"b6eaa0e7a7a3c6e6275a4a6dd13ecf654164af96","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.20.0.tgz","fileCount":147,"integrity":"sha512-4BEJ2gatXW7jEnqbnMpvg3kEIzbDba793bygHM9WOt5RepCz35tDOu2HowsaJKl+SDcgiCtmyDaKGUo9EBifuA==","signatures":[{"sig":"MEQCICdWKyQDn42pQdlfVWxiZgJJA/Gu6UQ59IBSEMCrjJBRAiAMwhjEQ69M+n7tIp2M+71SBDc86VlQB2gSbkYTSo1JlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDScKQMb/muazKgsHc4+F8jX/A+JXofJP/0kW+M/TULiAIgX1blBA7kCtIDJZHtX/xGdxH67J3AgpQb9QEPUkmjpHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":735530},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"fdd5b0ac32a46162cfdb9256942eb6f408986c24","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit && tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"11.12.1","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"26.0.0","dependencies":{"apcore-js":">=0.30.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.11.1","mcp-embedded-ui":">=0.5.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.1","devDependencies":{"tsx":"^4.23.12","eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.20.0_1788695046788_0.7138321003713812","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"apcore-mcp","version":"0.21.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.21.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"847ebd6313a72b9d2b247537715b4b2f949777cb","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.21.0.tgz","fileCount":147,"integrity":"sha512-wXNVRbvgFrpGyh98mQFHnvLDwdJ/vPSQhrX0Y+gqw4QRCkTwNula7GA1TvATLivfB7Wohc32L50qTjOjuQ2xlA==","signatures":[{"sig":"MEYCIQC/uqz6B6uCP6qXQ38iv/nhHZiTZRc4bWfZnfx9Izng3wIhAJ6YnEx4le39zlgVPYffjlQsM8gyLSioW3fhM3YHOPQx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICrrOvL6qR+X828mVSi0GUbl48LixylnN5Mp0xC0x2OzAiAqExvVObDr26bXQeQnH5CNzBeg+dXUeyu7/zlvp+7fvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":739472},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a63bbb830d2c12c25f6409ae96c5c2312910b34e","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit && tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.30.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.11.1","mcp-embedded-ui":">=0.5.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.1","devDependencies":{"tsx":"^4.23.12","eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.21.0_1788763522474_0.25704056277942233","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"apcore-mcp","version":"0.22.0","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"license":"Apache-2.0","_id":"apcore-mcp@0.22.0","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"homepage":"https://github.com/aiperceivable","bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"bin":{"apcore-mcp":"dist/cli.js"},"dist":{"shasum":"f24b2e0a2bbdcc6307c2b7a887b51cc12a857108","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.22.0.tgz","fileCount":147,"integrity":"sha512-DtfCgeD4wUtqEb9W/QZQ5y01qoDxdQZSRtEk0sJRklVKJl1geJqVJvj/MErtstRYLpJ4jN68Jsz7l5W0wC4h8Q==","signatures":[{"sig":"MEUCIQC41BaitZ99xRIhb6lwtgn6o8hbeV6DCR2Mq/FIJiP+TQIgC4ou04BZvtvDvB6E9mzDhHf33vfc0jpB152BKMC6Qi4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCrqh8/B8w2OwmA/Ue7/8+7+oTYczW+k5WsbzeZ6AmbSQIhAOpppAgVx2/xewFHBtjzqg/XmXrSa2Cb0spK6SieluK8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":742567},"main":"./dist/index.js","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9938089e0ce502f0eb499d57e283f1ac53a59354","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit && tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.31.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.12.0","mcp-embedded-ui":">=0.5.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.1","devDependencies":{"tsx":"^4.23.12","eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apcore-mcp_0.22.0_1790222901333_0.2589193015665334","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"_id":"apcore-mcp@0.22.1","bin":{"apcore-mcp":"dist/cli.js"},"bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"dist":{"shasum":"c74ac844999aa6b5ed659ad7713cec147900f6c7","tarball":"https://registry.npmjs.org/apcore-mcp/-/apcore-mcp-0.22.1.tgz","fileCount":147,"integrity":"sha512-QNbwcPf4qvYI2VmTgCfcGWT/IDAoMmn2DxYLiE6GX68Ez2QZ9J7R1dDr3XzlRqKw7wWItueTF7nGVwXSQk4NXA==","signatures":[{"sig":"MEUCIHdaIj2CMQcezk5wgUCF2gcKPwkxBXKJjYAUS+k9F0MBAiEAzBTZBN/gbEpnKJh8uEWGl7HlvZWtZDew7rKKtIJb8JQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCLw98WhJ6FSi9ap0vrPk41PJ0kyPtaCZXsYPlxmcQTnQIgNU6Jm0CQCct6XnVHdpRd2JursTnusvKpZDOioAy1YdA="}],"unpackedSize":742341},"main":"./dist/index.js","name":"apcore-mcp","type":"module","apdev":{"base_package":"apcore-mcp"},"types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6355e8e015a13136e0223c4b226e71334c087b46","license":"Apache-2.0","scripts":{"dev":"tsc --watch","lint":"eslint src tests","test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit && tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"version":"0.22.1","_npmUser":{"name":"tercelyi","email":"tercel.yi@gmail.com"},"homepage":"https://github.com/aiperceivable","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"_npmVersion":"10.9.4","description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","directories":{},"maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"_nodeVersion":"22.22.0","dependencies":{"apcore-js":">=0.31.0","jsonwebtoken":">=9.0.3","apcore-toolkit":">=0.13.0","mcp-embedded-ui":">=0.5.0","@modelcontextprotocol/sdk":">=1.26.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.1","devDependencies":{"tsx":"^4.23.12","eslint":"^9.0.0","vitest":"^3.0.0","apdev-js":">=0.2.4","@eslint/js":"^9.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","@sinclair/typebox":"^0.34.48","typescript-eslint":"^8.0.0","@types/jsonwebtoken":"^9.0.10","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/apcore-mcp_0.22.1_1790645230131_0.889559553101779"}}},"time":{"created":"2026-02-17T12:06:16.498Z","modified":"2026-09-29T01:27:10.394Z","0.1.0":"2026-02-17T12:06:16.808Z","0.1.1":"2026-02-18T07:50:00.262Z","0.2.0":"2026-02-20T03:43:26.887Z","0.3.0":"2026-02-22T06:15:31.462Z","0.4.0":"2026-02-23T06:31:32.912Z","0.5.0":"2026-02-25T04:58:07.518Z","0.6.0":"2026-02-25T10:51:18.767Z","0.6.1":"2026-02-27T01:02:50.333Z","0.7.0":"2026-02-28T09:11:43.596Z","0.8.0":"2026-03-02T10:16:37.443Z","0.8.1":"2026-03-02T10:43:45.878Z","0.9.0":"2026-03-06T10:41:12.730Z","0.10.0":"2026-03-14T09:13:15.856Z","0.10.1":"2026-03-21T07:05:11.202Z","0.10.2":"2026-03-22T13:04:53.836Z","0.11.0":"2026-03-26T09:09:00.529Z","0.12.0":"2026-04-01T03:01:53.709Z","0.13.0":"2026-04-06T12:21:25.893Z","0.14.0":"2026-05-01T03:54:30.080Z","0.15.0":"2026-05-29T06:10:31.390Z","0.16.0":"2026-06-12T09:20:16.889Z","0.16.1":"2026-06-18T06:41:58.980Z","0.17.0":"2026-06-23T09:04:48.813Z","0.17.1":"2026-07-07T09:48:45.556Z","0.17.2":"2026-07-15T07:52:48.951Z","0.18.0":"2026-08-19T01:09:42.246Z","0.18.1":"2026-08-20T10:00:57.313Z","0.19.0":"2026-09-02T01:41:53.510Z","0.20.0":"2026-09-06T11:44:06.890Z","0.21.0":"2026-09-07T06:45:22.574Z","0.22.0":"2026-09-24T04:08:21.440Z","0.22.1":"2026-09-29T01:27:10.227Z"},"bugs":{"url":"https://github.com/aiperceivable/apcore-mcp-typescript/issues"},"license":"Apache-2.0","homepage":"https://github.com/aiperceivable","keywords":["apcore","mcp","model-context-protocol","openai","tools","function-calling","ai-agent","mcp-server","tool-bridge","agent-tools","schema","json-schema","validation","router","transport","cli"],"repository":{"url":"git+https://github.com/aiperceivable/apcore-mcp-typescript.git","type":"git"},"description":"Automatic MCP Server & OpenAI Tools Bridge for apcore","maintainers":[{"name":"tercelyi","email":"tercel.yi@gmail.com"}],"readme":"<div align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/aiperceivable/apcore-mcp/main/apcore-mcp-logo.svg\" alt=\"apcore-mcp logo\" width=\"200\"/>\n</div>\n\n# apcore-mcp\n\nAutomatic MCP Server & OpenAI Tools Bridge for [apcore](https://github.com/aiperceivable/apcore).\n\nConverts apcore module registries into [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) tool definitions and [OpenAI-compatible function calling](https://platform.openai.com/docs/guides/function-calling) formats — zero boilerplate required.\n\n## Features\n\n- **MCP Server** — Expose apcore modules as MCP tools over stdio, Streamable HTTP, or SSE\n- **OpenAI Tools** — Convert modules to OpenAI function calling format with strict mode support\n- **Markdown tool descriptions** (`richDescription: true`, v0.15+) — render `Tool.description` and OpenAI `function.description` as canonical apcore-toolkit Markdown so LLMs get more decision-relevant signal per token. Requires `apcore-toolkit` (declared as `optionalDependencies`) and `await MCPServerFactory.prepare()` at startup.\n- **Module preview meta-tool** (`__apcore_module_preview`, v0.15+) — drives `executor.validate()` to predict state changes WITHOUT executing the module (apcore PROTOCOL_SPEC §5.6). Returns `{valid, requires_approval, predicted_changes, checks}` so AI orchestrators can ask \"what would change?\" before invoking.\n- **Schema Conversion** — Inline `$defs`/`$ref` from Pydantic-generated JSON Schema\n- **Annotation Mapping** — Map module annotations to MCP hints and OpenAI description suffixes\n- **Approval Mechanism** — Built-in elicitation-based approval flow for sensitive tool executions\n- **Error Mapping** — Sanitize internal errors for safe client-facing responses\n- **Dynamic Registration** — Listen for registry changes and update tools at runtime\n- **Tool Explorer** — Browser-based UI for browsing schemas and testing tools interactively\n- **CLI** — Launch an MCP server from the command line\n- **Config Bus integration** — Registers an `mcp` namespace with the apcore Config Bus; configure via unified `apcore.yaml` or `APCORE_MCP_*` env vars\n- **Error Formatter Registry** — Registers an MCP-specific error formatter for ecosystem-wide consistent error handling\n\n## Documentation\n\nFor full documentation, including Quick Start guides for both Python and TypeScript, visit:\n**[https://aiperceivable.github.io/apcore-mcp/](https://aiperceivable.github.io/apcore-mcp/)**\n\n## Requirements\n\n- Node.js >= 18.0.0\n- `apcore-js >= 0.31.0`\n- `apcore-toolkit >= 0.13.0` — a runtime dependency: Markdown-rendered tool descriptions, the output formatters, and the OpenAPI backend. 0.13.0 is the floor because the OpenAPI backend registers the module IDs its `OpenAPIScanner` emits, and only 0.13.0+ emits them in apcore's Canonical ID alphabet.\n\n## Installation\n\n```bash\nnpm install apcore-mcp\n```\n\n`apcore-js` is included as a direct dependency — no separate install needed.\n\n## Quick Start\n\n### Programmatic API\n\n```typescript\nimport { serve, toOpenaiTools } from \"apcore-mcp\";\n\n// Launch MCP server over stdio\nawait serve(executor);\n\n// Launch over Streamable HTTP\nawait serve(executor, {\n  transport: \"streamable-http\",\n  host: \"127.0.0.1\",\n  port: 8000,\n});\n\n// Export OpenAI tool definitions\nconst tools = toOpenaiTools(registry, {\n  embedAnnotations: true,\n  strict: true,\n});\n```\n\n### CLI\n\n```bash\n# stdio (default)\nnpx apcore-mcp --extensions-dir ./extensions\n\n# Streamable HTTP\nnpx apcore-mcp --extensions-dir ./extensions --transport streamable-http --port 8000\n\n# SSE\nnpx apcore-mcp --extensions-dir ./extensions --transport sse --port 8000\n```\n\n#### CLI Arguments\n\n| Argument | Default | Description |\n|---|---|---|\n| `--extensions-dir` | *(required)* | Path to apcore extensions directory |\n| `--transport` | `stdio` | `stdio`, `streamable-http`, or `sse` |\n| `--host` | `127.0.0.1` | Host for HTTP transports |\n| `--port` | `8000` | Port for HTTP transports (1-65535) |\n| `--name` | `apcore-mcp` | MCP server name |\n| `--version` | package version | MCP server version |\n| `--log-level` | `INFO` | `DEBUG`, `INFO`, `WARNING`, `ERROR` |\n| `--explorer` | off | Enable the browser-based Tool Explorer UI (HTTP only) |\n| `--explorer-prefix` | `/explorer` | URL prefix for the explorer UI |\n| `--allow-execute` | off | Allow tool execution from the explorer UI |\n| `--jwt-secret` | — | JWT secret key for Bearer token authentication |\n| `--jwt-key-file` | — | Path to PEM key file for JWT verification (RS256/ES256) |\n| `--jwt-algorithm` | `HS256` | JWT algorithm |\n| `--jwt-audience` | — | Expected JWT audience claim |\n| `--jwt-issuer` | — | Expected JWT issuer claim |\n| `--jwt-require-auth` | `true` | Require auth (use `--jwt-permissive` to override and allow unauthenticated requests) |\n| `--jwt-permissive` | `false` | Permissive mode: allow unauthenticated requests (overrides `--jwt-require-auth`) |\n| `--exempt-paths` | `/health,/metrics,/usage` | Comma-separated paths exempt from auth |\n| `--output-format` | `json` | Built-in output format: `json`, `csv`, or `jsonl` |\n\nJWT key resolution priority: `--jwt-key-file` > `--jwt-secret` > `APCORE_JWT_SECRET` environment variable.\n\n## MCP Client Configuration\n\n### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"apcore\": {\n      \"command\": \"npx\",\n      \"args\": [\"apcore-mcp\", \"--extensions-dir\", \"/path/to/your/extensions\"]\n    }\n  }\n}\n```\n\n### Claude Code\n\nAdd to `.mcp.json` in your project root:\n\n```json\n{\n  \"mcpServers\": {\n    \"apcore\": {\n      \"command\": \"npx\",\n      \"args\": [\"apcore-mcp\", \"--extensions-dir\", \"./extensions\"]\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd to `.cursor/mcp.json` in your project root:\n\n```json\n{\n  \"mcpServers\": {\n    \"apcore\": {\n      \"command\": \"npx\",\n      \"args\": [\"apcore-mcp\", \"--extensions-dir\", \"./extensions\"]\n    }\n  }\n}\n```\n\n### Remote HTTP access\n\n```bash\nnpx apcore-mcp --extensions-dir ./extensions \\\n    --transport streamable-http \\\n    --host 0.0.0.0 \\\n    --port 9000\n```\n\nConnect any MCP client to `http://your-host:9000/mcp`.\n\n## API Reference\n\n### Programmatic API – `APCoreMCP` class\n\nThe `APCoreMCP` class is the recommended OOP entry point. It bundles a unified configuration object, lazy backend resolution (path / `Registry` / `Executor`), and exposes `serve` / `asyncServe` / `toOpenaiTools` as instance methods so you configure once and use everywhere.\n\n```typescript\nimport { APCoreMCP } from \"apcore-mcp\";\n\n// 1. Point at an extensions directory (lazy discovery on first use)\nconst mcp = new APCoreMCP(\"./extensions\", {\n  name: \"my-server\",\n  tags: [\"public\"],\n  observability: true,\n});\n\n// 2. Launch as MCP server (blocks until shutdown)\nawait mcp.serve({ transport: \"streamable-http\", port: 8000, explorer: true });\n\n// 3. Or export OpenAI tool definitions\nconst tools = mcp.toOpenaiTools({ strict: true });\n\n// 4. Or embed into an existing HTTP server\nconst app = await mcp.asyncServe({ explorer: true });\n// app.handler is a Node.js request handler; call app.close() on shutdown\n\n// 5. Or pass an existing Registry / Executor\nimport { Registry } from \"apcore-js\";\nconst registry = new Registry({ extensionsDir: \"./extensions\" });\nawait registry.discover();\nconst mcp2 = new APCoreMCP(registry, { name: \"my-server\", tags: [\"public\"] });\n```\n\n**Constructor**\n\n```typescript\nnew APCoreMCP(\n  extensionsDirOrBackend: string | Registry | Executor,\n  options?: APCoreMCPOptions,\n);\n```\n\nThe first argument is either a path to an apcore extensions directory (discovery is deferred to first use) or an existing `Registry` / `Executor` instance.\n\n**`APCoreMCPOptions` fields**\n\n- `name` — MCP server name. Default: `\"apcore-mcp\"`\n- `version` — MCP server version. Default: package version\n- `tags` — Filter modules by tag list\n- `prefix` — Filter modules by ID prefix\n- `logLevel` — Minimum log level (`DEBUG` | `INFO` | `WARNING` | `ERROR` | `CRITICAL`)\n- `validateInputs` — Validate inputs against schemas. Default: `false`\n- `metricsCollector` — `MetricsExporter` or `true` to auto-instantiate\n- `observability` — Enable the full metrics + usage observability stack\n- `async` — `boolean | { enabled?, maxConcurrent?, maxTasks? }` for the Async Task Bridge (F-043)\n- `authenticator` — Optional `Authenticator` (HTTP transports only)\n- `requireAuth` — If `true` (default), reject unauthenticated requests with 401\n- `exemptPaths` — Paths exempt from authentication\n- `approvalHandler` — Optional approval handler passed to the Executor\n- `outputFormatter` — Custom function to format tool execution results\n- `middleware` — Array of apcore `Middleware` installed via `executor.use()`\n- `acl` — Optional apcore `ACL` instance installed via `executor.setAcl()`\n\n**Properties**\n\n- `.registry` — The underlying apcore `Registry` (resolved on first access)\n- `.executor` — The underlying apcore `Executor` (populated after `serve()` / `asyncServe()`)\n- `.tools` — List of discovered module IDs that will be exposed as tools (honours `tags` / `prefix`)\n\n**Methods**\n\n- `.serve(options?)` — Launch an MCP server. Accepts `APCoreMCPServeOptions`: `transport`, `host`, `port`, `onStartup`, `onShutdown`, `explorer`, `explorerPrefix`, `allowExecute`, `explorerTitle`, `explorerProjectName`, `explorerProjectUrl`. Constructor-level options (auth, observability, middleware, acl, async, etc.) are applied automatically.\n- `.asyncServe(options?)` — Build an embeddable Node.js HTTP request handler. Accepts `APCoreMCPAsyncServeOptions`: `explorer`, `explorerPrefix`, `allowExecute`, `explorerTitle`, `explorerProjectName`, `explorerProjectUrl`, `endpoint`. Returns `{ handler, close }`.\n- `.toOpenaiTools(options?)` — Export modules as OpenAI-compatible tool definitions. Accepts `ToOpenaiToolsOptions`: `embedAnnotations`, `strict`. `tags` / `prefix` are inherited from the constructor.\n\n### `serve(registryOrExecutor, options?)`\n\nLaunch an MCP Server that exposes all apcore modules as tools.\n\n```typescript\nfunction serve(\n  registryOrExecutor: Registry | Executor,\n  options?: {\n    // Transport\n    transport?: \"stdio\" | \"streamable-http\" | \"sse\";\n    host?: string;\n    port?: number;\n    // Identity\n    name?: string;\n    version?: string;\n    // Lifecycle\n    onStartup?: () => void | Promise<void>;\n    onShutdown?: () => void | Promise<void>;\n    // Module filtering / discovery\n    tags?: string[] | null;\n    prefix?: string | null;\n    dynamic?: boolean;\n    validateInputs?: boolean;\n    logLevel?: \"DEBUG\" | \"INFO\" | \"WARNING\" | \"ERROR\" | \"CRITICAL\";\n    // Async Task Bridge (F-043)\n    async?: boolean | { enabled?: boolean; maxConcurrent?: number; maxTasks?: number };\n    // Executor wiring\n    middleware?: unknown[];\n    acl?: unknown;\n    approvalHandler?: unknown;\n    strategy?: string;\n    // Observability (F-044)\n    metricsCollector?: MetricsExporter | boolean;\n    observability?: ObservabilityFlag;\n    trace?: boolean;\n    // Output handling\n    outputFormatter?: (result: Record<string, unknown>) => string;\n    redactOutput?: boolean;\n    // Auth (HTTP transports only)\n    authenticator?: Authenticator;\n    requireAuth?: boolean;\n    exemptPaths?: string[];\n    // Tool Explorer UI\n    explorer?: boolean;\n    explorerPrefix?: string;\n    allowExecute?: boolean;\n    explorerTitle?: string;\n    explorerProjectName?: string;\n    explorerProjectUrl?: string;\n    // Adapter overrides (advanced — Extension Bridge)\n    schemaConverter?: SchemaConverter;\n    annotationMapper?: AnnotationMapper;\n    errorMapper?: ErrorMapper;\n  }\n): Promise<void>;\n```\n\n**Options reference:**\n\n*Transport*\n- `transport` — `\"stdio\"` (default), `\"streamable-http\"`, or `\"sse\"`\n- `host` — Host address for HTTP-based transports. Default: `\"127.0.0.1\"`\n- `port` — Port for HTTP-based transports. Default: `8000`\n\n*Identity*\n- `name` — MCP server name. Default: `\"apcore-mcp\"`\n- `version` — MCP server version. Default: package version\n\n*Lifecycle*\n- `onStartup` — Async callback invoked before the server starts\n- `onShutdown` — Async callback invoked after the server stops (or on error)\n\n*Module filtering / discovery*\n- `tags` — Filter modules by tag list. Default: `null` (no filtering)\n- `prefix` — Filter modules by ID prefix. Default: `null` (no filtering)\n- `dynamic` — Enable dynamic tool registration via `RegistryListener`. Default: `false`\n- `validateInputs` — Validate inputs against schemas before dispatch. Default: `false`\n- `logLevel` — Minimum log level. Suppresses console methods below this level\n\n*Async Task Bridge (F-043)*\n- `async` — Enable the AsyncTaskBridge and `__apcore_task_*` meta-tools. Pass `false` to disable, or `{ maxConcurrent, maxTasks }` for fine-grained tuning. Default: `true`\n\n*Executor wiring*\n- `middleware` — Array of apcore `Middleware` instances installed via `executor.use()`. Appended to any middleware declared under Config Bus key `mcp.middleware`\n- `acl` — Optional apcore `ACL` instance installed via `executor.setAcl()`. Caller-supplied ACL takes precedence over `mcp.acl` Config Bus entry. **If `sys_modules.enabled` is turned on with no `acl/` directory configured, `ACL.discover()` returns `null` — identical to a project that never configured an ACL — and the entire `system.*` management surface (including `system.control.*`) is reachable with no authorization.** See `src/acl-builder.ts` for a copy-pasteable rule template that gates it correctly.\n- `approvalHandler` — Optional approval handler passed to the Executor (e.g. `ElicitationApprovalHandler`)\n- `strategy` — Execution strategy name passed to the Executor (e.g. `\"standard\"`, `\"internal\"`)\n\n*Observability (F-044)*\n- `metricsCollector` — `MetricsExporter` instance, or `true` to auto-instantiate apcore-js's `MetricsCollector` and install `MetricsMiddleware`\n- `observability` — Enable the full observability stack (metrics + usage middleware) and expose `/metrics` + `/usage` endpoints\n- `trace` — When `true`, enables pipeline trace via `callWithTrace()`. Adds `_meta.trace` to non-streaming tool responses. Default: `false`\n\n*Output handling*\n- `outputFormatter` — Custom function to format tool execution results. When undefined, results are serialized with `JSON.stringify(result)`\n- `redactOutput` — When `true` (default), redact sensitive fields from tool output via apcore's `redactSensitive()` before formatting\n\n*Auth (HTTP transports only)*\n- `authenticator` — `Authenticator` instance for request authentication\n- `requireAuth` — If `true` (default), unauthenticated requests are rejected with 401. Set to `false` for permissive mode\n- `exemptPaths` — Paths exempt from authentication. Default: `[\"/health\", \"/metrics\"]`\n\n*Tool Explorer UI*\n- `explorer` — Enable the browser-based Tool Explorer UI (HTTP only). Default: `false`\n- `explorerPrefix` — URL prefix for the explorer. Default: `\"/explorer\"`\n- `allowExecute` — Allow tool execution from the explorer UI. Default: `false`\n- `explorerTitle` — Custom title for the Tool Explorer UI page\n- `explorerProjectName` — Project name shown in the explorer UI footer\n- `explorerProjectUrl` — Project URL shown in the explorer UI footer\n\n*Adapter overrides (advanced — Extension Bridge, F-042)*\n- `schemaConverter` — Override the default `SchemaConverter` (custom JSON Schema strictness/dialect)\n- `annotationMapper` — Override the default `AnnotationMapper` (custom annotation wire format)\n- `errorMapper` — Override the default `ErrorMapper` consumed by `ExecutionRouter`\n\n### `asyncServe(registryOrExecutor, options?)`\n\nEmbed the MCP server into a larger Node.js HTTP application. Returns an HTTP request handler and a close function for lifecycle management.\n\n```typescript\nimport { asyncServe } from \"apcore-mcp\";\n\nconst { handler, close } = await asyncServe(executor, {\n  name: \"apcore-mcp\",\n  explorer: true,\n  allowExecute: true,\n});\n\n// Mount in a custom HTTP server\nconst server = http.createServer(handler);\nserver.listen(8000);\n\n// Clean up when done\nawait close();\n```\n\nAccepts the same options as `serve()` except `transport`, `host`, `port`, `onStartup`, and `onShutdown`.\n\n### Output Formatting\n\nBy default, tool execution results are serialized as JSON (`JSON.stringify`). You can customize this by passing an `outputFormat` name or a custom `outputFormatter` function.\n\n**Built-in formats** (requires `apcore-toolkit` 0.7.0+):\n\n```typescript\n// Via CLI\n// npx apcore-mcp --extensions-dir ./extensions --output-format csv\n\n// Via API\nconst mcp = new APCoreMCP(\"./extensions\", { outputFormat: \"csv\" });\n```\n\nSupports `json`, `csv`, and `jsonl`. Non-tabular data gracefully falls back to JSON.\n\n### Tool Explorer\n\nWhen `explorer: true` is passed to `serve()`, a browser-based Tool Explorer UI is mounted on HTTP transports. It provides an interactive page for browsing tool schemas and testing tool execution.\n\n```typescript\nawait serve(registry, {\n  transport: \"streamable-http\",\n  explorer: true,\n  allowExecute: true,\n});\n// Open http://127.0.0.1:8000/explorer/ in a browser\n```\n\n**Endpoints:**\n\n| Endpoint | Description |\n|----------|-------------|\n| `GET /explorer/` | Interactive HTML page (self-contained, no external dependencies) |\n| `GET /explorer/tools` | JSON array of all tools with name, description, annotations |\n| `GET /explorer/tools/<name>` | Full tool detail with inputSchema |\n| `POST /explorer/tools/<name>/call` | Execute a tool (requires `allowExecute: true`) |\n\n- **HTTP transports only** (`streamable-http`, `sse`). Silently ignored for `stdio`.\n- **Execution disabled by default** — set `allowExecute: true` to enable Try-it.\n- **Custom prefix** — use `explorerPrefix: \"/browse\"` to mount at a different path.\n- **Authorization UI** — Swagger-UI-style Authorization input field. Paste a Bearer token to authenticate tool execution requests. Generated cURL commands automatically include the Authorization header.\n\n### JWT Authentication\n\napcore-mcp supports JWT Bearer token authentication for HTTP-based transports.\n\n#### Programmatic Usage\n\n```typescript\nimport { serve, JWTAuthenticator } from \"apcore-mcp\";\n\nconst authenticator = new JWTAuthenticator({\n  key: \"your-secret-key\",\n  algorithms: [\"HS256\"],\n  audience: \"my-app\",\n  issuer: \"auth-service\",\n  // Map custom claims to Identity fields\n  claimMapping: {\n    id: \"sub\",\n    type: \"type\",\n    roles: \"roles\",\n    attrs: [\"email\", \"org\"],  // Extra claims → Identity.attrs\n  },\n  // Claims that must be present in the token (default: [\"sub\"])\n  requireClaims: [\"sub\", \"email\"],\n  // Set to false for permissive mode (allow unauthenticated requests)\n  requireAuth: true,\n});\n\nawait serve(executor, {\n  transport: \"streamable-http\",\n  authenticator,\n  // Custom exempt paths (default: [\"/health\", \"/metrics\"])\n  exemptPaths: [\"/health\", \"/metrics\", \"/status\"],\n});\n```\n\n#### CLI Flags\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--jwt-secret` | — | JWT secret key for Bearer token authentication |\n| `--jwt-key-file` | — | Path to PEM key file for JWT verification |\n| `--jwt-algorithm` | `HS256` | JWT algorithm |\n| `--jwt-audience` | — | Expected audience claim |\n| `--jwt-issuer` | — | Expected issuer claim |\n| `--jwt-require-auth` | `true` | Require auth. Use `--jwt-permissive` to allow unauthenticated requests |\n| `--jwt-permissive` | `false` | Overrides `--jwt-require-auth` and allows unauthenticated requests |\n| `--exempt-paths` | `/health,/metrics,/usage` | Comma-separated paths exempt from auth |\n\nJWT key resolution priority: `--jwt-key-file` > `--jwt-secret` > `APCORE_JWT_SECRET` environment variable.\n\n#### curl Examples\n\n```bash\n# Authenticated request\ncurl -X POST http://localhost:8000/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer <your-jwt-token>\" \\\n  -d '{\"jsonrpc\":\"2.0\",\"method\":\"tools/list\",\"id\":1}'\n\n# Health check (always exempt)\ncurl http://localhost:8000/health\n```\n\n#### Per-request identity helpers\n\nWhen auth is enabled, each request runs inside an `AsyncLocalStorage`\ncontext whose value is the verified `Identity`. Modules and middleware\nread it with `getCurrentIdentity()` — no need to thread it through every\nfunction.\n\n```typescript\nimport { getCurrentIdentity, identityStorage } from \"apcore-mcp\";\nimport type { Identity } from \"apcore-mcp\";\n\n// Inside a module / middleware called from a tool invocation:\nconst id: Identity | null = getCurrentIdentity();\nif (id) {\n  // id.id (user id), id.type (\"user\" | \"service\" | ...), id.roles, id.attrs\n}\n\n// Lower-level access (e.g. for running custom code inside a known identity):\nidentityStorage.run(myIdentity, async () => {\n  /* code that calls getCurrentIdentity() */\n});\n```\n\nPython parity: `apcore_mcp.get_current_identity()` / `auth_identity_var`.\nRust parity: `apcore_mcp::AUTH_IDENTITY` task-local.\n\n#### Mounting the Explorer behind your own server\n\nIf you embed the bridge via `asyncServe(...)` instead of `serve(...)`,\ngate the explorer routes behind an auth hook with\n`buildExplorerAuthHook(authenticator)`:\n\n```typescript\nimport { buildExplorerAuthHook } from \"apcore-mcp\";\nimport { JWTAuthenticator } from \"apcore-mcp\";\n\nconst auth = new JWTAuthenticator({ key: process.env.JWT_SECRET! });\nconst guard = buildExplorerAuthHook(auth);\n\n// `guard` is a `(req, next) => Promise<Response>` hook accepted by\n// mcp-embedded-ui's Hono router. Returns a 401 response when the\n// Authorization header is missing or invalid; otherwise runs `next()`\n// inside `identityStorage.run(identity, ...)` so the explorer's\n// downstream handlers see the authenticated identity.\n```\n\n#### Custom observability stack (advanced)\n\nFor callers who don't want the `serve(... observability: true)` shorthand,\n`installObservability` wires the metrics + usage middleware onto an\nexisting `Executor` directly. It is what `serve()` calls internally.\n\n```typescript\nimport { installObservability } from \"apcore-mcp\";\nimport type { ObservabilityFlag } from \"apcore-mcp\";\n\nconst stack = await installObservability(executor, /* metricsCollector */ null, true satisfies ObservabilityFlag);\n// stack.metricsCollector / stack.usageCollector are then exposed on\n// the `/metrics` and `/usage` endpoints by your own HTTP wiring.\n```\n\n### `toOpenaiTools(registryOrExecutor, options?)`\n\nExport apcore modules as OpenAI-compatible tool definitions.\n\n```typescript\nfunction toOpenaiTools(\n  registryOrExecutor: Registry | Executor,\n  options?: {\n    embedAnnotations?: boolean;\n    strict?: boolean;\n    tags?: string[];\n    prefix?: string;\n  }\n): OpenAIToolDef[];\n```\n\n**Options:**\n\n- `embedAnnotations` — Append annotation metadata to tool descriptions (default: `false`)\n- `strict` — Enable OpenAI strict mode: adds `additionalProperties: false`, makes all properties required, wraps optional properties with nullable (default: `false`)\n- `tags` — Filter modules by tags\n- `prefix` — Filter modules by ID prefix\n\n### `reportProgress(context, progress, total?, message?)`\n\nReport execution progress to the MCP client. No-ops silently when called outside an MCP context (no callback injected).\n\n```typescript\nimport { reportProgress } from \"apcore-mcp\";\n\n// Inside a module's execute() method:\nawait reportProgress(context, 5, 10, \"Processing item 5 of 10\");\n```\n\n**Parameters:**\n\n- `context` — Object with a `data` dict (apcore Context or BridgeContext)\n- `progress` — Current progress value\n- `total` — Optional total for percentage calculation\n- `message` — Optional human-readable progress message\n\n### `elicit(context, message, requestedSchema?)`\n\nAsk the MCP client for user input via the elicitation protocol. Returns `null` when called outside an MCP context.\n\n```typescript\nimport { elicit } from \"apcore-mcp\";\nimport type { ElicitResult } from \"apcore-mcp\";\n\n// Inside a module's execute() method:\nconst result: ElicitResult | null = await elicit(\n  context,\n  \"Are you sure you want to proceed?\",\n  {\n    type: \"object\",\n    properties: {\n      confirmed: { type: \"boolean\", description: \"Confirm action\" },\n    },\n    required: [\"confirmed\"],\n  },\n);\n\nif (result?.action === \"accept\") {\n  // User confirmed\n}\n```\n\n**Parameters:**\n\n- `context` — Object with a `data` dict (apcore Context or BridgeContext)\n- `message` — Message to display to the user\n- `requestedSchema` — Optional JSON Schema describing the expected input\n\n**Returns:** `ElicitResult` with `action` (`\"accept\"`, `\"decline\"`, or `\"cancel\"`) and optional `content`, or `null` if not in an MCP context.\n\n## Config Bus Integration\n\napcore-mcp registers an `mcp` namespace with the apcore Config Bus when `serve()` or `asyncServe()` is called. MCP settings can live alongside other apcore configuration in a single `apcore.yaml`:\n\n```yaml\napcore:\n  version: \"1.0.0\"\nmcp:\n  transport: streamable-http\n  host: 0.0.0.0\n  port: 9000\n  explorer: true\n  require_auth: false\n```\n\nEnvironment variable overrides use the `APCORE_MCP_` prefix:\n\n```bash\nAPCORE_MCP_TRANSPORT=streamable-http\nAPCORE_MCP_PORT=9000\nAPCORE_MCP_EXPLORER=true\n```\n\n**Defaults:** `transport=stdio`, `host=127.0.0.1`, `port=8000`, `explorer=false`, `require_auth=true`.\n\nThe namespace, prefix, and defaults are also available as importable constants:\n\n```typescript\nimport { MCP_NAMESPACE, MCP_ENV_PREFIX, MCP_DEFAULTS, registerMcpNamespace } from \"apcore-mcp\";\n```\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Type check\nnpm run typecheck\n\n# Run tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Build\nnpm run build\n\n# Watch mode\nnpm run dev\n```\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}