Skip to main content
Glama
Google Ads MCP Worker

Google Ads MCP Worker

by ambo-sk

Google Ads MCP Worker

Cloudflare Worker에서 실행되는 Google Ads MCP 서버입니다. mcp-gsc와 동일한 구조입니다: TypeScript, fetch를 통한 REST, Google 클라이언트 라이브러리 없음.

  • FGRibreau/mcp-google-ads (Rust, API v23)을 API v25로 재구현

  • 인증: OAuth2 리프레시 토큰. Google Ads API는 서비스 계정을 허용하지 않으므로 GSC JWT 방식은 여기 해당되지 않습니다.

  • 전송: Streamable HTTP (/mcp) 및 레거시 SSE (/sse)

쓰기 작업은 보호되지 않습니다. 드라이런, 예산 상한, 입찰가 상한, 2단계 확인, 감사 로그가 없습니다. 모든 변경 도구는 customer_id가 가리키는 계정에 즉시 적용됩니다. create_campaign, create_ad_group, create_responsive_search_ad는 기본적으로 PAUSED로 설정되지만, 이는 재정의할 수 있는 기본값일 뿐 잠금 장치가 아닙니다. 설정을 신뢰할 때까지 이 도구를 테스트 계정에 연결하세요.

설정

1. Google Ads 개발자 토큰

관리자(MCC) 계정 → 도구 및 설정 → API 센터 → 개발자 토큰 신청. 기본 액세스가 승인될 때까지 토큰은 테스트 계정에서만 작동합니다.

2. OAuth 클라이언트

  1. Google Cloud Console → 프로젝트 선택/생성 → Google Ads API 사용 설정.

  2. API 및 서비스 → 사용자 인증 정보 → 사용자 인증 정보 만들기 → OAuth 클라이언트 ID → 데스크톱 앱.

  3. 클라이언트 ID와 클라이언트 보안 비밀번호를 기록해 둡니다.

3. 리프레시 토큰

npm install --legacy-peer-deps
npm run token -- <CLIENT_ID> <CLIENT_SECRET>

브라우저를 열고 adwords 범위를 요청한 다음 GOOGLE_ADS_REFRESH_TOKEN을 출력합니다. 관리하려는 Ads 계정에 액세스 권한이 있는 Google 계정으로 로그인하세요.

4. 배포

npx wrangler secret put GOOGLE_ADS_DEVELOPER_TOKEN
npx wrangler secret put GOOGLE_ADS_CLIENT_ID
npx wrangler secret put GOOGLE_ADS_CLIENT_SECRET
npx wrangler secret put GOOGLE_ADS_REFRESH_TOKEN
npx wrangler secret put MCP_AUTH_TOKEN     # any long random string: openssl rand -hex 32
npm run deploy

wrangler.jsonc에서 비밀번호가 아닌 기본값을 설정하세요:

변수

의미

GOOGLE_ADS_CUSTOMER_ID

기본 계정, 숫자만 사용. 도구는 호출 시마다 재정의하도록 customer_id를 받습니다.

GOOGLE_ADS_LOGIN_CUSTOMER_ID

귀하의 MCC ID이며 login-customer-id로 전송됩니다. 관리자 계정이 아니면 비워 둡니다.

GOOGLE_ADS_API_VERSION

기본값은 v25입니다. Google에서 새 버전을 출시하면 여기서 올리세요.

로컬 개발: .dev.vars.example을 .dev.vars로 복사한 다음 npm run dev를 실행하세요.

5. 클라이언트 연결

claude mcp add --transport http gads https://gads-mcp.<your-subdomain>.workers.dev/mcp \
  --header "Authorization: Bearer <MCP_AUTH_TOKEN>"

Claude Desktop / stdio 전용 클라이언트:

{
  "mcpServers": {
    "gads": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://gads-mcp.<your-subdomain>.workers.dev/mcp",
        "--header",
        "Authorization: Bearer <MCP_AUTH_TOKEN>"
      ]
    }
  }
}

그런 다음 health_check를 호출하세요. OAuth 상태, 개발자 토큰 존재 여부, 연결 가능한 계정을 보고합니다.

Related MCP server: Google Ads MCP

도구

도구 46개. 모든 고객 범위 도구는 선택적 customer_id를 받습니다.

읽기 (21)

도구

설명

health_check

인증 상태, API 버전, 구성된 계정

list_accounts

접근 가능한 계정 (MCC가 구성된 경우 이름 포함)

get_account_info

통화, 시간대, 자동 태그 지정, 테스트 계정 플래그

run_gaql

모든 GAQL 쿼리; 기본적으로 searchStream, page_size/page_token이 주어지면 페이지 매김

get_campaign_performance

비용별 캠페인 실적

get_ad_group_performance

광고 그룹 실적

get_ad_performance

RSA 헤드라인/설명 및 승인 상태를 포함한 광고 실적

get_keyword_performance

일치 유형, 품질평가점수, 입찰가를 포함한 키워드 실적

get_search_terms

실제 검색어 — 제외 키워드 소스

get_negative_keywords

캠페인 / 광고 그룹 / 공유 세트 제외어

get_geo_performance

위치별 실적

get_device_performance

기기별 실적

get_change_history

변경 이벤트 (API는 30일 보관)

list_assets

에셋 및 첨부 수준

get_policy_issues

정책 주제와 함께 게재불가 및 제한된 광고

get_conversion_actions

카테고리, 계산, 재방문 기간이 포함된 전환 작업

list_recommendations

Google의 추천 및 영향 추정치

search_geo_targets

장소 이름 → 지역 타겟 상수 ID

discover_keywords

시드 및/또는 URL의 키워드 아이디어

get_keyword_historical_metrics

고정 키워드 목록의 볼륨/경쟁도

get_keyword_forecasts

가상 캠페인에 대한 예측

쓰기 (25)

도구

설명

create_campaign_budget

일일 예산, 공유 여부

create_campaign

캠페인 + 선택적 예산을 한 번에

update_campaign

이름, 상태, 예산, 날짜, 입찰 전략

create_ad_group / update_ad_group

광고 그룹 및 기본 CPC

add_keywords / update_keyword

긍정 키워드, 입찰가, 최종 URL

add_negative_keywords

캠페인 또는 광고 그룹 제외어

create_responsive_search_ad

고정 기능이 있는 RSA, 전송 전 길이 제한 확인

set_entity_status

리소스 이름으로 모든 항목 일시중지/사용/삭제

add_geo_target

위치 타겟팅 또는 제외, 입찰가 조정 포함

set_campaign_geo_target_type

존재 여부 vs 존재 또는 관심도

set_ad_schedule

요일별 시간대 및 입찰가 조정

add_audience_targeting / create_custom_audience

잠재고객

create_asset / attach_assets / remove_asset_link

사이트링크, 콜아웃, 스니펫, 텍스트, 이미지

create_conversion_action / update_conversion_action

전환 설정, 기본/보조

create_bidding_strategy

포트폴리오 전략

apply_recommendation / dismiss_recommendation

Google의 제안에 대한 조치

mutate

모든 리소스 컬렉션에 대한 원시 변경 — 위의 모든 것을 포함

mutate_batch

임시 ID를 사용한 원자적 googleAds:mutate

mutate 및 mutate_batch는 탈출구입니다. Google이 추가하는 모든 항목이나 명명된 도구가 없는 리소스(공유 세트, 사용자 목록, 에셋 그룹, 실험, 라벨)는 코드 변경 없이 이를 통해 처리됩니다. 수동 드라이런을 원하면 둘 다 validate_only를 허용합니다.

검사

npm run typecheck   # tsc --noEmit
npm test            # pure-logic selfcheck: micros, dates, resource names, bidding payloads

참고

  • 금액은 통화 단위(25.5)로 전달되며 내부적으로 마이크로 단위로 변환됩니다.

  • 변경 페이로드는 YYYYMMDD 날짜를 사용하고, 보고는 YYYY-MM-DD를 사용합니다. 도구는 모든 곳에서 YYYY-MM-DD를 받아 변환합니다.

  • updateMask는 snake_case 필드 이름을 사용합니다. mutate에 대한 작업을 직접 작성하는 경우 관련이 있습니다.

  • 액세스 토큰은 Worker 격리 단위로 캐시되며, 리프레시 토큰은 해지되거나 6개월 동안 사용되지 않지 않는 한 만료되지 않습니다.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables reading and modifying Google Ads accounts, including campaign management, ad status changes, budget updates, and more.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive Google Ads MCP server providing ~47 tools for full read/write access to Google Ads accounts, including campaign management, ad creation, keyword management, and reporting.
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables reading and mutating Google Ads campaigns via MCP tools, and includes structured marketer workflows for search term mining, budget optimization, and weekly reviews.
    31 npm
    6
    MIT