{"_id":"@kaminari-ad/mcp","_rev":"31-b552d45cab2326e586d51663712b7463","name":"@kaminari-ad/mcp","dist-tags":{"latest":"0.24.2"},"versions":{"0.1.0":{"name":"@kaminari-ad/mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.1.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"e762408813a418c677bb308e7536e1419d551402","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.1.0.tgz","fileCount":8,"integrity":"sha512-ChC5GASBX8khfuO5kPHoiIQa/9ZdFWYa0Wu72H1nLGVQRGXlX3m9RUjIHYWpiW3IzGhO+khYDZSEbpbFEWpmYA==","signatures":[{"sig":"MEQCIA/7TCFptV8uWw7jW1ci6LYp4IeG84dIn8cC/qLRVLLvAiAdhXJ1Rm3fx+vDYSX+tRTK4Tz2iuq0wFW98KPzAybVQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":796406},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"0d5588f976426c7d0884fe39d1cd6774675eab0c","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"kadam-official","email":"vladislav@kadam.net"},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.3.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1779035682566_0.20672557480005493","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@kaminari-ad/mcp","version":"0.1.5","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.1.5","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"db113a4696a2ed31695ccc3b165929c39577bbd3","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.1.5.tgz","fileCount":8,"integrity":"sha512-OMMP53DwWA6/sXngEp2IrhrNOCFYI5QsXddF40c0LWDw9PdFjw3B29HgxSU8y0aKrt5823/fCWarKJ+RhVo26A==","signatures":[{"sig":"MEUCICZCzNhBgGXuJKfjvVG0WHYOVTeZze0frlyUFqAEGnZGAiEAtMrit167vG4HkuAclSVvaJ6/S6doMQkVM9CrBRKx/c0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":800589},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"58f9e698ac9bd66a1ceaeba6e6d71da4bbbd122b","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.3.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.5_1779040794274_0.13706605167398522","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@kaminari-ad/mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.2.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"f0f331e7e98b33952b40854699691cd3407ed71e","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.2.0.tgz","fileCount":9,"integrity":"sha512-JBWCxj9MzHqYc3SbcbYPAFp/9uHk7tBJao1tSaHde84McgICYnMZRfhR6IQu3O4gjKpHLPMHFEwdKfmowz7gLQ==","signatures":[{"sig":"MEQCIAeOT/fRq64T51s1lutzOcS3mVr8HMcG57LQwrIry5VtAiAx2qwWp7TrOSA4Dq4Pa3DZjqkZ5iEwPKnlwgiP+N4pZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":834195},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"2e0577dbf67480d310cedcfc537076a77188b074","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.3.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1779052474723_0.3532367466751787","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@kaminari-ad/mcp","version":"0.2.1","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.2.1","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"2a46017f079c899b1a0acdc02a28b22f1f02e06d","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.2.1.tgz","fileCount":17,"integrity":"sha512-ODHfo02DZHCqJSt/nljngqA8XLEByTLu8FM93ac1V49w2xZX+j22fePv4mZMKzhLauEzQ/jFjpH2WojVX1l6cw==","signatures":[{"sig":"MEQCIBKNy7uOd3yZ/w42sc5hLkfAdVPHuKfW4AdxavCDRbrDAiAoml2YBsxn+Yxn5C+Gcf723r+aZukTv9+9LsAumF/Yuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":770615},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"1eb957213cbfc1d2355f04a502a6bd6d16896b74","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.3.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.1_1779084571047_0.45292662160993147","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@kaminari-ad/mcp","version":"0.2.2","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.2.2","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"c29c6c96a4ea103046abfff7c4d53602d50b261d","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.2.2.tgz","fileCount":17,"integrity":"sha512-g+HJFBViP3ovOs6da8FhhMknrc2NAyHG0Z4EQNTDSyrSuLUnqgRRcTeSGEaTOmbU6cucO5UNmzQ4OzzF0yj4qQ==","signatures":[{"sig":"MEUCIC/KhTp/cbIa3ZNWZuBOgOoJHU7xPzzRbDQzNmGGT7kwAiEAt7hpSQvjBrhgdlBm5bwSPcMmiFKn8KUNl6Ypk59+EBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":772780},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"5af21621a6ed7c8c16f34e5d858d435545aba1ed","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.3.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.2_1779259564649_0.08815540919900977","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@kaminari-ad/mcp","version":"0.3.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.3.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"d8fe1bb96b04dced006a89aa19d403cbcb56185b","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.3.0.tgz","fileCount":17,"integrity":"sha512-vJ6yKj4BfUdGM5RfobgPdpv1h58DrpOPzM2PbafKLD/zYWYqv/6a+/MkJjyDB5QrMJ2jMVj5G4/uiLuqNs2X9g==","signatures":[{"sig":"MEYCIQCvZNft/wm5a+pv2gWy0ZGUb0YJr2lmkSypLldPTiOACAIhAJ12NxQKscLcrz2H0cyNLAI1uXVUse9F7nx1wFWIEa6b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":925190},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"71141417244c6373a4003bf8cca047bcbbe164f2","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.3.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.0_1779271271550_0.9210627517771224","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@kaminari-ad/mcp","version":"0.4.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.4.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"09e9b176ae73bbcf54c165068aa8c9880a57ebce","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.4.0.tgz","fileCount":17,"integrity":"sha512-al4uFGKSETQiDonWsOPUWafjlDGAm+PVqgp20P+laEFkPTbJwfMkXW02c5W8h2eou0HyM+Hgb7dYSvMJlVwZkg==","signatures":[{"sig":"MEUCIQCHkMRgOzw4F8pmccWzOtxfqGLayB2/FrJ6oFvMTwOpNQIgfltGmRT6ZKlxLiY9f+ssgShAxY3Q6JqgIJrJ7fEpOus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":968133},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"790afc31c1891ace27d0b2347eb2bad797fea25a","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.3.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.0_1780571145107_0.7588396168079434","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@kaminari-ad/mcp","version":"0.5.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.5.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"b6165f4f7233127a6047ed3f1e3858ac5fc90b4d","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.5.0.tgz","fileCount":17,"integrity":"sha512-Ncs6dhmV7JQw5e1V9wsaIuWbGGXVDrSFkZ/hehlhEqKSdhQFtarpuE4I/SHW0MEEbLDBzJ49qFB3qlcukzKweQ==","signatures":[{"sig":"MEMCH2+KXzgZrXAO05eSnDb7lFaARF3eE2gj63OFvYoFgBQCIEJjf9PAUuZXEiU6hb22ZCv3KoKiIruQCW5ADuIO3myt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":974307},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"a6e1d01c9b268a62137c08808b23c523c572f54b","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"esbuild":"0.28.1","js-yaml":"4.2.0"},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.3.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.5.0_1781726285264_0.9791870903861402","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@kaminari-ad/mcp","version":"0.5.2","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.5.2","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"cb15a5abf205cd57736760cbd86aea15b0215897","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.5.2.tgz","fileCount":17,"integrity":"sha512-/J9ViCEbYWeRQ8SDn1iDXq2BDR4uLyZGIvk3j4y4W/Dzfwvsuln+gHf0WXTGl+Ugk327f/7SAMx+si1RSLWSmg==","signatures":[{"sig":"MEQCIDSrrP/V1JiVNgcxQt/BXaVaVHgSZKW5I0iH5dxt5WmdAiBqFFzDPYG+Okpjxh3/FJSosCPYQ3rxMfLwR4nxd2t7PA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":976389},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"93a2a0cc99866e85ee59a3d418dfc4ef180dc6d1","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"esbuild":"0.28.1","js-yaml":"4.2.0"},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.5.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.5.2_1781966725385_0.6612461835738397","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@kaminari-ad/mcp","version":"0.6.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.6.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"eddec69c2f5fae5515906a31d1c68fdf85972afb","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.6.0.tgz","fileCount":17,"integrity":"sha512-G5dyomb4zsf1jc8XuoiT765W5h6O7w2VnLYm/PAKcwnztKDPqF105+iwyRkAsMVrbennI4Y2lQM1WlcEau82NA==","signatures":[{"sig":"MEUCIQCUbmD3OIGBGtutffEDpGyMHZP8sJRXoKsEdhjxJLLhdAIgRa3NFiYhvOF/Bg42fwm+vaThP/OBUEF1l88lnmKiVvo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":955232},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"cdcc44a7b7375b593c056bebe9f14ff14f57be6d","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"esbuild":"0.28.1","js-yaml":"4.2.0"},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.5.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.6.0_1782837086999_0.8065289745499058","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@kaminari-ad/mcp","version":"0.7.2","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.7.2","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"175756683e2cefe640161c088c05fb390b6d06ad","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.7.2.tgz","fileCount":17,"integrity":"sha512-bqdraUZ2ow7lIdQoqFiqONUU2Dz12VNAYfzWKWJMPiUwoCexGzN2af5g6QxBlULyHGRbZ36vKOD1ElFlK+vI5g==","signatures":[{"sig":"MEQCIEctkFrTYnXj7eKC6LWQEiC92ojmfaD9mF13TzCrjR6ZAiA7u+riZuPPQLsfQYGd1EqAQmY3P892uaROy/ENXTBCVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":965041},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"0e9d998586680202fe12f4f0555092b148f72248","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"esbuild":"0.28.1","js-yaml":"4.2.0"},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.5.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.7.2_1783676242033_0.19999912866051384","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@kaminari-ad/mcp","version":"0.8.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.8.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"35a88e16294dc37349eb9b336dd071e8bb6db87c","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.8.0.tgz","fileCount":17,"integrity":"sha512-5Glya0pQviyCCKIbpWnDZFxmcG68ZPGwE+lK4Sulk+xIAZYBdHgO26xB3INb3Fr52lrfgLH7AgcdjsOGcV4ocA==","signatures":[{"sig":"MEYCIQCR07ZQWHt1Y/3YJ52EDdBvSLdy1X0BiHX1u/zuCWIhFwIhAJJ7A58+6twWLtEuIRaTOeTir/rkQpx+0NUU9nTU3j1r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":972824},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"1aa0d2efa303c331206c8c6f758c3b2734898db9","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"esbuild":"0.28.1","js-yaml":"4.2.0"},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.5.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.8.0_1783688970840_0.8836443152632918","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@kaminari-ad/mcp","version":"0.9.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.9.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"d8340e483a0e223d3b43f5b3644ca9e978e8d122","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.9.0.tgz","fileCount":17,"integrity":"sha512-ttANT0KnmsVLARxnGcElSxpptHdCGt8KX6XpViIB1/4cvs3QIHYTeg46Dt3OynqN8SDUjt+Qa0ytJzYYmSdtkQ==","signatures":[{"sig":"MEUCIHsrMNxjY3uPrt0VxTfL10PR24I/qlsJMqNjfXUGmMq4AiEAg0eUpR399gJpoTFNM+SjJnmv4eC+UfCtch6r5HPjArI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":982884},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"d8e710300917d20ea5e8ec9384ef528796db4780","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"esbuild":"0.28.1","js-yaml":"4.3.0"},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.5.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.9.0_1784636540259_0.2963293056527212","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@kaminari-ad/mcp","version":"0.9.1","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.9.1","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"97bba292993dab3be7bd08c6602cb167b2b45abd","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.9.1.tgz","fileCount":17,"integrity":"sha512-dMrHXCOgO+wimsvgwZEq+LaHftbL9NeoffhUNEQ2acg/ugzoi1nQ15TDMiFhqAwPyBcJw/BhlJjOpqc8irdd7A==","signatures":[{"sig":"MEUCIFKUhCrmoeMs2cmkvIvKDTvcUZtUaXYRHUoXMG0eX+T/AiEA5t3LQmLKv9hKhWSR850SQEiMmrWOwCA1GjUg/Jgswh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":983546},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"c0a5b17391892e7d85f244dc3649790c382b1cce","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"esbuild":"0.28.1","js-yaml":"4.3.0"},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.5.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"9.39.4","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"24.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.20.0","@eslint/plugin-kit":"0.7.1","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-import":"2.31.0","eslint-plugin-vitest":"0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"1.1.2","@typescript-eslint/parser":"8.20.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.20.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.9.1_1784646231651_0.8596803723151407","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@kaminari-ad/mcp","version":"0.10.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.10.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"2fb541ca95ff4b577a2dbec025555202950eef7f","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.10.0.tgz","fileCount":17,"integrity":"sha512-hGZn470jkjbtjYzo8ur0K1Y9oRu6PRXISI5B4naeNYi/DuoTSDRspAyY9a15ZP2pWNhvGsF056pzkLedGsVPSg==","signatures":[{"sig":"MEQCIFgBJXxsgldJzlA+hVokHxJQ4kHY4ZvdSD2gA97TbEW6AiAYvOObLFU/2EE8vn9eHL426e/jrLjtKAhvjG1vXLmpuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1009930},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"ab2d750a555aaf97595bafb49ab7b2cdf6e8f1f3","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.0","@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.5.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.10.0_1785249006181_0.6073851207121679","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@kaminari-ad/mcp","version":"0.11.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.11.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"5f12fa81012e171b218d65a2450f57cf113445f2","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.11.0.tgz","fileCount":17,"integrity":"sha512-P6XDDfqmxt3ccKpIYlGnPOJh/UyLUv8WdchOW3QSTFlXG2US+Cb1CuvkZtZEJy/+YnlK/xomh6A3gCIYNfMJ7g==","signatures":[{"sig":"MEUCIQCJ6DQwBGInhovJDQDiCDZJuN4AjUGgV0THV1iDE/3vsgIgDjUaJ3I1bmdG144ITLEbd34pPhmV8ICTZjfDMFlhC2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1029538},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"bab9434dfc408d1e8b8ea1e23f235cbbd13649ab","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.0","@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.5.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.11.0_1785249103684_0.9874309516184383","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@kaminari-ad/mcp","version":"0.12.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.12.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"068c1ef5c267287cea2be1d78441e26922bc5b6b","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.12.0.tgz","fileCount":17,"integrity":"sha512-C7Xfk5uZKkGToU87fiCProub5yplyn60dTPifwHOUr7e5MKHM758ai8C/O//1UdzD4P/ZDDUKlbgltYt2aEJIQ==","signatures":[{"sig":"MEYCIQDw7uYD26/nKNqw8XxXoM36avUw6WJb5zyr7MiO6rX03gIhALuFExXvQsA5ZvtXgy7z/oaz6WA2u47uC3JZQd6kozTs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1035900},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"66c85b6526d4664c4d532ac7898ac6cf3af4a645","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.1","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.12.0_1786099251450_0.17529644196774763","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@kaminari-ad/mcp","version":"0.12.1","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.12.1","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"7610f8995867c105f84e7ad3bff0d5fbdabb5985","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.12.1.tgz","fileCount":17,"integrity":"sha512-C1fp07NqhqHizrrchru/OtQwj7vf3Q8yY7Qw5bndHT6QE4ww6y9gfGZB+BuON5PHVmL0RnR+9gSCzxsVFOJyHw==","signatures":[{"sig":"MEUCICdRqCQs/VWFFkjIyZl1rRQyD6/aStyOiF+WH/1VN0JZAiEA7PNhSJyspHbjs3u/WP7QgRaoaEOE3VTshSy4A3a3few=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1035900},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"85d9b52b2d2325509ebc30a28b3e4516cdbbf781","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.1","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.12.1_1787236854439_0.8391959716662212","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@kaminari-ad/mcp","version":"0.13.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.13.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"00c383ff2f7eabfb0bc764f842dca7a49a6c5e7d","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.13.0.tgz","fileCount":17,"integrity":"sha512-/mHB0DpsCuGrGtVhN8/vfvbm4ShvXCRzdgXe4DRMqcCzlBQlpMhNTUfXUhVm5aAeYJdV58BD+hA2b9qJz6/s1A==","signatures":[{"sig":"MEUCIFh3tgFQ9MUQa93rHXqaoR2A7MFIlRE31MByZ3parC2lAiEAlkY8iLoiPxrB6QfhDJdu2xHbVxm2kppvzApQ/jw6Lmo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1043965},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"ff752c0a33cee667f92c066b47e758c35078e0de","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.1","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.13.0_1787260731887_0.9348090692401676","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@kaminari-ad/mcp","version":"0.14.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.14.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"cac6843419cd4036e72686d03c8b15678bc31382","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.14.0.tgz","fileCount":17,"integrity":"sha512-ghnBQEw16jhXihjC0Y/Ft5zMLT9cFqugdW92ZOPRw4YrqZ7KFWpSlQfI58N0EQTR+ZpeNoy8HzbXXi9VJV7xaA==","signatures":[{"sig":"MEUCICI62ToYy4az3mURZS7EMweKlUT+HGjZ3nf3jy8MVLiWAiEA9sxPnEjA+0qBcmVT0Ag/jGxgjsCd15A2sw8E2RPQzIs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1133838},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"b1f22e2c4d2ae329f73ee76b6437f9de6e9a383e","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.1","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.14.0_1787508119230_0.6215509555184862","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"@kaminari-ad/mcp","version":"0.14.1","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.14.1","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"c4c3c3039e863add960dfaefda0147bcffe57bfb","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.14.1.tgz","fileCount":17,"integrity":"sha512-h4b4fVQIEm+J7G8LFeAwygruFOn2kDpy47zYCcUGi1AFX7k/VrqC5Z+ggBNrfvOJWcSgiqGZjd/klxwiyCYPqQ==","signatures":[{"sig":"MEQCIDv7YctTpBq5AHb3glfNBSOqbsUnOyGdzoe2rm5DjLtoAiAX3FJeilh8cwP2eawLr34Bi3tBkymRSAZf/vJELxO6bA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1135616},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"e8756416a06e658e47c44c78bcd47bdfc59c49a7","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.1","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.14.1_1787581297159_0.9413616978007369","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@kaminari-ad/mcp","version":"0.16.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.16.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"13cb3da457e160746bb3f2785a128ba6dd9ba878","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.16.0.tgz","fileCount":17,"integrity":"sha512-F2iqfM1OPQWPg/+D9Pf6etvSh6iN2FdM1zGqjIcwoADNyZVp4poBQzmJN0jYeRIhiUTgiQuR2dMfX4fjhxjCLg==","signatures":[{"sig":"MEYCIQDUm2vEUmf90UlXFTxBtIc2hHJQ7EGS/8fl8wHaXTzMKAIhAOk4hBUjAd+XhZ+oLFFgsUp1w0n4UBRNFf2AQTaGdAjf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1153136},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"61de3bff276aa5019147484cdcc8ad7fbc7f4db3","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.1","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.16.0_1787778772337_0.41524598190093864","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@kaminari-ad/mcp","version":"0.17.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.17.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"df8bb80c827b5de36e4e02894e3f42c9c388a1fa","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.17.0.tgz","fileCount":17,"integrity":"sha512-pcxvj9HLhbLG+t+pSwPxHTDtU+14BikQMtbHff+HLU428bFpoX3Bwu8HA2bgrF3d7wxfGsum7DT0ZePFpfQ7sg==","signatures":[{"sig":"MEQCIA4oh79pYen40jHpLYrmiPhHMyWA46kE6CAXbasSzmNoAiBtbPmHwoVML63tlgvMVk9LdTZhCX6RE/vNlzC8OfL40g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDsPRABv589sOUyR5f3cMvBSMTgjEJX06lbwwDOH1OWpAIhAJL7Lm3Z7eB8n4uldiBxWdldbLMSa+vLS78Z/KJXPMwc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1157365},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"0bf0bd44342eecd1addc4cff5b20641de1f7db74","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.1","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.17.0_1788460858229_0.48178888010092646","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"@kaminari-ad/mcp","version":"0.17.1","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.17.1","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"c16beac562d28e1f99bf2ce95f9ccbdb50fb602b","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.17.1.tgz","fileCount":17,"integrity":"sha512-D9a1zflMCIaiLcu1WeiF8VZrVu5DEe0uN/O8yWk4i36dR/08vnepiQdMIpW5/6z5vgeVWZqlzfaF07vFFdBYrA==","signatures":[{"sig":"MEUCIQCgi3npYv3/lUgN33m74T5nah18LxYbEhpGXFZqnwYKXQIgEPjlD7/Qq35WwOnt34Dcfisu1t/UIbFyqjybB1hXNa4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGaZ9nfy2L+zM3xGv9sgSnhP+fSOYjwVgKShXg8pW3DmAiEAx0umr7RIdnmDIOFqhqhmy3nrDLxILIZyw5PjtEpKA3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1159072},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"9fe7050c0ca3fa0d982347b81d1a89060725e3a4","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.1","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.17.1_1788472114721_0.9884026425768271","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@kaminari-ad/mcp","version":"0.18.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.18.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"da325aba4d1b30a74b7d383ad5a269b43d0c9b14","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.18.0.tgz","fileCount":17,"integrity":"sha512-U7O+R2Eny2un5Jor67mjBThrkUVF2vai89yoHUhsxX9rZH+fxVeJgUibnWIYVeL/pkZKxJMBFuhXMDfV4OYmTQ==","signatures":[{"sig":"MEQCIGupaH058NPH4dCUeAr4iLKS73/PuCjJ/unslW/Q/7LIAiBDVst0uXfIGxDetOwo8gb/Dc2v3em+rsd4LJx9odSExQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHMrbI8F1sVif+cpFPFylv2kmkORjeLndWkkoWl8Ewj2AiB98SNAnu+uL6vsoOUHF26olo9DNEeNi2rnE/C7gGka0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1166020},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"7fbbec1c47efaf84d36529b8314876a58e9e3cd6","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"esbuild":"0.28.1","js-yaml":"4.3.1","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.6","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.6","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.18.0_1788854631966_0.35951543641084105","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"@kaminari-ad/mcp","version":"0.19.1","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.19.1","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"8610ac4e7f81c91fe0ff9024e2f23f89e6a2305b","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.19.1.tgz","fileCount":17,"integrity":"sha512-KPLJB3HiAYyahm1RU2SjTPxe5Vds6QF3FUJL3wVwkuuzSpilmgKygK4NctMK2Sz93Aire5tny8U6FNRXn7bohQ==","signatures":[{"sig":"MEUCIQDmd9BAWl5RyVuVB7Rsm+j3cQiZtYcC73zBkboSethhiAIgaWN+CmmbDhafJqpbjIyzzebfpu8RjajANKOJdH/uSqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCYE/e5uMV87p50gY45xboewrkJAvLrANGCOCnCwSaRMQIhAOuXz5EfQbn/eATPBz6ZhQdFad5YJWQMVxR69Td6wClp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1171720},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"e48ec0edd960a3632df839a0b8e45f8cb2bc9bbf","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"hono":"^4.13.7","esbuild":"0.28.1","js-yaml":"4.3.2","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.11","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.11","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.19.1_1789070113952_0.9179439204022686","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@kaminari-ad/mcp","version":"0.22.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.22.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"6c8cf90ccdede452c12b1beb268b878e07a23cb8","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.22.0.tgz","fileCount":17,"integrity":"sha512-igJ+r7/iZg3fVmNYMMmmyokbMZ6EEUFEXWkssKb89EedABaBEUiAGVGc6ECMxFtlBD0th4P3+/XwA7zOYV5yFg==","signatures":[{"sig":"MEUCIQDL0/lB34k6l/Px5N3n7SNnsxfgPEZd2iTgccWTcIjsSwIgAyc6sQX/gnqO1H0EXISxMc7sJN+PNCs5+R3OeHQAGZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHO2wIYqBXWjien3UtBfI/Vep0W+xpO6QKF80Pw4GSLqAiEAhGiKPlF6IgrB0w7xyARxRvNdHT565RckGhqrFB3RF6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1191624},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"e3ff553725827d88b96f3c63044fdc3ae86dc42e","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"hono":"^4.13.7","esbuild":"0.28.1","js-yaml":"4.3.2","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.10.0","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.11","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.11","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.22.0_1789499825205_0.7666430491435015","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@kaminari-ad/mcp","version":"0.23.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.23.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"825408f290ea036956fbd78e933ed155566d3163","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.23.0.tgz","fileCount":17,"integrity":"sha512-EwOJSOpi3Ir1tWceDVbvIQEsVQZelyxmDlUGBUNMu5uQq/qNGdY8DjFaSTeQf7RBG7oN2FV+BBbioaz2g6ksBg==","signatures":[{"sig":"MEQCIGMEaGEGNxSR2DhDMulJsk3ewSg1BNepXVjSIVKv/YQdAiBSbmzB1AjxzIQp7JxjtkSQJ6dAuK6P9hN9prGKJk3mgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF+604jfbuXY6TMoglHj+E3cfbYHJHvFVFheO1sjYQ5KAiEAwZcUY0dwqMFd9aWPRmOE1Za1w3COTGALpeG5Eb+Xevk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1198552},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"40ecc8b3724ae0d3b565fbae88cb18e61bcfbc61","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"hono":"^4.13.7","esbuild":"0.28.1","js-yaml":"4.3.2","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.11.2","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.11","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.11","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.23.0_1790713193181_0.5895320453612218","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@kaminari-ad/mcp","version":"0.24.0","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.24.0","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"a0b0fe20e0294b079d712cd9ac07d3a81e37db75","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.24.0.tgz","fileCount":17,"integrity":"sha512-qdSIC2qzH+I63xdYZai+mEGUvr0OeEyFEAALArEDt0MwvrcOQ5ZrNhOD0l9EXDYb3N7cVA75Yay6Por2l31kUA==","signatures":[{"sig":"MEYCIQDhlq6jppLPFltlS0iAm5w6puljXk2o9Z9GHIx4AqgmxwIhAM4giF7h3leBoZ4iftnlF93EYYo6hZY8O/XBfuQ51Zjy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB+A8J2W1F/9E6sPgU8G7dYCD0itd9rKfFhnzjpTyAotAiBFCByUUICSoXqhnOhFVdvhALVrB3ZHyIdFqOFMG9DW8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1218210},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"57419ac68d05ac80d64e94d6490db80286f8074e","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"hono":"^4.13.7","esbuild":"0.28.1","js-yaml":"4.3.2","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.11.2","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.11","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.11","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.24.0_1790802632804_0.5024485334561077","host":"s3://npm-registry-packages-npm-production"}},"0.24.1":{"name":"@kaminari-ad/mcp","version":"0.24.1","keywords":["mcp","model-context-protocol","kaminari-ad","ad-verification","malvertising","cursor","claude","anthropic"],"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","_id":"@kaminari-ad/mcp@0.24.1","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"homepage":"https://github.com/kaminari-ad/mcp","bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"dist":{"shasum":"0619f7e3d93c16e5da25052aff67f098c6c81585","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.24.1.tgz","fileCount":17,"integrity":"sha512-tEOHJErfYhTgRb/uCZwSByRgQpS5Y+Dk1pJAAHJ7kKbi4cwqNGiCkUv4zRZARvsqax8KymMRONYBqG3ilo+FDg==","signatures":[{"sig":"MEUCIQDQeGEHZ8Ms7uXQW6ez50XyOwkzIUZLziNx1H6smdYxwQIgYx4rb6JjTPNZcJN91yIx7yzXCg352IoUMdb/TmrKReU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBFXHLz65RhyPEbJkeMXg+Ihq8NT10CqQP6EGc4ZtkQvAiByMgfTBTNJvi3yE+wIgr8xwE0I20mzwbGzBxMt4NzEfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.24.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1220344},"main":"./dist/bin.js","type":"module","types":"./dist/bin.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"e802538431b80b20440bc5d465095446a066e2fd","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"overrides":{"glob":{"minimatch":"10.2.6"},"hono":"^4.13.7","esbuild":"0.28.1","js-yaml":"4.3.2","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.11.2","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.11","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.11","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.24.1_1790919656057_0.770844329345479","host":"s3://npm-registry-packages-npm-production"}},"0.24.2":{"_id":"@kaminari-ad/mcp@0.24.2","bin":{"mcp":"dist/bin.js","kaminari-ad-mcp":"dist/bin.js"},"bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"dist":{"shasum":"406b96284c1c53852ac0349e0473958ff1a26dff","tarball":"https://registry.npmjs.org/@kaminari-ad/mcp/-/mcp-0.24.2.tgz","fileCount":17,"integrity":"sha512-2cX5MALtT0bRd+G7Jq3av3dQQbe6NaivcLYldew839yt4t0fZB4wgyvTh6H6+1ouRCuxve3QtS61VFkE6lqQxA==","signatures":[{"sig":"MEUCIQDSaIp0+CcENEvE9YI43/5v+03XFKrsCysUkmhwSHcDnAIgRCZl/4Nm2aD9axCN4hf2m0rMGw1i/1tz3282gr0IiJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEvYbsGGPo2Ti6HcZVJEZvSmiO6RHJIQMyFPnuO7jXCkAiB5pXPCbim9mvyhJmvhg0FnI+NSRGrgYSIUr0YudnICGw=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaminari-ad%2fmcp@0.24.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1222003},"main":"./dist/bin.js","name":"@kaminari-ad/mcp","type":"module","types":"./dist/bin.d.ts","author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/bin.d.ts","import":"./dist/bin.js","default":"./dist/bin.js"},"./package.json":"./package.json"},"gitHead":"4f4c0dab4b586d05512a23eb508c785001c62fa0","license":"MIT","mcpName":"io.github.kaminari-ad/mcp","scripts":{"lint":"eslint --max-warnings 0 .","test":"vitest run","build":"tsup","format":"prettier --write .","lint:fix":"eslint --fix .","test:cov":"vitest run --coverage","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","audit:deps":"npm audit --audit-level=moderate","prod:smoke":"tsx scripts/prod-smoke.ts","format:check":"prettier --check .","check:imports":"depcruise --config .dependency-cruiser.cjs src","gen:api-types":"tsx scripts/gen-api-types.ts","audit:licenses":"license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC-BY-4.0\" --excludePrivatePackages","prepublishOnly":"npm run lint && npm run typecheck && npm run test:cov && npm run build","test:isolation":"vitest run tests/isolation","check:file-sizes":"tsx scripts/check-file-sizes.ts","test:integration":"vitest run tests/integration --passWithNoTests","build:mcpb-bundle":"tsup --config tsup.mcpb.config.ts","check:bundle-size":"tsx scripts/check-bundle-size.ts","check:tool-naming":"tsx scripts/check-tool-naming.ts","check:api-coverage":"tsx scripts/check-api-coverage.ts","check:shared-state":"tsx scripts/check-no-shared-state.ts","check:tool-enum-drift":"tsx scripts/check-tool-enum-drift.ts","check:mcpb-bundle-size":"tsx scripts/check-mcpb-bundle-size.ts","check:no-handwritten-parsers":"tsx scripts/check-no-handwritten-parsers.ts"},"version":"0.24.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b1fae4da-e20e-440e-9aa7-a616a7897f41"}},"homepage":"https://kaminari.ad/mcp","keywords":["mcp","mcp-server","model-context-protocol","kaminari-ad","ad-verification","malvertising","ad-fraud","ad-quality","brand-safety","cloaking-detection","threat-intelligence","cursor","claude","anthropic"],"overrides":{"glob":{"minimatch":"10.2.6"},"hono":"^4.13.7","esbuild":"0.28.1","js-yaml":"4.3.2","minimatch":{"brace-expansion":"5.0.9"},"@redocly/openapi-core":{"minimatch":"10.2.6"}},"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","directories":{},"maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"zod":"3.25.76","pino":"9.5.0","undici":"8.11.2","neverthrow":"8.1.1","pino-pretty":"13.0.0","openapi-fetch":"0.17.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.0","tsup":"8.5.1","eslint":"10.8.0","vitest":"4.1.11","lefthook":"1.10.1","prettier":"3.4.2","ts-morph":"28.0.0","@eslint/js":"10.0.1","typescript":"5.7.3","@types/node":"22.10.5","@commitlint/cli":"19.6.1","license-checker":"25.0.1","typescript-eslint":"8.65.0","@eslint/plugin-kit":"0.7.2","dependency-cruiser":"16.9.0","openapi-typescript":"7.5.2","openapi-zod-client":"1.18.3","@vitest/coverage-v8":"4.1.11","eslint-plugin-jsdoc":"63.3.2","@vitest/eslint-plugin":"1.6.24","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"56.0.1","eslint-config-prettier":"10.0.1","eslint-plugin-import-x":"4.17.1","eslint-plugin-security":"3.0.1","eslint-plugin-no-secrets":"2.3.3","@typescript-eslint/parser":"8.65.0","@commitlint/config-conventional":"19.6.0","@typescript-eslint/eslint-plugin":"8.65.0","eslint-plugin-simple-import-sort":"12.1.1","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.24.2_1791017932848_0.849603977711"}}},"time":{"created":"2026-05-17T16:34:42.490Z","modified":"2026-10-03T08:58:53.366Z","0.1.0":"2026-05-17T16:34:42.716Z","0.1.5":"2026-05-17T17:59:54.487Z","0.2.0":"2026-05-17T21:14:34.931Z","0.2.1":"2026-05-18T06:09:31.219Z","0.2.2":"2026-05-20T06:46:04.789Z","0.3.0":"2026-05-20T10:01:11.719Z","0.4.0":"2026-06-04T11:05:45.284Z","0.5.0":"2026-06-17T19:58:05.479Z","0.5.2":"2026-06-20T14:45:25.529Z","0.6.0":"2026-06-30T16:31:27.261Z","0.7.2":"2026-07-10T09:37:22.221Z","0.8.0":"2026-07-10T13:09:31.017Z","0.9.0":"2026-07-21T12:22:20.536Z","0.9.1":"2026-07-21T15:03:51.842Z","0.10.0":"2026-07-28T14:30:06.370Z","0.11.0":"2026-07-28T14:31:43.833Z","0.12.0":"2026-08-07T10:40:51.598Z","0.12.1":"2026-08-20T14:40:54.582Z","0.13.0":"2026-08-20T21:18:52.031Z","0.14.0":"2026-08-23T18:01:59.383Z","0.14.1":"2026-08-24T14:21:37.341Z","0.16.0":"2026-08-26T21:12:52.508Z","0.17.0":"2026-09-03T18:40:58.370Z","0.17.1":"2026-09-03T21:48:34.828Z","0.18.0":"2026-09-08T08:03:52.048Z","0.19.1":"2026-09-10T19:55:14.141Z","0.22.0":"2026-09-15T19:17:05.325Z","0.23.0":"2026-09-29T20:19:53.368Z","0.24.0":"2026-09-30T21:10:32.890Z","0.24.1":"2026-10-02T05:40:56.181Z","0.24.2":"2026-10-03T08:58:52.967Z"},"bugs":{"url":"https://github.com/kaminari-ad/mcp/issues"},"author":{"url":"https://kaminari.ad","name":"Kaminari Ad","email":"hello@kaminari.ad"},"license":"MIT","homepage":"https://kaminari.ad/mcp","keywords":["mcp","mcp-server","model-context-protocol","kaminari-ad","ad-verification","malvertising","ad-fraud","ad-quality","brand-safety","cloaking-detection","threat-intelligence","cursor","claude","anthropic"],"repository":{"url":"git+https://github.com/kaminari-ad/mcp.git","type":"git"},"description":"Official Model Context Protocol (MCP) server for the Kaminari Ad ad-verification platform.","maintainers":[{"name":"kadam-official","email":"vladislav@kadam.net"}],"readme":"# `@kaminari-ad/mcp`\n\nOfficial Model Context Protocol (MCP) server for [Kaminari Ad](https://kaminari.ad) — the ad verification platform from the team behind [Kaminari Click](https://kaminari.click).\n\nLets AI agents (Cursor, Claude Desktop, Cline, and any MCP-compatible client) launch scans, inspect results, manage campaigns and policies, and read alerts directly against your Kaminari Ad workspace via your API key.\n\n[![npm version](https://img.shields.io/npm/v/@kaminari-ad/mcp)](https://www.npmjs.com/package/@kaminari-ad/mcp)\n[![npm downloads](https://img.shields.io/npm/dm/@kaminari-ad/mcp)](https://www.npmjs.com/package/@kaminari-ad/mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![node](https://img.shields.io/node/v/@kaminari-ad/mcp)](https://nodejs.org)\n[![CI](https://github.com/kaminari-ad/mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/kaminari-ad/mcp/actions/workflows/ci.yml)\n[![Provenance](https://img.shields.io/npm/v/@kaminari-ad/mcp?label=provenance&logo=github)](https://www.npmjs.com/package/@kaminari-ad/mcp)\n[![MCP Registry](https://img.shields.io/badge/MCP_Registry-listed-blue)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.kaminari-ad/mcp)\n\n## Install (one click)\n\n### Cursor\n\n<a href=\"https://kaminari.ad/mcp/install\"><img alt=\"Install in Cursor\" src=\"https://cursor.com/deeplink/mcp-install-dark.png\" height=\"32\" /></a>\n\nWhat the server can do and how to connect any client: [Kaminari Ad MCP overview](https://kaminari.ad/mcp).\n\n### Claude Desktop\n\n[**Download `kaminari-ad-mcp.mcpb`**](https://github.com/kaminari-ad/mcp/releases/latest/download/kaminari-ad-mcp.mcpb) → double-click to install. Claude Desktop shows a config form for your API key.\n\n### Claude Code (CLI)\n\n```bash\nclaude mcp add kaminari-ad -- npx -y @kaminari-ad/mcp\nexport KAMINARI_AD_API_KEY=your-key\n```\n\nFull installation docs — see [Quick start](#quick-start) below.\n\n---\n\n## Quick start\n\n### 1. Sign up & get an API key\n\n1. Sign up at [https://app.kaminari.ad/signup](https://app.kaminari.ad/signup) (free tier, no card required).\n2. Once signed in, go to **Settings → API Keys** and generate a new key, OR have an existing AI assistant (with a temporary login) call the [`create_api_key`](#tools) tool — both paths produce the same result.\n3. The key is shown **once**. Copy it. The full key is hashed server-side immediately.\n\n> Keys are opaque random strings — no required prefix or fixed length. Treat the whole value as a raw secret and paste it verbatim into your client config.\n\n> Tip for evaluators / Anthropic Software Directory reviewers: ask the team at [hello@kaminari.ad](mailto:hello@kaminari.ad) for a sandboxed test account with seeded sample scans, campaigns, and alerts.\n\n### 2a. Local install (stdio transport)\n\nAdd to your MCP client config (Cursor: `~/.cursor/mcp.json`; Claude Desktop: `~/Library/Application Support/Claude/claude_desktop_config.json`):\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"kaminari-ad\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@kaminari-ad/mcp\"],\n      \"env\": {\n        \"KAMINARI_AD_API_KEY\": \"<your-kaminari-ad-api-key>\",\n      },\n    },\n  },\n}\n```\n\nRestart your client. You should see `kaminari-ad` in the MCP servers list with 108 tools exposed.\n\n### 2b. Hosted HTTP transport (no install)\n\nFor cloud agents or clients without a local Node runtime, point at the hosted endpoint:\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"kaminari-ad\": {\n      \"url\": \"https://mcp.kaminari.ad/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer <your-kaminari-ad-api-key>\",\n      },\n    },\n  },\n}\n```\n\n### 2c. OAuth 2.0 (Claude directory, third-party agents)\n\nThe hosted server publishes RFC 9728 protected-resource metadata at\n[`https://mcp.kaminari.ad/.well-known/oauth-protected-resource`](https://mcp.kaminari.ad/.well-known/oauth-protected-resource)\nand points at the Kaminari Ad Authorization Server\n(`https://app.kaminari.ad`). Any unauthenticated request to `/mcp`\nreturns a `WWW-Authenticate: Bearer resource_metadata=\"…\"` header so\nspec-compliant MCP clients (Claude.ai, Claude Code, third-party\nagents) can complete an OAuth 2.0 authorization-code flow with PKCE\nS256 + Dynamic Client Registration (RFC 7591).\n\n```bash\n# Discovery — works without any credential\ncurl -sk https://mcp.kaminari.ad/.well-known/oauth-protected-resource\n\n# Triggering the WWW-Authenticate hint\ncurl -isk https://mcp.kaminari.ad/mcp -X POST \\\n  -H 'content-type: application/json' \\\n  -d '{\"jsonrpc\":\"2.0\",\"method\":\"tools/list\",\"id\":1}'\n```\n\n**API keys remain the recommended path for CLIs and one-off\nscripting** — OAuth is only for interactive agents that want per-app\nconsent and per-app revocation. Both Bearer flavours hit the same\n`/mcp` endpoint; the server forwards the token verbatim to the API,\nwhich decides which credential type minted it.\n\n---\n\n## Tools\n\n108 tools covering the public `/api/v1` surface of Kaminari Ad. Every tool carries MCP behaviour annotations (`title`, `readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`) so MCP clients can warn before destructive actions. The complete list, by domain:\n\n- **Account** (14) — `get_account`, `update_org`, `list_org_users`, `invite_user`, `update_user_role`, `remove_user`, `transfer_ownership`, `list_org_roles`, `create_custom_role`, `list_account_labels`, `update_account_labels`, `list_api_keys`, `create_api_key`, `revoke_api_key`\n- **Scans** (13) — `list_scans`, `get_scan`, `list_scan_children`, `create_scan`, `create_bulk_scans`, `recheck_scans`, `cancel_scan`, `get_scan_screenshot`, `get_scan_creative_screenshot`, `get_scan_landing_screenshot`, `get_scan_creative_html`, `get_scan_creative_video`, `get_scan_vast_xml`\n- **Campaigns** (10) — `list_campaigns`, `list_campaigns_picker`, `get_campaign`, `create_campaign`, `update_campaign`, `archive_campaign`, `unarchive_campaign`, `cancel_campaign`, `run_campaign`, `list_campaign_runs`\n- **Campaign groups** (10) — list/get/create/update/run/cancel/archive/unarchive + `pause_campaign_group_schedule`, `resume_campaign_group_schedule`\n- **Runs** (3) — `get_run`, `list_run_scans`, `cancel_run` (use `list_campaign_runs` to enumerate runs of a campaign — the API has no standalone `/runs` index)\n- **Tags** (5) — `list_tags`, `get_tag_definition`, `update_tag_definition`, `delete_tag_definition`, `list_scan_tags`\n- **Custom rules** (6) — `list_custom_rules`, `get_custom_rule`, `create_custom_rule`, `update_custom_rule`, `delete_custom_rule`, `test_custom_rule`\n- **Custom taxonomies** (7) — `list_custom_taxonomies`, `get_custom_taxonomy`, `create_custom_taxonomy`, `update_custom_taxonomy`, `delete_custom_taxonomy`, `restore_custom_taxonomy`, `parse_custom_taxonomy_text`\n- **Policy sets** (11) — `list_policy_sets`, `get_policy_set`, `create_policy_set`, `update_policy_set`, `delete_policy_set`, `request_policy_set_approval`, `unpublish_policy_set`, `set_default_policy_set`, `list_policy_set_campaigns`, `attach_policy_set_campaigns`, `detach_policy_set_campaigns`\n- **Alerts** (4) — `list_alerts`, `update_alert_status`, `bulk_update_alert_status`, `get_alert_stats`\n- **Webhooks** (11) — `list_webhooks`, `get_webhook`, `create_webhook`, `update_webhook`, `delete_webhook`, `list_webhook_event_types`, `list_webhook_deliveries`, `test_webhook`, `rotate_webhook_secret`, `replay_webhook_delivery`, `bulk_replay_webhook`\n- **Billing** (4) — `get_billing_summary`, `list_usage`, `get_usage_summary`, `list_balance_history`\n- **Invoicing** (2) — `list_invoices`, `get_invoice_pdf`\n- **Alert notifications** (5) — `list_alert_destinations`, `delete_alert_destination`, `set_alert_destination_version`, `get_campaign_alert_overrides`, `set_campaign_alert_overrides`\n- **Reference data** (3) — `list_geos`, `list_emulators`, `get_proxy_targeting`\n\nScreenshots (`get_scan_screenshot`, `get_scan_creative_screenshot`, `get_scan_landing_screenshot`) come back as inline MCP `image` blocks; `get_invoice_pdf` and `get_scan_creative_video` as inline resource blocks — no second fetch, no presigned URL. The two text artifacts (`get_scan_creative_html`, `get_scan_vast_xml`) come back as strings the model can read directly. Every artifact download is size-capped in the gateway — 256 KiB for the text artifacts, 8 MiB for the binary ones — and refused while reading rather than buffered and then rejected.\n\nNot exposed (intentionally): the public marketing forms, which are anonymous intake for kaminari.ad itself rather than an agent capability.\n\n## Example agent prompts\n\nThese three prompts each exercise a different cross-section of tools and demonstrate the typical agent workflow:\n\n1. **\"Scan https://news.example.com/article-promo across US, UK, DE on mobile profiles, flag anything that redirects to a paywall.\"** Touches `list_emulators` → `create_bulk_scans` → wait → `list_scans` (status=completed) → `get_scan` → `list_scan_tags`.\n2. **\"Create a campaign that re-checks the homepage of brand-x.com every hour from JP and US; alert me on Slack if it ever shows a malware tag.\"** Touches `list_emulators` → `list_policy_sets` (find one with `malware`) → `create_campaign` (schedule_enabled=true) → `attach_policy_set_campaigns` → `list_alert_destinations` → `set_campaign_alert_overrides` (`mode: \"override\"` with the Slack destination).\n3. **\"What did I spend on ad verification last month, and which campaigns drove the cost?\"** Touches `get_usage_summary` → `list_usage` (with date_from/date_to) → group by `scan_id` → `get_scan` → `get_campaign` for attribution.\n\nFull machine-readable tool listing is exposed by the server itself — connect with any MCP client and call `tools/list`.\n\n---\n\n## Security & tenant isolation\n\nThe hosted HTTP endpoint serves many organizations from a single process. We take cross-tenant isolation very seriously:\n\n- The MCP server is a strict, stateless, per-request pass-through. It forwards your `Authorization` header to the Kaminari Ad API verbatim and stores no per-tenant state between requests.\n- No caches, no in-memory data indexed by anything tenant-related.\n- `KAMINARI_AD_API_KEY` env var is rejected on startup in HTTP mode (stdio only) — no default fallback token exists.\n- Session IDs are bound to the SHA-256 of the Bearer that initialized them; reuse with a different Bearer is rejected.\n- Bearers are never logged. Only their 8-character hash prefix is recorded for correlation.\n- See [`tests/isolation/`](tests/isolation) for the regression suite that enforces every rule above on each CI run.\n\nTo report a security issue, see [SECURITY.md](SECURITY.md).\n\n---\n\n## Development\n\nThe Docker path (no local Node required for the build, but see [CONTRIBUTING](CONTRIBUTING.md) for the host-side commit hooks):\n\n```bash\nmake check           # lint + format-check + typecheck + arch-gates + test-cov\nmake test            # full test suite\nmake test-unit       # unit only\nmake test-isolation  # tenant-isolation suite\n```\n\nOr directly with `npm` if you have Node `>=22.19.0` on the host (matches `engines.node`; `.nvmrc` pins the minor for dev parity with CI). The package gates strictly at `22.19.0` because `undici@8.x` requires `markAsUncloneable` from `node:worker_threads` (Node 22.19+).\n\n```bash\nnpm ci --legacy-peer-deps\nnpm run lint && npm run typecheck && npm test\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for the development workflow and how to add a tool.\n\n> The maintainers run the full development gate (integration tests, deploy automation, prod smoke) on a private GitLab instance and mirror the repo to GitHub. The public CI on GitHub Actions ([`.github/workflows/ci.yml`](.github/workflows/ci.yml)) runs lint + typecheck + unit tests + build + bundle-size check on every community PR, so contributors get fast green/red feedback without needing access to the internal infra. Tag pushes (`v*.*.*`) trigger [`.github/workflows/release.yml`](.github/workflows/release.yml), which publishes the package to npm with OIDC provenance, creates the GitHub Release and publishes [`server.json`](server.json) to the official MCP Registry.\n\n---\n\n## Stability\n\nThe **public surface** of this package is:\n\n1. The **CLI binary** `kaminari-ad-mcp` and its `--transport stdio|http` flag, the env vars documented in `.env.example`, and the exit codes (0 / 1 fatal / 2 invalid config).\n2. The **MCP wire protocol** as implemented by every registered tool (tool names, input schemas, output shapes, annotations). Tools deprecated in a future major version will keep working for at least one minor version with a console warning.\n\nEverything else — the TypeScript types exported from `dist/bin.d.ts`, deep imports, internal class shapes — is **not** part of the public contract and may change in any release. Treat this package as a CLI, not a library.\n\nWe follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html) for the two items above. See [`CHANGELOG.md`](CHANGELOG.md) for the per-release record.\n\n---\n\n## Privacy\n\n- **Data collected by the MCP server itself:** none beyond the `Authorization` header it forwards. The HTTP transport is stateless — no sessions are persisted; each request is authenticated independently by its own Bearer. The only in-memory state is the leaky-bucket rate limiter keyed by `sha256(bearer)`.\n- **Data forwarded to Kaminari Ad:** every tool call is a thin pass-through to `/api/v1` over HTTPS. The Kaminari Ad privacy policy applies: [https://kaminari.ad/privacy](https://kaminari.ad/privacy).\n- **Logs:** structured pino output, JSON in HTTP mode. The full Bearer token is redacted; only `bearer_hash = sha256(token).slice(0,8)` makes it into a log line, alongside `request_id`, `tool_name`, `api_status`, `elapsed_ms`. Tool inputs (which may contain customer scan IDs / URLs) are NOT logged.\n- **Telemetry:** none. The OSS build ships a `NoopErrorReporter`. We do not bundle Sentry, OpenTelemetry exporters, or PostHog.\n\nTo report a security or privacy issue, see [SECURITY.md](SECURITY.md).\n\n## Learn more\n\n- [Kaminari Ad MCP overview](https://kaminari.ad/mcp) — what agents can do with the server, with setup for every client.\n- [MCP server developer docs](https://kaminari.ad/docs/developers/mcp-server) — transports, authentication and OAuth connected apps.\n- [REST API quickstart](https://kaminari.ad/docs/developers/rest-quickstart) — the `/api/v1` surface every tool calls.\n- [Malvertising, auto-redirect and cloaking detections](https://kaminari.ad/detections) — what a scan verdict can flag.\n- [DarkSword in the ad stack: an iOS exploit chain](https://kaminari.ad/blog/darksword-ios-exploit-chain-in-ad-traffic) — research from the Kaminari Ad team.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","readmeFilename":"README.md"}