{"_id":"@thalovant/mcp-server","_rev":"34-a25197ff856cde732a37fbc41709830d","name":"@thalovant/mcp-server","dist-tags":{"latest":"0.6.1"},"versions":{"0.1.0":{"name":"@thalovant/mcp-server","version":"0.1.0","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"31888ea993512d519c8694007a5dd669c23b96c6","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":11,"integrity":"sha512-7okoZJLY5Z2tC16+NiChKEg2C+Ks5Fu5wkDegqmfOWIMJeItQJw59juUDFc2ol6peyxCjUushyaivR0b/ylhGg==","signatures":[{"sig":"MEYCIQD4dZyoTEh5TlzUQ7VK30A1m4xnYpnrQJz0vFXoeLsGBwIhAOHcPPNi2/vBcq5vlPm2s1BZUCnAxAQTVJO16pn9r76f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82932},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"505953cbaee1292ef9ed217c5ab3361fa56476bb","mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.3","@thalovant/sdk":"^0.2.15","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1783385155515_0.9351636548272957","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@thalovant/mcp-server","version":"0.1.1","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.1","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"2713d02049408dd9ebba7a7eb73ab7c59192e370","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":11,"integrity":"sha512-e9aPmEIfZWKowFJ58IkJ9tdbGKx9ZwAi0TJan+TcEZI0C9C3BTZKBfSi83/0SggyB7vXrxiLCGFzbLNnenOC7w==","signatures":[{"sig":"MEQCIDLRX9Ul3YoeiOU7ly2ZIx6KV+gvSsV8TXkjZJNLGo7zAiAGiEzLCzCzlJbJXG85l2v25vuBfy4Mx5vEvIaT3M9fyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83148},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"723e44ec22d472a9b9fc0fcb853a1c7642d2162d","mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.3","@thalovant/sdk":"^0.2.15","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.1_1783385274634_0.2497543507935518","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@thalovant/mcp-server","version":"0.1.2","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.2","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"d455bf75d4dd16691a241df22e474658c4840a80","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.2.tgz","fileCount":11,"integrity":"sha512-vwpBUvATDcvPyA2rCBpx3FXROBbQxv5KLRuWaCavu32tIgw5s5YYgAICM+oIsqyQbNcLFYBxsFZffORwdYoGDg==","signatures":[{"sig":"MEUCIQDdOGGUXj1SmpQp7kzzP+gHXu/uXideV8flNTReH2I1JQIgHpEYqM/XGZ6JpmhCZJYTwHUQFBRzzWP4ll6LCvHxb9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83158},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"dfdc11d20ad661b5e8ac6d8406485a55aa988734","mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.3","@thalovant/sdk":"^0.2.15","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.2_1783385618366_0.8419337877575528","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@thalovant/mcp-server","version":"0.1.3","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.3","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"620fb289073e4eb3396885a2c0c0419b851ef651","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.3.tgz","fileCount":11,"integrity":"sha512-mIcZ0SJA45Aud5TgyEjripbzk26HYn//f+msWRTeYwsNcUdBgA/EXaMFUJZqmddYuT/kzIWi+GEqU7T00/QIdQ==","signatures":[{"sig":"MEUCIHatJ/ML7V19AZmCO27Ma1+pc1S3OOvzsO5KX88KCw64AiEAx4vXNIyasp9c2ANJ4DpUFOmyHJTJAPsgGKO0p30RwgY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82800},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9f217a9085ae543b15597032d269a1c4bf8a8589","mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.3","@thalovant/sdk":"^0.2.15","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.3_1783385719657_0.47771184526236565","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@thalovant/mcp-server","version":"0.1.4","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.4","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"a21e317b9515ef43e9ef9ed8da5b91558dd4c4f8","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.4.tgz","fileCount":11,"integrity":"sha512-wEmVTlCEYaKUEiyc8113ufNPOkSD6IdQoY6tkVt6m2ZZWRXW6KaeY2DC5OzKMgtjVonBEkhWkz02XYayZ2z0yg==","signatures":[{"sig":"MEUCIQDJ2IxeX/+XqtQ4/FMmptnVW+SsNxMf4/70cky9cW2lXAIgWseiXpRVmOl2Gc96cEG/9ZaR0w6E/TBfsgzN9h/weUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83246},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1177c80e6c463078d46c608695999d79c4c0a693","mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.3","@thalovant/sdk":"^0.2.15","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.4_1783386069230_0.581036800590756","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@thalovant/mcp-server","version":"0.1.5","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.5","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"5917ded6f96d4e5d42cf5c2fc6fbca7648fecd4c","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.5.tgz","fileCount":11,"integrity":"sha512-VlU02Cj//BIt83ZeEalZD1Uv7MtkGkLeqwfM5JkjQ/ksBK6G8DhCUVo1tRBRkExqAyasPCNFd6qsGgaRImrEWQ==","signatures":[{"sig":"MEQCIGi9OVicLqzHXzYZusMEVqycw5KF5wG8714w7Rs0rIqXAiB/wqjoMelbszhaj2gdCW6S6qkuCQFCGeItmFS6zgaueA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83602},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"67c56cad43c771899626f13d8d09b878b74ff2a8","mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.25.76","jose":"^6.2.3","@thalovant/sdk":"^0.2.15","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.5_1783387662011_0.636663103125547","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@thalovant/mcp-server","version":"0.1.6","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.6","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"f8f734493044ac4a9eca66b3a4b08e539e7f6add","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.6.tgz","fileCount":11,"integrity":"sha512-RrnbUMdm02jNtR3GyIwyzah/xYpt5SnFSLJnoJoocRaEnbSa1ZOarWewzx7plJjX4B53FfsbWXhlPBjy6YgceA==","signatures":[{"sig":"MEQCIGPpZdhdiqDQT3vPLJBKxa+IsJo6AjnvQRpiuorxzoEPAiAOY7kn7DiiosNdjLO44IzyMnqeWRCDOYGTsccLQNoFmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":83840},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.6.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.6.tgz","_integrity":"sha512-RrnbUMdm02jNtR3GyIwyzah/xYpt5SnFSLJnoJoocRaEnbSa1ZOarWewzx7plJjX4B53FfsbWXhlPBjy6YgceA==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.25.76","jose":"^6.2.3","@thalovant/sdk":"^0.2.15","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.6_1783936017253_0.9748696394866225","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@thalovant/mcp-server","version":"0.1.7","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.7","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"8a824649dc01889d591d07d757a79fd351c4a761","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.7.tgz","fileCount":11,"integrity":"sha512-pwPo1K4GxiFyvQtq+wg8wirLXgGHs96wjCpDVzZRlEuBDc0hmLzwbBo23faoKaVthF38Zwd2H98sy82F1un+jw==","signatures":[{"sig":"MEYCIQCYfRovlVdnNtpWCBsW4vh3+J1BprpbQVlzkXnt5scPUQIhAOJaO8hgBk4wgRnjVZWnmCd/hpW/KCD4faw8WaOJdlp3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84177},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.7.tgz","overrides":{"fast-uri":"3.1.4"},"_integrity":"sha512-pwPo1K4GxiFyvQtq+wg8wirLXgGHs96wjCpDVzZRlEuBDc0hmLzwbBo23faoKaVthF38Zwd2H98sy82F1un+jw==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.2.21","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.7_1785762859537_0.5948595980839393","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@thalovant/mcp-server","version":"0.1.8","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.8","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"5b5b3b48469481b0be7fb4b0a7606a364a1807f9","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.8.tgz","fileCount":11,"integrity":"sha512-MSkO++8DUziZB5vRhc7qU8l4yY1yQg2cPhK5H8fADfWfO0fF15gcweoxiMmasmCtAP4im1k7cGjlqugnrDzXdA==","signatures":[{"sig":"MEUCIQCl7n5UlrLhUexKvC4P3aAnk5na9tMNLbaJg+/ySC0H7gIgGRoUWBkw46NP1zYSvIaVhIY5CF3ACvS5SlF8zFoX2UE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85584},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.8.tgz","overrides":{"fast-uri":"3.1.5"},"_integrity":"sha512-MSkO++8DUziZB5vRhc7qU8l4yY1yQg2cPhK5H8fADfWfO0fF15gcweoxiMmasmCtAP4im1k7cGjlqugnrDzXdA==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.2.21","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.8_1786640074154_0.060184884205266354","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@thalovant/mcp-server","version":"0.1.9","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.9","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"69ad6bfe19b9a47f10ab3c209f9a0c73c8a1fdfd","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.9.tgz","fileCount":11,"integrity":"sha512-CTy7xeJx7gZgPeUciVRwjUlCluS6Yb5kFbJuEfWTwvMNXdUWyrHfdzJHsUlygMmUGQQTylBVTvZCymO3P+Tjyw==","signatures":[{"sig":"MEUCIA3mrvMPET38N00QwR4y6ZAbp2QvB5jWSpHro6V2k2g2AiEAh1gvVIAdATzR8pIwgT0yeCHkP1gaV5VcrPCBzfP+ZPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89419},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.9.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.9.tgz","overrides":{"fast-uri":"3.1.5"},"_integrity":"sha512-CTy7xeJx7gZgPeUciVRwjUlCluS6Yb5kFbJuEfWTwvMNXdUWyrHfdzJHsUlygMmUGQQTylBVTvZCymO3P+Tjyw==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.2.21","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.9_1786664403295_0.535305682801333","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@thalovant/mcp-server","version":"0.1.10","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.10","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"4a0a8eb3ea541f55b6faf389ed2fb6e6120bd81f","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.10.tgz","fileCount":11,"integrity":"sha512-tGGVhWZhYaFuZ1lHoT/WLt/ji4iVyI5J1ycqrabZh/Tm8fYvB3mw9bX4PDPV+uOZeSjk/FEXP0EoYxou67BFzA==","signatures":[{"sig":"MEYCIQCdNQU5l3hoXFvZ9N+7KKH/7DYQhSpeJs9HFZEws6+NTQIhAO1/HgsSIo82epaXgeVd7Pp3lEcqqmMWfC5NCRhZLyIR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":136027},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.10.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.10.tgz","overrides":{"fast-uri":"3.1.5"},"_integrity":"sha512-tGGVhWZhYaFuZ1lHoT/WLt/ji4iVyI5J1ycqrabZh/Tm8fYvB3mw9bX4PDPV+uOZeSjk/FEXP0EoYxou67BFzA==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.2.28","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.10_1786762783135_0.8028177119752589","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@thalovant/mcp-server","version":"0.1.11","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.11","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"85cbf2d87c7ade9c7c0111af192507f92eb33671","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.11.tgz","fileCount":11,"integrity":"sha512-lspo9erSFQsdR8qSfzTDtpSHR5YJWIHEcf4zk/ehow0ccxsRf0X1TGYMlu+ASJyqmJK1XSDq7VDcQrbSeJfxwg==","signatures":[{"sig":"MEQCIEV0y8c9fIurKdDYvTpfFeJwWG5vIxg7L4BruI+EYurlAiB0YzKG4oXVWiDyo0lpMj66yQiJ8g/N0WZqhCaO0c4blg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147357},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.11.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.11.tgz","overrides":{"fast-uri":"3.1.5"},"_integrity":"sha512-lspo9erSFQsdR8qSfzTDtpSHR5YJWIHEcf4zk/ehow0ccxsRf0X1TGYMlu+ASJyqmJK1XSDq7VDcQrbSeJfxwg==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.2.28","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.11_1786799672964_0.34336972071268845","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@thalovant/mcp-server","version":"0.1.12","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.12","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"b0ee204cef619922efac1674e25a259125c58695","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.12.tgz","fileCount":11,"integrity":"sha512-KB+DyTGLeK6/WNcKWQCEJB3G6Y0ejjfozPo3ywTSV4Q5hIje6d28qFTiqZK+7BvetdgrEFfEH2N2TJkNUGLsuQ==","signatures":[{"sig":"MEYCIQDnc3aFI9wyUDixFMzqdbbkMMcP98U5/SJ/idtIdoS+tQIhAPIw6BqqvItOKpYXyiGZKkNu+sAWeCT/pzFiuZDGgsv1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147357},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.12.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.12.tgz","overrides":{"fast-uri":"3.1.5"},"_integrity":"sha512-KB+DyTGLeK6/WNcKWQCEJB3G6Y0ejjfozPo3ywTSV4Q5hIje6d28qFTiqZK+7BvetdgrEFfEH2N2TJkNUGLsuQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.2.28","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.12_1787001386548_0.8167312673701488","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@thalovant/mcp-server","version":"0.1.13","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.13","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"c336d3b868420d1261aaa94d29348f5b65596c44","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.13.tgz","fileCount":11,"integrity":"sha512-bzINtSueVaB2nmMpsK+IZn5OS8w/BaiZHY4CnFWOB7CkEMPWZcBrlxzP+0jYWcYd0rz1DZo1GDMFskmrokA1ZQ==","signatures":[{"sig":"MEUCIB5sxp76XvIN1/jYQVOWjGZntAlS5Sh6ES6tqSxHsqFkAiEAhDMzmWtXxwfMH7hbH0EskIC4E9uQOjzqBr8uReoIOus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147869},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.13.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.13.tgz","overrides":{"fast-uri":"3.1.5"},"_integrity":"sha512-bzINtSueVaB2nmMpsK+IZn5OS8w/BaiZHY4CnFWOB7CkEMPWZcBrlxzP+0jYWcYd0rz1DZo1GDMFskmrokA1ZQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.2.33","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.13_1788259669109_0.2815489641590201","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@thalovant/mcp-server","version":"0.1.14","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.14","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"77b0efc76c882be0125437864944b7200d0dae1a","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.14.tgz","fileCount":11,"integrity":"sha512-lh14SlAs1sSp/fyAAD4eMOOuPekda7vUeYjXsj8kr4j3VtBE8OKJPEXMvNinKSdGVUxFAb7PYPjBBOXBpoPlxQ==","signatures":[{"sig":"MEQCIGonphDO8FdUx81db3MuS6vHJCWuX8hrwEY982h3GyDyAiA/zcxphN7XPaP50WNiznFIeKgFY0km3CzWJpiO3vcKLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148282},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.14.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.14.tgz","overrides":{"fast-uri":"3.1.5"},"_integrity":"sha512-lh14SlAs1sSp/fyAAD4eMOOuPekda7vUeYjXsj8kr4j3VtBE8OKJPEXMvNinKSdGVUxFAb7PYPjBBOXBpoPlxQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.2.34","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.14_1788267568951_0.428952770787991","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@thalovant/mcp-server","version":"0.1.15","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.15","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"e1835b5af1f922d53936096cdb20b2e7af33b0ee","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.15.tgz","fileCount":11,"integrity":"sha512-jtEwV9HT3voZMiihkk0iS5GYkFa5v56dgM2H95HeLFOGCK5Sy++mLJPA6HqrGfrMoJxICyKMfR60opBXPIBClQ==","signatures":[{"sig":"MEYCIQCmfSgIu3D7pRHRnQ+JU1o2LWXTPUNElRV44jQ39kNZqAIhAOZUBom7WCLcYnGFvPJbuw28LnImp9Uh5diKh6KMhWqw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148592},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.15.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.15.tgz","overrides":{"fast-uri":"3.1.5"},"_integrity":"sha512-jtEwV9HT3voZMiihkk0iS5GYkFa5v56dgM2H95HeLFOGCK5Sy++mLJPA6HqrGfrMoJxICyKMfR60opBXPIBClQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.2.35","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.15_1788269858692_0.8886500787633176","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@thalovant/mcp-server","version":"0.1.16","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.16","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"8e81a8d01329053215badd2e7579165df3b84f8b","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.16.tgz","fileCount":11,"integrity":"sha512-G0cYzhFGhWQNmMvDgcMEucT4R3/mpXT0d6DWKVOye24BqfUi1+V0nc0v5LbD8blgNRdEowuYjq0Ei/EAqxO7Xg==","signatures":[{"sig":"MEUCIGjkjJMF/2SfsZnFT8AFV6DXdXxLt6YJh5urdc/bJh0YAiEA+iAH4OAok7v+cQVNRYV3qdRYEdkvFQosoW52q0y11GM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148944},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.16.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.16.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-G0cYzhFGhWQNmMvDgcMEucT4R3/mpXT0d6DWKVOye24BqfUi1+V0nc0v5LbD8blgNRdEowuYjq0Ei/EAqxO7Xg==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.2.37","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.16_1788477646218_0.9795364490552181","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@thalovant/mcp-server","version":"0.1.17","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.17","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"6c91cbfaa3103ea9afc9d75110c66315c58d71d2","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.17.tgz","fileCount":11,"integrity":"sha512-cN1YLscGZbHvq8f6t5TGXDs4QOZKFMWdBWZPl//UW9DcmiQ2n4I/nomP/c1o3SfxJkJPSfL7ImtcP+kYpb+wBQ==","signatures":[{"sig":"MEUCIQCwal0n3FD3VvLzwWN2i4aikJ2ZUV+DKnYr4gq2eiIq2QIgJDNOD1/Wll1XAWHhAUsGGlcTLQCE6zxptbLPsr4hDsI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":149441},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.17.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.17.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-cN1YLscGZbHvq8f6t5TGXDs4QOZKFMWdBWZPl//UW9DcmiQ2n4I/nomP/c1o3SfxJkJPSfL7ImtcP+kYpb+wBQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.3.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.17_1788888739284_0.3942182065908526","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@thalovant/mcp-server","version":"0.1.18","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.18","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"79fba6fa97902456ac1e30b8183b124efd54a191","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.18.tgz","fileCount":11,"integrity":"sha512-XH+Ajg60Es1ol+ff1CGq1MzYMLfJ8XCntxB9WJ/UAVvc1TGRzHDigbivauQ10zRKtDHZcRbDTV5ef5cHAmKdnw==","signatures":[{"sig":"MEUCIH5NMjlKARjnmT081upGPJ2yUqXlI8BWoMkQVbuzCEXfAiEAm2sIQHOjKKTUEA/7KcnmByZ5cWUWZPrbdTur/ZkZgP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":151523},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.18.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.18.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-XH+Ajg60Es1ol+ff1CGq1MzYMLfJ8XCntxB9WJ/UAVvc1TGRzHDigbivauQ10zRKtDHZcRbDTV5ef5cHAmKdnw==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.3.4","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.18_1788930165025_0.6528724236572403","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@thalovant/mcp-server","version":"0.1.19","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.19","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"affa96831218f9f5ddd946b9a37f12697b2efaad","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.19.tgz","fileCount":11,"integrity":"sha512-nAglZ2hilOVKbmk8Xo8m2PWsi5KDf4ypgRof8bTtbAzffaIYDjHMPu5RZjNKDYYC6ERu8/FW4c72Ah8MQfxj6w==","signatures":[{"sig":"MEYCIQCEDrTKa3fr6wI6S1H+t719qCS4bK3sirKpA7AJ2BzJegIhAKnkXYFv4BZM3FRqBG0pA+Tv7/iUzhob9YUBETi0mJRV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152191},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.19.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.19.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-nAglZ2hilOVKbmk8Xo8m2PWsi5KDf4ypgRof8bTtbAzffaIYDjHMPu5RZjNKDYYC6ERu8/FW4c72Ah8MQfxj6w==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.3.5","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.19_1788953218418_0.13564385665436407","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@thalovant/mcp-server","version":"0.1.20","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.20","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"087b16a386c6bb1e21f616a173509c18d3c0f930","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.20.tgz","fileCount":13,"integrity":"sha512-jcVID+34tbnv7wuuW41yyFT9jsUFzRQqdKW5A2NbzMclj9cT9QiLt7JEHysw+sTiNePHDPL5o9hInh7p8qrQtQ==","signatures":[{"sig":"MEUCIQC99eVlhZWof/XbrzwesBpY/9FvIi0KQ2O4sdaXnXfsjAIgUDY57+bDgOa1clW6OuPCcOZsVxb66QQkVuB0N8RyWtw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":163081},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.20.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.20.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-jcVID+34tbnv7wuuW41yyFT9jsUFzRQqdKW5A2NbzMclj9cT9QiLt7JEHysw+sTiNePHDPL5o9hInh7p8qrQtQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.3.9","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.20_1788968241171_0.2439033491102418","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@thalovant/mcp-server","version":"0.1.21","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.21","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"ac5c78bcd451e07490f199706c5f04b625725c16","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.21.tgz","fileCount":13,"integrity":"sha512-87Elifx3mxu9U2lU9VrplDfKGD8rr/wc+2pU+pb023MM4BBLj8K2Qpva6VYAK1YbZyaFPyNiLppQgQQbRWxZlw==","signatures":[{"sig":"MEUCIQDJIO1rF512FzXMnCcxNYPUCBglSom0MzPKDvPAboPKVgIgENrSp76UxU488T1hn72GsTHQOJWE2pcNEvQV/nh0HxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":168054},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.21.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.21.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-87Elifx3mxu9U2lU9VrplDfKGD8rr/wc+2pU+pb023MM4BBLj8K2Qpva6VYAK1YbZyaFPyNiLppQgQQbRWxZlw==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.3.12","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.21_1788976961446_0.5796636755015567","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@thalovant/mcp-server","version":"0.1.22","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.22","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"8777b6645df62de58c532e97ad7946d3b40aa0fb","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.22.tgz","fileCount":13,"integrity":"sha512-BYQez6gLVQPUI1Y3FBtknl39Prd6H0ghqjIXuQP7GyIkCCLywM5gEZd1AUTnKBpK0FHA/dT0fg/EQ0P91LTZTw==","signatures":[{"sig":"MEUCIQC7bvwV8lxoWVfDbIXaRwqrlUi8fwiiVuNaPkXZLdd6UAIgN+6BARwjdTytWBFHHOUgdc8XCbNgKAWxPs/rXtbRxk0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":168290},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.22.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.22.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-BYQez6gLVQPUI1Y3FBtknl39Prd6H0ghqjIXuQP7GyIkCCLywM5gEZd1AUTnKBpK0FHA/dT0fg/EQ0P91LTZTw==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.3.14","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.22_1789001643708_0.44230999427901874","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@thalovant/mcp-server","version":"0.1.24","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.1.24","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"531009dd64fe196ff2ae06f0114404931fbc0034","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.1.24.tgz","fileCount":13,"integrity":"sha512-+UFB5JbQSMOVkCW7IqROIFafbb9Z0VvLqIIFZ3BiLJRGwjQ9c33JV7idRE9aYlwoe5w9SEiSK3sppi5B0ohurQ==","signatures":[{"sig":"MEUCIQD4Wb6trYIBiCz4edt84oCUz/SCp8u+3WH3Wi0xF+kerQIgdGEDS4UatTNoQWth6VuuW+cxLQYtAIoSS9hxFgwhFkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":185323},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.24.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.1.24.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-+UFB5JbQSMOVkCW7IqROIFafbb9Z0VvLqIIFZ3BiLJRGwjQ9c33JV7idRE9aYlwoe5w9SEiSK3sppi5B0ohurQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.3.16","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.24_1789006501684_0.8147932846340096","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@thalovant/mcp-server","version":"0.2.0","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.2.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"a9e6cf3b8b99e15320928648ee9805886dd37442","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.2.0.tgz","fileCount":13,"integrity":"sha512-3zU5ArzQ/+AxnyYbRUfFTT/lWw4tAJCFGjAATmMUxIREuM+GcvfRp7xC75KBiUOYbZEK2vlCGhnyLrh4tAMG0g==","signatures":[{"sig":"MEUCIQDTmJgCR1gnDiJ+AKYJatY94KR1GJ4Nn4sE5Yu0nALfUQIgHLewlPxGtJWA654kOjBBVnaeDLWV5fbnxmBZk7HuLnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":187901},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.2.0.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-3zU5ArzQ/+AxnyYbRUfFTT/lWw4tAJCFGjAATmMUxIREuM+GcvfRp7xC75KBiUOYbZEK2vlCGhnyLrh4tAMG0g==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.4.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.0_1789181143809_0.6355952222972816","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@thalovant/mcp-server","version":"0.3.0","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.3.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"dd52fc4e006feebb60c6c40d70457b729a46f439","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.3.0.tgz","fileCount":15,"integrity":"sha512-PuxWlwCbLWjXnFa7XDYVkoDQ16ShvXFq9OGVje2i8eEqFSILD5HDHC8ALzzG/qy0C5v0L1JAjvd1EIfpCRhqvg==","signatures":[{"sig":"MEYCIQDyVCKktXb+DVCecNSAYo7/yFX9xPVhxAuSo5+z5YYQXwIhAK3nr0d8VmcNg7jkYV1689hWs29QM/2Y6dEjr+Cn2njE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":195639},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.3.0.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-PuxWlwCbLWjXnFa7XDYVkoDQ16ShvXFq9OGVje2i8eEqFSILD5HDHC8ALzzG/qy0C5v0L1JAjvd1EIfpCRhqvg==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.5.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.0_1789230627067_0.45278595878179617","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@thalovant/mcp-server","version":"0.4.0","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.4.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"0f7f1dbdddd7e74587683e2be55a29bbf7ab6082","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.4.0.tgz","fileCount":16,"integrity":"sha512-wcPzSjBg+v12oksSu5mBZiFZjZOG23WZlDkd1Jcx5XIzb3AVR7aXY7q9do1FJk5o0KRJIVGW3P0ijKsEZHKbjA==","signatures":[{"sig":"MEYCIQD2qV4upmQL+yG2/yAWlp4eBq/ay1vlARNNLF+R3kXpDQIhAObry5P+e+tdDrKogn/Od24n/hfNb+oEkCrokvNZZhUE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":198989},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.4.0.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-wcPzSjBg+v12oksSu5mBZiFZjZOG23WZlDkd1Jcx5XIzb3AVR7aXY7q9do1FJk5o0KRJIVGW3P0ijKsEZHKbjA==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.6.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.0_1789239412947_0.21902229546928198","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@thalovant/mcp-server","version":"0.4.1","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.4.1","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"a2a3f3902bb03588cb1a9f4e329f6fb6d44d97ae","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.4.1.tgz","fileCount":16,"integrity":"sha512-tKg2C7aAkv5+QdqVPjEe7BE+LZky4wqjajjRn16/xw/2HV319OLKR5NAMBe5ajGNtKAVxN7kyv6EwJAFHIRWjQ==","signatures":[{"sig":"MEUCIAvgbfaQNwfYZt9K5gN6FL+Vcxtys5UCYlt2WkN3+iAeAiEAgc+XMlhP7hRvjOhPN4T+fpHTRvFWtz+2qT+VCtdviAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199474},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.4.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.4.1.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-tKg2C7aAkv5+QdqVPjEe7BE+LZky4wqjajjRn16/xw/2HV319OLKR5NAMBe5ajGNtKAVxN7kyv6EwJAFHIRWjQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.6.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.1_1789243612071_0.584362680778465","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@thalovant/mcp-server","version":"0.5.0","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.5.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"733bcd56b7f01de63adee0cb2e2e95636cdd0c40","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.5.0.tgz","fileCount":18,"integrity":"sha512-9bFEErXRINh0AkuofDm8yVXKQMKfJxbYG2yUz3BnToOqGrdsUnP2o32V67MDBV72zDdo/gEi8pZHnQdBmpKhdw==","signatures":[{"sig":"MEYCIQD2Wyo0tBzqorXOghcv+YkHH4wtRmdes7qusY59EliBIAIhAJ+sblOGGJnN1AE7bszO9FObZlraPpjxuVDJjS7x410x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":202032},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.5.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.5.0.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-9bFEErXRINh0AkuofDm8yVXKQMKfJxbYG2yUz3BnToOqGrdsUnP2o32V67MDBV72zDdo/gEi8pZHnQdBmpKhdw==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.7.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.5.0_1789313242122_0.41772235110079414","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@thalovant/mcp-server","version":"0.5.1","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.5.1","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"fea1d2cd5818a6622b96e67b4645d8a8938bb45e","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.5.1.tgz","fileCount":18,"integrity":"sha512-r2XKUuVIkm9uPskqa43SOnHNTM/8vcyUmHZsS/5BA2vrtH6uHWiIHZfXH79SzX83i3myDL8emymSZ1KYN0hCBQ==","signatures":[{"sig":"MEYCIQDzqDCGidz0gtbbCrIFuIluFtAHWEZRy+iOqtFM5z4B0QIhAM1TA02CZnQgufQv38ctpMs4hTul1UkgPMTmTeacp4DD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":202452},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.5.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.5.1.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-r2XKUuVIkm9uPskqa43SOnHNTM/8vcyUmHZsS/5BA2vrtH6uHWiIHZfXH79SzX83i3myDL8emymSZ1KYN0hCBQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.7.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.5.1_1789319158441_0.21014672446554172","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@thalovant/mcp-server","version":"0.5.2","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.5.2","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"d239def7c780f8501dcbec4635f13ffee7fc83a4","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.5.2.tgz","fileCount":18,"integrity":"sha512-j1iAtQU1Uw8imq37grcelVMFhNgOZlcu1zNWZOIyumk8+yXhRVGOlP0uOvPv1CbkazoRUuaFVAZQ+cYKxKaGAQ==","signatures":[{"sig":"MEYCIQCKbe5/XRUgxY+8udlSvYFrbVT9RsHQbdCfob/83ka9wwIhAMufA+fp8+ZxMYw5eKM4bYDxz2a8le5379Nw1WKwVsm1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFDsltiVlQ1LNON2cGMV7078XIgQ5afe0ghG0W4vfGYFAiEAsPGVsv+pXBvLZBb+AVUfa/IZUra/Kcsw+iewHekmPqM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":203192},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.5.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.5.2.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-j1iAtQU1Uw8imq37grcelVMFhNgOZlcu1zNWZOIyumk8+yXhRVGOlP0uOvPv1CbkazoRUuaFVAZQ+cYKxKaGAQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.8.2","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.5.2_1789791917025_0.4005382876142807","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@thalovant/mcp-server","version":"0.5.3","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.5.3","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"2f0431dfdc822121ca65a69d068daa88881cfb96","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.5.3.tgz","fileCount":20,"integrity":"sha512-G80g0hZrwLwvoAxYL1ds8wHKvX2YBb+xCdEJq5VUX7Ez1LUTBFkCJ1q2mEVUZh/T8OdABo5uGNrtcBsTylx3Rg==","signatures":[{"sig":"MEUCIGskQk6WdmQYSWPDfwU/9vPxfHcb+8+QBcRMvSz4Ym7IAiEA66ZnMvEwa7ecKO4uDOFcfYD4quMjQQ8Vep2TmJ8qP60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBFu4gS0XiAis47vj2gkeLEmd5LzsDOE4avfq1UQT7CQAiBurec0gMFJlCu5kEYUO6SjA6TMNu6yt1sqCmRCMONupQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":211879},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.5.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.5.3.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-G80g0hZrwLwvoAxYL1ds8wHKvX2YBb+xCdEJq5VUX7Ez1LUTBFkCJ1q2mEVUZh/T8OdABo5uGNrtcBsTylx3Rg==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.8.7","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.5.3_1790480245810_0.0753410215574648","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@thalovant/mcp-server","version":"0.6.0","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"license":"MIT","_id":"@thalovant/mcp-server@0.6.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://github.com/thalovant/thalovant-mcp#readme","bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"bin":{"thalovant-mcp":"dist/index.js"},"dist":{"shasum":"c1ebb89c5fc9d8bfb6b8b5dfb2adddd2ca65649c","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.6.0.tgz","fileCount":22,"integrity":"sha512-1ok4JX1VPO9sYce4DnzYutQtF8/GgADD1bk/ou6tyyn0ZCJ2UmdAk1VmTSdcZHpOqZMVXZ2shbjuaSKZyGGvkw==","signatures":[{"sig":"MEUCIQDfphavJDGAMXW3TLq4QdYWBXFvZXir/tbKMN1xwsWNqgIgVTDS+x2DULtxA4JFlmoPV4pjWGvY/cvraNiosU0Wca0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDNeCjT3iaVcfx8nGauxjPA7v9oOLgoxTQIvdAsSdUoIAiA5yylSOcOAOS0znc5PM9Nr7MF3K+kr2JTtBx44adhp7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243664},"type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.6.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.6.0.tgz","overrides":{"fast-uri":"3.1.6"},"_integrity":"sha512-1ok4JX1VPO9sYce4DnzYutQtF8/GgADD1bk/ou6tyyn0ZCJ2UmdAk1VmTSdcZHpOqZMVXZ2shbjuaSKZyGGvkw==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.9.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.6.0_1790596253520_0.08568375163257524","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"_id":"@thalovant/mcp-server@0.6.1","bin":{"thalovant-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"dist":{"shasum":"ba934c0ed0e405585dd19d3adaab78a9a3baa7dc","tarball":"https://registry.npmjs.org/@thalovant/mcp-server/-/mcp-server-0.6.1.tgz","fileCount":22,"integrity":"sha512-vOCVcqGwPSKhkgfG7sxDNWrkLRClrzEMzfHdCYslR4klVvfcZLQgdGSzyQugMej7WhEXhXEDt4c26aiOGJoKIw==","signatures":[{"sig":"MEQCICTrrVd9s4G/dbDncnhXGL0y3tHfsuYrvRlcGM9saOj4AiBA32MIruBOKjE88JJvnmEQwd+G/q8rv9aIWwnlmYlX/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDar/ndz7o14EXXkwGYK9Mg55m5k9w5KqptN60pLFXb4gIgXVeqFtROA6Bht9iBw2kh9fejySoInJHje1sZumqoh6E="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fmcp-server@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247888},"name":"@thalovant/mcp-server","type":"module","_from":"file:/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.6.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"license":"MIT","mcpName":"io.github.thalovant/thalovant-mcp","scripts":{"test":"vitest run","bench":"node scripts/bench-startup.mjs","build":"tsc && chmod 755 dist/index.js","clean":"rm -rf dist coverage","start":"node dist/index.js","prepack":"npm run build","test:http":"vitest run test/http.test.ts","typecheck":"tsc --noEmit","bench:http":"node scripts/bench-http.mjs","start:http":"node dist/index.js --http","test:smoke":"vitest run test/smoke.test.ts"},"version":"0.6.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"828dc59f-dc71-48a3-9c47-7ad3118c14a9"}},"homepage":"https://github.com/thalovant/thalovant-mcp#readme","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"_resolved":"/home/runner/work/thalovant-mcp/thalovant-mcp/release-artifacts/thalovant-mcp-server-0.6.1.tgz","overrides":{"fast-uri":"3.1.8"},"_integrity":"sha512-vOCVcqGwPSKhkgfG7sxDNWrkLRClrzEMzfHdCYslR4klVvfcZLQgdGSzyQugMej7WhEXhXEDt4c26aiOGJoKIw==","repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","directories":{},"maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.25.76","jose":"^6.2.8","@thalovant/sdk":"^0.9.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.3","@types/node":"^22.18.12"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.6.1_1790650030852_0.7325792120115453"}}},"time":{"created":"2026-07-07T00:45:55.293Z","modified":"2026-09-29T02:47:11.251Z","0.1.0":"2026-07-07T00:45:55.642Z","0.1.1":"2026-07-07T00:47:54.785Z","0.1.2":"2026-07-07T00:53:38.528Z","0.1.3":"2026-07-07T00:55:19.814Z","0.1.4":"2026-07-07T01:01:09.376Z","0.1.5":"2026-07-07T01:27:42.153Z","0.1.6":"2026-07-13T09:46:57.392Z","0.1.7":"2026-08-03T13:14:19.670Z","0.1.8":"2026-08-13T16:54:34.346Z","0.1.9":"2026-08-13T23:40:03.427Z","0.1.10":"2026-08-15T02:59:43.339Z","0.1.11":"2026-08-15T13:14:33.105Z","0.1.12":"2026-08-17T21:16:26.698Z","0.1.13":"2026-09-01T10:47:49.268Z","0.1.14":"2026-09-01T12:59:29.077Z","0.1.15":"2026-09-01T13:37:38.834Z","0.1.16":"2026-09-03T23:20:46.357Z","0.1.17":"2026-09-08T17:32:19.417Z","0.1.18":"2026-09-09T05:02:45.178Z","0.1.19":"2026-09-09T11:26:58.562Z","0.1.20":"2026-09-09T15:37:21.331Z","0.1.21":"2026-09-09T18:02:41.594Z","0.1.22":"2026-09-10T00:54:03.835Z","0.1.24":"2026-09-10T02:15:01.851Z","0.2.0":"2026-09-12T02:45:43.998Z","0.3.0":"2026-09-12T16:30:27.210Z","0.4.0":"2026-09-12T18:56:53.103Z","0.4.1":"2026-09-12T20:06:52.213Z","0.5.0":"2026-09-13T15:27:22.252Z","0.5.1":"2026-09-13T17:05:58.572Z","0.5.2":"2026-09-19T04:25:17.159Z","0.5.3":"2026-09-27T03:37:25.927Z","0.6.0":"2026-09-28T11:50:53.615Z","0.6.1":"2026-09-29T02:47:10.936Z"},"bugs":{"url":"https://github.com/thalovant/thalovant-mcp/issues"},"license":"MIT","homepage":"https://github.com/thalovant/thalovant-mcp#readme","keywords":["mcp","model-context-protocol","thalovant","agents","claude","codex"],"repository":{"url":"git+https://github.com/thalovant/thalovant-mcp.git","type":"git"},"description":"Stdio and Streamable HTTP MCP server for Thalovant control-plane and hub runtime APIs.","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"readme":"# Thalovant MCP Server\n\n[![M8ven Live Monitored](https://m8ven.ai/badge/mcp/thalovant-thalovant-mcp-1cyhb4)](https://m8ven.ai/mcp/thalovant-thalovant-mcp-1cyhb4)\n\nPublic-ready MCP server for Thalovant control-plane and hub runtime APIs.\n\nIt uses the official Thalovant Node.js SDK and the production MCP TypeScript SDK over stdio and Streamable HTTP, so it works with local MCP hosts such as Claude Desktop, Codex, Cursor, and remote MCP clients.\n\n## What It Includes\n\n- stdio transport for local agents.\n- Streamable HTTP transport at `/mcp` for remote agents.\n- OAuth-style protected resource metadata at `/.well-known/oauth-protected-resource`.\n- Static bearer tokens for simple/private deployments.\n- JWT/JWKS and OAuth token introspection for production remote deployments.\n- Per-principal Thalovant credentials and tool policy.\n- Host/origin validation, CORS, rate limiting, body limits, secure headers, and session binding.\n- Optional resumability event storage and JSONL audit logs.\n- Docker, Compose, Kubernetes, CI, npm package metadata, and MCP registry `server.json`.\n\n## Why TypeScript\n\nThalovant publishes SDKs for Python, Node.js, Go, and Rust. This server uses Node.js because `@thalovant/sdk` directly exposes the Thalovant control plane, identity loading, WSS/HTTPS/MQTT runtime clients, memory, analytics, and context helpers, while `@modelcontextprotocol/sdk` is the best-supported path for cross-agent stdio and Streamable HTTP servers.\n\n## Install\n\n```bash\nnpm install\nnpm run build\n```\n\nNode.js 20 or newer is required.\n\n## Control-Plane Auth\n\nPublic hub discovery does not need Thalovant credentials. Private control-plane tools and runtime hub tools read credentials only from the MCP server environment or server-side principal credential files. Do not pass API tokens or passwords through chat or tool arguments.\n\nThe server selects control-plane auth in this order:\n\n1. `THALOVANT_API_TOKEN` — a scoped Thalovant API token. Recommended.\n2. `THALOVANT_ACCESS_TOKEN` — a pre-issued session access token.\n3. `THALOVANT_EMAIL` + `THALOVANT_PASSWORD` — interactive-account login fallback.\n\nWhen a token is set, the server never calls the login endpoint. `thalovant_config_status` reports the active mode as `controlPlaneAuthMode` without revealing token values.\n\nWith none of these configured, a person can sign the server in through the browser instead: see [Device Sign-In](#device-sign-in). The token that sign-in mints is used only when nothing above is configured.\n\n### Device Sign-In\n\nA tool call cannot wait for a person, so the device flow (RFC 8628) is two tools:\n\n1. `thalovant_begin_device_login` with optional `scopes` (an empty list, like none, asks for the API's default), `clientName` and `clientId` answers `loginId`, `userCode`, `verificationUri`, `verificationUriComplete`, `interval` and `expiresIn`. Show the person the URL and the code. `clientId` signs in as a registered app, `thalovant-home-assistant` for Home Assistant: the approval page shows the platform's name for it as verified, and approving it again replaces the token it already holds. An id the API does not know is refused (400 `unknown_client`).\n2. `thalovant_poll_device_login` with that `loginId` asks once. `outcome` is `pending` (poll again after `interval` seconds, already five seconds longer for good if the API asked to slow down), `approved` (with `tokenId`, `scopes` and `expiresAt`), `expired` or `denied`.\n\nThe device code and the token never reach the model: the server keeps both, bound to the principal that began the sign-in, for the life of the process. Once approved, every control-plane tool for that principal uses the token when no credential is configured. `thalovant_revoke_device_login` signs out: it revokes that token (a token may always revoke itself, and one already revoked counts as revoked) and forgets it; signing out again answers `alreadyRevoked` without a request, and configured tokens are never touched. A sign-in reaches only the configured API origin (`THALOVANT_API_URL`, or the default), since the verification URL it answers with is shown to a person. A Home Assistant link asks for `hubs:read`, `clients:read` and `clients:write`, which is also all a Free plan can approve.\n\n### API Tokens (Recommended For AI Agents And CI)\n\nScoped API tokens are the right credential for AI and automation use: they are minted from the Thalovant dashboard (or through the device flow), carry only the scopes you grant, can be revoked individually, and never involve your account password or MFA. Tokens start with `tvpat_`.\n\n```bash\nexport THALOVANT_API_TOKEN=\"tvpat_...\"\nexport THALOVANT_API_URL=\"https://api.thalovant.com\"\n\nnpm start\n```\n\nMinimum scopes for the full control-plane tool surface:\n\n| Scope | Used by |\n|-------|---------|\n| `hubs:read` | `thalovant_list_hubs`, `thalovant_get_hub`, `thalovant_get_analytics_overview`, `thalovant_list_marketplace_skills`, `thalovant_list_runtime_groups`, `thalovant_get_runtime_group`, `thalovant_get_runtime_group_config`, the guarded merge read in `thalovant_update_runtime_group_config`, and the hub lookup inside `thalovant_create_client_identity` |\n| `hubs:inspect` | `thalovant_get_hub_runtime_capabilities`, `thalovant_list_runtime_group_marketplace`, `thalovant_list_runtime_group_inventory`, `thalovant_list_hub_skills`, `thalovant_list_hub_skill_history` |\n| `hubs:write` | All hub and runtime-group provisioning: `thalovant_create_hub`, `thalovant_update_hub`, `thalovant_release_hub`, `thalovant_create_runtime_group`, `thalovant_update_runtime_group`, `thalovant_update_runtime_group_config`, `thalovant_release_runtime_group`, `thalovant_install_runtime_group_skill`, `thalovant_uninstall_runtime_group_skill`, the per-hub `thalovant_install_hub_skill`, `thalovant_update_hub_skill`, `thalovant_remove_hub_skill`, the hub rating tools, and the opt-in delete tools |\n| `clients:write` | `thalovant_create_client_identity` (`POST /v1/clients`) and the opt-in `thalovant_delete_client` |\n| `memory:read` | `thalovant_list_memory_items`, `thalovant_get_memory_summary`, `thalovant_get_memory_item` |\n| `memory:write` | `thalovant_create_memory_item`, `thalovant_update_memory_item`, `thalovant_delete_memory_item` |\n\nThe hub scopes imply one another: `hubs:write` grants `hubs:read`, which grants `hubs:inspect` and `hubs:preview`. Minting a token with `hubs:read` is therefore enough for every discovery tool in the table above.\n\nScope is not the whole story for provisioning. Every hub and runtime-group write also requires a **paid plan**, and the API checks scope *before* the plan, so the two failure modes are ordered:\n\n- A token missing the scope fails `403 Insufficient scopes`. Free-plan API tokens are capped at `hubs:read`, `clients:read`, and `clients:write`, so on the free tier provisioning fails with this 403 and never reaches the 402.\n- A correctly scoped token on a free plan fails `402 API access requires a paid plan.`\n- `thalovant_install_runtime_group_skill` can fail with a **second, distinct** 402, `This skill requires paid marketplace access for the tenant plan.`, when the plan is paid but does not include `access_tier: paid` catalog entries.\n\nDiscovery is deliberately not paid-gated: **a free-tier token can browse the marketplace catalog and set hub ratings, but cannot install skills or provision hubs.** Use `thalovant_list_runtime_group_marketplace` before installing — it reports `installable`, `purchase_required`, and `access_message` per skill, which turns an opaque 402 into a decision you can make up front.\n\nGrant fewer scopes for narrower deployments: a read-only assistant needs only `hubs:read` and `memory:read`, and a discovery-only agent that browses skills but never provisions needs `hubs:read` alone. `thalovant_get_analytics_overview` with `admin: true` additionally requires an admin account with `admin:analytics`, which API tokens for regular use should not carry. Runtime hub tools (`thalovant_ask`, `thalovant_send_action`, and friends) use Thalovant client identities, not control-plane tokens.\n\n### Hub Etags\n\n`thalovant_update_hub` and `thalovant_delete_hub` use optimistic locking and require the hub's current etag, sent as `If-Match`. The etag is only available in the **body** of the hub resource — the API sends no `ETag` response header — so an agent must call `thalovant_get_hub` first and pass the `etag` field from that response. A missing or stale value fails `412 ETag mismatch` and changes nothing; re-fetch and retry. `name`, `namespace`, and `domain` are immutable after creation, so `thalovant_update_hub` does not accept them at all; send only the fields you are changing rather than round-tripping a whole hub resource. Runtime-group writes do not use etags.\n\n### Hub Skills\n\n`thalovant_list_hub_skills`, `thalovant_install_hub_skill`, `thalovant_update_hub_skill`, and `thalovant_remove_hub_skill` select a hub's attached runtime group; all hubs sharing it are affected. A hub can start with no skills at all and gain them one at a time; a change applies live on the hub in about 15 seconds with no restart. `hubId` must be the hub UUID — the authenticated hub routes reject slugs.\n\n`thalovant_list_hub_skills` returns the whole `GET /v1/hubs/{hub_id}/skills` envelope: `hub_id`, `runtime_group_id`, `observed_at`, `source`, the runtime's phase and message, and `data`, one row per skill (possibly empty) with `skill`, `title`, `marketplace_skill_id`, `package_name`, `source_type`, `install_source`, `version`, `version_pin`, `installed_version`, `observed_version`, `previous_version`, `latest_version`, `available_version`, `update_available`, `changelog`, `active`, `state`, the runtime's phase, message and last error, and `last_transition_at`. `state` is one of `pending`, `installed`, `failed`, `removing`, `drifted`, `quarantined`, or `unmanaged`; a change in progress shows as `pending`.\n\nEach write answers `202` with `operation_id`, `hub_id`, `runtime_group_id`, `skill`, `version` (`null` for a removal), `previous_version`, and `state` (`installing`, `updating`, or `removing`); pass `wait: true` to poll that operation every 2 s until it converges (`installed`, or `removed` for a removal; a `failed` or `timed_out` operation raises an error carrying its `error_message`), with a 120 s default `timeoutMs`, or follow it yourself with `thalovant_get_operation`. Installing a skill that is already installed at another version performs an update; the same version fails `409` with code `skill_version_already_installed`. A hub with no runtime group fails `404` with code `hub_without_runtime_group` (a plain `404` means an unknown hub or a skill that is not installed), and an unresolvable `latest` or an invalid version fails `422`. Errors are RFC 7807 problem bodies; the tool error keeps the short `message`, which appends the root `code` in parentheses, for example `Thalovant API request failed with HTTP 409: Skill version already installed. (skill_version_already_installed)`, and then the code and the body's other fields (see [Tool Errors](#tool-errors)).\n\nListing needs `hubs:inspect` (implied by `hubs:read`); the writes need `hubs:write` and a paid plan, and because scope is checked before plan a free-plan token sees `403`, never `402`. Hub-restricted tokens (a `hub_ids` allowlist) are honoured on all four routes. The server uses the published Node SDK hub-skill methods and preserves MCP cancellation checks during polling. A failed status read retains the accepted operation ID; use `thalovant_get_operation` with that ID instead of submitting the write again. No new poll starts at or after the polling deadline. That deadline does not cancel an HTTP request already in flight.\n\n### Login Fallback\n\n```bash\nexport THALOVANT_EMAIL=\"you@example.com\"\nexport THALOVANT_PASSWORD=\"...\"\n\nexport THALOVANT_PROFILE=\"prod\"\nexport THALOVANT_API_URL=\"https://api.thalovant.com\"\n\nnpm start\n```\n\nIf neither a token nor email/password is configured, authenticated control-plane tools fail with a clear error naming the supported options.\n\nConfigured API tokens and login credentials are bound to the origin of their\nconfigured `apiUrl` or `THALOVANT_API_URL` (default `https://api.thalovant.com`).\nA tool argument cannot redirect those credentials to another origin. Equivalent\nURL spellings and paths on the same origin are allowed; custom origins must be\nconfigured alongside their credentials. Anonymous public discovery may still\nselect a custom API URL.\n\n## Link Home Assistant\n\nA home controller such as Home Assistant links to a hub with a connection of its own kind:\n\n1. Sign in, when no token is configured: [Device Sign-In](#device-sign-in).\n2. `thalovant_create_client_identity` with `connectionType: \"home_assistant\"`. The API must answer with the same kind; one that made an ordinary connection instead has it deleted again and the call fails. The result carries `clientId`, `connectionType` and `operationId`.\n3. `thalovant_wait_for_admission` with that `operationId`. A hub admits a new connection in about ninety seconds and refuses it until then. `outcome` is `admitted`, `failed` or `timeout`. A failure on the platform carries the operation's `errorCode` (and `status` null); the API refusing the wait itself carries its `status`, `code` and `detail`. A `timeout` means the connection may still be admitted: call the tool again rather than creating another connection. A 429 is waited out for the time the API names (in its body, else `Retry-After`, else `RateLimit-Reset`); one asking for longer than is left is a `timeout` at once. A token the API refuses (401, 403) and an API out of reach are tool errors of their own, each with a hint, never a failed admission. It reads only, honours cancellation, and never follows a `links.self` to another origin than the API's.\n\nEach refusal of step 2 names what to do next after the API's own text (see [Tool Errors](#tool-errors)): a kind the API does not know yet, a plan that does not allow the connection, a hub that already holds its one Home Assistant link (with the `client_id` holding it), or a token the API refused (sign in again). `thalovant_delete_client` removes a connection (`If-Match`, reading the etag first when none is given, retrying once on `412`, and counting a connection already gone as deleted); it is a destructive tool the operator enables.\n\nAnswering the hub's requests afterwards is the integration's own long-lived job, on the data plane; an MCP tool call holds a hub connection only for its own length, so that part of the link is not a tool.\n\n## Local Stdio\n\nThe server speaks MCP over stdio and does not write logs to stdout.\n\nRuntime hub tools load local identities in this order:\n\n1. `identityFile` tool argument.\n2. `configPath` or `profile` tool argument.\n3. Thalovant SDK environment identity variables.\n4. The default Thalovant SDK config profile.\n\nKeep Thalovant identity files secret. The SDK expects protected config files such as `~/.config/thalovant/config.yaml` with mode `0600`.\n\n## Streamable HTTP\n\nRemote mode uses MCP Streamable HTTP at `/mcp` and requires bearer authentication by default.\n\n```bash\nexport MCP_TRANSPORT=\"http\"\nexport MCP_HTTP_HOST=\"127.0.0.1\"\nexport MCP_HTTP_PORT=\"3000\"\nexport MCP_HTTP_AUTH_TOKEN=\"$(openssl rand -hex 32)\"\nexport MCP_HTTP_ALLOWED_HOSTS=\"127.0.0.1:3000,localhost:3000\"\n\nnpm run start:http\n```\n\nClients connect to:\n\n```text\nhttp://127.0.0.1:3000/mcp\nAuthorization: Bearer <token>\n```\n\nHealth checks are available at `/healthz` and `/readyz`.\n\nFor public deployments, set the public URL and exact host/origin allowlists:\n\n```bash\nexport MCP_HTTP_HOST=\"0.0.0.0\"\nexport MCP_HTTP_PORT=\"3000\"\nexport MCP_PUBLIC_URL=\"https://mcp.example.com\"\nexport MCP_HTTP_ALLOWED_HOSTS=\"mcp.example.com\"\nexport MCP_HTTP_ALLOWED_ORIGINS=\"https://agent.example.com\"\n```\n\n## Remote Auth\n\nUse static bearer tokens only for local, private, or single-tenant deployments:\n\n```bash\nexport MCP_HTTP_AUTH_TOKEN=\"$(openssl rand -hex 32)\"\n# or\nexport MCP_HTTP_AUTH_TOKENS=\"token-a,token-b\"\n```\n\nUse JWT/JWKS for production resource-server validation:\n\n```bash\nexport MCP_HTTP_AUTH_MODE=\"jwt\"\nexport MCP_OAUTH_ISSUER=\"https://auth.example.com/\"\nexport MCP_OAUTH_JWKS_URL=\"https://auth.example.com/.well-known/jwks.json\"\nexport MCP_OAUTH_AUDIENCE=\"https://mcp.example.com/mcp\"\nexport MCP_OAUTH_AUTHORIZATION_SERVERS=\"https://auth.example.com/\"\nexport MCP_OAUTH_REQUIRED_SCOPES=\"mcp:thalovant\"\n```\n\nUse introspection when your authorization server issues opaque tokens:\n\n```bash\nexport MCP_HTTP_AUTH_MODE=\"introspection\"\nexport MCP_OAUTH_INTROSPECTION_URL=\"https://auth.example.com/oauth2/introspect\"\nexport MCP_OAUTH_CLIENT_ID=\"mcp-server-client\"\nexport MCP_OAUTH_CLIENT_SECRET=\"...\"\nexport MCP_OAUTH_AUDIENCE=\"https://mcp.example.com/mcp\"\nexport MCP_OAUTH_AUTHORIZATION_SERVERS=\"https://auth.example.com/\"\nexport MCP_OAUTH_REQUIRED_SCOPES=\"mcp:thalovant\"\n```\n\nThe server publishes protected resource metadata at:\n\n```text\nhttps://mcp.example.com/.well-known/oauth-protected-resource\n```\n\n401 responses include `WWW-Authenticate` with a `resource_metadata` pointer for MCP clients that support OAuth discovery.\n\n## Principal Credentials\n\nFor multi-user remote deployments, do not share one Thalovant access token across all MCP users. Map each authenticated MCP principal to its own Thalovant control-plane token, runtime identity, and tool policy.\n\nSingle file:\n\n```bash\nexport THALOVANT_PRINCIPAL_CREDENTIALS_FILE=\"/run/secrets/thalovant-principals.json\"\n```\n\nDirectory mode:\n\n```bash\nexport THALOVANT_PRINCIPAL_CREDENTIALS_DIR=\"/run/secrets/thalovant-principals\"\n```\n\nDirectory files are named `<sha256(principal-id)>.json`. The server checks the OAuth subject, principal id, and client id. See [examples/principal-credentials.sample.json](examples/principal-credentials.sample.json).\n\nKeep this disabled for multi-user deployments unless you intentionally want every remote principal to use the server environment's Thalovant credentials:\n\n```bash\nexport THALOVANT_ALLOW_SHARED_CREDENTIALS=\"false\"\n```\n\nRuntime `identityFile`, `configPath`, `profile`, and `fromEnv` tool arguments are disabled for remote principals by default. Set `MCP_HTTP_ALLOW_CLIENT_CREDENTIAL_PATHS=true` only for trusted private deployments.\n\n## Policy, Audit, And Resumability\n\nGlobal tool policy:\n\n```bash\nexport MCP_TOOL_ALLOWLIST=\"thalovant_*\"\nexport MCP_TOOL_DENYLIST=\"thalovant_delete_memory_item\"\n```\n\nPer-principal credential files may also include `allowedTools` and `deniedTools`.\n\nBoth are call-time filters, and an empty allowlist means \"allow everything\". They cannot make a tool default-off or hide it from `tools/list`, which is why the two destructive control-plane tools are gated separately by `THALOVANT_ENABLE_DESTRUCTIVE_TOOLS`. See [Destructive Tools](#destructive-tools).\n\nAudit logs:\n\n```bash\nexport MCP_AUDIT_LOG=\"stderr\" # off, stderr, file, or both\nexport MCP_AUDIT_LOG_FILE=\"/var/log/thalovant-mcp/audit.jsonl\"\nexport MCP_AUDIT_INCLUDE_ARGS=\"false\"\n```\n\nAudit entries are JSONL and credential-shaped fields are redacted.\n\nStreamable HTTP resumability defaults to an in-memory event store. Use a file-backed store for single-instance restarts:\n\n```bash\nexport MCP_EVENT_STORE_FILE=\"/var/lib/thalovant-mcp/events.jsonl\"\n```\n\n## HTTP Hardening\n\n- Bearer auth is required unless `MCP_HTTP_ALLOW_UNAUTHENTICATED=true` is explicitly set.\n- Host headers are allowlisted to reduce DNS rebinding risk.\n- Browser `Origin` headers are rejected unless they exactly match `MCP_HTTP_ALLOWED_ORIGINS`.\n- CORS exposes only MCP session/protocol headers.\n- Sessions use cryptographically random ids and are bound to the authenticated principal.\n- Request bodies are capped by `MCP_HTTP_MAX_BODY_BYTES`, defaulting to 1 MiB.\n- Fixed-window rate limiting defaults to 120 MCP requests per minute per client address.\n- Security headers include `nosniff`, `DENY` framing, no referrer, and a restrictive CSP.\n\nUseful HTTP environment variables:\n\n```bash\nMCP_HTTP_PATH=/mcp\nMCP_HTTP_RATE_LIMIT_MAX=120\nMCP_HTTP_RATE_LIMIT_WINDOW_MS=60000\nMCP_HTTP_SESSION_TTL_MS=3600000\nMCP_HTTP_MAX_BODY_BYTES=1048576\nMCP_HTTP_ENABLE_JSON_RESPONSE=false\nMCP_HTTP_TRUST_PROXY=false\n```\n\n## Claude Desktop\n\nRecommended: authenticate with a scoped API token so the MCP config never contains your account password.\n\n```json\n{\n  \"mcpServers\": {\n    \"thalovant\": {\n      \"command\": \"node\",\n      \"args\": [\"/home/goldyfruit/Development/Thalovant/mcp/dist/index.js\"],\n      \"env\": {\n        \"THALOVANT_API_TOKEN\": \"tvpat_...\",\n        \"THALOVANT_PROFILE\": \"prod\"\n      }\n    }\n  }\n}\n```\n\n## Codex\n\nUse the same stdio command in your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"thalovant\": {\n      \"command\": \"node\",\n      \"args\": [\"/home/goldyfruit/Development/Thalovant/mcp/dist/index.js\"],\n      \"env\": {\n        \"THALOVANT_API_TOKEN\": \"tvpat_...\",\n        \"THALOVANT_PROFILE\": \"prod\"\n      }\n    }\n  }\n}\n```\n\n## Tools\n\nRead-only:\n\n- `thalovant_config_status`\n- `thalovant_list_public_hubs`\n- `thalovant_get_public_hub`\n- `thalovant_list_hubs`\n- `thalovant_get_hub`\n- `thalovant_get_operation`\n- `thalovant_wait_for_admission`\n- `thalovant_identity_status`\n- `thalovant_healthcheck`\n- `thalovant_intent_inventory`\n- `thalovant_wait_for_event`\n- `thalovant_get_analytics_overview`\n- `thalovant_list_memory_items`\n- `thalovant_get_memory_summary`\n- `thalovant_get_memory_item`\n\nSkill and runtime-group discovery (read-only):\n\n- `thalovant_list_marketplace_skills`\n- `thalovant_list_runtime_group_marketplace`\n- `thalovant_list_runtime_group_inventory`\n- `thalovant_list_runtime_groups`\n- `thalovant_get_runtime_group`\n- `thalovant_get_runtime_group_config`\n- `thalovant_get_hub_runtime_capabilities`\n\nSign-in (see [Device Sign-In](#device-sign-in)):\n\n- `thalovant_begin_device_login`\n- `thalovant_poll_device_login`\n- `thalovant_revoke_device_login`\n\nWrites or hub events:\n\n- `thalovant_create_client_identity`\n- `thalovant_ask`\n- `thalovant_query`\n- `thalovant_send_action`\n- `thalovant_send_code`\n- `thalovant_emit_event`\n- `thalovant_create_memory_item`\n- `thalovant_update_memory_item`\n- `thalovant_delete_memory_item`\n\nHub and runtime-group provisioning:\n\n- `thalovant_create_hub`\n- `thalovant_update_hub`\n- `thalovant_release_hub`\n- `thalovant_set_hub_rating`\n- `thalovant_clear_hub_rating`\n- `thalovant_create_runtime_group`\n- `thalovant_update_runtime_group`\n- `thalovant_update_runtime_group_config`\n- `thalovant_release_runtime_group`\n- `thalovant_install_runtime_group_skill`\n- `thalovant_uninstall_runtime_group_skill`\n\nHub skills, acting on the hub’s shared runtime (see [Hub Skills](#hub-skills); the list tool is read-only):\n\n- `thalovant_list_hub_skills`\n- `thalovant_list_hub_skill_history`\n- `thalovant_install_hub_skill`\n- `thalovant_update_hub_skill`\n- `thalovant_remove_hub_skill`\n\nDestructive, **not registered unless explicitly enabled** (see [Destructive Tools](#destructive-tools)):\n\n- `thalovant_delete_hub`\n- `thalovant_delete_runtime_group`\n- `thalovant_delete_client`\n\nTool outputs redact credential-shaped fields. `thalovant_create_client_identity` does not return secret identity material; pass `savePath` when you want the full identity written to a local file with mode `0600`. `savePath` is confined to the server's identity directory (`THALOVANT_MCP_IDENTITY_DIR`, default `<config-dir>/thalovant/identities`): pass a plain filename, since absolute paths outside that directory and `..` traversal are rejected, so a model cannot drop a credential file into a git working tree or synced folder. `thalovant_config_status` reports the active `identityDir`.\n\n`thalovant_intent_inventory` uses the runtime identity and accepts `languages`,\n`describe`, `fallback`, `speakable`, `sentence`, `slots`, `exampleLimit`, and a per-query/batch `timeoutMs`. It returns registered\nintents and examples, fallback skills, `fallbacks_known`, and `may_answer` by\nrequested language. A missing or denied optional fallback-skill query remains\nunknown, rather than being reported as a known empty list. The optional probe\nadds at most 1500ms. A silent listing can use engine manifests; disable this with\n`fallback: false`. Both new tools are available in read-only mode and respect\nper-principal policy. `thalovant_get_operation` reads an operation ID returned by\nprovisioning without replaying the write.\n\nThe additive `presentation` object contains the shared SDK inventory shape:\n`cache_version`, `hub_id`, `hub_name`, `source`, `generated_at`, `skills`, `notes`,\nand `languages_present`. Skill titles are derived from IDs. Runtime discovery\ncannot prove catalog locales or hub display metadata, so those fields remain\nunknown (empty lists/strings), with explanatory notes. Intent language order is\nexplicit and survives JSON key sorting. Each tool call retains its own identity\nlease; the server does not persist inventory or share a session across callers.\n\n## Tool Errors\n\nWhen the Thalovant API refuses a control-plane call, the tool result is an\nerror whose text starts with the SDK's one-line message (which names the HTTP\nstatus and can be shortened) and then says what the API said, in full:\n\n```text\nThalovant API request failed with HTTP 403: Only an administrator can run an image the platform does not release: bus may be one of ghcr.io/thalovant/ovos-messagebus:2026.09.2, ... (platform_image_required)\ncode: platform_image_required\ndetail: Only an administrator can run an image the platform does not release: bus may be one of ghcr.io/thalovant/ovos-messagebus:2026.09.2, ghcr.io/thalovant/ovos-messagebus:2026.09.3-alpha.1, ghcr.io/thalovant/ovos-messagebus:2026.08.7; core may be any tag or digest of ghcr.io/thalovant/ovos-core.\nfields: {\"allowed_images\":{\"bus\":[...],\"core\":[...]},\"allowed_repositories\":{\"core\":\"ghcr.io/thalovant/ovos-core\"},\"component\":\"runtime_group\",\"refused_images\":{...}}\n```\n\n- `code` is the API's machine-readable code, when it sent one.\n- `detail` is the whole sentence, and appears only when the first line had to\n  shorten it.\n- `fields` is every other member of the error body as compact JSON (the\n  Problem+JSON `type`, `title`, `status` and `instance` are left out), with the\n  same secret redaction as every other tool output. A value a validation error\n  echoes back from the request -- each entry's `input` in a `detail` or\n  `errors` list, whatever its key or shape -- is replaced with `\"[omitted]\"`\n  there and never reaches the first line. A plan refusal carries `resource`, `limit`, `used` and `plan` here.\n\nA hint may follow for statuses that need one. A `platform_image_required` or\n`plan_limit` 403 gets its own hint rather than the general scope hint.\n\n## Request hints, embedded audio, and configuration merging\n\n`thalovant_ask` accepts `sttLang`, an ordered `pipeline`, and `location`\nwith required `city` and optional `region`, `country`, `timezone`, `latitude`,\nand `longitude`. Hints apply to the current request. Omit unused hints;\nan empty pipeline is ignored, and blank language or city strings are rejected.\n\nAsk and Query return language, ordered event metadata, `hasAudio` and\n`droppedMedia`. Embedded hex stays out of text output. Opt into separate MCP\naudio blocks with `includeAudio: true`; unknown formats become embedded binary\nresource blocks. Clip and reply limits are 4 MiB and 16 MiB respectively,\nchecked by the SDK before retention. The client owns playback. No skill-supplied\npath or URL is fetched. Inventory `speakable: true` renders examples without\nchanging the raw patterns; `slots` supplies illustrative slot values, and\n`exampleLimit` limits examples per language to 1–20 (default 2).\n\nConfiguration updates default to `merge: true`: GET the revision, deep-merge\nthe caller's delta and PUT with `expected_revision`. Only HTTP 412 retries,\nwith a fresh read and at most three total attempts. This requires `hubs:read`,\n`hubs:write`, and a paid plan. An older API without revision support fails before\nwriting. There is no unconditional fallback. Supplied personas replace;\nomitted personas stay unchanged. For an intentional full replacement, pass\n`merge: false`, requiring `hubs:write`, a paid plan, and coordination with other writers.\nGuarded merges reject integers outside JavaScript's safe integer range in the\ndelta or stored configuration before writing. Store large identifiers as strings\nor use an SDK that preserves large JSON integers.\n\n## Destructive Tools\n\n`thalovant_delete_hub`, `thalovant_delete_runtime_group` and `thalovant_delete_client` are **disabled by default**. They are not merely blocked when called — they are never registered, so they do not appear in `tools/list` and a model cannot see or attempt them.\n\nA long-lived control-plane token combined with an always-available delete tool is a categorically different risk from a read or update tool: deleting a hub also deletes its dependent clients and ACLs, and none of it is reversible. So these are opt-in:\n\n```bash\nexport THALOVANT_ENABLE_DESTRUCTIVE_TOOLS=\"true\"\n```\n\nAccepted true values are `1`, `true`, `yes`, and `on`; anything else, including unset, leaves the tools off. The flag is read when a server instance is created. Restart the server process with the updated environment after changing it. `thalovant_config_status` reports the current state as `destructiveToolsEnabled` and lists the tools the flag controls.\n\nThis is a separate mechanism from the existing tool policy, deliberately. `MCP_TOOL_ALLOWLIST` / `MCP_TOOL_DENYLIST` and the per-principal `allowedTools` / `deniedTools` are call-time filters where an empty allowlist means \"allow everything\"; they cannot express a tool that is off until an operator turns it on, and they cannot hide a tool from `tools/list`. Once `THALOVANT_ENABLE_DESTRUCTIVE_TOOLS` is set the delete tools are ordinary tools again and remain subject to that policy, so the two layers compose:\n\n```bash\n# Register delete tools, then deny their use by every principal.\nexport THALOVANT_ENABLE_DESTRUCTIVE_TOOLS=\"true\"\nexport MCP_TOOL_DENYLIST=\"thalovant_delete_hub,thalovant_delete_runtime_group\"\n```\n\nThe global deny applies to every principal and cannot be overridden by a principal's `allowedTools`. To restrict only selected principals, leave these tools out of the global denylist and use those principals' `deniedTools` instead.\n\nDeleting a hub still requires a current etag (`412` otherwise), and deleting a runtime group fails with `409` while it is the workspace default or still has hubs attached. Deleting a client cuts off the device or link using it; its etag is read first when none is given.\n\n## Non-Catalog Skill Sources\n\n`thalovant_install_runtime_group_skill` installs from the vetted marketplace catalog by default. Any other source — notably `sourceType: \"git\"` with an arbitrary `sourceRef` repository URL — pulls code the marketplace never reviewed straight into a production runtime, and the control-plane validator is format-only with no host allowlist. Because the tools are driven by a model holding a long-lived token, non-catalog sources are refused unless an operator opts in:\n\n```bash\nexport THALOVANT_ENABLE_GIT_SKILL_SOURCES=\"true\"\n```\n\nWith the flag unset, a call with any `sourceType` other than `catalog` fails before any control-plane request is made. Accepted true values are `1`, `true`, `yes`, and `on`. `thalovant_config_status` reports the state as `gitSkillSourcesEnabled`. The tool is annotated `destructiveHint: true`.\n\n## Read-Only Mode\n\nSet `THALOVANT_MCP_READONLY=1` to register only tools annotated `readOnlyHint: true` (the sign-in tools are not among them; `thalovant_wait_for_admission` is). Write and destructive tools are then never registered and never appear in `tools/list`, so an operator can run an observe-only agent without hand-writing a denylist. Like the other registration-time gates it is read when a server instance is created; `thalovant_config_status` reports the state as `readOnly`.\n\n## HiveMind Runtime Compatibility\n\nRuntime calls sharing the same hub client identity run sequentially within one\nMCP process. Use a distinct client identity for each independently running MCP\nserver so the hub can keep their sessions separate.\n\nVersion 0.6.1 requires `@thalovant/sdk` `^0.9.1` (0.9.1 through versions below 0.10.0). Since 0.5.1 the server enforces\nsecure effective MQTT URLs and carries a single connection deadline through\nMQTT setup and HTTP failure cleanup. Runtime tools support\nHiveMind v3 Noise over WSS, HTTPS and MQTT over TLS. `thalovant_healthcheck`\nreports readiness only after authentication; a reachable hub or broker alone\ndoes not establish a runtime session.\n\nKeep the SDK configuration directory persistent and private between server\nrestarts (`~/.config/thalovant`, or the configured XDG/Windows equivalent). It\ncontains the client Noise key and trusted server pins. An authentication\nfailure preserves those pins; replacing a server key requires an explicit,\nverified trust change. HTTPS identities must advertise the hub's HTTPS plugin,\nand MQTT requires the identity's broker credentials and topic prefix.\n\nRuntime tools retain their identity lease through actual cleanup. If the close\ncaller times out, a later tool waits up to six seconds for that cleanup before opening a session.\nA queued tool that reaches this deadline fails without executing later or releasing\nthe previous session's identity.\nAn actual cleanup failure marks the identity unavailable to later calls instead\nof risking concurrent sessions. These leases are process-local; separate server\nprocesses or replicas need distinct runtime identities or external coordination.\n\nMCP request cancellation applies to queued runtime tools in both stdio and\nStreamable HTTP mode. A cancelled queued call never constructs a runtime client\nor executes later. Cancellation also reaches runtime connection setup, Ask,\nQuery and event waits. Action/code sends, raw event publication and inventory\nqueries check cancellation during connection setup, then retain ownership until\nthe admitted SDK operation finishes. Cancelling the MCP request cannot undo an\nalready admitted operation or its effects. The identity remains reserved through\nthat work and actual cleanup; application requests are never automatically replayed.\nControl-plane tools do not gain runtime cancellation semantics in this release.\n\nFor example, an MCP TypeScript client can cancel a runtime query after ten seconds,\nincluding time spent waiting for its identity lease:\n\n```typescript\nawait mcpClient.callTool({\n  name: \"thalovant_query\",\n  arguments: { identityFile: \"/secure/identity.json\", text: \"What is the weather?\", timeoutMs: 30000 },\n}, undefined, { signal: AbortSignal.timeout(10000) });\n```\n\nIntent inventory retains its connection setup and per-query/batch budgets plus\na separate optional fallback probe; it has no single inventory-wide deadline.\n\n## Development\n\n```bash\nnpm run typecheck\nnpm test\nnpm run build\nnpm run test:smoke\nnpm run test:http\nnpm run bench\nnpm run bench:http\nnpm pack --dry-run\n```\n\n## License\n\nMIT. This is the right default for a public integration server: it is permissive, compatible with the MIT Thalovant Node SDK and MCP TypeScript SDK, and does not force downstream agent or enterprise users into a reciprocal licensing model.\n\nCredential-bearing control-plane calls require HTTPS. Explicit loopback HTTP\n(`localhost`, `127.0.0.1`, `[::1]`) remains supported for local development.\nAPI redirects are rejected so password-login bodies cannot be forwarded.\nRuntime clients are constructed only after acquiring their identity lease.\n\n`thalovant_query` sends a routed HiveMind query; the hub may cascade it according\nto its routing policy. It accepts `text`, `timeoutMs`, `lang`, `sessionId`,\n`requestId`, `queryId`, `context` and `replySettleMs`, plus the runtime identity\noptions, and returns the same normalized reply shape as `thalovant_ask`. A query\nmay trigger actions, so read-only mode hides it. Conversation workflows use\n`sessionId` with ask/query and the existing event-wait tool; MCP does not expose\none tool for every SDK conversation or event-listener method.\n\n\n### Shared-runtime skill management\n\nThe catalog has 50 default tools, 24 in read-only mode, and 53 with destructive tools enabled.\n\nHub-addressed skill methods select the runtime group attached to the hub UUID.\nEvery hub sharing that group sees the same skill changes and history. The API\nrequires a restricted token to cover all served hubs. Reads need `hubs:inspect`\n(`hubs:read` implies it); writes need `hubs:write`, an eligible paid plan and ownership.\n\nThe history response contains newest-first `event` and `operation` entries,\nincluding nullable actor/version fields. Its limit is 1–200 (50 where omitted).\nAn accepted mutation is not proof the skill is ready. Optional waiting polls the\noperation, with a 120-second default timeout and two-second interval. Polling\nnever repeats an accepted mutation and starts no new read after its deadline;\nan already-running HTTP request retains its normal request timeout.\n\nRead history with `thalovant_list_hub_skill_history` (`hubId`, optional `limit`). This tool remains available in read-only mode.\n\n\nInventory `sentence: true` implies speakable rendering and capitalizes/punctuates\nexamples using bundled thalovant-languages 0.2.1 rules. Regional locale matching\nfollows OVOS distances; explicit `slots` override locale sample values. Complete\nphrases rank first, and `exampleLimit` counts unique nonempty rendered results.\nRaw intent definitions remain in the response; unknown locales retain bare text.\n\nThe CLI handles SIGTERM and SIGINT in stdio and HTTP modes, including when it\nruns as the container's PID 1. It closes sessions and HTTP connections before a\nsuccessful exit, with a ten-second failure deadline for stalled cleanup.\n\nVersion 0.5.1 uses Node SDK 0.7.1 with Python 0.7.4-compatible inventory\nand question detection, including Unicode question marks and omitted-language patterns. With `sentence: true`, Spanish questions receive their question\nmark and complete French phrases keep their final period. Undescribed\nlanguages remain bare.\n","readmeFilename":"README.md"}