{"_id":"@sonarapp/mcp","_rev":"13-ab898797617b885226bd33e287bc8e2a","name":"@sonarapp/mcp","dist-tags":{"latest":"0.9.1"},"versions":{"0.2.0":{"name":"@sonarapp/mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"author":{"name":"Peter Sutarik"},"license":"MIT","_id":"@sonarapp/mcp@0.2.0","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"homepage":"https://trysonar.app","bugs":{"url":"https://github.com/petersutarik/aso-tool/issues"},"bin":{"sonar-mcp":"dist/index.mjs"},"dist":{"shasum":"259d40d3fc5ad133d59beddc66af230103993ca1","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.2.0.tgz","fileCount":3,"integrity":"sha512-TXBIrwFurT1pGyd/SBKchv1WBF6Q/zKLCrPNjoLRoeCkeTseYuULg5xGLyXlYFPC76btJlHgdTJ/gKyQwnYq+g==","signatures":[{"sig":"MEUCIEK36uj0Zg3G235r+PFkHOppus2turxn+ATDqhLkLuVwAiEAiKeuLwzA7L73GfA2ttHehXX71k3BrdsKEK/q3+WtuHo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19548},"type":"module","engines":{"node":">=20"},"gitHead":"96396f9889f35b7fe45b9f9ab345c8b3d6f5aca6","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"repository":{"url":"git+https://github.com/petersutarik/aso-tool.git","type":"git","directory":"packages/mcp"},"_npmVersion":"10.9.2","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"_nodeVersion":"23.7.0","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1778235786185_0.464845990336056","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@sonarapp/mcp","version":"0.3.0","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"author":{"name":"Peter Sutarik"},"license":"MIT","_id":"@sonarapp/mcp@0.3.0","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"homepage":"https://trysonar.app","bugs":{"url":"https://github.com/petersutarik/aso-tool/issues"},"bin":{"sonar-mcp":"dist/index.mjs"},"dist":{"shasum":"013a51cd5fe81f48434d0eb1bca2a2824af3c5b3","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.3.0.tgz","fileCount":3,"integrity":"sha512-jrnOxb335k3t0zQrIS1ns2lr6Q8iTiJumWDcd+M1f9DUforqcm+b5txa3QKtlSiy7Fq7h1AKyNcIXqTAHX5HpA==","signatures":[{"sig":"MEUCIGJ/fbpbrepC/JMHVUW0/Bfv0kXJw+yPYvUxKryre/MdAiEAl2EFQQioMZcEUMsP5ptF0oNngyEjRAgtSyxMz6xgTX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21217},"type":"module","engines":{"node":">=20"},"gitHead":"be07e295cd77fe467a9f993a419b4c61eca8f56b","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"repository":{"url":"git+https://github.com/petersutarik/aso-tool.git","type":"git","directory":"packages/mcp"},"_npmVersion":"10.9.2","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"_nodeVersion":"23.7.0","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.0_1779740884229_0.05363825662861377","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@sonarapp/mcp","version":"0.3.1","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"author":{"name":"Peter Sutarik"},"license":"MIT","_id":"@sonarapp/mcp@0.3.1","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"homepage":"https://trysonar.app","bugs":{"url":"https://github.com/petersutarik/aso-tool/issues"},"bin":{"sonar-mcp":"dist/index.mjs"},"dist":{"shasum":"3919996c206a637cf7df22ada7f9712181ad13c0","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.3.1.tgz","fileCount":3,"integrity":"sha512-o8CQ61udseDeOXFWHejMPBldqSpSAf8oAPh/L4itptOb9JQd4JujdG58FGzgfepx1m3XbFrQBcwjWffkx9kKSA==","signatures":[{"sig":"MEUCIQDzjl2IEWdPbw1bz3q7xHKy+/lKiRFt9Lx94YPEOpb/iAIgIueDYevguH07lnGHzU8Bss/hVHNZ3hCQcbLAz0QTST0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21252},"type":"module","engines":{"node":">=20"},"gitHead":"14631b808ddad5756a8fb1549507abbffe7dde54","mcpName":"app.trysonar/sonar","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"repository":{"url":"git+https://github.com/petersutarik/aso-tool.git","type":"git","directory":"packages/mcp"},"_npmVersion":"10.9.2","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"_nodeVersion":"23.7.0","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.1_1780960470065_0.3512917332172696","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@sonarapp/mcp","version":"0.4.0","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"author":{"name":"Peter Sutarik"},"license":"MIT","_id":"@sonarapp/mcp@0.4.0","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"homepage":"https://trysonar.app","bugs":{"url":"https://github.com/petersutarik/aso-tool/issues"},"bin":{"sonar-mcp":"dist/index.mjs"},"dist":{"shasum":"4f116fe7bf42e39e04671ba38827aaef9c3fb1b7","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.4.0.tgz","fileCount":3,"integrity":"sha512-PDg1UNiZ48I0hcl3LPoTc0hEIp/9QqmgGzwf5b1E5dOmz7Lq9qShwZlKB+Xsi6VIpwA4LE3ir+HlTSAa6xyqng==","signatures":[{"sig":"MEUCIQD3fvzvmO4yIouLPQupMj3Q/fx54S0xszy84Qb6RBj9+wIgL3451JWbUk9TRQOIv6HEiy2Fw8lSaplGPxd1U1XRLAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28872},"type":"module","engines":{"node":">=20"},"gitHead":"b21a826948a4d98e3438a0591d60f002a724cb98","mcpName":"app.trysonar/sonar","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"repository":{"url":"git+https://github.com/petersutarik/aso-tool.git","type":"git","directory":"packages/mcp"},"_npmVersion":"10.9.2","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"_nodeVersion":"23.7.0","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.0_1781270878678_0.7796409724886095","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@sonarapp/mcp","version":"0.5.0","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"author":{"name":"Peter Sutarik"},"license":"MIT","_id":"@sonarapp/mcp@0.5.0","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"homepage":"https://trysonar.app","bugs":{"url":"https://github.com/petersutarik/aso-tool/issues"},"bin":{"sonar-mcp":"dist/index.mjs"},"dist":{"shasum":"51f04bc2c4a1a09fe4a9084d598c1092d92a4009","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.5.0.tgz","fileCount":3,"integrity":"sha512-LVc+8X5NDItJPCdPaz4P9psIMdeVy87xLPhjx//eew/h7Hf72H20QpYUjjosNthgvBsOCf5Pb2WFkMO3/1QLCA==","signatures":[{"sig":"MEQCIHrS5NaHcRvSpmL1pfMtwKaSMpz5yYFrEF4qz7d5TAsNAiBqh0eAp3QaiskIcvdJxPyLnExdkzHxBZsoSk6lgstiiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41193},"type":"module","engines":{"node":">=20"},"gitHead":"644e332f03bcf85053120c848d8d161b4ec1ca3a","mcpName":"app.trysonar/sonar","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"repository":{"url":"git+https://github.com/petersutarik/aso-tool.git","type":"git","directory":"packages/mcp"},"_npmVersion":"10.9.2","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"_nodeVersion":"23.7.0","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.5.0_1781276691353_0.20092220669156902","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@sonarapp/mcp","version":"0.6.0","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"author":{"name":"Peter Sutarik"},"license":"MIT","_id":"@sonarapp/mcp@0.6.0","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"homepage":"https://trysonar.app","bugs":{"url":"https://github.com/petersutarik/aso-tool/issues"},"bin":{"sonar-mcp":"dist/index.mjs"},"dist":{"shasum":"b70055cc456cc4f9aa1f3c0a46f8d83167857d52","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.6.0.tgz","fileCount":3,"integrity":"sha512-k9ODAi1417nMc4K7aBfIPBRq4mr5+ODEy8R5CFakdgrL9Uuj93uXXQVoh3rxAaLmaXo5PUes9o7qCeTUNEpeyw==","signatures":[{"sig":"MEQCIFJxJ2VpPZLeC8hhoXDgId3h/tVkXFgNc45HJ7o7bShdAiAeBIpyN76B6WLCmPCLvctIrgaNdsCUdc0IRDrwEXm0JA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50511},"type":"module","engines":{"node":">=20"},"gitHead":"16f4327112016fe1df5145f21f1fbba7622d8db0","mcpName":"app.trysonar/sonar","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"repository":{"url":"git+https://github.com/petersutarik/aso-tool.git","type":"git","directory":"packages/mcp"},"_npmVersion":"10.9.2","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"_nodeVersion":"23.7.0","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.6.0_1781770107984_0.22037007405025144","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@sonarapp/mcp","version":"0.7.0","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"author":{"name":"Peter Sutarik"},"license":"MIT","_id":"@sonarapp/mcp@0.7.0","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"homepage":"https://trysonar.app","bugs":{"url":"https://github.com/trysonar/mcp/issues"},"bin":{"sonar-mcp":"dist/index.mjs"},"dist":{"shasum":"ab624cd66fcba1552cd73585340eafd6e56f6f02","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.7.0.tgz","fileCount":4,"integrity":"sha512-BV9tnOSacRlvDsmOvvGMUN9pIEWyHeeL8u8Bd6Orptr6C/NJ4v2V7CpS2UsHb2OHqgPI47/i60dKATtBOhHuKA==","signatures":[{"sig":"MEYCIQC75Mkmk7j+m8XIm9/ywsp68BTLPNId1tdy+3AYpcLutwIhAMRBf5sSIaOgTwWNJf892Xf8x0KWla/oT2s2FHVGGop9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73382},"main":"dist/index.mjs","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"}},"gitHead":"4d906752b98313434890ade58249c1c35eed4dac","mcpName":"app.trysonar/sonar","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"repository":{"url":"git+https://github.com/trysonar/mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.7.0_1784372382459_0.7233727662618872","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@sonarapp/mcp","version":"0.8.0","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"author":{"name":"Peter Sutarik"},"license":"MIT","_id":"@sonarapp/mcp@0.8.0","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"homepage":"https://trysonar.app","bugs":{"url":"https://github.com/trysonar/mcp/issues"},"bin":{"sonar-mcp":"dist/index.mjs"},"dist":{"shasum":"3c6a0413345b677fd16112abd9f4c484c737b181","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.8.0.tgz","fileCount":4,"integrity":"sha512-tqmHYY6TqlYL91WcIlK07lqPjcX7GfFPf/cYD6BxhaMaTt52J1qmmPnf/Z5iuzHiiW+sw0rEIjozfELrPFhIjA==","signatures":[{"sig":"MEYCIQC6fpF8haIXjyJv//hnqfV5UsSC+rOFcdsb3B9TiM0oLQIhAPqZrHpREiVlqrF0sZE9ytY9dRz5v0Br1RFBZyg5BWJC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93224},"main":"dist/index.mjs","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"}},"gitHead":"bc1132e0644486816b9875bed8fbf0d241a10201","mcpName":"app.trysonar/sonar","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","build:mcpb":"npm run build && node scripts/build-mcpb.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"repository":{"url":"git+https://github.com/trysonar/mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.8.0_1787141455055_0.006496820722801111","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@sonarapp/mcp","version":"0.8.1","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"author":{"name":"Peter Sutarik"},"license":"MIT","_id":"@sonarapp/mcp@0.8.1","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"homepage":"https://trysonar.app","bugs":{"url":"https://github.com/trysonar/mcp/issues"},"bin":{"sonar-mcp":"dist/index.mjs"},"dist":{"shasum":"f083c3f97fe24c956b54b40eabf294230e9bd89d","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.8.1.tgz","fileCount":4,"integrity":"sha512-PFsFdh755mcDItaeMsK8T29CDbKu3kHbbjhbDQyJjiYxE1W3FqOiBlKhc6E07+VVkALUtMi/13MK7lKaCU3y5Q==","signatures":[{"sig":"MEUCIQDRh2yIY2UY3k1t/iu9X4nMX5qkuUDUNfPgMP0SSIQU+gIgKxcrLeVmUUTORnlQB3i0sYyy49m0cIeqSTfSq769fBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93832},"main":"dist/index.mjs","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"}},"gitHead":"43e89d03db302d3821434beb9ae243f131e335e0","mcpName":"app.trysonar/sonar","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","build:mcpb":"npm run build && node scripts/build-mcpb.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"repository":{"url":"git+https://github.com/trysonar/mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.8.1_1787826035460_0.037767708589496296","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@sonarapp/mcp","version":"0.9.0","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"author":{"name":"Peter Sutarik"},"license":"MIT","_id":"@sonarapp/mcp@0.9.0","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"homepage":"https://trysonar.app","bugs":{"url":"https://github.com/trysonar/mcp/issues"},"bin":{"sonar-mcp":"dist/index.mjs"},"dist":{"shasum":"2109c8155da6caf40dfc7b74a67e53f6c7a1a1c3","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.9.0.tgz","fileCount":4,"integrity":"sha512-+w4IcFaCDcH2gm9NQz+uS+JVT/wYHZqCcWQCBN4ttbehVvFeW/edN2ys62MLfH4SAyK6/dUR7rNaTlus5Cfe/w==","signatures":[{"sig":"MEUCIQD6H17XU/VR4dTsGvfZaRa5EGWSnKr/xOW0J7GM1gMzbAIgWLKZTKQQTd6prMwxfH+GqukYAXjEbUHCBoZepQt1gZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103273},"main":"dist/index.mjs","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"}},"gitHead":"2ee759a17d24ac50452de92e3f27450f8c4660f5","mcpName":"app.trysonar/sonar","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","build:mcpb":"npm run build && node scripts/build-mcpb.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"repository":{"url":"git+https://github.com/trysonar/mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.9.0_1789294564707_0.9175851421479257","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"_id":"@sonarapp/mcp@0.9.1","bin":{"sonar-mcp":"dist/index.mjs"},"bugs":{"url":"https://github.com/trysonar/mcp/issues"},"dist":{"shasum":"60b040853f2fd39db57f3d1e97eaa539e0fd6b29","tarball":"https://registry.npmjs.org/@sonarapp/mcp/-/mcp-0.9.1.tgz","fileCount":4,"integrity":"sha512-qmTlqjX+C9qQ/2eWpbkphqQdbBCvDy5x7sthSq/8lh6WDkKPqyZoem8wKajufLQVJU8o0AMWgsOWZBsSNRRPSQ==","signatures":[{"sig":"MEUCIDwmm9rhI1NN1iWMcL2bc9PRiu6w/szVlfW5jExo5VKKAiEA51HR2y1ocWltPycne0qNh/J2T0os3mHd2UG8HxqkBUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAJZ7IjGfxxNWq/32PBzKNJFQeR7CfFmnLKQwGITZwr8AiEAuqX9LDw63rvyvmNJoeeVC6hZUSEGtpBvpMztyVwQJLQ="}],"unpackedSize":103645},"main":"dist/index.mjs","name":"@sonarapp/mcp","type":"module","types":"dist/index.d.ts","author":{"name":"Peter Sutarik"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"}},"gitHead":"64942ebdbf31a9e08dc606ded4b598691bfdf5b6","license":"MIT","mcpName":"app.trysonar/sonar","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","build:mcpb":"npm run build && node scripts/build-mcpb.mjs","prepublishOnly":"npm run build"},"version":"0.9.1","_npmUser":{"name":"bzzzm","email":"sutarik.peter@gmail.com"},"homepage":"https://trysonar.app","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"repository":{"url":"git+https://github.com/trysonar/mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","directories":{},"maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^3.2.4","typescript":"^5","@types/node":"^25.1.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.9.1_1790114933457_0.7369524120006137"}}},"time":{"created":"2026-05-08T10:23:06.079Z","modified":"2026-09-22T22:08:53.799Z","0.2.0":"2026-05-08T10:23:06.351Z","0.3.0":"2026-05-25T20:28:04.367Z","0.3.1":"2026-06-08T23:14:30.219Z","0.4.0":"2026-06-12T13:27:58.810Z","0.5.0":"2026-06-12T15:04:51.532Z","0.6.0":"2026-06-18T08:08:28.141Z","0.7.0":"2026-07-18T10:59:42.577Z","0.8.0":"2026-08-19T12:10:55.176Z","0.8.1":"2026-08-27T10:20:35.625Z","0.9.0":"2026-09-13T10:16:04.872Z","0.9.1":"2026-09-22T22:08:53.586Z"},"bugs":{"url":"https://github.com/trysonar/mcp/issues"},"author":{"name":"Peter Sutarik"},"license":"MIT","homepage":"https://trysonar.app","keywords":["mcp","model-context-protocol","aso","app-store-optimization","ios","android","app-store","google-play","sonar","claude","ai-tools"],"repository":{"url":"git+https://github.com/trysonar/mcp.git","type":"git"},"description":"Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)","maintainers":[{"name":"bzzzm","email":"sutarik.peter@gmail.com"}],"readme":"# @sonarapp/mcp\n\n[![npm](https://img.shields.io/npm/v/@sonarapp/mcp.svg)](https://www.npmjs.com/package/@sonarapp/mcp)\n[![license](https://img.shields.io/npm/l/@sonarapp/mcp.svg)](./LICENSE)\n[![smithery badge](https://smithery.ai/badge/trysonar/sonar)](https://smithery.ai/servers/trysonar/sonar)\n\nThe official **Sonar** MCP server — App Store Optimization tools for AI agents.\n\nLets Claude Desktop, Claude Code, Cursor, Cline, and any [Model Context Protocol](https://modelcontextprotocol.io)-compatible client look up apps, research keywords, audit ASO, mine reviews, and estimate revenue across the iOS App Store and Google Play. Powered by [Sonar](https://trysonar.app).\n\n---\n\n## Tools\n\n### Read tools — stateless\n\n| Tool | What it does |\n|-|-|\n| `sonar_app_lookup` | Look up app metadata by store ID |\n| `sonar_app_search` | Search apps by keyword (returns store ranking order) |\n| `sonar_app_aso_score` | ASO audit score (0-100) with itemized checks |\n| `sonar_app_extract_keywords` | Extract target keywords from an app's listing |\n| `sonar_app_reviews` | Fetch reviews with rating filters and sort options |\n| `sonar_app_revenue` | Estimate monthly revenue with methodology |\n| `sonar_keyword_search` | Keyword research (difficulty, popularity, related terms) |\n| `sonar_keyword_metrics` | Difficulty + popularity for specific keywords (single or bulk) |\n| `sonar_keyword_suggestions` | Autocomplete suggestions from the store |\n| `sonar_top_charts` | Top free/paid/grossing chart with day-over-day movement |\n\nStateless tools work on **any plan with credits**, with both iOS and Android.\n\n### Read tools — your workspace (Indie plan)\n\n| Tool | What it does |\n|-|-|\n| `sonar_list_apps` | List your tracked apps with latest snapshots (rating, reviews, installs) |\n| `sonar_get_app` | App detail + up to 90 days of snapshot history |\n| `sonar_app_keywords` | Keywords tracked for an app, with difficulty + popularity |\n| `sonar_app_rankings` | Daily rank history for an app's tracked keywords |\n| `sonar_app_changes` | Detected releases, metadata edits, screenshot/price/category changes |\n| `sonar_keyword_rankings` | SERP history for a tracked keyword (who ranked, when) |\n| `sonar_competitor_keywords` | Keywords a competitor ranks for + gap analysis vs your app |\n| `sonar_competitor_landscape` | Full competitive picture for one of your own apps — gap/winnable/threat/lead stats + latest AI insight |\n\nWorkspace reads require an **Indie plan** (an active trial counts); the default `read`-scope key is enough.\n\n### Write tools (Indie plan + write scope)\n\n| Tool | What it does |\n|-|-|\n| `sonar_create_product` | Create a product in your Sonar workspace and start tracking its app(s) |\n| `sonar_track_app` | Link the second-store version (iOS ↔ Android) of an existing product |\n| `sonar_track_competitor` | Add a competitor app under a product |\n| `sonar_track_keywords` | Start daily rank tracking for keywords on an app (bulk, idempotent) |\n| `sonar_update_keyword_note` | Set or clear the note on a tracked keyword |\n| `sonar_scan_competitor` | Run a keyword discovery scan on a competitor (read results with `sonar_competitor_keywords`) |\n| `sonar_analyze_competitors` | Generate a fresh AI competitive insight for one of your own apps (7-day cooldown; read it with `sonar_competitor_landscape`) |\n\nWrite tools mutate your workspace and require an **Indie plan** (an active trial counts) plus either an OAuth sign-in on the hosted endpoint (which carries write access) or an API key created with the **`write` scope**. The server enforces both — without them, calls return a 403 explaining what to fix.\n\nTogether these close the loop for agents: set up tracking with the write tools, then read back rankings, changes, and gap analyses with the workspace tools.\n\n## Hosted endpoint — no install, no API key\n\nOAuth-capable MCP clients (Claude Code, claude.ai custom connectors) can skip both the npm install and the API key entirely:\n\n```\nclaude mcp add --transport http sonar https://trysonar.app/mcp\n```\n\nThe first tool call that needs your account opens a browser sign-in — approve it with your Sonar login and the agent has full access to the workspace you own (read + write). Clients without OAuth support can pass an API key instead: `--header \"Authorization: Bearer aso_...\"`.\n\n### ChatGPT submission and hosted behavior\n\nSubmit `https://trysonar.app/mcp/chatgpt` to OpenAI. This endpoint returns tool-level sign-in challenges; `/mcp` retains HTTP 401 challenges for Claude and other MCP clients. Both advertise OAuth per tool. Anonymous store lookups can run without linking; workspace tools return a native sign-in challenge when authorization is missing or expired. Connect an existing Sonar account and approve access to the workspace you own. Existing account permissions and entitlements apply.\n\nThe ChatGPT endpoint requires resource-bound JWT access tokens for its canonical `/mcp/chatgpt` audience; the existing `/mcp` endpoint retains Clerk opaque-token support. Provider configuration and an end-to-end login must be verified before submitting the ChatGPT endpoint.\n\nThe hosted catalog excludes `sonar_export_screenshots`, which writes ZIP files to the local MCP host. It remains available over stdio. A native directory listing requires separate OpenAI review and publication; hosting an MCP endpoint does not itself create a listing.\n\n## Try it free — no API key needed\n\nThe server runs without a key in **free mode**: `sonar_app_search`, `sonar_app_lookup`, `sonar_app_aso_score`, `sonar_app_extract_keywords`, and `sonar_keyword_suggestions` share a free allowance of 30 requests/day per IP, and `sonar_keyword_metrics` (keyword difficulty + popularity) gets 5 keywords/day. Just install it with no `env` block and ask your agent about ASO. When you hit the limit, the error tells you how to sign up.\n\n## Get an API key\n\nFor everything else (tracking, rankings, competitors, higher limits) you'll need a Sonar API key — get one at [trysonar.app/developers](https://trysonar.app/developers).\n\nThe cheapest path is **prepaid API credits** — packs from $10 (1,000 credits), with 50 free credits on signup and no subscription. Built specifically for this use case. See [pricing](https://trysonar.app/#pricing).\n\n## Install\n\n### Claude Desktop\n\nAdd to your config file (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS, `%APPDATA%\\Claude\\claude_desktop_config.json` on Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"sonar\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@sonarapp/mcp\"],\n      \"env\": {\n        \"SONAR_API_KEY\": \"aso_your_key_here\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop. The `sonar_*` tools will appear in the tool picker.\n\n### Claude Code\n\n```bash\nclaude mcp add sonar -e SONAR_API_KEY=aso_your_key_here -- npx -y @sonarapp/mcp\n```\n\n### Cursor\n\nAdd to `~/.cursor/mcp.json` (or your project's `.cursor/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"sonar\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@sonarapp/mcp\"],\n      \"env\": {\n        \"SONAR_API_KEY\": \"aso_your_key_here\"\n      }\n    }\n  }\n}\n```\n\n### Cline / other MCP clients\n\nMost clients use the same `command` + `args` + `env` shape as above. Point the command at `npx -y @sonarapp/mcp` and pass `SONAR_API_KEY` in the env.\n\n## Configuration\n\n| Variable | Required | Default | Description |\n|-|-|-|-|\n| `SONAR_API_KEY` | no (free mode without it) | — | Your Sonar API key (`aso_...`) |\n| `SONAR_API_URL` | no | `https://trysonar.app` | Override the API base URL (only used for self-hosting / staging) |\n\n## Example prompts\n\n> \"Use Sonar to look up Spotify on iOS in the US store and report its rating, review count, and category.\"\n\n> \"Run an ASO audit on `com.duolingo` on Android and tell me what to fix.\"\n\n> \"Research the keyword 'habit tracker' on iOS — give me difficulty, popularity, and 5 related terms with lower difficulty I should consider.\"\n\n> \"Pull the 50 most recent 1- and 2-star reviews of `1517783697` on iOS US and group complaints by theme.\"\n\n> \"Search 'meditation' on the App Store and estimate monthly revenue for the top 5 results.\"\n\n## Privacy Policy\n\nFull policy: **<https://trysonar.app/privacy>**\n\nThe MCP server is a thin client around Sonar's REST API — it stores nothing locally and no data is logged by this package itself.\n\n- **Data collected:** tool inputs (app IDs, keywords, country codes) are sent to Sonar's API over HTTPS to produce results; authenticated requests include your API key as a `Bearer` token. Sonar logs API requests (endpoint, status, timing) for rate limiting and abuse prevention.\n- **Data usage:** inputs are used solely to serve the request (keyword metrics, app lookups, etc.); resulting JSON is returned to your AI client.\n- **Storage & retention:** the package keeps no state on disk. Server-side request logs are retained for 90 days; workspace data (tracked apps/keywords) persists in your Sonar account until you delete it.\n- **Third-party sharing:** no user data is sold or shared with third parties; queries against public app-store data (Apple, Google) contain no personal information.\n- **Contact:** [hello@trysonar.app](mailto:hello@trysonar.app)\n\n## Troubleshooting\n\n**\"SONAR_API_KEY is not set — running in free mode\"** — Expected if you haven't configured a key: the free tools keep working with per-IP daily limits. If you DID configure a key, the MCP client did not pass the env var through — check the `env` section of your client's config file. Some clients require an absolute path to `npx` — try `which npx` and use that.\n\n**\"Authentication failed\"** — Your key is invalid, expired, or your subscription lapsed. Visit [trysonar.app/developers](https://trysonar.app/developers) to check.\n\n**\"Access denied. Endpoint may require Indie plan\"** — The 10 stateless read tools work on any plan with credits. The workspace read tools and write tools require an Indie plan (an active trial counts); write tools additionally need an API key created with the `write` scope. If you're on a setup or trial-expired plan, reactivate first.\n\n## Companion: CLI\n\nPrefer the terminal? Use [`@sonarapp/cli`](https://www.npmjs.com/package/@sonarapp/cli) (`sonar` binary) — same data, same API key.\n\n## License\n\nMIT © Peter Sutarik\n","readmeFilename":"README.md"}