{"_id":"mcp-gads","_rev":"23-31cbd5721bc712044d4692670f5a5b82","name":"mcp-gads","dist-tags":{"latest":"0.10.2"},"versions":{"0.1.0":{"name":"mcp-gads","version":"0.1.0","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.1.0","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"49057d7e1141bb3ee90e943ffccf055f4df560c8","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.1.0.tgz","fileCount":4,"integrity":"sha512-DfFv3MZiXXXy8nfKKR0iMyo8EskpvbtTyyHg5m2zclJFCDuc6/bGFc+Fmnot2mRYsgwcUm+tVRIjecfZTbPVrQ==","signatures":[{"sig":"MEUCIDvDnSsS9Z6jWzIdg+7gcFvZORrvhCa0kfUKb8ljXP7IAiEA4o7qFGNnwM+q2soT4cNcB4qjj0b3B4q0IQ1KA7cGemE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1482881},"type":"module","gitHead":"a71aaf0d7d5e14ed6471eb24df08f6de48bac7f2","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.1.0_1772456761158_0.4968389990577886","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"mcp-gads","version":"0.1.1","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.1.1","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"4683721e7576d3b624cad75db657e00a91d08b26","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.1.1.tgz","fileCount":4,"integrity":"sha512-OjVfLgqTFDU1h5if/GlvefUeNZhR5HVvk/8uLjmIJMlVSd8TnybpY+STrGggAuStVo8BLoQfkpKwk2UsNTJBCg==","signatures":[{"sig":"MEYCIQDu21IVRQrfJOc5ku3yjC2GGD3L2w/XBr/w91a17nJh7gIhAMG0+jn3Z+RsEqGS7y47HjPPo0PRGvMWMvj11VUeIQeI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1482881},"type":"module","gitHead":"a71aaf0d7d5e14ed6471eb24df08f6de48bac7f2","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.1.1_1772456790908_0.5826255194371723","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"mcp-gads","version":"0.1.2","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.1.2","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"2f9e15dc21d726fa40d45974ee0138a16beea405","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.1.2.tgz","fileCount":4,"integrity":"sha512-kvxlSj/07A8+13o17A1nX0nig7Skz+NEepraSX9V/sx/2aPegUCSL6urOql8y7GENWJSq7RsoC8y8V09fOPomQ==","signatures":[{"sig":"MEYCIQCUGrEa8L1tHnsU9Sfm9a6gTkRCJ9AitQqbnTdXVFWoDgIhAKSR1JpBFshkv9tg5gF2nhqnxxabt7Rfej5ga8Ncv/M0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1483092},"type":"module","gitHead":"0dceb3844065e0fdb9221734cc163aa8945f0bdc","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.1.2_1772457147391_0.8758070361047523","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"mcp-gads","version":"0.1.3","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.1.3","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"2a04f440f4b43ece845805bdc35ec9a9d1e1e344","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.1.3.tgz","fileCount":4,"integrity":"sha512-RmwJxOEXaq6/1AG3TzFu2qYeElNX7s2tJf0XZo/WvTcjjDqMa4KvDExVNGd76gFXuNexETP260BW7cHHGXMAGw==","signatures":[{"sig":"MEQCID28649/601W9Eg1UlPgsIBQK0ZX9WOkxJlJzCjpFnrZAiAr6QgIafB+SMY11D1pswx1Yt28cx6engfQbGjFLR8G+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1483092},"type":"module","gitHead":"5a2c3c574ce71ba50f7e9ec9e0c1abf45185ae7e","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.1.3_1772458389498_0.6433645585105647","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"mcp-gads","version":"0.1.4","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.1.4","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"9fc4b6362f27667b6e468f04c9cce10a5e7a4538","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.1.4.tgz","fileCount":4,"integrity":"sha512-efoaiuEDt7bbzu44PywyqsL+V2dXMqfxpYYOzp9nefoAHhJvnpiV1e6wMLG1U1BQaQnwCihGqKfesx2T72FVdg==","signatures":[{"sig":"MEQCIEUNkc9CtiOdu7eqrEJV7CazDttVoQgwNTUa41HP04sJAiA63RrKfZlmCvBRMZdwu3EDqWy/EUMIAwKZRsHQcwM8eQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1483093},"type":"module","gitHead":"55f800b05beb59b3bd8d13af30a7649ad338a607","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.1.4_1772458504671_0.012337324677307304","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"mcp-gads","version":"0.1.5","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.1.5","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"1ee6230340d536eab9f6cf42b97daf046de4f31f","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.1.5.tgz","fileCount":4,"integrity":"sha512-19T+PgYDVqfrkL8GrAy4UbjQpgdUoWfAJTiaklZg3AY/HBn7c2AoKQdpfWbSSd7aDj1mADYT04j/bKP1tRgrpw==","signatures":[{"sig":"MEUCIDsbPi698hMn2aYHoAumr08RhMyYDv/FKKGdGtqjGuwCAiEA2zM4GoM/F4hRN9B9xqc7AqtVoz78btDoIIHRJMXFfl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1483112},"type":"module","gitHead":"ef4db6bac2a0af392582b5f964355bd6975588c9","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.1.5_1772458650952_0.2246862783501229","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"mcp-gads","version":"0.2.0","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.2.0","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"b5845f4dca8f5d5cee7237b4b78658d7df7a04ad","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.2.0.tgz","fileCount":4,"integrity":"sha512-3dqjhE599XRamNITOc/ET792CJlfCMMGjMZTekJ7UcSdLAXOMOqlgoRg4Fqw0rfv1U9lhT9WBLWhexavu0kfYg==","signatures":[{"sig":"MEUCIHVMZ0w+hYR9hu4yVgPD5w8pcpjYVCX/elibpqcufFF7AiEAh9++arcHXPaqKcHOMrkWIOghsgB6i2fp5Mh4lbP9OCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1483276},"type":"module","gitHead":"a9f7cb9c56b8aa4a04d869465e23cf49cda84f97","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.2.0_1772459968370_0.15065471784530082","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"mcp-gads","version":"0.2.1","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.2.1","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"30970b30827ea9ddec212c52b4ed37c84e331b61","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.2.1.tgz","fileCount":4,"integrity":"sha512-5zSRgFUXwpvWklpBkFwuk23yx3kn5ul5LCouV+2AID3FhzWq46vRkE9J0ongf8vXGNSLj8QAaJd+fOKvbOjNdQ==","signatures":[{"sig":"MEUCIQDGtw/aIn1qGv+POXgiqV1CBpmQNr6unhnTPVVt8d3ddgIgK3ljfJJlueQ/ZiZ5a/laPGuCNmxHENnreJhkOXBe0Hc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1487551},"type":"module","gitHead":"0b8e70ff21275a1f76976bbd9051ae0d5a64764d","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.2.1_1772460119314_0.5654569170742694","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"mcp-gads","version":"0.3.0","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.3.0","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"aca6fe45562b67b224556923345871a609d44c00","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.3.0.tgz","fileCount":4,"integrity":"sha512-mgWSxfGySg7+DhzaHfNVGFSGKrcwECbAdMclOQU/+AXri+do8N6BVXRjffKbCAwBCvCEUtJ3k8WZHTnfdKjy/A==","signatures":[{"sig":"MEYCIQCDrTOg2b4LSk9HVBb7bufjTb+PfyTV5+10/ZFKw8PwHgIhALU1SBSQKoXc+MCs1qBaZug01ve6GXNE/1k/SdotmwH0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1490640},"type":"module","gitHead":"bd4d3e10a0483953fef6a8ccfb0fb3b97ade2163","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.3.0_1772460666179_0.0540500511129729","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"mcp-gads","version":"0.4.0","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.4.0","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"8f6d29e4efebe56f312c511f0eaab555d617520a","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.4.0.tgz","fileCount":4,"integrity":"sha512-fo9iFIRFFNAWj80WwH62BimBbrKQXvUVsIP8TyOongJIZNbAv7noFoF3YwGIaxevrU/JhFZtP0tOtzEXPV0Azg==","signatures":[{"sig":"MEUCIQD9fuIPg/rCBdKBeWLndTEB2ml/2twnc9NsWQsTys0ujAIgLM+04dKPGmkCpzuWOp2LaBpxIuWqU/9YQE6x6vpHIbw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1494589},"type":"module","engines":{"node":">=18"},"gitHead":"fc4d54ab1994ed657387b4d7e0d715fb8fb0c99d","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"11.6.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.4.0_1772478131007_0.8917049960656847","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"mcp-gads","version":"0.4.1","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.4.1","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"1dbd787b12e4a1b2252acd12ee2d0ef423936307","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.4.1.tgz","fileCount":4,"integrity":"sha512-MDXpoKnisenC5uUTx4C6Kb8FsqRc5s8QY4pn0JEeoDqmw4OKMRuOsG+HjVWtGYJyG21BPLtNKA5EhYIn+iNIMA==","signatures":[{"sig":"MEYCIQC3ZSlhiC030grHsbRUDRX8qCzY4uplX8HVbk/5G18ONwIhAMCevJGVRgQrnKtXFj8RDgnEffZQz9FnGc9pB6wRrTjC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1494670},"type":"module","engines":{"node":">=18"},"gitHead":"eead211b4fced957317d2ee4d9a4aaf9ff43ab4d","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"11.6.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.4.1_1772479897386_0.07688080765697136","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"mcp-gads","version":"0.5.0","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.5.0","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"491835e8e802c54c73e44976e7ef3d9b7acd19dd","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.5.0.tgz","fileCount":4,"integrity":"sha512-lfrVqPzNBnlc9dG95T+XKt+Ee9lVaesFmv8ewjA9qfFYkEIDhPKlSfpQaQwdhB/UIeD3WhR06Bce+EtqV2W3Ow==","signatures":[{"sig":"MEUCIQCNbUMyseX/T5UIC01WTMPZ2o+4USd4461jWhkxnAHXFwIgPvDwVjr0yQV9fEADtnd8fgzpOwMD+w6zheBy2m++RrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1515066},"type":"module","engines":{"node":">=18"},"gitHead":"5e2a535cb9cbb6647fc48ef60fc6d24ba31427d7","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"11.6.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.5.0_1772482447135_0.05196046505561425","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"mcp-gads","version":"0.5.1","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.5.1","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"915bd7c392dda86001d2d0b479064d81433fcb11","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.5.1.tgz","fileCount":4,"integrity":"sha512-O9f49QIyQeFJZFDe8uY2HO+w51lhTr5nEAXO1UPaXwcC5ZQS271Zs2PWoXS8r0DwDq7YcN5sQ94aedGr6iAfGQ==","signatures":[{"sig":"MEUCIFPxfDSEAjYIw0WqzFqryBWFLK1LjoiT2oJjo+6GLlMVAiEAh2Of0dCsJEyp3GdeNVrrKKlqcMcYNlcuAPUf+Xww6Sk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1515031},"type":"module","engines":{"node":">=18"},"gitHead":"db1f422ddeee8ce0303230dee2a5c5b60d50051b","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"11.6.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^3.24.4","google-auth-library":"^9.15.1","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.9","typescript":"^5.8.3","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.5.1_1772483488504_0.16765170770928295","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"mcp-gads","version":"0.5.2","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.5.2","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"c3ccaa1df37137bf88106eb1d4e18f7bed7354ea","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.5.2.tgz","fileCount":4,"integrity":"sha512-qdL8m+Uhh3RZfX9+VstjBHQkfzZSGxsYkAsVgbMEDK/smbJEHWacPKpU4XWfUQ4HbwJWH4/kGprZGMKsj5Vr1Q==","signatures":[{"sig":"MEYCIQCOrKcsM47tqWkEY2DHbz6T3RAQdEv5tnZZaFWqfSRPXAIhAIFDCoeGVwExVOXemnW66J6ohXPcLHfBOhYbMO6DULUv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1468619},"type":"module","engines":{"node":">=18"},"gitHead":"db1f422ddeee8ce0303230dee2a5c5b60d50051b","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"4.3.6","google-auth-library":"10.6.2","@modelcontextprotocol/sdk":"1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.11","typescript":"5.9.3","@biomejs/biome":"2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.5.2_1774096218408_0.6722536661614376","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"mcp-gads","version":"0.5.3","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.5.3","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"01db0cf38583008b485597eec69ad15bb096f970","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.5.3.tgz","fileCount":5,"integrity":"sha512-4Pi85zE1ro11ZbfoebZ2bnMdfxLar+02Tq2wgB2Hv1G+Bdc0/x8t2HNbXqAPWT/zvcrcRpRUdsUxGKVdd+7LtA==","signatures":[{"sig":"MEQCIHBzgUZlhGqGmw6iTtqjUG+sj6I+21zfiTSUP2S4svNMAiAYEE+iPXJdfxFQ0pYJRWGLuxgwrHg8Lp7m8+TFQPz3Zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1943285},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"f527245d9130503e2000c28986675c3189c008f0","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"4.3.6","google-auth-library":"10.6.2","@modelcontextprotocol/sdk":"1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.11","typescript":"5.9.3","@biomejs/biome":"2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.5.3_1774108260640_0.709465656538214","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"mcp-gads","version":"0.5.4","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.5.4","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"104d240e4d13b5a5da4f7777e691f484587005a4","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.5.4.tgz","fileCount":5,"integrity":"sha512-wHY9NE5OIvIJOKomu1/lE5Cjfz1XgJ96yAEcPuUSBsFY8YJ6pJ4pON45mvmNeqhp8QN+xeGj8+OP9CDLojU23w==","signatures":[{"sig":"MEQCIGOAdvhN3btF74iULH8FPdNbLfPhgJ4pfYAkbdq96//ZAiBmArnk6HlZOl4R6KhsV7lm1VLwljj6+fr9GvWGlWFuEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1943407},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"f527245d9130503e2000c28986675c3189c008f0","mcpName":"io.github.pijusz/mcp-gads","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"4.3.6","google-auth-library":"10.6.2","@modelcontextprotocol/sdk":"1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.11","typescript":"5.9.3","@biomejs/biome":"2.4.8"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.5.4_1774259548219_0.8464369791639372","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"mcp-gads","version":"0.6.0","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.6.0","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"a3c2fc9ad45bdfa0a1670b2d759cdd77321f73c7","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.6.0.tgz","fileCount":5,"integrity":"sha512-prirl1PlEg4cwByEFc6JBiBBnx2tHYY/I61BdKoWiryV4+2DB+nQrpI+SXM5lnaYmwsxYGgSQKO0OMoXSxnHbA==","signatures":[{"sig":"MEUCIQDKvbRRSU6xTTIbM5LdWO6VK9YqSvI8T1ZdS0RCYG6t8AIgYnWdOFpwUcG/5x8b29X2FQMWsZ1EkLg5yf7TPWfv/fM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1693079},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"d42643a877b38d7389c766b6355560776964f1e5","mcpName":"io.github.pijusz/mcp-gads","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"11.6.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"4.3.6","google-auth-library":"10.6.2","@modelcontextprotocol/sdk":"1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.12","typescript":"5.9.3","@biomejs/biome":"2.4.12"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.6.0_1776409122697_0.019133911010354998","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"mcp-gads","version":"0.7.0","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.7.0","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"7af0131365e063001e878eb28aa75b857b7c0391","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.7.0.tgz","fileCount":5,"integrity":"sha512-l/c6V6GIVCnsmKCWCcDh378Old8FEpe48UKiRU/beiO9dp2FWdj02XZEp6EwwbtwJ9weUfYfmbzhA16DtcQ8vg==","signatures":[{"sig":"MEYCIQDHn++bJCwWPuIMEeKVw/PFcgzBqNYmMOpPVCFP8ItiKQIhAP+cLkolpUhpJ/HSoFHhhS7ZuenF2B5h5XFjdofirf2P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1729517},"main":"dist/index.js","type":"module","engines":{"node":">=22"},"gitHead":"92c690a0660462633d5d6d541864459c5892b09a","mcpName":"io.github.pijusz/mcp-gads","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.8","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"4.4.3","google-auth-library":"^11.0.0","@modelcontextprotocol/sdk":"1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"7.0.2","@biomejs/biome":"2.5.6"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.7.0_1785485653014_0.3160054312191458","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"mcp-gads","version":"0.8.0","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.8.0","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"863a377f1037c557815416aa038862e606617929","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.8.0.tgz","fileCount":5,"integrity":"sha512-FNgiLdXwvf6XY3BTJ0CINOaJyySqjFBhR1aCLViUJSiNuVMIvCqpzqSmjE/Q9ZXKnmCLhSAOboxanew1WbXFVg==","signatures":[{"sig":"MEYCIQD/lO4rZ01fiQcg6yuuh0lyY+zCuB/Ch2rYWGEDsg5gEgIhANybeJ11Ga7q0A8BPMm3OAHfGMR0rS0YYOg5aDsJgcSK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1731071},"main":"dist/index.js","type":"module","engines":{"node":">=22"},"gitHead":"6357d5dc8d2f50fc8d0a30e745ebe9f4cb9e9aa0","mcpName":"io.github.pijusz/mcp-gads","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.8","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"4.4.3","google-auth-library":"^11.0.0","@modelcontextprotocol/sdk":"1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"7.0.2","@biomejs/biome":"2.5.6"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.8.0_1785486640468_0.7675078762364622","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"mcp-gads","version":"0.9.0","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.9.0","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"70465010d5acc903fd9703692ea552b9e19ae73a","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.9.0.tgz","fileCount":5,"integrity":"sha512-8EXOzncpkm0bAiODd+dhxUg4WjgxCze2j9TviXQXv+4q78o9BqZApd9uDO5PbOOE1LxY79moRhfRMq8G1WQZjQ==","signatures":[{"sig":"MEUCIQCYA+2rCN29hfEmwoMnbs+LJxVCjDhTJh+1KLByOARFigIgWnDShk0vaCqz2K8FwlqBarNKde+XNw5ohTI+jpocpMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1735049},"main":"dist/index.js","type":"module","engines":{"node":">=22"},"gitHead":"a86a138eeb2dd080c3f345c568a3d64045341f4e","mcpName":"io.github.pijusz/mcp-gads","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.8","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"4.4.3","google-auth-library":"^11.0.0","@modelcontextprotocol/sdk":"1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"7.0.2","@biomejs/biome":"2.5.6"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.9.0_1785488355014_0.8442735438513853","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"mcp-gads","version":"0.10.0","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.10.0","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"15f1ab8ed9774a0565e3644fc17d287c3f4a04e5","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.10.0.tgz","fileCount":5,"integrity":"sha512-6eBRz1DjiKibbnyftHAR4FrpFn40v2Tt8j6g7Xl5TKUderTBsusiYLJNho6uINt5QUhPzedVRlImiz28+XJXvg==","signatures":[{"sig":"MEYCIQDXDcSrkRSXQYYlPdMfVk9zFAlBxxwny9c1xJL45/uLBwIhAPR92q/LeiitlzeBNpxqoN49xJhjowM7xtNZGXKe8NOY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1743234},"main":"dist/index.js","type":"module","engines":{"node":">=22"},"gitHead":"becfa0c10a35cf86c9d20966a6f6d0fdbd3913be","mcpName":"io.github.pijusz/mcp-gads","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.8","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"4.4.3","google-auth-library":"^11.0.0","@modelcontextprotocol/sdk":"1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"7.0.2","@biomejs/biome":"2.5.6"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.10.0_1785502296152_0.27516877818361185","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"mcp-gads","version":"0.10.1","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","_id":"mcp-gads@0.10.1","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"homepage":"https://github.com/pijusz/mcp-gads#readme","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"bin":{"mcp-gads":"dist/index.js"},"dist":{"shasum":"9293e4e7667777ca01f2bcd248232ca992b8a2d9","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.10.1.tgz","fileCount":5,"integrity":"sha512-QtEvm8cXgS6xxLZtfZWDbhZG1+yKSl8mgbDyZP4eX5PiN3mlqblzk0iWrUqMpzRM2EqQV3VF636z6KzzcluaRg==","signatures":[{"sig":"MEUCIEnVGbCNjDsRazqhg2QqvCrz1RbdVhTKKh4Kad6n59ZKAiEAzn14syiNLnZghA0EzoTGtRqgjg/TnsZ1N1GqX5tJtVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1743234},"main":"dist/index.js","type":"module","engines":{"node":">=22"},"gitHead":"ad95160a77c8a42e6d6dbbd32733ca57575144c4","mcpName":"io.github.pijusz/mcp-gads","scripts":{"dev":"bun src/index.ts","lint":"biome check .","test":"bun test","build":"bun build src/index.ts --compile --outfile=mcp-gads","check":"biome check --write .","setup":"bun run src/auth/setup.ts","format":"biome format --write .","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","typecheck":"tsc --noEmit","prepublishOnly":"bun run build:npm"},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"repository":{"url":"git+https://github.com/pijusz/mcp-gads.git","type":"git"},"_npmVersion":"10.9.8","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"4.4.3","google-auth-library":"^11.0.0","@modelcontextprotocol/sdk":"1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"7.0.2","@biomejs/biome":"2.5.6"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gads_0.10.1_1785503433914_0.5004806456475062","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"mcp-gads","version":"0.10.2","description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","type":"module","main":"dist/index.js","bin":{"mcp-gads":"dist/index.js"},"scripts":{"dev":"bun src/index.ts","build":"bun build src/index.ts --compile --outfile=mcp-gads","build:npm":"bun build src/index.ts --bundle --target node --outfile dist/index.js && node -e \"const f='dist/index.js';require('fs').writeFileSync(f,require('fs').readFileSync(f,'utf8').replace('#!/usr/bin/env bun','#!/usr/bin/env node'))\"","prepublishOnly":"bun run build:npm","test":"bun test","typecheck":"tsc --noEmit","setup":"bun run src/auth/setup.ts","inspect":"bunx @modelcontextprotocol/inspector bun src/index.ts","format":"biome format --write .","lint":"biome check .","check":"biome check --write ."},"keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"author":{"name":"pijusz"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/pijusz/mcp-gads.git"},"engines":{"node":">=22"},"homepage":"https://github.com/pijusz/mcp-gads#readme","dependencies":{"@modelcontextprotocol/sdk":"1.30.0","google-auth-library":"^11.0.0","zod":"4.4.3"},"devDependencies":{"@biomejs/biome":"2.5.6","@types/bun":"1.3.14","typescript":"7.0.2"},"mcpName":"io.github.pijusz/mcp-gads","_id":"mcp-gads@0.10.2","gitHead":"34a00d3ab3c96598b82531d61486342f2119eaa1","bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-6FONQOZJaXlQNbxQg8+6ub2KjXvwkhB4a4OoMj4HVSrIzvxytakMUUfRJSrgc38XK/QYaIWFgtGXIRq5NyNhew==","shasum":"f919582faa01b64837a30828964bc9bcd1be5b48","tarball":"https://registry.npmjs.org/mcp-gads/-/mcp-gads-0.10.2.tgz","fileCount":5,"unpackedSize":1743234,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDtjQReCB3CeRqcKBcXEi0YJWxUWjlklAfeuQqHxSW+6QIhAMSBktOB61e27WuMrO4LqbhVDc+xaV/cEjzGRJoR69IE"}]},"_npmUser":{"name":"pijus","email":"pijusz@gmail.com"},"directories":{},"maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-gads_0.10.2_1785504351613_0.674119707962765"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-02T13:06:01.157Z","modified":"2026-07-31T13:25:51.944Z","0.1.0":"2026-03-02T13:06:01.372Z","0.1.1":"2026-03-02T13:06:31.099Z","0.1.2":"2026-03-02T13:12:27.560Z","0.1.3":"2026-03-02T13:33:09.662Z","0.1.4":"2026-03-02T13:35:04.902Z","0.1.5":"2026-03-02T13:37:31.150Z","0.2.0":"2026-03-02T13:59:28.551Z","0.2.1":"2026-03-02T14:01:59.567Z","0.3.0":"2026-03-02T14:11:06.435Z","0.4.0":"2026-03-02T19:02:11.198Z","0.4.1":"2026-03-02T19:31:37.601Z","0.5.0":"2026-03-02T20:14:07.315Z","0.5.1":"2026-03-02T20:31:28.666Z","0.5.2":"2026-03-21T12:30:18.614Z","0.5.3":"2026-03-21T15:51:00.802Z","0.5.4":"2026-03-23T09:52:28.397Z","0.6.0":"2026-04-17T06:58:42.854Z","0.7.0":"2026-07-31T08:14:13.236Z","0.8.0":"2026-07-31T08:30:40.614Z","0.9.0":"2026-07-31T08:59:15.154Z","0.10.0":"2026-07-31T12:51:36.321Z","0.10.1":"2026-07-31T13:10:34.099Z","0.10.2":"2026-07-31T13:25:51.796Z"},"bugs":{"url":"https://github.com/pijusz/mcp-gads/issues"},"author":{"name":"pijusz"},"license":"MIT","homepage":"https://github.com/pijusz/mcp-gads#readme","keywords":["mcp","google-ads","google-ads-api","ai","claude","model-context-protocol","bun"],"repository":{"type":"git","url":"git+https://github.com/pijusz/mcp-gads.git"},"description":"Google Ads MCP server — query campaigns, keywords, assets & more via natural language","maintainers":[{"name":"pijus","email":"pijusz@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"logo.svg\" alt=\"mcp-gads\" width=\"280\" />\n</p>\n\n<p align=\"center\">\n  Google Ads MCP server — query campaigns, keywords, assets & more via natural language.\n  <br/>\n  Built with Bun + TypeScript. Works with Claude, Cursor, and any MCP client.\n</p>\n\n---\n\n## Quick Start\n\n### 1. Get Credentials\n\nYou need a [Google Ads API developer token](https://developers.google.com/google-ads/api/docs/get-started/dev-token) and OAuth client credentials.\n\n1. Download your OAuth client JSON from [Google Cloud Console](https://console.cloud.google.com/apis/credentials)\n2. Set environment variables:\n\n```bash\nexport GOOGLE_ADS_DEVELOPER_TOKEN=your-token\nexport GOOGLE_ADS_CREDENTIALS_PATH=./credentials.json\n```\n\n3. Run the setup helper to authorize:\n\n```bash\nnpx mcp-gads setup\n```\n\nThis opens your browser, completes OAuth, and saves a refresh token.\n\n### 2. Add to Claude Code\n\n```bash\nclaude mcp add google-ads --scope user --transport stdio \\\n  -e GOOGLE_ADS_DEVELOPER_TOKEN=your-token \\\n  -e GOOGLE_ADS_CREDENTIALS_PATH=/path/to/credentials.json \\\n  -- npx -y mcp-gads@latest\n```\n\nThat's it. Restart Claude Code and the tools are available. Every session runs the latest version automatically.\n\n> Also works with `bunx mcp-gads@latest` if you have [Bun](https://bun.sh/).\n> Requires Node 22+ when running via `npx`.\n\nIf your environment blocks npm registry access at runtime, install once and run the published binary name directly:\n\n```bash\nnpm i -g mcp-gads@latest\nclaude mcp add google-ads --scope user --transport stdio \\\n  -e GOOGLE_ADS_DEVELOPER_TOKEN=your-token \\\n  -e GOOGLE_ADS_CREDENTIALS_PATH=/path/to/credentials.json \\\n  -- mcp-gads\n```\n\n<details>\n<summary>Alternative: standalone binary</summary>\n\nDownload a pre-built binary from [Releases](https://github.com/pijusz/mcp-gads/releases):\n\n| Platform | File |\n|----------|------|\n| macOS (Apple Silicon) | `mcp-gads-darwin-arm64` |\n| macOS (Intel) | `mcp-gads-darwin-x64` |\n| Linux | `mcp-gads-linux-x64` |\n| Windows | `mcp-gads-windows-x64.exe` |\n\n**macOS / Linux:**\n\n```bash\ncurl -Lo mcp-gads https://github.com/pijusz/mcp-gads/releases/latest/download/mcp-gads-darwin-arm64\nchmod +x mcp-gads\nsudo mv mcp-gads /usr/local/bin/\nclaude mcp add google-ads --scope user --transport stdio \\\n  -e GOOGLE_ADS_DEVELOPER_TOKEN=your-token \\\n  -e GOOGLE_ADS_CREDENTIALS_PATH=/path/to/credentials.json \\\n  -- /usr/local/bin/mcp-gads\n```\n\n**Windows (PowerShell):**\n\n```powershell\nInvoke-WebRequest -Uri \"https://github.com/pijusz/mcp-gads/releases/latest/download/mcp-gads-windows-x64.exe\" -OutFile \"$env:LOCALAPPDATA\\mcp-gads.exe\"\nclaude mcp add google-ads --scope user --transport stdio -e GOOGLE_ADS_DEVELOPER_TOKEN=your-token -e GOOGLE_ADS_CREDENTIALS_PATH=C:\\path\\to\\credentials.json -- \"%LOCALAPPDATA%\\mcp-gads.exe\"\n```\n\n</details>\n\n### ChatGPT Codex\n\nCodex uses TOML, not JSON. Install once, then add to `~/.codex/config.toml`:\n\n```bash\nnpm i -g mcp-gads\n```\n\n```toml\n[mcp_servers.gads]\ncommand = \"mcp-gads\"\n\n[mcp_servers.gads.env]\nGOOGLE_ADS_DEVELOPER_TOKEN = \"your-token\"\nGOOGLE_ADS_CREDENTIALS_PATH = \"/absolute/path/to/credentials.json\"\n```\n\nThree gotchas that cause silent failures on Codex:\n\n- **Don't use `npx -y` without raising the timeout.** Codex's default `startup_timeout_sec` is 10s, which is too short for npx's first-run download. A global install (above) or the [prebuilt binary](#quick-start) sidesteps this entirely. If you must use npx, add `startup_timeout_sec = 30`.\n- **Env vars must go under `[mcp_servers.gads.env]`.** Codex does not inherit the parent shell environment into stdio servers — exporting vars in your shell won't reach the server.\n- **Use absolute paths** for `GOOGLE_ADS_CREDENTIALS_PATH`. Codex spawns the server with its own cwd, so relative paths silently miss.\n\nOn Windows some Codex versions use `startup_timeout_ms = 20000` instead of `_sec`.\n\n### Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n<details>\n<summary>Using npx (auto-updates)</summary>\n\n```json\n{\n  \"mcpServers\": {\n    \"google-ads\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-gads@latest\"],\n      \"env\": {\n        \"GOOGLE_ADS_DEVELOPER_TOKEN\": \"your-token\",\n        \"GOOGLE_ADS_CREDENTIALS_PATH\": \"/path/to/credentials.json\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>Using binary (macOS / Linux)</summary>\n\n```json\n{\n  \"mcpServers\": {\n    \"google-ads\": {\n      \"command\": \"/usr/local/bin/mcp-gads\",\n      \"env\": {\n        \"GOOGLE_ADS_DEVELOPER_TOKEN\": \"your-token\",\n        \"GOOGLE_ADS_CREDENTIALS_PATH\": \"/path/to/credentials.json\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>Using binary (Windows)</summary>\n\n```json\n{\n  \"mcpServers\": {\n    \"google-ads\": {\n      \"command\": \"C:\\\\Users\\\\YOU\\\\AppData\\\\Local\\\\mcp-gads.exe\",\n      \"env\": {\n        \"GOOGLE_ADS_DEVELOPER_TOKEN\": \"your-token\",\n        \"GOOGLE_ADS_CREDENTIALS_PATH\": \"C:\\\\path\\\\to\\\\credentials.json\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n## Tools (39)\n\n### Account Management\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts |\n| `get_account_currency` | Get the currency code for an account |\n| `get_account_hierarchy` | Get MCC account tree (manager -> client) |\n\n### Queries\n| Tool | Description |\n|------|-------------|\n| `execute_gaql_query` | Run any GAQL query (table output) |\n| `run_gaql` | Run GAQL with format options (table/json/csv) |\n| `get_gaql_help` | GAQL reference guide with syntax, resources, and examples |\n| `list_resources` | List valid GAQL FROM clause resources |\n\n### Campaigns\n| Tool | Description |\n|------|-------------|\n| `get_campaign_performance` | Campaign metrics (impressions, clicks, cost, conversions) |\n| `get_budget_utilization` | Budget amounts vs actual spend |\n\n### Ads\n| Tool | Description |\n|------|-------------|\n| `get_ad_performance` | Ad-level performance metrics |\n| `get_ad_creatives` | RSA headlines, descriptions, final URLs |\n\n### Assets\n| Tool | Description |\n|------|-------------|\n| `get_image_assets` | List image assets with URLs and dimensions |\n| `download_image_asset` | Download a specific image asset to disk |\n| `get_asset_usage` | Find where assets are used (campaigns, ad groups) |\n| `analyze_image_assets` | Image asset performance with metrics |\n\n### Keywords\n| Tool | Description |\n|------|-------------|\n| `generate_keyword_ideas` | Keyword Planner suggestions from seed keywords |\n| `get_keyword_volumes` | Historical search volume for specific keywords |\n| `get_quality_scores` | Quality scores with component breakdown |\n| `get_search_terms` | Actual search queries triggering your ads |\n| `get_paid_organic_search_terms` | Paid vs organic clicks per query (needs Search Console link) |\n| `get_search_term_insights` | Search demand categories — the only view into Performance Max & Demand Gen queries |\n\n### Geographic & Device\n| Tool | Description |\n|------|-------------|\n| `get_geographic_performance` | Performance by location |\n| `get_device_performance` | Performance by device type |\n\n### Insights\n| Tool | Description |\n|------|-------------|\n| `get_recommendations` | Google's AI optimization suggestions |\n| `get_change_history` | Recent account changes |\n\n### Extended Reporting\n\n| Tool | Description |\n|------|-------------|\n| `get_ad_group_performance` | Ad group metrics with optional campaign filter |\n| `get_conversion_actions` | Conversion actions with settings and performance |\n| `get_account_summary` | Quick dashboard: totals + top 5 campaigns |\n| `get_impression_share` | Competitive position: impression share and lost IS |\n| `get_ad_schedule_performance` | Performance by hour or day of week |\n| `get_audience_performance` | Demographics: age range and gender breakdowns |\n| `get_landing_page_performance` | Landing page URLs with metrics |\n| `get_placement_performance` | Display/PMax placement details |\n| `get_asset_group_performance` | PMax asset group metrics and ad strength |\n| `get_video_performance` | YouTube/video view rates and quartile completion |\n| `get_labels` | Labels and their campaign/ad group assignments |\n\n### Write Tools (disabled by default)\nEnable with `GOOGLE_ADS_ENABLE_MUTATIONS=true`:\n\n| Tool | Description |\n|------|-------------|\n| `update_campaign_status` | Pause/enable a campaign |\n| `update_ad_group_status` | Pause/enable an ad group |\n| `update_ad_status` | Pause/enable an ad |\n| `update_campaign_budget` | Change daily budget amount |\n| `add_negative_keywords` | Add negative keywords to a campaign |\n\n## Configuration\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `GOOGLE_ADS_DEVELOPER_TOKEN` | Yes | — | API developer token |\n| `GOOGLE_ADS_CREDENTIALS_PATH` | Yes | — | Path to OAuth client JSON |\n| `GOOGLE_ADS_AUTH_TYPE` | No | `oauth` | `oauth` or `service_account` |\n| `GOOGLE_ADS_CUSTOMER_ID` | No | — | Default customer ID (skips passing it per tool) |\n| `GOOGLE_ADS_LOGIN_CUSTOMER_ID` | No | — | MCC manager account ID |\n| `GOOGLE_ADS_IMPERSONATION_EMAIL` | No | — | Service account impersonation email |\n| `GOOGLE_ADS_ENABLE_MUTATIONS` | No | `false` | Enable write tools |\n| `GOOGLE_ADS_ENV_FILE` | No | `.env` | Path to .env file (loaded if present, never overrides existing env) |\n| `GOOGLE_ADS_API_VERSION` | No | `v25` | Google Ads API version |\n\n## Updates\n\n**Using `npx @latest`** (recommended): You always get the latest version — no manual updates needed.\n\n**Using a binary**: The server checks for new releases on startup and logs to stderr if outdated:\n\n```\n[mcp-gads] v0.2.0 available (current: v0.1.0). Download: https://github.com/pijusz/mcp-gads/releases/latest\n```\n\nCheck your installed version:\n\n```bash\nmcp-gads --version\n```\n\nTo update, download the new binary and replace the old one.\n\n## Development\n\nRequires [Bun](https://bun.sh/).\n\n```bash\ngit clone https://github.com/pijusz/mcp-gads.git\ncd mcp-gads\nbun install\nbun test           # tests\nbun run build      # standalone binary\nbun run inspect    # MCP Inspector\nbun run check      # biome format + lint\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}