Atlas / MCP servers / zennitty / adsmart-app

adsmart-appSAFE

mcp/zennitty/adsmart-app

Gerencie suas campanhas do Google Ads conversando com o Claude. Extensão open source para o Claude Desktop (MCPB), 100% local, com prévia, confirmação e desfazer.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
8 8r · 0w · 0d
Transport
—
License
MIT
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Extensão open-source para o Claude Desktop que conecta o Claude às suas contas do Google Ads. Consulte métricas, analise campanhas e faça alterações com prévia, aprovação e desfazer, tudo em português e rodando no seu computador.

[](LICENSE) [](https://github.com/ZenniTTy/adsmart-app/actions/workflows/ci.yml)

English · Português

[!NOTE] Extensão open source para gerenciar Google Ads pelo Claude Desktop no macOS e no Windows. A versão v0.1.1 está nos releases; o site é adsmart.digital.

O que é a AdSmart

A AdSmart é um servidor MCP (Model Context Protocol) empacotado como extensão do Claude Desktop (.mcpb). Ela dá ao Claude acesso seguro à Google Ads API usando a sua própria conta de serviço do Google Cloud, para que você gerencie campanhas de Google Ads conversando em linguagem natural:

  • "Como foram minhas campanhas nos últimos 7 dias?"
  • "Quais termos de pesquisa gastaram mais de R$ 50 sem converter este mês?"
  • "Quanto de parcela de impressões estou perdendo por orçamento?"
  • "Pausa a campanha Black Friday e sobe o orçamento da Institucional para R$ 80/dia."
  • "Adiciona 'grátis' e 'curso online' como palavras-chave negativas na campanha Pesquisa."
  • "Desfaz a última alteração."

É uma alternativa local e gratuita a ferramentas de automação de Google Ads na nuvem: não há servidor intermediário, assinatura nem coleta de dados.

Por que usar

  • 100% local. Roda no seu computador. A chave da conta de serviço nunca sai da sua máquina e nada passa por servidores de terceiros. A extensão só fala com googleads.googleapis.com e oauth2.googleapis.com.
  • Sem custo. A Google Ads API é g
Read from source at commit c882082b9353OBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add adsmart-site --env ADSMART_TEST_TOKEN_FAILS=${ADSMART_TEST_TOKEN_FAILS} -- npx -y adsmart-site
claude-desktop
{
  "mcpServers": {
    "adsmart-site": {
      "command": "npx",
      "args": [
        "-y",
        "adsmart-site"
      ],
      "env": {
        "ADSMART_TEST_TOKEN_FAILS": "${ADSMART_TEST_TOKEN_FAILS}"
      }
    }
  }
}
03

Exposed tools (8)

8 read · 0 write · 0 destructive.

ToolRiskDescription
aplicarread
consultarread
desfazerread
diagnosticoread
guia_configuracaoread
historicoread
listar_contasread
preparar_alteracaoread
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
declared (1 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (8)

LOWInventory / provenance · inv.hidden_file · CWE-1104
.bun-version
.bun-version
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/e2e/server-entry.ts:5
import { loadConfig } from "../../src/config.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/e2e/server-entry.ts:6
import { createAdsClient } from "../../src/google/ads-client.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/e2e/server-entry.ts:7
import { createServiceAccountTokenProvider } from "../../src/google/auth.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/e2e/server-entry.ts:8
import { createServer } from "../../src/server.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/unit/ads-client.test.ts:2
import { createAdsClient, type HttpFetch } from "../../src/google/ads-client.js";
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/e2e/fake-google.ts:62
baseUrl: `http://127.0.0.1:${port}/v0`,
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@biomejs/biome, @commitlint/cli, @commitlint/config-conventional, @types/node, lefthook, typescript
Why it matters. 6 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha c882082b9353full audit observations/trust-audit/mcp-server/zennitty__adsmart-app.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-11c882082b9353SAFEB89first audit
06

Questions

What is the adsmart-app MCP server?

Gerencie suas campanhas do Google Ads conversando com o Claude. Extensão open source para o Claude Desktop (MCPB), 100% local, com prévia, confirmação e desfazer.

What tools does adsmart-app expose?

8 in total: 8 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is adsmart-app safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does adsmart-app need?

It reads ADSMART_TEST_TOKEN_FAILS from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How current is this page?

The grade is for one exact copy of the source (c882082b9353), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement