{"_id":"@open-loyalty/mcp-server","_rev":"42-1ad4d16e3fee861c6022abc8e87a03ee","name":"@open-loyalty/mcp-server","dist-tags":{"latest":"1.27.0"},"versions":{"1.0.0":{"name":"@open-loyalty/mcp-server","version":"1.0.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.0.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"homepage":"https://github.com/openloyalty/mcp-server#readme","bugs":{"url":"https://github.com/openloyalty/mcp-server/issues"},"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"750e85b8c62e2248c166e79ba9f2ebde5ae981a8","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.0.0.tgz","fileCount":99,"integrity":"sha512-6ZSs3GX4UtX69SZENNdP6QUeOHqpmYzuL0IhQTiGUMPFelhPhQ/+6kN+aZk+yNCyAWP/IUt6VRbJzhsOW317GA==","signatures":[{"sig":"MEYCIQCut1NtkRY3Aa89+vS6kV5FUF79LrCeK+iluIV8oGheFQIhANDYt7iEpMcWOak01C6mQK0/jGH6L3o9/bwkVDvO7roC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":944610},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"e7c02abdc8a03b2fc7167ffc67e6f895fb8e74ce","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","test:run":"vitest run","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"repository":{"url":"git+https://github.com/openloyalty/mcp-server.git","type":"git"},"_npmVersion":"11.6.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.0.17","typescript":"^5.3.0","@types/node":"^20.10.0","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.0.0_1768810817274_0.8349265648661957","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@open-loyalty/mcp-server","version":"1.0.1","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.0.1","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"1be14308c606a440f8191b528eb2af72492f2c43","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.0.1.tgz","fileCount":95,"integrity":"sha512-0tyfCCihuDDWCdpQh/s/0nkD9cvvn1KMcgD8wpJCmTuPC7jTQZkJjO1OxBBZIkZQIrcnnQSAj6CbhG5mEDp4fw==","signatures":[{"sig":"MEQCIGkyNS82SWqiqS9vCvOySJQIaoOwz+TgnM64UKGAvnhDAiBgS0pwQ/I67//kgOCb1gXxCOU9moaQflsELoeQ3tAq1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":922241},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"00b78bb6a2ca34b5b5c531563b3597933ecdf603","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.6.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","express":"^5.2.1","ioredis":"^5.9.2","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.0.17","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.0.1_1768837224084_0.08756182417254377","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@open-loyalty/mcp-server","version":"1.0.2","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.0.2","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"0906d0ebf0f1d97bfd89e42a3670ee7c30a5aa6f","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.0.2.tgz","fileCount":95,"integrity":"sha512-O7hHf5uY3qJS6UW0sxVfnJLK7a3gD24JLLtnvU2UHyEX9+A3Hcggtu/q1/8k9V/a2wnshxuyH9B/eo+ZKKlcmw==","signatures":[{"sig":"MEUCIQDKZKptRVGbo4TV6XwI/QX52DFzvsmP/0xNVDfcLuoMQgIgWN1eVL0yXTpu1dwj661t5b0w/4k1Do37cDuad+MKr8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":922241},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"00b78bb6a2ca34b5b5c531563b3597933ecdf603","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.6.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","express":"^5.2.1","ioredis":"^5.9.2","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.0.17","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.0.2_1768837379825_0.6452565886259214","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@open-loyalty/mcp-server","version":"1.0.3","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.0.3","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"3f7b4ba85aaae2845f804413887bfdffcf8ff0b1","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.0.3.tgz","fileCount":95,"integrity":"sha512-FQnDRr8yJhTQa6nehjzt+p+qbraR4bCS7Y5Gd1QVfadz/E7dWnQkAWe06+kudgoMparDPoIjRwaY09ItSGx14Q==","signatures":[{"sig":"MEQCIBHbbakkPXJeOT2VUkwgAdbfHQyyHLhU5befweipMg10AiB0fEOhA2dSjoYmRgjeL5X0PN29+fN+f/TzUUZnowEJng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":922241},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"7f563daf53a4b47248746db427533f592f59e8be","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.6.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","express":"^5.2.1","ioredis":"^5.9.2","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.0.17","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.0.3_1768841112664_0.04025552330835458","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@open-loyalty/mcp-server","version":"1.1.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.1.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"67417f0cd1dd90ec93e37fc31346af4fecb29169","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.1.0.tgz","fileCount":97,"integrity":"sha512-4dlL2WxXgs39dRgvm7gF4s5+1rn9D/+oGP573tkr5355et+wAD0bN6XcWGUujFCKdtjeMaVpbZXF/GJJ56CTdQ==","signatures":[{"sig":"MEUCIQCHwnUJJAqzCBafYf8l2HC/O1FgzBmrdVb3ne5eAqzfBQIgWiNM6t5KA2VsMogd8kioJ9lVxwEdWUWb4DahsEVUEnk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":839830},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"64588178fd6466e1f97058c524aac93234b0671f","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.6.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.0.17","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.1.0_1768936951934_0.6161992530464862","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@open-loyalty/mcp-server","version":"1.3.1","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.3.1","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"cede9ad5e5d6562da13b3fc141ceeb1a6a3bd24e","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.3.1.tgz","fileCount":155,"integrity":"sha512-hb3YKpvZBuWqwT1XMrSywbalp5qdrMiUtek5V6Z76w6LP3QlawXHFIh/mzR7Ei2SYBSQgttBNQ9tDi9QS/KBoA==","signatures":[{"sig":"MEQCICXARCWbo0F2UsXxYTrnZ79DFgghecpq10mlYTv30bvUAiAJ8Hk8AZON1/RUrDKb+KgNcBZkMANyjY2wz/Y599dWig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1312456},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"11e5f53c8b4005e9a310d21e4342e14579fbbda8","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.8.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.3.1_1770250312629_0.8947490290163786","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@open-loyalty/mcp-server","version":"1.3.3","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.3.3","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"f207277359c25c2b3ca6037bb9e8958a76709199","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.3.3.tgz","fileCount":155,"integrity":"sha512-QGO8oN5phrOMBfbYFOBEqiAwhDdi/c8tV9d0m/vvk+34C0Ct97laojza4EbWl+BH5F7RCe5JHS5JBkbxrbgp1Q==","signatures":[{"sig":"MEQCIGhYNwaIaSDRaWmJIA0rP1yZRp2CxeXj2xlDpnpcDzfIAiAamLIkmjK4QDhlpedLR0hqsDFFdSFHIOrkkWC1S7CMtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1356082},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"76fb3125a9b58020329bfca32bd9ce633abee4d6","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.8.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.3.3_1770283179814_0.6204153806140036","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@open-loyalty/mcp-server","version":"1.3.4","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.3.4","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"a59d7828c489b3168beb0fe31506cc96060e7283","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.3.4.tgz","fileCount":155,"integrity":"sha512-8hMP8WioFCJOh0t4DgtBWn1AYl9Fm0ngwhqEO81LwZZZkz26j65ey23UhS77wJpx5Td1IaWOlgLA8RLi3kf6Bw==","signatures":[{"sig":"MEQCIDbRDOWzJDsOgAzQHj4gymHIiIfS45wv5hJWrWLeGpc7AiBiOC0EV67MReQAImpXmIpHgjMBNxaNKxsjB6XJfkuUSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1356983},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"54903fbacb01c3912ba3771ebfff87ecb12e79f6","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.8.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.3.4_1770290337388_0.893787112754824","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"@open-loyalty/mcp-server","version":"1.3.5","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.3.5","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"1a48e74f646a5b901dc198eb97e0b162d2277876","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.3.5.tgz","fileCount":155,"integrity":"sha512-2PHjFByJjfFFSiD7TjEnmH1A1XI+YKdL82gDhKLBSGCK3xPqftVouakSivsWcdnxNW6I4Jz4277RzvesR8qG6g==","signatures":[{"sig":"MEYCIQCr27Tt8TyFoLXDhlm2Jq3JEd61j5dH7hR9MpxYX4APhwIhAPIgNU1CS3k76qp1cD8L8nkatRcUiCrXBnmRbo64p2rQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1358560},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"c9416577efa9ff42a3b8959be5f86cbac5e00862","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.8.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.3.5_1770294176178_0.08766896726444684","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"@open-loyalty/mcp-server","version":"1.3.6","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.3.6","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"cd5fa5048e42644b0b58ee38ff51e054aafadc34","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.3.6.tgz","fileCount":155,"integrity":"sha512-YU303Rxs0Z0wfEq0a3dQxNQ6lEOIadYHlu8zgwwktRp7JJnDILIQlHxUD6yj24JMZKF8PfVLutY9j9CeB9+B1Q==","signatures":[{"sig":"MEUCIBFUjUY79z/U7gn1DTSIXzCIAEn2oK+sml86bMICTcofAiEA1jliFpMHu6iSAUCFEl0fDbAjuZfGaH8eSlarwtsRzGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1358923},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"8d98880e0d589961d6fabb10bb63cff2c5bd734b","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.8.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.3.6_1770295534986_0.8532890435889906","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"@open-loyalty/mcp-server","version":"1.3.7","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.3.7","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"7e84819038611e8495e95aa4115188c6d635fb37","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.3.7.tgz","fileCount":155,"integrity":"sha512-FqyvErX4lTitiDaifS3UVNct53f0+VGZlx3ex1D5Tq+i9YDCQUWTtxH4nLk02rMwmbFxxRDtwzpCEzIzZ5YQIA==","signatures":[{"sig":"MEUCIQCyj6/fma3pot+GBng3p4YUDLkXI4f1O9a0gjo0EnbKngIgXuWYSnEzEOyTeDw06O/l7ZGyY2Qm1rn65kmvpGVROjo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1360034},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0cb1d854c5a9c654611e7a31bbc0550703866ad2","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.8.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.3.7_1770298335658_0.18505246062158887","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@open-loyalty/mcp-server","version":"1.4.1","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.4.1","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"69dd0b3e448a2ba48225e5c6210b061045554e1c","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.4.1.tgz","fileCount":131,"integrity":"sha512-J/vBGsDrnHI7Gjiz25lFdu8jtT7AHb/7bx7VsguhHJaNfqvc5FOpWQc+3HSCM/e05BqMk0xCtOuNrhuuvYBfSQ==","signatures":[{"sig":"MEYCIQDnPevV0n4H1ExbSmlljVB3mH+zEWy+7VuXpwaLmaHrFwIhAPTspHS0C6vUzFqJx8dLpkVrAjV7tif7Q0eIA0cmOeMj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1003487},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"52409418a46cca4187c45cd17f82c4251f403cca","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"11.8.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.4.1_1770360684302_0.7223999303690996","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@open-loyalty/mcp-server","version":"1.5.3","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.5.3","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"8b517c7029f248d00bc9bffafdec78e6f4d633ec","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.5.3.tgz","fileCount":147,"integrity":"sha512-Dc3Fn3w2h94jhTob8V9X/j25i/XRGfp3OVIb8Vvl62mFwk/8CAdlS0G4mgINpKEN92YdMoYjd3ZnRWs26Bz72A==","signatures":[{"sig":"MEYCIQCyNu12dkx+ob/yjNDp+DkF59XkQwXwyrDvk+aNL35+MQIhAKbz69ToPDQ4CukbbT4Oo1kT5RrvIsrPz24U1NcWJD5y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1037045},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"877627d308df4ff39a144c850c8fbbffeff49abd","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"10.8.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.5.3_1770380738893_0.2587218980386199","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@open-loyalty/mcp-server","version":"1.6.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.6.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"a73f16445acfe9ecbead59a53be1ae59825bfaa4","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.6.0.tgz","fileCount":147,"integrity":"sha512-1XI1vJ7EfO+YtI0U2H9ADKz1X1oOzqegpvevB0NopbKiIXHO4bv4hOoSOjxYMJXdkHpxgT1DKi8dU8YLZnuZXg==","signatures":[{"sig":"MEUCIQDO/MpWFmJHpysRLGn67mAys2FAGdothV3NXUVMmvnKKgIgPkcbDf6pYASUb8BQ/e76cEJpPaY7H4nP9ypRgR2u8c0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1038043},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"4ffb2da62540ff1222eacfc07b64ad91dd79c22b","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"10.8.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.6.0_1770387438669_0.46476410760539477","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@open-loyalty/mcp-server","version":"1.7.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.7.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"690f5b1653ae33d8cd41f7e7208682605c825af8","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.7.0.tgz","fileCount":191,"integrity":"sha512-sp4n8qhEePYk9rzo9q6x6zHhtJMcz8BOwCCJ0qdYFyQgaCjAW4zCwsAnG2pCSFLdX/X7OA/5SerB3xW2qZUsVg==","signatures":[{"sig":"MEYCIQD/6Km1RLrEhxRU7f5hS3uPhUSUm+Xh07PFEjDZIw2/vgIhANC4aY+rfo3b5sjsqkOgPrT4GSumIw0I0BI+b6syFKU4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1135170},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0f979e9bc4b2322125ad9e1bed289591603c3d93","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"10.8.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.7.0_1770452295188_0.6888584293954818","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@open-loyalty/mcp-server","version":"1.8.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.8.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"5fd85624ac09bdf5a9333350037c86573fde1b43","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.8.0.tgz","fileCount":223,"integrity":"sha512-3haSgnY5XgIpTspL/2cBhTMB6LrvxvWx0NrCoTmnum1k0PMJ4qvaBNroUCGQJxKsmJA+EJs+N9c3XTl/tiCSag==","signatures":[{"sig":"MEYCIQD6co+YZv/4jIRYZKFx9zLtqcKBXMa9m7giLBFR5F1AFgIhAP102AEgpmQadrD6pzCQkb6TwdMIiBPy8OToyN7h3LV1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3509982},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"065c36685c8ca8e8d5d4dacf774b4c60cca7e3d4","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"10.8.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.8.0_1770464731422_0.6210044363167968","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@open-loyalty/mcp-server","version":"1.12.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.12.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js","openloyalty-mcp-http":"dist/http.js"},"dist":{"shasum":"84dc64bdfd06ba746abdebee251c2e88e1c382a5","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.12.0.tgz","fileCount":255,"integrity":"sha512-PtznpCy2o9fk9q+57hhjWR1h8TNwbPfrLOa74QO1v6Gi0ffedKKTq0xJ6C+73gIeXHy/tzhU+KNzshT7MDY+rw==","signatures":[{"sig":"MEUCIQD50FoolCiijReQQeZ2hUq6mjHdCO0eAanR+JIYzhfSngIgSxfyap93ndgcrqNfy9oiPzmGkb+/VW4tHN4FZIHBvwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3616417},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0e3c7b59d94a76401394b5632223fc871df05071","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","dev:http":"tsx src/http.ts","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","start:http":"node dist/http.js","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"10.8.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","axios":"^1.6.0","dotenv":"^17.2.3","helmet":"^8.1.0","express":"^5.2.1","ioredis":"^5.9.2","form-data":"^4.0.0","express-rate-limit":"^8.2.1","@modelcontextprotocol/sdk":"^1.0.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/cors":"^2.8.19","@types/node":"^20.10.0","@types/express":"^5.0.6","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.12.0_1771836939074_0.4303051901771173","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@open-loyalty/mcp-server","version":"1.13.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.13.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"d2eae8423deca8fe95c857ed2577769fae272540","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.13.0.tgz","fileCount":249,"integrity":"sha512-Ro3voHvdXNVV6fP0VwdEeURDfDBsilc076MnYN3r8yZZeuZdkIJel3BcERfyFIJ6oF/RGepf4SoCBQfQ26yxsw==","signatures":[{"sig":"MEUCIFrFirAAIzeebZ8kSxhz10vIRQ0Gz8zEKdCOesXcndbOAiEAlpsUdlBgifp/qfu89kD1TichU6OrNTzvzx9cJG7s8jo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3583544},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"335b0f4455987f51f9de13fb583a9a960a8b5e69","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"10.8.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.0.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.13.0_1771843769937_0.24208695731168772","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@open-loyalty/mcp-server","version":"1.14.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.14.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"8ecf42c16c0ae0754c29a15f02b5b814d1e20bbd","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.14.0.tgz","fileCount":249,"integrity":"sha512-iqYndXKI1LUe1Qc4HGw/C+arGaUb3RqJLr9uNFGsTMgB3BCN38zScdgJviiNBBGivp/O9nWXiGTnKk2GsgpN8w==","signatures":[{"sig":"MEQCIECIjeP70iXkkGn5OQY6rVVhMLpXMCbQQm4U6cKlJG/xAiB6wCVmcbxMLDoddLszFYZlRT+Jee+THJeDy18hs3NMQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3590662},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"35bbfea489c218a986b3a124b84f601537200089","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"10.8.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.0.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.14.0_1771851385664_0.5566899781095509","host":"s3://npm-registry-packages-npm-production"}},"1.14.1":{"name":"@open-loyalty/mcp-server","version":"1.14.1","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.14.1","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"68fe326cc03ff1311a2f99ae8fd24d060340760f","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.14.1.tgz","fileCount":249,"integrity":"sha512-BYB2i+O7h3tvl1+GmvRbDQyUuRWggGAgqdXtEmYUkRtIKK50YEIq5xwMmx3IOR/2zLw1CiqsI8+z3kUPPgGJyg==","signatures":[{"sig":"MEYCIQDx7Ce4DtUouw0qWcEmnz9tHbNxUWbjnSFRuPytmRlgFwIhAPOnETynIENtoE7YUVCM9O4pR79plvytpsE/kA0n7PT7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3607202},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"d0fa69a2d52d1bf913c3c8239db530c32b7015aa","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"10.8.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.14.1_1772786883846_0.0034853960268503847","host":"s3://npm-registry-packages-npm-production"}},"1.16.1":{"name":"@open-loyalty/mcp-server","version":"1.16.1","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.16.1","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"37b6ec8b759e22b3d89d5ec1ce250229fe890074","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.16.1.tgz","fileCount":251,"integrity":"sha512-BeLbjFgR0bpH6J1E5Zi6oAEFEZ2Fsz70KCt5w09ZE1T7slB/BAh0AV/DdOZcuH4BtiNzbUm+neixK5DxtCv89w==","signatures":[{"sig":"MEYCIQDZCborZZz00jK61YkCg0pSZzkYou0cl/XqSOMgjCOeVAIhAKkwOqzY5CFr5PxigBbh47vmFAV5/p6WM6vy0yJLA6Nh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3631350},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"2b1b6d13f47ab911ca95cbd419a16d6cdc45d996","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcindyguda","email":"marcin@dyguda.com"},"_npmVersion":"10.8.2","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.16.1_1777974983739_0.5777512679427346","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@open-loyalty/mcp-server","version":"1.18.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.18.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"c650abc9a03eeb517804d17bb9d33a91c476e0f7","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.18.0.tgz","fileCount":247,"integrity":"sha512-AeCPbRGb0v19GsJoIJgbY8j7edTnpIGoHmcrMR7nhO4VtsNM0B9wDf2+j85P3/at1MO9Xvbv1k0WuUrJlD4Jrg==","signatures":[{"sig":"MEUCIElz/wN6W8Q2PGg1I9zsJhLvZQanovmS5JWUC30tbtLcAiEA3kyyqkDWjpe/vFknbylxGLBvuR5CoCwmyY2BYCdR3sg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3635983},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"fe8496511ed09a22c2bd10aad65d6a09124ccd34","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.17.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.18.0_1781528899993_0.9489407573705917","host":"s3://npm-registry-packages-npm-production"}},"1.18.1":{"name":"@open-loyalty/mcp-server","version":"1.18.1","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.18.1","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"09d2bb40849783b494129c32370f971d377cb269","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.18.1.tgz","fileCount":247,"integrity":"sha512-D1wev8nJA+84Qj44dZMfcmy289KKKfiSyN0SGJwfDM8KoXTdDSa3LUY/e+q2fDtDuxd5wabrUDbfHYE+boaqew==","signatures":[{"sig":"MEYCIQCDySq4t2m71zzSE0BzSAa/1n0dbVGavLyqKB/W9iH6kAIhAMRGgxcJxi8o43UDzLuZbX2VBzv8WTHTWWvqZitENFZS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3641371},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"ea0631e2ef3793df2da7410a195b1512e5337354","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.17.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.18.1_1781590385709_0.1689521298360388","host":"s3://npm-registry-packages-npm-production"}},"1.18.2":{"name":"@open-loyalty/mcp-server","version":"1.18.2","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.18.2","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"8d851a920926321bccb3a4bbc92ca46a2080a020","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.18.2.tgz","fileCount":248,"integrity":"sha512-3GI8zm9lnQ/K/7F8qgi7d9/mq3cw4XIoOqklxi7vZc+rhamewlT5KswaUMLh+H9YsoF06aCfVj+g7nLNkfWJkw==","signatures":[{"sig":"MEQCIAed9oKwcCJ8biHgV4pnuCsy1FJjB3WfGN9ItKJb1S/EAiBQ2tTNBq/Xvz1VHbJpS5v0Tf6+cPEePnjVAX5RlsoaAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162524993},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"ccfbb36d8b9008a8d2b02e4b5edfa803cf54d3f8","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.17.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.18.2_1782043792911_0.743381437895982","host":"s3://npm-registry-packages-npm-production"}},"1.18.3":{"name":"@open-loyalty/mcp-server","version":"1.18.3","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.18.3","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"f502f7e17689a7bd741e6838550acc6efec89842","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.18.3.tgz","fileCount":248,"integrity":"sha512-lt8xR4npE4sIHtBE39E3hOLWMdVTo2QW7Dk/ilytGtKCYTBhNADh5wHltE81hTq7Dd2v+k5jHX2bpDBIF4C3FQ==","signatures":[{"sig":"MEUCIQDdsRFwwXXU/4WKAdwZglAgIkY9Lm9sYFIG0tYcZbmImAIgdd8bZN3OAcAlAmeF2Hzui+tUcylkpCST/6CRHtrjBJA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10021679},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"1d249ab141aa5e14e5405a79e201dd00d7d82fd0","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.17.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.18.3_1782044248020_0.5348308320579573","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@open-loyalty/mcp-server","version":"1.19.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.19.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"a70edd00c85995a36ccae642aa9ec63cfbb7b443","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.19.0.tgz","fileCount":248,"integrity":"sha512-cnuymmL/vOKKDrghIups6LpW9v0bp2Qt2LuCQ9XWeklyDgRt56p9aaA2Cd16rEoavfmx5vDZgjjCy3nMFGi1+A==","signatures":[{"sig":"MEQCIFkoWjd5sSkki4msrWdJtcz+4D9QP3iWBUpumMC2GoNgAiBn/INZGaVDwkjsTWZEB57+ZivvM9kpj3QD4SRJM6zHpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10028682},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"1aba324358c0fba637cd8dba5d01e4ca9b5c9e88","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.17.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.19.0_1782401043699_0.7688079279558433","host":"s3://npm-registry-packages-npm-production"}},"1.19.1":{"name":"@open-loyalty/mcp-server","version":"1.19.1","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.19.1","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"86275c120d8c5c69b06729e277cc54bc330b6716","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.19.1.tgz","fileCount":250,"integrity":"sha512-S5qFIfqvgLiIn1QfDIZAgKU1FT8WMszBnw9T2HrtORcHlbBx+129n1ZGNlXtQZBjSAhz4QX5u82Be9lA7BYeYA==","signatures":[{"sig":"MEUCIBqJRIwYF7MEQQyDAxe60/YC3vjkqb947ArDoUR3vq/6AiEAgcznl70APnVVVn9OAYWflwo45LYSc/gSYs0XFlzVEjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10041374},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"30b41727b8b3243afefd4158047f238369f79f83","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.17.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.19.1_1782404848376_0.01346594183719918","host":"s3://npm-registry-packages-npm-production"}},"1.19.2":{"name":"@open-loyalty/mcp-server","version":"1.19.2","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.19.2","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"567f85e88238f5b1e5a2f2960202826e3fdd51e3","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.19.2.tgz","fileCount":250,"integrity":"sha512-nOyfWhhaXyIS9XytKJWp07LltJQScUoam+lsrcwrBEfZRDS2UttW3ygolTWbumfHEm+VCptNU7GbuuXohAjFOw==","signatures":[{"sig":"MEUCIQCJyyilAI6oWOlddP1Orq4Hqg7FOHqymlAjgcXaF0yrlAIgSTZxFgAr7ftdk/vuibhFl4DCK441t7bLscGwnDhD2DI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10046722},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"19606b0feeb3324d70d1d9916c1d733bfb0054a9","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.17.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.19.2_1782473636332_0.3987668927486243","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@open-loyalty/mcp-server","version":"1.20.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.20.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"c0acd17762cc24d89abf0f7ef5c99d71704e6012","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.20.0.tgz","fileCount":234,"integrity":"sha512-IFZpcdMhT3jEEiJhJUMep7K4pT0J4M+orJisVNPZuK3S65KgTAUpUv32v5E55FrCrlks8+idw61gA0U3JGhmHg==","signatures":[{"sig":"MEYCIQCnMx3lJE4svOsZSVJSHXuStmoJ0S55RSxbFh2NUp1cjAIhAO4ZrS2yTfRX13X8jXYecG3EbaMjO8R/HNiy+oYKwe+O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9980443},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"5e65b6deee6f046b01c52ad5b907fd2cb7d84876","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.17.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.20.0_1782478544393_0.9238590257126089","host":"s3://npm-registry-packages-npm-production"}},"1.20.1":{"name":"@open-loyalty/mcp-server","version":"1.20.1","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.20.1","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"7e298e211131811a28da9daa9847f6af90504bcd","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.20.1.tgz","fileCount":234,"integrity":"sha512-TtWMD4JuPSXgA8bs4MoyvBeXs3Ldu3465YVGUvGDkzrKrxh1ZKwPJweFeUmRejp/wsMAxf2JSbXs3KuuvUJVnw==","signatures":[{"sig":"MEYCIQCJCxpStv4YlYBwfT1dCPS/HUO6x/B5qBNPbFEIsy8KOAIhAOOSBE3SlLwdygxZ7tZS5Pv/NkKI67/R82emUp+4h837","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9976693},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"7f1d700b6422b885b9ccc63ff0aa7ddf49b2980d","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.17.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.20.1_1782730860614_0.9504429972172175","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"@open-loyalty/mcp-server","version":"1.21.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.21.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"c89f70fe5fa6079f2faf9972ac1987fd57216691","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.21.0.tgz","fileCount":240,"integrity":"sha512-S51qVLG6mR0B3Scbn5pGutpNAz61aYoI2V0rzE5xZ+Ir1PmtUSqVE9csUOwdqvbHSEgG/6TIX1uOvrmJjqKwJw==","signatures":[{"sig":"MEYCIQD7Vu2v/NBpL38+C334bAPgqVabkLkkIayXdDSC7cC6swIhAIhE77Lz2DeNZlksIx9aMf9lfnaUca89VroRThyOdRw5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9996845},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"1450f23431ffe2b5ad39ad8d9b0d1844b522048e","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.18.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.21.0_1782824866178_0.17245823861426302","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"@open-loyalty/mcp-server","version":"1.23.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.23.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"cc9c7602119939c40bd961d81f867e5e6b2baf84","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.23.0.tgz","fileCount":242,"integrity":"sha512-G9PMaRODXmTyT80kAEQQN2Jl1iOdS/Fw4by/NOP4TbDUE+ePjoKmJhQixJ7BMnpguKzTVo9hMYw6a9IUS2lHMg==","signatures":[{"sig":"MEQCIGR5h8bE6buXti1wAD6ytxJ+4OXVBbHCr9k35YIhsgtKAiAjxrIrO5Q92F+GbDeen1ohYyVVsyo9ya5WykNoAMZ1Xg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10006016},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"10cec3ef1b0becf686f0671faa895308f1a1287b","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","sync:manifest":"node scripts/sync-manifest-version.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.18.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.23.0_1782829955252_0.10442508179426002","host":"s3://npm-registry-packages-npm-production"}},"1.23.1":{"name":"@open-loyalty/mcp-server","version":"1.23.1","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.23.1","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"b25f3c347217765bf30a02d943b223a9f292cd7f","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.23.1.tgz","fileCount":242,"integrity":"sha512-I2jJm/I1iy/UVDNesUlBamZRIMkaE6zca/ama7GK/RXURmF5ib1Vk+bQLkznQyKr4XnkWCP6xa/cJNHvKtC51A==","signatures":[{"sig":"MEQCIFaQJyxMJsiJi0BMv+S8gpXBFZcCOguJ3pSxz8kq6c1dAiA8m+8oxmW9hxWU3oHXhDXz31M/8Zb6etywm3hQ6gKbxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10018770},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"41a1dc43df360958a629bb3a238dd892f79b12a3","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","sync:manifest":"tsx scripts/sync-manifest.mjs","test:coverage":"vitest run --coverage","check:manifest":"tsx scripts/sync-manifest.mjs --check","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.18.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.23.1_1782831256959_0.4821604430606867","host":"s3://npm-registry-packages-npm-production"}},"1.23.2":{"name":"@open-loyalty/mcp-server","version":"1.23.2","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.23.2","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"e5093f27a11365ec07989a9ae12e0aa7380153ee","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.23.2.tgz","fileCount":242,"integrity":"sha512-boySyr8bA4sOy1KRHMMIx0Zb4DR6wwXgMIjYQaYRSpidpfMzAHnxjoCkWUblAh0l0yZxO21vedWXX5CE7bZ9pg==","signatures":[{"sig":"MEYCIQDA1dViFSeYVybs3eYc1Ueh1weAwUcmy1i2s4h52DLfvAIhAKYmMgE3ulmX6U8e260jz++L3ta05zw2Ujjq17rtZfXG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9981349},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0cb0ffd1f422e5c3a55bbf8ade262a4697e66331","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && npx --yes @anthropic-ai/mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","sync:manifest":"tsx scripts/sync-manifest.mjs","test:coverage":"vitest run --coverage","check:manifest":"tsx scripts/sync-manifest.mjs --check","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.18.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.23.2_1782833590732_0.3334022684571327","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"@open-loyalty/mcp-server","version":"1.24.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.24.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"c293774750975b65c0376c11b1b51e1db58ab0e6","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.24.0.tgz","fileCount":242,"integrity":"sha512-DatnjvKQjYnWGgvblF8IRYqa9IVWXkhpMPLhJ8QwWjkgUuMjsLmgFkWkdG8iLvUXszSHbF8cmHATopU/J51aKQ==","signatures":[{"sig":"MEQCIAPWrlauDBVxIJR0QSTPu3SstgFmaKePa5OxfgK1Bzu7AiAW45AhkFYGYC0BISV0sdd5B0kND+nXZ7KHlECnNvZC1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9988277},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"4e76ffd39e7668f0a5ea851eb4ea2147c58e3973","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && npx --yes @anthropic-ai/mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","sync:manifest":"tsx scripts/sync-manifest.mjs","test:coverage":"vitest run --coverage","check:manifest":"tsx scripts/sync-manifest.mjs --check","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.18.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/ext-apps":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.24.0_1782892939507_0.466618623449814","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"@open-loyalty/mcp-server","version":"1.25.0","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.25.0","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"402e3d05cdb0110af63be51cd6030925133e5c9e","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.25.0.tgz","fileCount":292,"integrity":"sha512-C9zgzns43gLUhG8e1sfreur6AB1jbvSkCVBXNGPJu3SnLHuNEUZF/mCRP4wJrQWVSm2NxjU+OWririUySlo2Kg==","signatures":[{"sig":"MEUCIGUbuwA9mtNb+4VyOlhH5xoA3wcFMyarD2yWIUTTD+HIAiEArZ9XN7tdszZ2qyluptCwM46RRhBZ41/cObBr+C73efw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9377672},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"634d21f707f91664d035ee7eca9a0858e12453ac","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && npx --yes @anthropic-ai/mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest --watch","sync:manifest":"tsx scripts/sync-manifest.mjs","test:coverage":"vitest run --coverage","check:manifest":"tsx scripts/sync-manifest.mjs --check","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.19.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.30.0","@modelcontextprotocol/ext-apps":"^1.7.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.25.0_1786953388113_0.9574286285127411","host":"s3://npm-registry-packages-npm-production"}},"1.26.1":{"name":"@open-loyalty/mcp-server","version":"1.26.1","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.26.1","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"25bd2d204663040b88c44fba56b5ba3f8518e8c2","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.26.1.tgz","fileCount":300,"integrity":"sha512-2Pibb29Tzr0GOOe70qypB8KoUbPzzvrjD6F/0qTeAmmvbTVGjpXH3m7X6idJyhmocya6lhIoRqAXGXRn5C2nvQ==","signatures":[{"sig":"MEUCIGwlCvcIFh0CRp1/qdiDY078ke8ANek6UolOJoPwWa0zAiEAvlfmRHvlCIi0KEISTwRFotebSdJ6NmXJojWursz7TN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9493499},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"f19f7c1ba91dd38e261244823e3be69c95df028a","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && npx --yes @anthropic-ai/mcpb pack","typecheck":"tsc --noEmit","spec:check":"node scripts/spec-check.mjs","test:watch":"vitest --watch","spec:report":"node scripts/spec-check.mjs --report","sync:manifest":"tsx scripts/sync-manifest.mjs","test:coverage":"vitest run --coverage","check:manifest":"tsx scripts/sync-manifest.mjs --check","prepublishOnly":"npm run build","spec:update-allowlist":"node scripts/spec-check.mjs --update-allowlist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.19.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.30.0","@modelcontextprotocol/ext-apps":"^1.7.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.26.1_1786969266518_0.07685457900967885","host":"s3://npm-registry-packages-npm-production"}},"1.26.2":{"name":"@open-loyalty/mcp-server","version":"1.26.2","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.26.2","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"5c55c1a839e4e03a83a846405b2dc7bd909f6df3","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.26.2.tgz","fileCount":300,"integrity":"sha512-qCsAtQV39lm+37Yjor+OULHCHHElGPi4GeQjgLAf9wtSZw6Oi3czwkLNQFsKUTLoSGO7V0ol+rNWsLmzHKe+MQ==","signatures":[{"sig":"MEYCIQDFx+QK9/I+qT5FxQZJC9piyngOjXyhNudQ7sCSje1gzgIhAOIz9YD4kmaOXLbIuvZxLThgORdx+B01gLLTmiNOmpLL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9495067},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"c903f6b75c69cde1421831d389bc52bc5a3af78f","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && npx --yes @anthropic-ai/mcpb pack","typecheck":"tsc --noEmit","spec:check":"node scripts/spec-check.mjs","test:watch":"vitest --watch","spec:report":"node scripts/spec-check.mjs --report","sync:manifest":"tsx scripts/sync-manifest.mjs","test:coverage":"vitest run --coverage","check:manifest":"tsx scripts/sync-manifest.mjs --check","prepublishOnly":"npm run build","spec:update-allowlist":"node scripts/spec-check.mjs --update-allowlist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.19.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.30.0","@modelcontextprotocol/ext-apps":"^1.7.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.26.2_1787566057874_0.12387458237293791","host":"s3://npm-registry-packages-npm-production"}},"1.26.3":{"name":"@open-loyalty/mcp-server","version":"1.26.3","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.26.3","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"0d28bf2f6950d3d71164bb3f83bf2c3881409876","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.26.3.tgz","fileCount":300,"integrity":"sha512-A1htShYx3ORrqXWRLzWyUysYCVlYOGROiGm8DhgpHwUVZuBFyAARSoi8n5pAxWugUC+GutEluWGY+ULxexYf1A==","signatures":[{"sig":"MEUCIDtcqhveys9558LDuf9wveU3ayYf6z8nXCyoiQjFNObcAiEA4NG1JyjAQx9DGqHn8xql4YLqgCy8Yj7F3V/Hfe5JvWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9495076},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"adf021b7bbd7f297b8a6c8e4a142d96ac1fc73e4","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && npx --yes @anthropic-ai/mcpb pack","typecheck":"tsc --noEmit","spec:check":"node scripts/spec-check.mjs","test:watch":"vitest --watch","spec:report":"node scripts/spec-check.mjs --report","sync:manifest":"tsx scripts/sync-manifest.mjs","test:coverage":"vitest run --coverage","check:manifest":"tsx scripts/sync-manifest.mjs --check","prepublishOnly":"npm run build","spec:update-allowlist":"node scripts/spec-check.mjs --update-allowlist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.19.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"^1.30.0","@modelcontextprotocol/ext-apps":"^1.7.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.26.3_1787566581755_0.3888755497840246","host":"s3://npm-registry-packages-npm-production"}},"1.26.5":{"name":"@open-loyalty/mcp-server","version":"1.26.5","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.26.5","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"2a3bbda3bfaaf19fe21532425d41a3af9b502cae","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.26.5.tgz","fileCount":302,"integrity":"sha512-qkrewBFemtSPAQDq+tl/o1YsVogcoM6/3wB1/0moce8dX6n8tx4OS99iasO7XF8iZys/vGpIeWQXmTSMNm3EYw==","signatures":[{"sig":"MEUCIQCSzdNfUwCxaLjed+A9HGkZ7qNZhlrKVfGeTf3EJV47lQIgU//UibSinsA79ZKJ1M9HgUH0gkDchQh2bN31JAUkjdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9532065},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"e7ad02a4991e9bc50ff634d0695748e051b68aae","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && npx --yes @anthropic-ai/mcpb pack","test:live":"npm run build && OPENLOYALTY_LIVE_TESTS=1 vitest run tests/live","typecheck":"tsc --noEmit","spec:check":"node scripts/spec-check.mjs","test:watch":"vitest --watch","spec:report":"node scripts/spec-check.mjs --report","sync:manifest":"tsx scripts/sync-manifest.mjs","test:coverage":"vitest run --coverage","check:manifest":"tsx scripts/sync-manifest.mjs --check","prepublishOnly":"npm run build","spec:update-allowlist":"node scripts/spec-check.mjs --update-allowlist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.19.0","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"~1.30.0","@modelcontextprotocol/ext-apps":"^1.7.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.26.5_1787584839100_0.739915517023553","host":"s3://npm-registry-packages-npm-production"}},"1.26.6":{"name":"@open-loyalty/mcp-server","version":"1.26.6","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","_id":"@open-loyalty/mcp-server@1.26.6","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"2268cbfee041aebc78a1cfd303c9e94ff620ff9d","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.26.6.tgz","fileCount":306,"integrity":"sha512-tr9c6dnj9VLhoNZia7NnSiUW83/pBpkL+wdCm0btojavrflmHoVpgKLj5wBprTDYwOcmCm49vg+5KwfT3x1bSA==","signatures":[{"sig":"MEUCIF8cKPLtHX3397euBfc1arH8cVThzEyG95zJ2qjUjQR8AiEA+KCxKblWV0LlV4ylWzLiPUFyizbn9lrh9wFeDK01z2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9543694},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"ff9506d48ff8d0e625f657321c67eeb561652de7","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && npx --yes @anthropic-ai/mcpb pack","test:live":"npm run build && OPENLOYALTY_LIVE_TESTS=1 vitest run tests/live","typecheck":"tsc --noEmit","spec:check":"node scripts/spec-check.mjs","test:watch":"vitest --watch","spec:report":"node scripts/spec-check.mjs --report","sync:manifest":"tsx scripts/sync-manifest.mjs","test:coverage":"vitest run --coverage","check:manifest":"tsx scripts/sync-manifest.mjs --check","prepublishOnly":"npm run build","spec:update-allowlist":"node scripts/spec-check.mjs --update-allowlist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"_npmVersion":"11.19.1","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"~1.30.0","@modelcontextprotocol/ext-apps":"^1.7.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.26.6_1789122841433_0.9146799445491955","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"_id":"@open-loyalty/mcp-server@1.27.0","bin":{"openloyalty-mcp":"dist/index.js"},"dist":{"shasum":"fae3501a8ef21272f5df0533982aaa837879a2b6","tarball":"https://registry.npmjs.org/@open-loyalty/mcp-server/-/mcp-server-1.27.0.tgz","fileCount":310,"integrity":"sha512-GVmwOPh7kGvXol573TNTOQ7B9PnLL1rMnl2rlefuYZ2SUKPTzJShktbY6A8sj4WKLRp6ihwQGNybZAKPKdDIkg==","signatures":[{"sig":"MEUCIQCWjzHqshACjjlg8cRaVr3bRZYu6dC+15o/IMMSnhZdegIgNS5yvkOQRnqTcxkRWjaMGe4NsVgBZ0DX0e4D2u5/b2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCsqr5nH+nXruDCtcAhJhNxfLn61xwcRBy6PZIxIgD3/QIhALJMqZi/Y84XcyAh+DGfKzmpDJmRVWJmAPBrkCjBGLNv"}],"unpackedSize":9531034},"main":"dist/index.js","name":"@open-loyalty/mcp-server","type":"module","types":"./dist/index.d.ts","author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"engines":{"node":">=18"},"gitHead":"3daa982c1fa99d75ccc5e736aede812df95ab725","license":"MIT","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","test":"vitest","build":"tsc && npm run build:ui","start":"node dist/index.js","dev:ui":"node scripts/build-ui.mjs --watch","build:ui":"node scripts/build-ui.mjs","lint:fix":"eslint src/ --fix","test:run":"vitest run","pack:mcpb":"npm run build && npm run sync:manifest && npx --yes @anthropic-ai/mcpb pack","test:live":"npm run build && OPENLOYALTY_LIVE_TESTS=1 vitest run tests/live","typecheck":"tsc --noEmit","spec:check":"node scripts/spec-check.mjs","test:watch":"vitest --watch","spec:report":"node scripts/spec-check.mjs --report","sync:manifest":"tsx scripts/sync-manifest.mjs","test:coverage":"vitest run --coverage","check:manifest":"tsx scripts/sync-manifest.mjs --check","prepublishOnly":"npm run build","spec:update-allowlist":"node scripts/spec-check.mjs --update-allowlist"},"version":"1.27.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7019454e-b17c-4f9b-8457-e2d500d7578e"}},"keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"_npmVersion":"11.19.1","description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","directories":{},"maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^17.2.3","form-data":"^4.0.0","@modelcontextprotocol/sdk":"~1.30.0","@modelcontextprotocol/ext-apps":"^1.7.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^7.3.1","eslint":"^9.39.2","vitest":"^4.0.17","@eslint/js":"^9.39.2","typescript":"^5.3.0","@types/node":"^20.10.0","typescript-eslint":"^8.53.1","axios-mock-adapter":"^2.1.0","@vitest/coverage-v8":"^4.0.17","vite-plugin-singlefile":"^2.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_1.27.0_1789920724172_0.18241979209314585"}}},"time":{"created":"2026-01-19T08:20:17.203Z","modified":"2026-09-20T16:12:04.631Z","1.0.0":"2026-01-19T08:20:17.413Z","1.0.1":"2026-01-19T15:40:24.221Z","1.0.2":"2026-01-19T15:42:59.977Z","1.0.3":"2026-01-19T16:45:12.829Z","1.1.0":"2026-01-20T19:22:32.085Z","1.3.1":"2026-02-05T00:11:52.776Z","1.3.3":"2026-02-05T09:19:39.990Z","1.3.4":"2026-02-05T11:18:57.594Z","1.3.5":"2026-02-05T12:22:56.394Z","1.3.6":"2026-02-05T12:45:35.182Z","1.3.7":"2026-02-05T13:32:15.876Z","1.4.1":"2026-02-06T06:51:24.483Z","1.5.3":"2026-02-06T12:25:39.090Z","1.6.0":"2026-02-06T14:17:18.867Z","1.7.0":"2026-02-07T08:18:15.347Z","1.8.0":"2026-02-07T11:45:31.607Z","1.12.0":"2026-02-23T08:55:39.293Z","1.13.0":"2026-02-23T10:49:30.177Z","1.14.0":"2026-02-23T12:56:25.857Z","1.14.1":"2026-03-06T08:48:04.016Z","1.16.1":"2026-05-05T09:56:23.962Z","1.18.0":"2026-06-15T13:08:20.191Z","1.18.1":"2026-06-16T06:13:05.904Z","1.18.2":"2026-06-21T12:09:54.984Z","1.18.3":"2026-06-21T12:17:28.268Z","1.19.0":"2026-06-25T15:24:04.000Z","1.19.1":"2026-06-25T16:27:28.639Z","1.19.2":"2026-06-26T11:33:56.561Z","1.20.0":"2026-06-26T12:55:44.661Z","1.20.1":"2026-06-29T11:01:00.863Z","1.21.0":"2026-06-30T13:07:46.405Z","1.23.0":"2026-06-30T14:32:35.507Z","1.23.1":"2026-06-30T14:54:17.190Z","1.23.2":"2026-06-30T15:33:10.977Z","1.24.0":"2026-07-01T08:02:19.790Z","1.25.0":"2026-08-17T07:56:28.414Z","1.26.1":"2026-08-17T12:21:06.831Z","1.26.2":"2026-08-24T10:07:38.126Z","1.26.3":"2026-08-24T10:16:21.997Z","1.26.5":"2026-08-24T15:20:39.335Z","1.26.6":"2026-09-11T10:34:01.758Z","1.27.0":"2026-09-20T16:12:04.442Z"},"author":{"name":"Marcin Dyguda","email":"md@openloyalty.io"},"license":"MIT","keywords":["mcp","model-context-protocol","open-loyalty","loyalty","loyalty-program","claude","ai","anthropic"],"description":"MCP server for Open Loyalty API - enables AI agents to manage loyalty programs, members, points, rewards, and transactions","maintainers":[{"name":"marcindyguda","email":"marcin@dyguda.com"}],"readme":"# Open Loyalty MCP Server\n\n[![Latest npm release](https://img.shields.io/npm/v/%40open-loyalty%2Fmcp-server)](https://www.npmjs.com/package/@open-loyalty/mcp-server)\n\nMCP (Model Context Protocol) server for interacting with Open Loyalty API. This server enables AI agents like Claude to manage loyalty programs, members, points, rewards, and transactions.\n\nPublished on npm as [`@open-loyalty/mcp-server`](https://www.npmjs.com/package/@open-loyalty/mcp-server).\nThe badge above shows the latest published release. Install with `@latest` to\nselect that release, or replace it with a specific version to pin your setup.\n\n## Prerequisites\n\n- Node.js 18 or later\n- An Open Loyalty account with API access\n\n## Installation\n\n### Via npm (Recommended)\n\n```bash\nnpm install -g @open-loyalty/mcp-server@latest\n```\n\nOr use directly with npx (no installation required):\n\n```bash\nnpx -y @open-loyalty/mcp-server@latest\n```\n\n### Claude Desktop one-click install (.mcpb)\n\nThe easiest way to install for Claude Desktop is the prebuilt `.mcpb` bundle. It includes the server and its dependencies, so no Node.js or npm setup is required.\n\n1. Download the latest bundle: [openloyalty-mcp.mcpb](https://unpkg.com/@open-loyalty/mcp-server@latest/openloyalty-mcp.mcpb)\n2. Open the downloaded file, or drag it into the Extensions/Settings area of Claude Desktop to install it.\n3. When prompted, enter your Open Loyalty API URL and API token.\n\nThe bundle is also available through [jsDelivr](https://cdn.jsdelivr.net/npm/@open-loyalty/mcp-server@latest/openloyalty-mcp.mcpb).\nTo pin a specific release, replace `@latest` in either download URL with the\nversion you want to install.\n\n### Updating an existing installation\n\n- **Global npm installation:** rerun `npm install -g @open-loyalty/mcp-server@latest`.\n- **npx:** use `@open-loyalty/mcp-server@latest` in your MCP client's server\n  configuration, as shown below. A configuration pinned to a version keeps\n  using that version until you change it.\n- **Claude Desktop bundle:** download the latest `.mcpb` above and install it\n  again to update the extension.\n\nAfter updating, restart the MCP server or your MCP client to load the new code.\nAn already running server continues using its loaded version. To check the\nlatest version available on npm, run:\n\n```bash\nnpm view @open-loyalty/mcp-server version\n```\n\nFor a global installation, check the installed version with:\n\n```bash\nnpm ls -g @open-loyalty/mcp-server --depth=0\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/OpenLoyalty/openloyalty-mcp.git\ncd openloyalty-mcp/openloyalty-mcp\nnpm install\nnpm run build\n```\n\n## Configuration\n\nThe server requires the following environment variables:\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `OPENLOYALTY_API_URL` | Yes | Your Open Loyalty API URL (e.g., `https://api.openloyalty.io`) |\n| `OPENLOYALTY_API_TOKEN` | Yes | Your API authentication token |\n| `OPENLOYALTY_DEFAULT_STORE_CODE` | No | Pins every call to one store code. Leave empty for multi-tenant use, where `storeCode` is required per call. |\n| `OPENLOYALTY_CONFIRM_TENANT_WRITES` | No | `true` asks the user to confirm the tenant before each write. Multi-tenant mode only; fails closed. |\n\n### Store code (tenant) modes\n\n`OPENLOYALTY_DEFAULT_STORE_CODE` decides how the store code — Open Loyalty's\ntenant identifier — is chosen. There is no implicit `default` fallback.\n\n- **Pinned (value set):** tenant-scoped calls run against that store code. A\n  call that passes a *different* code is rejected rather than silently\n  redirected, so a mismatch is visible instead of writing to the wrong tenant.\n- **Multi-tenant (left empty):** `storeCode` is a **required** parameter on\n  every tenant-scoped tool. The MCP SDK validates it against the advertised\n  schema before the handler runs, so a call without a tenant never reaches the\n  API. The server also instructs the agent to ask which tenant to work in\n  before its first call, to carry that code through the conversation, and to\n  switch whenever the user names a different tenant (\"add a member in tenant\n  XYZ\"). `ol_store_list` lists the available codes.\n\nStore and language management (`ol_store_*`, `ol_language_*`) is global and\ntakes no `storeCode` in either mode — a pin is not an authorization boundary\naround the whole server.\n\nEnforcement, beyond the prompt:\n\n| Mechanism | What it catches |\n|---|---|\n| `storeCode` required in the advertised schema (multi-tenant) | A call with no tenant — rejected on the wire, no API request |\n| Mismatch check in `getStoreCode()` (pinned) | A call naming a tenant other than the pin — rejected, not rewritten |\n| `Applied to store code: <code>` block on every write result | A write that landed in the wrong tenant — visible in the result |\n| Widgets carry the tenant from the data they rendered | Button-triggered writes (redeem, create) inheriting the wrong tenant |\n| `OPENLOYALTY_CONFIRM_TENANT_WRITES=true` (opt-in) | A valid-but-wrong tenant — the user confirms the store before each write |\n\nWithout the confirmation setting, a valid-but-wrong store code supplied by the\nagent still goes through; the write echo is what surfaces it, after the fact.\n\n### Confirm the tenant before each write (optional)\n\n`OPENLOYALTY_CONFIRM_TENANT_WRITES=true` — \"Ask me to confirm the store before\neach write\" in the extension settings — holds every data-changing call until\nthe user confirms which tenant it applies to, over MCP elicitation. The answer\ncomes from the client's own UI, not from the model, so it is a real check on\nthe agent's tenant choice rather than a restatement of it.\n\nIt applies **only when the default store code is empty**: with a pinned store\nthe tenant is not the agent's to get wrong, and the setting is ignored.\n\nIt fails **closed**. If the client does not support elicitation, or the dialog\nerrors, is declined or cancelled, the write is blocked and nothing is sent.\nReads are never held up.\n\n\n### Automatic rate-limit recovery\n\nThe client queues upstream requests and automatically handles temporary rate\nlimits, including when an agent calls several analytics tools in parallel:\n\n- A `429` pauses the shared upstream queue, including new calls and retries.\n  The client respects `Retry-After` in seconds or HTTP-date form, without\n  shortening it to the backoff cap. Without that header it uses exponential\n  backoff and jitter, starting at one second and capped at 15 seconds.\n- After a rate limit, requests resume one at a time through the token bucket.\n  The rate halves once per cooldown window, down to one request per second;\n  successful traffic adds one request per second after each 30 seconds without\n  another rate limit, up to the normal 10 requests per second. At most six\n  upstream requests can be in flight. Other requests already in flight when a\n  `429` arrives are allowed to finish.\n- Each upstream operation allows at most six retries, with a 45-second deadline\n  for starting attempts. A longer `Retry-After` is returned as `RATE_LIMITED`\n  without retrying early; the shared cooldown still applies to subsequent calls.\n  Calls that expire in the queue are removed and never sent later. An attempt\n  already sent retains its normal HTTP timeout, so total elapsed time can exceed\n  45 seconds; tools that fetch multiple pages also perform multiple operations.\n- Reads also retry `503` responses. Writes retry explicit `429` rejections, but\n  do not replay on `503` or network failures, where the write might have taken\n  effect already.\n\nRepeated GETs are deduped while in flight and cached briefly in memory.\nSuccessful mutations clear the read cache to avoid stale follow-up reads.\n\nThese controls are shared by all tools in one MCP server process. Separate\nclients/processes and other integrations can still consume the same upstream\nquota. Persistent limits can still return `RATE_LIMITED`; the MCP server cannot\nincrease the API's quota.\n\n### Local environment file\n\nFor local development, create a `.env` file based on `.env.example`:\n\n```bash\ncp .env.example .env\n```\n\n## Claude Desktop Configuration\n\nThe server communicates over stdio. Add it to your MCP client (Claude Desktop, Claude Code, Cursor) using one of the configurations below.\n\nAdd this to your Claude Desktop configuration file:\n- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n#### Using npx (Recommended)\n\n```json\n{\n  \"mcpServers\": {\n    \"openloyalty\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@open-loyalty/mcp-server@latest\"],\n      \"env\": {\n        \"OPENLOYALTY_API_URL\": \"https://your-instance.openloyalty.io\",\n        \"OPENLOYALTY_API_TOKEN\": \"your-api-token\",\n        \"OPENLOYALTY_DEFAULT_STORE_CODE\": \"default\"\n      }\n    }\n  }\n}\n```\n\n#### Using Global Installation\n\n```json\n{\n  \"mcpServers\": {\n    \"openloyalty\": {\n      \"command\": \"openloyalty-mcp\",\n      \"env\": {\n        \"OPENLOYALTY_API_URL\": \"https://your-instance.openloyalty.io\",\n        \"OPENLOYALTY_API_TOKEN\": \"your-api-token\",\n        \"OPENLOYALTY_DEFAULT_STORE_CODE\": \"default\"\n      }\n    }\n  }\n}\n```\n\n#### Using Local Build\n\n```json\n{\n  \"mcpServers\": {\n    \"openloyalty\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/openloyalty-mcp/dist/index.js\"],\n      \"env\": {\n        \"OPENLOYALTY_API_URL\": \"https://your-instance.openloyalty.io\",\n        \"OPENLOYALTY_API_TOKEN\": \"your-api-token\",\n        \"OPENLOYALTY_DEFAULT_STORE_CODE\": \"default\"\n      }\n    }\n  }\n}\n```\n\n---\n\n## Development\n\n```bash\n# Run the server in development mode\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Run tests\nnpm test\n\n# Type checking\nnpm run typecheck\n```\n\n---\n\n## Available Tools (152 total)\n\n146 API tools, listed below, plus 6 interactive app widgets (campaign builder,\ndashboard, member profile, rewards catalog, tier visualizer, transaction\ntimeline). `npm run sync:manifest` is the source of truth for the count.\n\n### Wallet Types (4 tools)\n- `ol_wallet_type_list` - List all available wallet types (point currencies)\n- `ol_wallet_type_get` - Get full details for a specific wallet type by ID\n- `ol_wallet_type_create` - Create a new point currency (wallet type)\n- `ol_wallet_type_update` - Update an existing wallet type's configuration\n\n### Tier Sets (6 tools)\n- `ol_tierset_list` - List all tier sets\n- `ol_tierset_create` - Create a tier set (container for all tiers)\n- `ol_tierset_get` - Get tier set details including condition IDs\n- `ol_tierset_update` - Update tier set metadata\n- `ol_tierset_update_tiers` - Add all tiers to a tier set in one call\n- `ol_tierset_get_tiers` - Get all tiers in a tier set\n\n### Members (12 tools)\n- `ol_member_create` - Register a new loyalty program member\n- `ol_member_get` - Get member details including profile, points balance, and tier status\n- `ol_member_list` - Search and list members with optional filters\n- `ol_member_update` - Update member profile fields (PUT; cannot touch identifiers, custom fields, or labels)\n- `ol_member_patch` - Partial update, including email/phone/loyalty card, custom fields, and labels\n- `ol_member_activate` - Activate a member account\n- `ol_member_deactivate` - Deactivate a member account\n- `ol_member_delete` - Permanently remove member and all associated data\n- `ol_member_anonymize` - GDPR-compliant anonymization of all member PII\n- `ol_member_get_tier_progress` - Get a member's tier progression status\n- `ol_member_assign_tier` - Manually assign a tier level to a member\n- `ol_member_remove_manual_tier` - Remove manually assigned tier from member\n\n### Points (10 tools)\n- `ol_points_add` - Add points to a member's wallet manually\n- `ol_points_spend` - Deduct points from member wallet\n- `ol_points_transfer` - Transfer points from one member to another (P2P)\n- `ol_points_block` - Block (freeze) points from a member's active balance\n- `ol_points_unblock` - Release a blocked points transfer back to active balance\n- `ol_points_cancel` - Cancel a specific points transfer, reversing the movement\n- `ol_points_expire` - Manually expire a points transfer before its natural expiry\n- `ol_points_get_balance` - Get member points balance breakdown\n- `ol_points_get_history` - Get points transaction history for a member\n- `ol_points_get_histogram` - Get points histogram data for visualization\n\n### Rewards (14 tools)\n- `ol_reward_list` - List available rewards\n- `ol_reward_create` - Create a new reward that members can redeem with points\n- `ol_reward_get` - Get full reward details including configuration and coupon settings\n- `ol_reward_update` - Update reward configuration\n- `ol_reward_activate` - Activate a reward, making it available to redeem\n- `ol_reward_deactivate` - Deactivate a reward, hiding it from members\n- `ol_reward_buy` - Purchase reward for member, deducting points\n- `ol_reward_redeem` - Mark coupon as used\n- `ol_reward_category_list` - List reward categories\n- `ol_reward_category_create` - Create a new reward category\n- `ol_reward_category_update` - Update a reward category's name, status, or sort order\n- `ol_reward_photo_upload` - Attach a photo to a reward\n- `ol_reward_photo_delete` - Permanently delete a photo from a reward\n- `ol_member_get_issued_rewards` - List rewards redeemed/issued to a specific member\n\n### Redemptions (6 tools)\n- `ol_redemption_get` - Get a single issued reward with its current status\n- `ol_redemption_get_status_history` - Full status-change history for an issued reward\n- `ol_redemption_change_status` - Change one issued reward's status, with optional comment\n- `ol_redemption_change_status_bulk` - Change status for many issued rewards; reports per-item outcome (a 200 can still contain failed rows)\n- `ol_redemption_cancel` - Cancel an issued reward\n- `ol_redemption_draw` - Perform the fortune-wheel draw for an issued reward\n\n### Transactions (4 tools)\n- `ol_transaction_create` - Record a purchase transaction\n- `ol_transaction_get` - Get transaction details\n- `ol_transaction_list` - List transactions with filters\n- `ol_transaction_assign_member` - Assign unmatched transaction to member\n\n### Campaigns (13 tools)\n- `ol_campaign_list` - List all campaigns with optional filters\n- `ol_campaign_create` - Create campaign (earning rule) to automate engagement\n- `ol_campaign_get` - Get full campaign configuration\n- `ol_campaign_update` - Full update of campaign configuration\n- `ol_campaign_patch` - Partial update (active/displayOrder only)\n- `ol_campaign_delete` - Permanently delete a campaign\n- `ol_campaign_simulate` - Simulate campaign effects without executing\n- `ol_campaign_generate_codes` - Generate unique redemption codes for a campaign\n- `ol_campaign_list_codes` - List redemption codes for a campaign\n- `ol_campaign_get_available` - Get campaigns available to a member\n- `ol_campaign_get_visible` - Get campaigns visible to a member\n- `ol_campaign_get_leaderboard` - Get leaderboard rankings for a campaign\n- `ol_member_get_challenge_progress` - Get a member's progress on all challenges\n\n### Segments (9 tools)\n- `ol_segment_list` - List customer segments\n- `ol_segment_create` - Create segment to group members by behavior or attributes\n- `ol_segment_get` - Get full segment details including parts and criteria\n- `ol_segment_update` - Update segment configuration\n- `ol_segment_delete` - Permanently delete a segment\n- `ol_segment_get_members` - Get members belonging to a segment\n- `ol_segment_activate` - Activate a segment\n- `ol_segment_deactivate` - Deactivate a segment\n- `ol_segment_get_resources` - List resources associated with an existing segment\n\n### Achievements (7 tools)\n- `ol_achievement_list` - List achievements\n- `ol_achievement_create` - Create achievement for gamification\n- `ol_achievement_get` - Get achievement details\n- `ol_achievement_update` - Update achievement (full replacement)\n- `ol_achievement_patch` - Patch achievement (active/displayOrder)\n- `ol_achievement_get_member_progress` - Get member's progress on achievement\n- `ol_achievement_list_member_achievements` - List member's achievements\n\n### Badges (4 tools)\n- `ol_badge_list` - List badge types\n- `ol_badge_get` - Get badge type details\n- `ol_badge_update` - Update badge type configuration\n- `ol_badge_get_member_badges` - Get badges earned by member\n\n### Analytics (9 tools)\n- `ol_analytics_tiers` - Get tier distribution with member counts\n- `ol_analytics_members` - Get member statistics (new, active, inactive)\n- `ol_analytics_points` - Get points statistics (issued, spent, expired)\n- `ol_analytics_transactions` - Get transaction statistics\n- `ol_analytics_referrals` - Get referral program statistics\n- `ol_analytics_campaigns` - Get campaign performance metrics\n- `ol_analytics_dashboard` - Get dashboard overview metrics\n- `ol_analytics_units` - Get wallet-specific metrics\n- `ol_analytics_campaign_detail` - Get detailed campaign analytics\n\n### Audit Logs (2 tools)\n- `ol_audit_list` - List audit log entries\n- `ol_audit_export` - Export audit logs\n\n### Stores (6 tools)\n- `ol_store_list` - List stores\n- `ol_store_create` - Create store for multi-tenancy\n- `ol_store_get` - Get store details\n- `ol_store_update` - Update store configuration\n- `ol_store_get_settings` - Get the loyalty program settings for the current store\n- `ol_store_update_settings` - Update loyalty program settings (partial PATCH)\n\n### Webhooks (6 tools)\n- `ol_webhook_list` - List webhook subscriptions\n- `ol_webhook_create` - Create webhook subscription for event notifications\n- `ol_webhook_get` - Get webhook subscription details\n- `ol_webhook_update` - Update webhook subscription\n- `ol_webhook_delete` - Delete webhook subscription\n- `ol_webhook_events` - List available webhook event types\n\n### Import (3 tools)\n- `ol_import_create` - Create bulk import from CSV\n- `ol_import_list` - List imports with status\n- `ol_import_get` - Get import details and item statuses\n\n### Export (4 tools)\n- `ol_export_create` - Create data export (async)\n- `ol_export_list` - List exports with status\n- `ol_export_get` - Get export status and details\n- `ol_export_download` - Download export CSV (when status='done')\n\n### Custom Events (7 tools)\n- `ol_custom_event_schema_create` - Create a new custom event schema\n- `ol_custom_event_schema_list` - List available custom event schemas\n- `ol_custom_event_schema_get` - Get details of a custom event schema including its fields\n- `ol_custom_event_schema_update` - Update an existing custom event schema\n- `ol_custom_event_schema_activate` - Activate or deactivate a custom event schema\n- `ol_custom_event_send` - Send a custom event for a member\n- `ol_custom_event_list` - List custom events that have been sent\n\n### Referrals (3 tools)\n- `ol_referral_create` - Create a referral relationship between members\n- `ol_referral_list` - List referral relationships with optional filters\n- `ol_referral_delete` - Delete a referral relationship for a member\n\n### Channels (5 tools)\n- `ol_channel_list` - List sales channels (e.g. Mobile App, Point of Sale, Web)\n- `ol_channel_create` - Create a new sales channel\n- `ol_channel_get` - Get full details of a specific channel by channelId\n- `ol_channel_update` - Update a channel's name, identifier, or description\n- `ol_channel_delete` - Permanently delete a channel\n\n### Languages (5 tools)\n- `ol_language_list` - List all configured languages\n- `ol_language_create` - Add a new language to the platform\n- `ol_language_get` - Get details of a specific language by its locale code\n- `ol_language_update` - Update a language's name, sort order, or default status\n- `ol_language_delete` - Delete a language\n\n### Group of Values (6 tools)\n- `ol_group_of_values_list` - List all groups of values\n- `ol_group_of_values_create` - Create a new group of values container\n- `ol_group_of_values_update` - Update a group's name, description, or active status\n- `ol_group_value_add` - Add an individual value to a group of values\n- `ol_group_value_update` - Update an individual value's string or description\n- `ol_group_value_delete` - Permanently delete an individual value from a group\n\n### Context (1 tool)\n- `ol_context_get` - Get current store state (wallet types, tier sets, segments, campaigns, rewards) in one call\n\n### Interactive App Views (6 tools)\n- `ol_dashboard_app` - Interactive loyalty program dashboard with tier, points, and campaign charts\n- `ol_member_profile_app` - Interactive member profile card with tier badge and points balance\n- `ol_rewards_catalog_app` - Interactive rewards catalog with category and affordability filtering\n- `ol_tier_visualizer_app` - Interactive visualization of loyalty tier structures\n- `ol_transaction_timeline_app` - Interactive timeline of a member's transactions and point movements\n- `ol_campaign_builder_app` - Interactive multi-step wizard for creating loyalty campaigns\n\n---\n\n## Example Workflows\n\n### 1. Create 3-Tier Loyalty Program\n\n```\nol_wallet_type_list\n// Note: conditions use `attribute` (not `type`) and walletType expects the wallet CODE (e.g., \"default\"), not the UUID.\nol_tierset_create({ name: \"VIP Program\", conditions: [{ attribute: \"activeUnits\", walletType: \"points\" }] })\nol_tierset_get({ tierSetId: \"...\" })\nol_tierset_update_tiers({\n  tierSetId: \"...\",\n  tiers: [\n    { name: \"Bronze\", conditions: [{ conditionId: \"xxx\", value: 400 }] },\n    { name: \"Silver\", conditions: [{ conditionId: \"xxx\", value: 800 }] },\n    { name: \"Gold\", conditions: [{ conditionId: \"xxx\", value: 1200 }] }\n  ]\n})\n```\n\n### 2. Full Member Lifecycle\n\n```\n// Register member\nol_member_create({ email: \"john@example.com\", firstName: \"John\", lastName: \"Doe\" })\n\n// Add welcome bonus\nol_points_add({ memberId: \"...\", points: 100, comment: \"Welcome bonus\" })\n\n// Record purchase (auto-earns points via campaigns)\nol_transaction_create({\n  header: { documentNumber: \"INV-001\", purchasedAt: \"2024-01-15T10:00:00Z\" },\n  items: [{ sku: \"PROD-1\", name: \"Widget\", grossValue: 99.99, category: \"Electronics\" }],\n  customerData: { email: \"john@example.com\" }\n})\n\n// Check tier progress\nol_member_get_tier_progress({ memberId: \"...\" })\n```\n\n### 3. Reward Redemption Flow\n\n```\n// List available rewards\nol_reward_list({ active: true })\n\n// Check member balance\nol_points_get_balance({ memberId: \"...\" })\n\n// Purchase reward (deducts points, returns coupon code)\nol_reward_buy({ rewardId: \"...\", memberId: \"...\" })\n\n// Later: mark coupon as used\nol_reward_redeem({ memberId: \"...\", couponCode: \"COUP-ABC123\" })\n```\n\n### 4. Assign Unmatched Transaction\n\n```\n// Find unmatched transactions\nol_transaction_list({ matched: false })\n\n// Assign to member (triggers point campaigns)\nol_transaction_assign_member({ documentNumber: \"INV-999\", loyaltyCardNumber: \"CARD-123\" })\n```\n\n### 5. Create Double Points Campaign for Gold Tier\n\n```\n// First, find the Gold tier level ID\nol_tierset_get_tiers({ tierSetId: \"...\" })\n\n// Create a segment targeting Gold tier members\nol_segment_create({\n  name: \"Gold Members\",\n  parts: [{\n    criteria: [{\n      type: \"tier\",\n      tierIds: [\"gold-level-id\"]\n    }]\n  }]\n})\n\n// Create campaign with double points effect\nol_campaign_create({\n  type: \"direct\",\n  trigger: \"transaction\",\n  translations: { en: { name: \"Double Points for Gold\", description: \"Gold members earn 2x points\" } },\n  // Required: activity.startsAt, rules[].name. Use effects[].effect (not type). pointsRule is a STRING expression (not an object).\n  activity: { startsAt: \"2024-01-01T00:00:00Z\" },\n  rules: [{\n    name: \"Double points\",\n    effects: [{\n      effect: \"give_points\",\n      pointsRule: \"transaction.grossValue * 2\"\n    }]\n  }],\n  audience: {\n    target: \"segment\",\n    segments: [\"segment-id\"]\n  },\n  active: true\n})\n\n// Test the campaign before it triggers\nol_campaign_simulate({\n  trigger: \"transaction\",\n  transaction: { grossValue: 100 },\n  customer: { email: \"gold-member@example.com\" }\n})\n```\n\n### 6. Create VIP Segment Based on Transaction Count\n\n```\n// Create segment for members with 10+ transactions\nol_segment_create({\n  name: \"VIP Customers\",\n  description: \"Members with 10 or more purchases\",\n  parts: [{\n    criteria: [{\n      type: \"transaction_count\",\n      min: 10\n    }]\n  }],\n  active: true\n})\n\n// Check segment membership\nol_segment_get_members({ segmentId: \"...\" })\n\n// Use for campaign targeting\nol_campaign_create({\n  type: \"direct\",\n  trigger: \"transaction\",\n  translations: { en: { name: \"VIP Bonus\" } },\n  activity: { startsAt: \"2024-01-01T00:00:00Z\" },\n  rules: [{\n    name: \"VIP Bonus Points\",\n    effects: [{ effect: \"give_points\", pointsRule: \"50\" }]\n  }],\n  audience: { target: \"segment\", segments: [\"vip-segment-id\"] },\n  active: true\n})\n```\n\n### 7. Create Purchase Achievement with Badge\n\n```\n// Create an achievement for making 5 purchases\nol_achievement_create({\n  translations: { en: { name: \"Frequent Shopper\", description: \"Make 5 purchases\" } },\n  rules: [{\n    type: \"direct\",\n    trigger: \"transaction\",\n    aggregation: { type: \"quantity\" },\n    completeRule: {\n      periodGoal: 5,\n      period: { type: \"day\", consecutive: 1 }\n    }\n  }],\n  badgeTypeId: \"shopper-badge-id\",\n  active: true\n})\n\n// Check member progress\nol_achievement_get_member_progress({ memberId: \"...\", achievementId: \"...\" })\n\n// List all member achievements and badges\nol_achievement_list_member_achievements({ memberId: \"...\" })\nol_badge_get_member_badges({ memberId: \"...\" })\n```\n\n### 8. Segment Logic: OR vs AND\n\n```\n// Parts use OR logic - member matches if ANY part matches\n// Criteria within parts use AND logic - must match ALL criteria in that part\n\n// Example: (10+ transactions) OR (5-9 transactions)\nol_segment_create({\n  name: \"High Value Members\",\n  parts: [\n    {\n      // Part 1: Frequent shoppers\n      criteria: [\n        { type: \"transaction_count\", min: 10, max: 999999 }\n      ]\n    },\n    {\n      // Part 2: Moderately frequent shoppers (OR with Part 1)\n      criteria: [\n        { type: \"transaction_count\", min: 5, max: 9 }\n      ]\n    }\n  ]\n})\n```\n\n### 9. Analyze Program Performance\n\n```\n// Get high-level dashboard metrics\nol_analytics_dashboard()\n\n// Analyze tier distribution\nol_analytics_tiers({ dateFrom: \"2024-01-01\", dateTo: \"2024-12-31\" })\n\n// Check points economy\nol_analytics_points({ dateFrom: \"2024-01-01\", dateTo: \"2024-12-31\" })\n\n// Analyze specific campaign\nol_analytics_campaign_detail({ campaignId: \"campaign-uuid\" })\n\n// Get wallet-specific metrics\nol_analytics_units({ walletTypeCode: \"points\" })\n```\n\n### 10. Audit User Actions\n\n```\n// List recent audit entries\nol_audit_list({ perPage: 50 })\n\n// Filter by specific user\nol_audit_list({ username: \"admin@company.com\" })\n\n// Filter by entity type and date range\nol_audit_list({\n  entityType: \"MEMBER\",\n  dateFrom: \"2024-01-01\",\n  dateTo: \"2024-01-31\"\n})\n\n// Export audit logs for compliance\nol_audit_export({\n  dateFrom: \"2024-01-01\",\n  dateTo: \"2024-12-31\"\n})\n```\n\n### 11. Multi-Tenant Store Setup\n\n```\n// Create a new store for a region\nol_store_create({\n  code: \"EU\",\n  name: \"European Store\",\n  currency: \"EUR\",\n  active: true\n})\n\n// List all stores\nol_store_list()\n\n// Use storeCode in subsequent operations\nol_member_create({\n  email: \"customer@eu.example.com\",\n  firstName: \"Jean\",\n  lastName: \"Dupont\",\n  storeCode: \"EU\"\n})\n```\n\n### 12. Subscribe to Member Events for CRM Sync\n\n```\n// Discover available event types\nol_webhook_events()\n\n// Subscribe to member creation events\nol_webhook_create({\n  eventName: \"member.created\",\n  url: \"https://crm.example.com/webhooks/loyalty\",\n  headers: [\n    { headerName: \"Authorization\", headerValue: \"Bearer crm-token\" }\n  ]\n})\n\n// List current subscriptions\nol_webhook_list()\n\n// Update subscription URL\nol_webhook_update({\n  webhookSubscriptionId: \"...\",\n  url: \"https://crm-v2.example.com/webhooks/loyalty\"\n})\n```\n\n### 13. Bulk Import Members from CSV\n\n```\n// Create import with CSV content\nol_import_create({\n  type: \"member\",\n  fileContent: \"email,firstName,lastName\\njohn@example.com,John,Doe\\njane@example.com,Jane,Smith\",\n  fileName: \"members.csv\"\n})\n\n// Poll import status\nol_import_list({ type: \"member\" })\n\n// Check individual item statuses\nol_import_get({ importId: \"...\" })\n```\n\n### 14. Export Campaign Codes and Download\n\n```\n// Create export for campaign codes\nol_export_create({\n  type: \"campaignCode\",\n  filters: { campaignId: \"campaign-uuid\" }\n})\n\n// Poll until status is 'done'\nol_export_get({ exportId: \"...\" })\n\n// Download the CSV file\nol_export_download({ exportId: \"...\" })\n```\n\n### 15. Bulk Add Points via Import\n\n```\n// Create import for adding points to multiple members\nol_import_create({\n  type: \"unitTransferAdding\",\n  fileContent: \"loyaltyCardNumber,points,comment\\nCARD-001,500,Promotion bonus\\nCARD-002,500,Promotion bonus\"\n})\n\n// Check import progress\nol_import_get({ importId: \"...\" })\n```\n\n---\n\n## Spec drift check\n\nThe repo vendors a snapshot of the core-framework OpenAPI spec at\n`spec/openapi.yaml` (provenance: `spec/spec-meta.json`). A drift gate compares\nit against the endpoints the MCP actually calls, scanned from `src/` at check\ntime:\n\n```bash\nnpm run spec:check             # CI gate: fails on dead/wrong endpoints, NEW gaps, or STALE allowlist entries\nnpm run spec:report            # human-readable coverage summary grouped by domain\nnpm run spec:update-allowlist  # regenerate spec/coverage-allowlist.json from current gaps\n```\n\nThe gate fails when:\n\n- the MCP calls an endpoint that does not exist in the spec (dead/wrong call);\n- a spec operation has no tool **and** is not listed in\n  `spec/coverage-allowlist.json` (a NEW coverage gap);\n- an allowlist entry is now covered by a tool (a STALE entry — prune with\n  `npm run spec:update-allowlist`).\n\nIt also runs as a vitest suite (`tests/spec/spec-drift.test.ts`), so\n`npm test` catches drift too.\n\n> **Never re-vendor the spec and run `npm run spec:update-allowlist` in the\n> same commit.** When core-framework adds endpoints, re-vendoring makes each\n> one a new gap and the gate fails — that failure is the whole point: it is\n> the only thing that surfaces backend additions. Regenerating the allowlist\n> in the same commit swallows them silently, and the diff reads as routine\n> churn. Split into two commits and the allowlist diff shows a reviewer\n> exactly which endpoints the backend added, forcing a decision on each.\n\n**Re-vendoring the spec** (when the backend API changes):\n\n1. In core-framework, bundle/locate the single-file spec: `doc/openapi.yaml`.\n2. Copy it over `spec/openapi.yaml`, update `spec/spec-meta.json` (commit\n   hash, date, `shasum -a 256 spec/openapi.yaml`), and **commit just that**.\n3. Run `npm run spec:check` and read the failures — each new gap is an\n   endpoint the backend added.\n4. For each one, either implement a tool or deliberately allowlist it\n   (`npm run spec:update-allowlist`), and commit that as a **separate**\n   commit so the allowlist diff is reviewable on its own.\n\n**Closing a coverage gap**: after implementing a tool for an allowlisted\nendpoint, remove its entry from `spec/coverage-allowlist.json` (or run\n`npm run spec:update-allowlist`) — the gate fails on stale entries, so this\nis enforced, not optional.\n\n## Links\n\n- **GitHub**: [OpenLoyalty/openloyalty-mcp](https://github.com/OpenLoyalty/openloyalty-mcp)\n- **Open Loyalty**: [openloyalty.io](https://openloyalty.io)\n- **MCP Protocol**: [modelcontextprotocol.io](https://modelcontextprotocol.io)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}