{"_id":"@kantadev/cli","_rev":"8-b31e659a5274ac4c6602de2dd733082d","name":"@kantadev/cli","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.0":{"name":"@kantadev/cli","version":"0.1.0","keywords":["kanta","email-verification","email-finder","b2b-data","mcp","modelcontextprotocol","cli"],"license":"MIT","_id":"@kantadev/cli@0.1.0","maintainers":[{"name":"w0wie","email":"griffin@omniamktg.com"}],"homepage":"https://kanta.dev/developers","bugs":{"url":"https://github.com/griffinkanta/kanta-dev/issues"},"bin":{"kanta":"bin/kanta.js","kanta-mcp":"bin/kanta-mcp.js"},"dist":{"shasum":"fc3a8ae292f8d4f977f7ca9a841546144330ae30","tarball":"https://registry.npmjs.org/@kantadev/cli/-/cli-0.1.0.tgz","fileCount":29,"integrity":"sha512-59wAlaDb/UOovTY0srPcqJIv59NkTw1pswbNbRKSI0h85G2EXwH6N0eA8qDDhjWEsqCVsauaA8jT3kqvKE56QA==","signatures":[{"sig":"MEYCIQCcmHrqjXO69m7KetyDGo/sDmEEgy9yGmTuGZmlWqtmDwIhANAF1LS0mFUoZ6aj8EscYPlNR/n8o/zhFBm8gqMkMEi5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95431},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/core/client.js","./mcp":"./src/mcp/server.js"},"gitHead":"1f24a14e2c6154e008f8eceb3c29aebc19fcb6d9","mcpName":"dev.kanta/cli","scripts":{"mcp":"node bin/kanta-mcp.js","test":"vitest run","start":"node bin/kanta.js","test:watch":"vitest"},"_npmUser":{"name":"w0wie","email":"griffin@omniamktg.com"},"repository":{"url":"git+https://github.com/griffinkanta/kanta-dev.git","type":"git","directory":"kanta-cli"},"_npmVersion":"11.11.0","description":"Kanta CLI + MCP server — email verification, email finding, and the Kanta B2B contact database from your terminal or an MCP client.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"commander":"^12.1.0","csv-parse":"^5.5.6","csv-stringify":"^6.5.1","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1788980385908_0.31880080612493233","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@kantadev/cli","version":"0.1.1","keywords":["kanta","email-verification","email-finder","b2b-data","mcp","modelcontextprotocol","cli"],"license":"MIT","_id":"@kantadev/cli@0.1.1","maintainers":[{"name":"w0wie","email":"griffin@omniamktg.com"}],"homepage":"https://kanta.dev/developers","bugs":{"url":"https://github.com/griffinkanta/kanta-dev/issues"},"bin":{"kanta":"bin/kanta.js","kanta-mcp":"bin/kanta-mcp.js"},"dist":{"shasum":"243c15f1364a68f153107ea5632e253ea236b4a7","tarball":"https://registry.npmjs.org/@kantadev/cli/-/cli-0.1.1.tgz","fileCount":29,"integrity":"sha512-u3uEp/KwENYOYXm9r/RFWTONW0CcHunndvvSUmU26itW+cyJQMN+8NUEWhHdgAivfrMGXTRjbjtkVQrVYUXHjQ==","signatures":[{"sig":"MEUCIHZcx15diKvMHrwPseFgNdkVD83zAw4RIdpaoiAAMc+sAiEAkjEYIo/TeLVHodp5iuSCa1e7dTpSZiJ13ha+gzjRg50=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHrHH7vBbOkexCskWpJv8FU8tRec+ll5b4Z9EBcWYoPyAiBzyqiXaVsG1DN04KYA7WrI89Wv/BLzdlSGg6jiwMSHJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95902},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/core/client.js","./mcp":"./src/mcp/server.js"},"gitHead":"01bbc881c16fed4b76443f10a5835adea1ed56f7","mcpName":"dev.kanta/cli","scripts":{"mcp":"node bin/kanta-mcp.js","test":"vitest run","start":"node bin/kanta.js","test:watch":"vitest"},"_npmUser":{"name":"w0wie","email":"griffin@omniamktg.com"},"repository":{"url":"git+https://github.com/griffinkanta/kanta-dev.git","type":"git","directory":"kanta-cli"},"_npmVersion":"11.11.0","description":"Kanta CLI + MCP server — email verification, email finding, and the Kanta B2B contact database from your terminal or an MCP client.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"commander":"^12.1.0","csv-parse":"^5.5.6","csv-stringify":"^6.5.1","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.1_1788980954212_0.29648805930067246","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@kantadev/cli","version":"0.1.2","keywords":["kanta","email-verification","email-finder","b2b-data","mcp","modelcontextprotocol","cli"],"license":"MIT","_id":"@kantadev/cli@0.1.2","maintainers":[{"name":"w0wie","email":"griffin@omniamktg.com"}],"homepage":"https://kanta.dev/api-docs","bugs":{"url":"https://github.com/griffinkanta/kanta-dev/issues"},"bin":{"cli":"bin/kanta.js","kanta":"bin/kanta.js","kanta-mcp":"bin/kanta-mcp.js"},"dist":{"shasum":"e403aa311d26225144b116abc24af8773ae8b89e","tarball":"https://registry.npmjs.org/@kantadev/cli/-/cli-0.1.2.tgz","fileCount":29,"integrity":"sha512-20sRNHVCdxUFRX3PaCii/5798z1gdyYZgBDR/DlnpD/BBvzPvRh8XCR4J2Is2KFTRBVeMg81Li0lkFnCiDKWkw==","signatures":[{"sig":"MEYCIQCcH/TVHrRY+ViguFclnW5ekbdVBi3DaR8DUAzcTLCPIgIhAIpTAaZKVu8dROKYEic5rDrj4/hzH0Dbil0YTSWVnbFh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC/VrVTswuhspZaYDOEOKT41PNMIZldMUpZ2wJve7kolgIhAN1HkuOu0k8FYwqoF8bS/ipIROg4rRA/GPST5QQJcE7F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96895},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/core/client.js","./mcp":"./src/mcp/server.js"},"gitHead":"7e03245e8f5641795fbef293a75d600fb94d971d","mcpName":"dev.kanta/cli","scripts":{"mcp":"node bin/kanta-mcp.js","test":"vitest run","start":"node bin/kanta.js","test:watch":"vitest"},"_npmUser":{"name":"w0wie","email":"griffin@omniamktg.com"},"repository":{"url":"git+https://github.com/griffinkanta/kanta-dev.git","type":"git","directory":"kanta-cli"},"_npmVersion":"11.11.0","description":"Kanta CLI + MCP server — email verification, email finding, and the Kanta B2B contact database from your terminal or an MCP client.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"commander":"^12.1.0","csv-parse":"^5.5.6","csv-stringify":"^6.5.1","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.2_1791325707802_0.057705579869255175","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@kantadev/cli","version":"0.1.3","keywords":["kanta","email-verification","email-finder","b2b-data","mcp","modelcontextprotocol","cli"],"license":"MIT","_id":"@kantadev/cli@0.1.3","maintainers":[{"name":"w0wie","email":"griffin@omniamktg.com"}],"homepage":"https://kanta.dev/api-docs","bugs":{"url":"https://github.com/griffinkanta/kanta-dev/issues"},"bin":{"cli":"bin/kanta.js","kanta":"bin/kanta.js","kanta-mcp":"bin/kanta-mcp.js"},"dist":{"shasum":"b68d27cf9b8505bb36de2795b978e60496cdb332","tarball":"https://registry.npmjs.org/@kantadev/cli/-/cli-0.1.3.tgz","fileCount":31,"integrity":"sha512-w9lfzEB8v1dYjV5TRPxDC3fFsNbFn8v7T02/qMIJlIcSKnfyVO+ioPAVwZMn2ZB9trSxa3arQy5JwP7dRpYq2w==","signatures":[{"sig":"MEYCIQD/14tc1aTMHSeEYcGSrguDbHv/H2Z+PqzxwfBRb3PVVAIhAMI5v/E1Qg9scZDXO9toDiZj9YRpjU348SqFgEKeCLnH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDK4dbzWVdlAqNfrWV8OzdH/HoYEwmvRuOjWEyyyAAnkgIhAK6odSEQwMlgwQIA4rgcpQXxTnMSbnUXrkyNdMYzM8yd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102241},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/core/client.js","./mcp":"./src/mcp/server.js"},"gitHead":"c05c1e59572908927f8518af59756df858ee19eb","mcpName":"dev.kanta/cli","scripts":{"mcp":"node bin/kanta-mcp.js","test":"vitest run","start":"node bin/kanta.js","test:watch":"vitest"},"_npmUser":{"name":"w0wie","email":"griffin@omniamktg.com"},"repository":{"url":"git+https://github.com/griffinkanta/kanta-dev.git","type":"git","directory":"kanta-cli"},"_npmVersion":"11.11.0","description":"Kanta CLI + MCP server — email verification, email finding, and the Kanta B2B contact database from your terminal or an MCP client.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"commander":"^12.1.0","csv-parse":"^5.5.6","csv-stringify":"^6.5.1","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.3_1791337877604_0.49302031694236015","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@kantadev/cli","version":"0.1.5","keywords":["kanta","email-verification","email-finder","b2b-data","mcp","modelcontextprotocol","cli"],"license":"MIT","_id":"@kantadev/cli@0.1.5","maintainers":[{"name":"w0wie","email":"griffin@omniamktg.com"}],"homepage":"https://kanta.dev/api-docs","bugs":{"url":"https://github.com/griffinkanta/kanta-dev/issues"},"bin":{"cli":"bin/kanta.js","kanta":"bin/kanta.js","kanta-mcp":"bin/kanta-mcp.js"},"dist":{"shasum":"7c799f275008cf8293049a13976b4c34742920f1","tarball":"https://registry.npmjs.org/@kantadev/cli/-/cli-0.1.5.tgz","fileCount":35,"integrity":"sha512-UOQQC+E5DmqvVEs/2DpYKGT7iuZU9aOyRbkPT+L5FkVkvbartcYL3FmP682OHoE0eBUh+C7WN/h+2U7jooBC+Q==","signatures":[{"sig":"MEUCIB6fkw3jsuaFgw5o61BDROkcYyb8tmjBqEeAziFUXER0AiEApx0f6M1PLSzR9cCI4ZZFntsdK0K4KXIQfRv8uEMrQmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGnc9ACnDLwhDY6oDNkGQPkxFRHqb9k6/IBTj7bvqZo4AiEAnUCjxjHoYIx8vMFGHQdsjV10QrcVx/+wkbDyCrJL4aI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119459},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/core/client.js","./mcp":"./src/mcp/server.js"},"gitHead":"6c8e5793561e909a4a331aa815bd5f5ee6ea9aac","mcpName":"dev.kanta/cli","scripts":{"mcp":"node bin/kanta-mcp.js","test":"vitest run","start":"node bin/kanta.js","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"c37895ed-93ad-426f-8853-959ba0f68e95"}},"repository":{"url":"git+https://github.com/griffinkanta/kanta-dev.git","type":"git","directory":"kanta-cli"},"_npmVersion":"12.2.0","description":"Kanta CLI + MCP server — email verification, email finding, and the Kanta B2B contact database from your terminal or an MCP client.","directories":{},"_nodeVersion":"22.23.3","dependencies":{"commander":"^12.1.0","csv-parse":"^5.5.6","csv-stringify":"^6.5.1","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.5_1791473727987_0.7151076266810428","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@kantadev/cli","version":"0.1.6","keywords":["kanta","email-verification","email-finder","b2b-data","mcp","modelcontextprotocol","cli"],"license":"MIT","_id":"@kantadev/cli@0.1.6","maintainers":[{"name":"w0wie","email":"griffin@omniamktg.com"}],"homepage":"https://kanta.dev/api-docs","bugs":{"url":"https://github.com/griffinkanta/kanta-dev/issues"},"bin":{"cli":"bin/kanta.js","kanta":"bin/kanta.js","kanta-mcp":"bin/kanta-mcp.js"},"dist":{"shasum":"8d6526518c21adcaf3e82e987d21aa81342c6023","tarball":"https://registry.npmjs.org/@kantadev/cli/-/cli-0.1.6.tgz","fileCount":36,"integrity":"sha512-Ag7Za9C+DjR98I+UyWAqaX9ZhHHRA/TtkP1VZ25NbaRRbZ5nvcGfZfgSGNjKSs5dmKaIUZe04ZwjeoCJxyxB0A==","signatures":[{"sig":"MEYCIQDoMcqodNVzBNMrXARBjfUhzcXXT35svOUzb+ud7MEvxQIhAJYNhz5xTyPrh6tk785YepOUDy66jG7ZbSSMeZl/TaRg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDd9Vw/swiGUtyThQueyPf+nQTb+yGkAOnJWqsvVyXlSQIhAMkN2pZBFSUuDd2ziH/4tpIDa1YT7VQM8DvCnDLGjwJ6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123566},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/core/client.js","./mcp":"./src/mcp/server.js"},"gitHead":"e02cd5292650ab5912ccb12926e79a5c235f2ab1","mcpName":"dev.kanta/cli","scripts":{"mcp":"node bin/kanta-mcp.js","test":"vitest run","start":"node bin/kanta.js","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"c37895ed-93ad-426f-8853-959ba0f68e95"}},"repository":{"url":"git+https://github.com/griffinkanta/kanta-dev.git","type":"git","directory":"kanta-cli"},"_npmVersion":"12.2.0","description":"Kanta CLI + MCP server — email verification, email finding, and the Kanta B2B contact database from your terminal or an MCP client.","directories":{},"_nodeVersion":"22.23.3","dependencies":{"commander":"^12.1.0","csv-parse":"^5.5.6","csv-stringify":"^6.5.1","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.6_1791477481061_0.04337438388836801","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@kantadev/cli","version":"0.1.7","keywords":["kanta","email-verification","email-finder","b2b-data","mcp","modelcontextprotocol","cli"],"license":"MIT","_id":"@kantadev/cli@0.1.7","maintainers":[{"name":"w0wie","email":"griffin@omniamktg.com"}],"homepage":"https://kanta.dev/api-docs","bugs":{"url":"https://github.com/griffinkanta/kanta-dev/issues"},"bin":{"cli":"bin/kanta.js","kanta":"bin/kanta.js","kanta-mcp":"bin/kanta-mcp.js"},"dist":{"shasum":"c210f7226477044039ebd5fa54b7a685036ba7f2","tarball":"https://registry.npmjs.org/@kantadev/cli/-/cli-0.1.7.tgz","fileCount":36,"integrity":"sha512-hROcY0kmQzPZJu1b70khTqskd57HO/pFlgoIYJg7MSngPgBn5P3ZLUAZWQ4uztfer132QJw/au0G7t46Q/gdYQ==","signatures":[{"sig":"MEUCIAGpaG1UPpTNQK4YI2M1ZZpR0QogBXN02Gfm2k1NtV24AiEA9qBO86kNyrXJqU3aTtJayq8MSODIuC0LH8nTKg52nkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFeb243HzSxVUmTB7CPmWv843bEc7dNoI8a2m5IrdM6HAiAtWkJtPixFXxMinCmMkOrxq87VMA2vg/Q7qwt7X2j1ZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123416},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/core/client.js","./mcp":"./src/mcp/server.js"},"gitHead":"3da936179e41fdbf25c3f78213e54f660725bd7e","mcpName":"dev.kanta/cli","scripts":{"mcp":"node bin/kanta-mcp.js","test":"vitest run","start":"node bin/kanta.js","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"c37895ed-93ad-426f-8853-959ba0f68e95"}},"repository":{"url":"git+https://github.com/griffinkanta/kanta-dev.git","type":"git","directory":"kanta-cli"},"_npmVersion":"12.2.0","description":"Kanta CLI + MCP server — email verification, email finding, and the Kanta B2B contact database from your terminal or an MCP client.","directories":{},"_nodeVersion":"22.23.3","dependencies":{"commander":"^12.1.0","csv-parse":"^5.5.6","csv-stringify":"^6.5.1","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.7_1791836583640_0.6619621624723533","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"_id":"@kantadev/cli@0.1.8","bin":{"cli":"bin/kanta.js","kanta":"bin/kanta.js","kanta-mcp":"bin/kanta-mcp.js"},"bugs":{"url":"https://github.com/griffinkanta/kanta-dev/issues"},"dist":{"shasum":"a9f391243aadf02c5b41bb77d59b8f551fe4c485","tarball":"https://registry.npmjs.org/@kantadev/cli/-/cli-0.1.8.tgz","fileCount":37,"integrity":"sha512-UJ6DoeR9VaGLzgeTN+KdwSYgOrThyp5WIKyZ/hlMTsRU1tvC7ZwsfnJiTyUxbTKESPrj2Sr/xG4O2KOtCt409A==","signatures":[{"sig":"MEUCIHluiZg7L3MPRe779YfZXvGOvSgtK6qjEpJco5DOPpuWAiEAvcxXotKruDE2id6qdYf2/Zx8aJqOTFesBoVZs+HsY+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDkwLLXEmRG1zssIHx8HjccarAoruWV1ea5ZN0gcXMYsgIhAJT1CcfsROAOZF4uXtLWO0UEh0XQcEQWoJyoatgDOH7H"}],"unpackedSize":126321},"name":"@kantadev/cli","type":"module","engines":{"node":">=20"},"exports":{".":"./src/core/client.js","./mcp":"./src/mcp/server.js"},"gitHead":"e11a3879e944e01931c6e82a8d6bcf4606aa9d56","license":"MIT","mcpName":"dev.kanta/cli","scripts":{"mcp":"node bin/kanta-mcp.js","test":"vitest run","start":"node bin/kanta.js","test:watch":"vitest"},"version":"0.1.8","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"c37895ed-93ad-426f-8853-959ba0f68e95"}},"homepage":"https://kanta.dev/api-docs","keywords":["kanta","email-verification","email-finder","b2b-data","mcp","modelcontextprotocol","cli"],"repository":{"url":"git+https://github.com/griffinkanta/kanta-dev.git","type":"git","directory":"kanta-cli"},"_npmVersion":"12.2.0","description":"Kanta CLI + MCP server — email verification, email finding, and the Kanta B2B contact database from your terminal or an MCP client.","directories":{},"maintainers":[{"name":"w0wie","email":"griffin@omniamktg.com"}],"_nodeVersion":"22.23.3","dependencies":{"commander":"^12.1.0","csv-parse":"^5.5.6","csv-stringify":"^6.5.1","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.8"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.1.8_1792004281461_0.3348514777380711"}}},"time":{"created":"2026-09-09T18:59:45.723Z","modified":"2026-10-14T18:58:01.897Z","0.1.0":"2026-09-09T18:59:46.039Z","0.1.1":"2026-09-09T19:09:14.295Z","0.1.2":"2026-10-06T22:28:27.886Z","0.1.3":"2026-10-07T01:51:17.690Z","0.1.5":"2026-10-08T15:35:28.077Z","0.1.6":"2026-10-08T16:38:01.201Z","0.1.7":"2026-10-12T20:23:03.729Z","0.1.8":"2026-10-14T18:58:01.702Z"},"bugs":{"url":"https://github.com/griffinkanta/kanta-dev/issues"},"license":"MIT","homepage":"https://kanta.dev/api-docs","keywords":["kanta","email-verification","email-finder","b2b-data","mcp","modelcontextprotocol","cli"],"repository":{"url":"git+https://github.com/griffinkanta/kanta-dev.git","type":"git","directory":"kanta-cli"},"description":"Kanta CLI + MCP server — email verification, email finding, and the Kanta B2B contact database from your terminal or an MCP client.","maintainers":[{"name":"w0wie","email":"griffin@omniamktg.com"}],"readme":"# @kantadev/cli\n\nTerminal (`kanta`) and MCP server (`kanta-mcp`) for **Kanta Verify**, **Kanta\nFind**, and the **Kanta Database**. Thin wrapper over the `api.kanta.dev` and\n`database.kanta.dev` REST APIs — no product logic lives here.\n\n- Node 20+, ESM.\n- Design specs: `docs/superpowers/specs/2026-09-04-kanta-cli-mcp-verify-find-admin-design.md`,\n  `docs/superpowers/specs/2026-09-04-kanta-database-api-mcp-design.md`\n- Full command reference: [`docs/cli.md`](../docs/cli.md)\n\n## Install\n\n```bash\nnpm install -g @kantadev/cli\nkanta login            # opens app.kanta.dev in your browser; approve the code shown\n                       # --no-browser prints the link; --key pastes an API key instead\n```\n\nLocal/dev:\n\n```bash\ncd kanta-cli\nnpm install\nnpm link\n```\n\n## MCP (Claude Desktop / Claude Code / Cursor)\n\n```json\n{\n  \"mcpServers\": {\n    \"kanta\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"-p\", \"@kantadev/cli\", \"kanta-mcp\"],\n      \"env\": { \"KANTA_API_KEY\": \"your_key\" }\n    }\n  }\n}\n```\n\nFrom 0.1.2, `npx -y @kantadev/cli mcp` works too (it's what the MCP registry entry runs).\n\nThe server calls `GET /me` once at startup to learn the key scope. If the API is\nunreachable it still boots with the customer tool set (admin tools appear once\n`/me` succeeds).\n\n## Auth\n\nKey resolution order (first match wins):\n\n1. `--api-key <key>` global flag (never persisted)\n2. `KANTA_API_KEY` env var (optionally `KANTA_BASE_URL`, `KANTA_DB_URL`)\n3. `--profile <name>` from `~/.kanta/config.json`\n4. `default_profile` from `~/.kanta/config.json`\n5. Error — run `kanta login`\n\nThe Kanta Database API is a **second base URL**, resolved independently with the\nsame key: `--db-url` → `KANTA_DB_URL` → profile `db_base_url` →\n`https://database.kanta.dev/v1`.\n\n`~/.kanta/config.json` is written mode `0600`:\n\n```json\n{\n  \"default_profile\": \"personal\",\n  \"profiles\": {\n    \"personal\": { \"key\": \"kdev_live_…\", \"base_url\": \"https://api.kanta.dev\", \"db_base_url\": \"https://database.kanta.dev/v1\" },\n    \"admin\":    { \"key\": \"kdev_live_…\", \"base_url\": \"https://api.kanta.dev\", \"db_base_url\": \"https://database.kanta.dev/v1\" }\n  }\n}\n```\n\n```bash\nkanta login --profile personal      # browser sign-in, saved as the \"personal\" profile\nkanta whoami\nkanta config show                   # resolved config, key masked\nkanta logout --profile personal\n```\n\n## Customer commands\n\n```bash\nkanta verify name@example.com\nkanta verify bulk contacts.csv               # email column detected (\"email\", \"Email Address\", \"Work Email\", ...)\nkanta verify bulk contacts.csv -o results.csv # wait for the job, then save every result\nkanta verify bulk contacts.csv --max-credits 5000   # refuse if it would cost more\nkanta find Ada Lovelace analytical.co        # synchronous — prints the email (or \"no email found\")\nkanta find bulk people.csv                   # CSV needs first_name,last_name,company; prints a job id\nkanta jobs list [--status <s>]\nkanta jobs get <id> [--breakdown]\nkanta jobs results <id> [-o results.csv]\nkanta jobs cancel|resume|delete <id>\nkanta account\nkanta credits\n```\n\nAdd `--json` to any command for machine output.\n\n## Kanta Database\n\nSearch, count, facet, and export the B2B contact database. Search/count/facets\nare free; `export` costs 1 db credit per row delivered (admin keys are not\ncharged).\n\n```bash\nkanta db count   --seniority c-suite --industry software\nkanta db search  --function marketing --has-email --limit 25 [-o people.csv]\nkanta db facets  --industry software --field seniority --field person_state\nkanta db lookup  --email jane@acme.com\nkanta db lookup  --name \"Jane Doe\" --domain acme.com\n\nkanta db export  --seniority vp --industry software --max 5000 -o leads.csv\nkanta db exports                      # your recent export jobs\nkanta db export-status <id>\nkanta db download <id> -o leads.csv\n\nkanta db companies count  --industry software --employees-min 50\nkanta db companies search --hq-country \"United States\" --min-contacts 5\nkanta db companies export --industry fintech --max 2000 -o firms.csv\nkanta db company contacts <kanta_org_id> --limit 25\n\nkanta --profile admin db ca-count     # CCPA California-record monitor (admin)\n```\n\n### Person filter flags\n\n| Flag | Meaning |\n|---|---|\n| `--query <text>` | free text over name / title / company |\n| `--seniority <label…>` | `c-suite`, `vp`, `director`, `manager`, … (case-insensitive) |\n| `--function <name…>` | job function(s) |\n| `--title <text>` | title prefix match |\n| `--title-exact <text…>` | exact normalized title(s) |\n| `--country <name…>` / `--state <name…>` | person location |\n| `--company <text>` | company name prefix |\n| `--company-domain <domain…>` | company domain(s) |\n| `--industry <name…>` | company industry/industries |\n| `--employee-range <range…>` | 1-10, 11-50, 51-199, 200-499, 500-999, 1000-4999, 5000-9999, 10000-49999, 50000+, Unknown |\n| `--has-email` / `--has-linkedin` / `--has-phone` | presence filters |\n| `--verification-status <s…>` | valid, catch_all, risky, unknown, invalid |\n| `--filter-file <path>` | raw JSON filter object, merged under the flags |\n\nCompany flags: `--query`, `--domain`, `--industry`, `--employee-range`,\n`--hq-country`, `--hq-state`, `--employees-min/max`,\n`--revenue-min-k/max-k`, `--founded-after`, `--min-contacts`, `--filter-file`.\n\nThe `db export` flow prints the match count and credit cost, prompts for\nconfirmation (skip with `-y`), submits the job, polls until it finishes, and\nwrites the CSV to `-o`. A `confirm_credits_required` response is retried once\nwith the API's capped `estimated_max`.\n\n## Admin commands (admin-scoped key only)\n\n```bash\nkanta --profile admin admin credits add --email u@x.com --product find --amount 500 --reason topup\nkanta --profile admin admin jobs list [--status <s>] [--user <email>]\nkanta --profile admin admin user u@x.com\nkanta --profile admin admin verify u@x.com          # no credit charge\nkanta --profile admin admin suppress add blocked.com # email vs domain auto-detected by \"@\"\nkanta --profile admin admin suppress check u@x.com\n```\n\nEvery admin command calls `GET /me` first; if the resolving key is not\n`scope: 'admin'` it exits 1 with:\n\n```\nThis command requires an admin profile. Active profile \"<name>\" is a standard key.\n```\n\n## The admin tag\n\nAdmin capability is **not** self-service. It requires an `api_keys` row with\n`scope = 'admin'` **and** the owning user having `is_god_mode = true`.\n\n1. Apply `EmailVerifier_V1/infra/api_key_scope_migration.sql` to Supabase.\n2. Generate a normal key from `app.kanta.dev` for the operator.\n3. In Supabase Studio → Table Editor → `api_keys`, find that row (match on\n   `label` or `last_used_at`) and set `scope` to `admin`. Save.\n4. `kanta login --profile admin --key` with that key.\n\nRevoke by setting `scope` back to `user`. No API path or dashboard UI reads or\nwrites `scope`, so a leaked standard key can never reach `/admin/*`.\n\n## MCP tools\n\nSee the config block at the top of this file. Admin tools appear in\n`tools/list` **only** when the key is admin-scoped.\n\n- Verify / Find / jobs: `kanta_verify_email`, `kanta_verify_bulk`,\n  `kanta_find_email`, `kanta_find_bulk`, `kanta_jobs_list`, `kanta_job_get`,\n  `kanta_job_results` (pass `output` to save every row to a CSV), `kanta_job_wait`, `kanta_job_cancel`, `kanta_job_resume`, `kanta_job_delete`, `kanta_account`,\n  `kanta_credits`\n- Database: `kanta_db_count`, `kanta_db_search`, `kanta_db_facets`,\n  `kanta_db_lookup`, `kanta_db_export` (pass `output` to wait and save), `kanta_db_export_status`, `kanta_db_export_download`,\n  `kanta_db_companies_count`, `kanta_db_companies_search`,\n  `kanta_db_companies_facets`, `kanta_db_company_contacts`\n- Admin: `kanta_admin_credits_add`, `kanta_admin_jobs_list`, `kanta_admin_user`,\n  `kanta_admin_verify`, `kanta_admin_suppress_add`, `kanta_admin_suppress_check`,\n  `kanta_db_ca_count`\n\n`kanta_find_email` is synchronous — it returns `{ email, confidence, method, pattern }`\ninline (or `{ email: null }`) and charges a find credit only on a hit. Bulk tools\naccept either an inline array or a `path` to a CSV and return a `job_id`. Result\ntools cap inline output at 100 rows and otherwise return a sample plus a CLI hint.\n`kanta_db_export` **requires** a `confirm_credits` integer — call\n`kanta_db_count` first, then pass the number of credits you intend to spend; on\n`confirm_credits_required` the tool returns the `estimated_max` to retry with.\n\n## Tests\n\n```bash\nnpm test        # vitest\n```\n\n## Layout\n\n```\nkanta-cli/\n├── bin/kanta.js            `kanta` CLI entry\n├── bin/kanta-mcp.js        `kanta-mcp` stdio MCP server entry\n├── server.json             MCP registry manifest\n├── src/\n│   ├── core/               client.js config.js auth.js identity.js errors.js dbFilter.js\n│   ├── cli/                index.js format.js context.js commands/ (incl. commands/db/)\n│   └── mcp/                server.js register.js tools/ (customer.js admin.js database.js)\n└── tests/                  bin.test.js core/ cli/ mcp/\n```\n","readmeFilename":"README.md"}