ลองใช้เซิร์ฟเวอร์ MCP ของ Google Analytics

เซิร์ฟเวอร์ Model Context Protocol (MCP) ของ Google Analytics ช่วยให้คุณเชื่อมต่อข้อมูล Google Analytics กับโมเดลภาษาขนาดใหญ่ (LLM) และ AI Agent เช่น Gemini ได้ คุณสามารถใช้เซิร์ฟเวอร์ MCP เพื่อค้นหารายงานในภาษาธรรมชาติ ตรวจสอบการกำหนดค่าพร็อพเพอร์ตี้ และสร้าง Agent การวิเคราะห์ที่กำหนดเองได้

ตั้งค่าเซิร์ฟเวอร์ MCP ดูใน GitHub ดูบทแนะนำการตั้งค่า

ข้อกำหนดเบื้องต้น

ก่อนกำหนดค่าเซิร์ฟเวอร์ MCP ของ Google Analytics โปรดทำตามข้อกำหนดต่อไปนี้ให้เสร็จสมบูรณ์

  1. ติดตั้ง Python และเครื่องมือรันแพ็กเกจ
    • ติดตั้ง Python 3.10 ขึ้นไป
    • ติดตั้ง pipx หรือ uv (uvx) เพื่อเรียกใช้เซิร์ฟเวอร์ MCP ในสภาพแวดล้อม Python ที่แยกต่างหาก
  2. เปิดใช้ Google Analytics API ใน :

    • สร้างหรือเลือก โปรเจ็กต์
    • เปิดใช้ทั้ง Google Analytics Admin API (analyticsadmin.googleapis.com) และ Google Analytics Data API (analyticsdata.googleapis.com) ในโปรเจ็กต์โดยทำดังนี้

      gcloud services enable analyticsadmin.googleapis.com \
        analyticsdata.googleapis.com \
        --project=YOUR_PROJECT_ID
      
  3. ให้สิทธิ์เข้าถึงพร็อพเพอร์ตี้ Google Analytics

ตั้งค่าการตรวจสอบสิทธิ์

เซิร์ฟเวอร์ MCP ของ Google Analytics จะตรวจสอบสิทธิ์โดยใช้ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC) ที่มีขอบเขต OAuth 2.0 ของ Google Analytics แบบอ่านอย่างเดียว ดังนี้

https://www.googleapis.com/auth/analytics.readonly

คุณกำหนดค่า ADC ได้โดยใช้บัญชีผู้ใช้ Google หรือบัญชีบริการ

ตัวเลือกที่ 1: ตรวจสอบสิทธิ์ด้วยข้อมูลเข้าสู่ระบบของผู้ใช้

  1. ติดตั้งและเริ่มต้น gcloud CLI
  2. เรียกใช้ gcloud auth application-default login โดยมีขอบเขตที่จำเป็นดังนี้

    gcloud auth application-default login \
      --scopes="https://www.googleapis.com/auth/analytics.readonly,https://www.googleapis.com/auth/cloud-platform"
    

    หากคุณใช้ไฟล์การกำหนดค่าไคลเอ็นต์เดสก์ท็อปหรือเว็บ OAuth 2.0 ที่ดาวน์โหลดมา (ดูจัดการไคลเอ็นต์ OAuth) ให้ส่ง --client-id-file ดังนี้

    gcloud auth application-default login \
      --scopes="https://www.googleapis.com/auth/analytics.readonly,https://www.googleapis.com/auth/cloud-platform" \
      --client-id-file=YOUR_CLIENT_JSON_FILE
    
  3. เมื่อคำสั่งเสร็จสิ้น ให้คัดลอกเส้นทางข้อมูลเข้าสู่ระบบที่พิมพ์ไปยังคอนโซล (Credentials saved to file: [PATH_TO_CREDENTIALS_JSON]) คุณจะใช้เส้นทางนี้ใน GOOGLE_APPLICATION_CREDENTIALS เมื่อกำหนดค่าไคลเอ็นต์ MCP

ตัวเลือกที่ 2: ตรวจสอบสิทธิ์ด้วยบัญชีบริการ

วิธีตรวจสอบสิทธิ์ด้วยบัญชีบริการที่มีสิทธิ์เข้าถึงระดับผู้ดูในพร็อพเพอร์ตี้ Google Analytics

  • ไฟล์คีย์ JSON ของบัญชีบริการ: ตั้งค่า GOOGLE_APPLICATION_CREDENTIALS ในการกำหนดค่าไคลเอ็นต์ MCP เป็น Absolute Path ของไฟล์ JSON ของบัญชีบริการ
  • การแอบอ้างเป็นบัญชีบริการ: สร้างข้อมูลเข้าสู่ระบบ ADC โดยแอบอ้างเป็นบัญชีบริการด้วย gcloud CLI โดยทำดังนี้

    gcloud auth application-default login \
      --impersonate-service-account=SERVICE_ACCOUNT_EMAIL \
      --scopes="https://www.googleapis.com/auth/analytics.readonly,https://www.googleapis.com/auth/cloud-platform"
    

กำหนดค่าไคลเอ็นต์ MCP

เซิร์ฟเวอร์ได้รับการเผยแพร่ใน PyPI เป็น analytics-mcp และแสดงทั้งสคริปต์คอนโซล analytics-mcp และ google-analytics-mcp

ในการกำหนดค่าต่อไปนี้ ให้แทนที่ค่าต่อไปนี้

  • PATH_TO_CREDENTIALS_JSON ด้วย Absolute Path ไปยังไฟล์ JSON ของ ADC หรือบัญชีบริการ
  • YOUR_PROJECT_ID ด้วย รหัสโปรเจ็กต์ที่คุณเปิดใช้ Google Analytics API

Antigravity CLI และ Antigravity IDE

  1. ติดตั้ง Antigravity CLI หรือ Antigravity IDE
  2. เพิ่มเซิร์ฟเวอร์ analytics-mcp ไปยัง ~/.gemini/config/mcp_config.json (หรือ .agents/mcp_config.json ในพื้นที่ทำงานของคุณ) โดยทำดังนี้

    {
      "mcpServers": {
        "analytics-mcp": {
          "command": "pipx",
          "args": ["run", "analytics-mcp"],
          "env": {
            "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON",
            "GOOGLE_CLOUD_PROJECT": "YOUR_PROJECT_ID"
          }
        }
      }
    }
    
  3. ตรวจสอบว่า analytics-mcp เชื่อมต่ออยู่ โดยทำดังนี้

    • Antigravity CLI: เรียกใช้ agy แล้วป้อน /mcp เพื่อดูเซิร์ฟเวอร์ MCP ที่กำหนดค่าไว้
    • Antigravity IDE: เปิดการตั้งค่า > การปรับแต่ง > เซิร์ฟเวอร์ MCP ที่ติดตั้ง แล้วคลิกรีเฟรช

Claude Desktop และ Claude Code

สำหรับ Claude Desktop ให้เพิ่มเซิร์ฟเวอร์ลงในไฟล์ claude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json ใน macOS หรือ %APPDATA%\Claude\claude_desktop_config.json ใน Windows) ดังนี้

{
  "mcpServers": {
    "analytics-mcp": {
      "command": "pipx",
      "args": ["run", "analytics-mcp"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON",
        "GOOGLE_CLOUD_PROJECT": "YOUR_PROJECT_ID"
      }
    }
  }
}

สำหรับ Claude Code ให้ลงทะเบียนเซิร์ฟเวอร์โดยใช้เครื่องมือบรรทัดคำสั่งดังนี้

claude mcp add analytics-mcp \
  --scope user \
  -e GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_CREDENTIALS_JSON" \
  -e GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID" \
  -- pipx run analytics-mcp

เคอร์เซอร์

เพิ่มเซิร์ฟเวอร์ลงใน .cursor/mcp.json ในไดเรกทอรีโปรเจ็กต์ (หรือ ~/.cursor/mcp.json สำหรับการกำหนดค่าส่วนกลาง) คุณเรียกใช้ google-analytics-mcp ได้โดยใช้ uvx หรือ pipx ดังนี้

{
  "mcpServers": {
    "google-analytics-mcp": {
      "command": "uvx",
      "args": ["--from", "analytics-mcp", "google-analytics-mcp"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON",
        "GOOGLE_CLOUD_PROJECT": "YOUR_PROJECT_ID"
      }
    }
  }
}

หากต้องการเรียกใช้เวอร์ชันพัฒนาล่าสุดจาก GitHub โดยตรงโดยใช้ uvx ให้อัปเดต "args" ดังนี้

"args": [
  "--from",
  "git+https://github.com/googleanalytics/google-analytics-mcp.git",
  "google-analytics-mcp"
]

หรือหากต้องการใช้ pipx ให้เปลี่ยน "command" เป็น "pipx" และตั้งค่า "args" เป็นค่าต่อไปนี้

"command": "pipx",
"args": [
  "run",
  "--spec",
  "git+https://github.com/googleanalytics/google-analytics-mcp.git",
  "google-analytics-mcp"
]

เครื่องมือ MCP ที่พร้อมใช้งาน

เซิร์ฟเวอร์ MCP ของ Google Analytics ใช้ Admin API และ Data API v1 เพื่อแสดงเครื่องมือแบบอ่านอย่างเดียวต่อไคลเอ็นต์ MCP ดังนี้

  • การค้นพบบัญชีและพร็อพเพอร์ตี้ (Admin API):
    • get_account_summaries: แสดงรายการบัญชีและพร็อพเพอร์ตี้ Google Analytics ที่ผู้ใช้ที่ตรวจสอบสิทธิ์แล้วเข้าถึงได้ (accountSummaries.list)
    • get_property_details: แสดงรายละเอียดการกำหนดค่าสำหรับพร็อพเพอร์ตี้ Google Analytics ที่เฉพาะเจาะจง (properties.get)
    • list_google_ads_links: แสดงรายการลิงก์ไปยังบัญชี Google Ads สำหรับพร็อพเพอร์ตี้ (properties.googleAdsLinks.list)
    • list_property_annotations: แสดงรายการคำอธิบายประกอบที่กำหนดค่าไว้สำหรับพร็อพเพอร์ตี้ (properties.reportingDataAnnotations.list)
  • การรายงานและการตรวจสอบสคีมา (Data API v1):
    • get_custom_dimensions_and_metrics: ดึงข้อมูลมิติข้อมูลและเมตริกที่กำหนดเองซึ่งกำหนดไว้สำหรับพร็อพเพอร์ตี้ (getMetadata)
    • run_report: เรียกใช้รายงาน Google Analytics มาตรฐาน (runReport)
    • run_realtime_report: เรียกใช้รายงานแบบเรียลไทม์ของ Google Analytics (runRealtimeReport)
    • run_funnel_report: เรียกใช้รายงานการสำรวจ Funnel ของ Google Analytics (runFunnelReport)
    • run_conversions_report: เรียกใช้รายงานประสิทธิภาพของ Conversion (runConversionsReport)

ตัวอย่างพรอมต์

เมื่อเชื่อมต่อแล้ว ให้ลองถามคำถามผู้ช่วย AI เช่น

  • มีผู้เข้าชมเว็บไซต์ของฉันกี่คนเมื่อวานนี้
  • ผลิตภัณฑ์ที่ขายดีที่สุดของฉันเมื่อวานนี้คืออะไร
  • ฉันมีงบประมาณด้านการตลาด $5,000/เดือน และต้องการสร้างรายได้เพิ่มขึ้น ช่วยฉันสร้างแผนการตลาดที่อิงตามข้อมูล
  • มีการกำหนดค่ามิติข้อมูลและเมตริกที่กำหนดเองใดบ้างในพร็อพเพอร์ตี้ของฉัน
  • เหตุการณ์ที่ได้รับความนิยมมากที่สุดในพร็อพเพอร์ตี้ Google Analytics ของฉันในช่วง 90 วันที่ผ่านมาคืออะไร

การแก้ปัญหา

ใช้รายการตรวจสอบต่อไปนี้เพื่อแก้ไขข้อผิดพลาดในการตั้งค่าและข้อผิดพลาดขณะรันไทม์ที่พบบ่อย

  • 403 PERMISSION_DENIED (ไม่ได้เปิดใช้ API หรือสิทธิ์ในพร็อพเพอร์ตี้ไม่เพียงพอ):
    • ยืนยันว่าทั้ง Google Analytics Admin API (analyticsadmin.googleapis.com) และ Google Analytics Data API (analyticsdata.googleapis.com) เปิดใช้อยู่ในโปรเจ็กต์ ที่ระบุโดย GOOGLE_CLOUD_PROJECT
    • ยืนยันว่าผู้ใช้หรือบัญชีบริการที่ตรวจสอบสิทธิ์มีบทบาทผู้ดู (roles/analytics.viewer) เป็นอย่างน้อยในพร็อพเพอร์ตี้ Google Analytics เป้าหมายใน UI ของ Google Analytics
    • หากสถานะข้อผิดพลาดระบุว่า Request had insufficient authentication scopes ให้เรียกใช้ gcloud auth application-default login อีกครั้งโดยใช้ขอบเขต https://www.googleapis.com/auth/analytics.readonly และ https://www.googleapis.com/auth/cloud-platform
  • ไม่มีโปรเจ็กต์โควต้า (GOOGLE_CLOUD_PROJECT) หรือ 403 ACCESS_NOT_CONFIGURED:

    • คำขอที่ตรวจสอบสิทธิ์ด้วยข้อมูลเข้าสู่ระบบ ADC ของผู้ใช้ต้องมี โปรเจ็กต์โควต้าที่เปิดใช้ Google Analytics API ตั้งค่า "GOOGLE_CLOUD_PROJECT": "YOUR_PROJECT_ID" ในการกำหนดค่า env ของเซิร์ฟเวอร์ MCP หรือตั้งค่าโปรเจ็กต์โควต้าในไฟล์ ADC ดังนี้

      gcloud auth application-default set-quota-project YOUR_PROJECT_ID
      
  • ไม่พบ 401 UNAUTHENTICATED หรือไฟล์ข้อมูลเข้าสู่ระบบ:

    • ใช้ Absolute Path สำหรับ GOOGLE_APPLICATION_CREDENTIALS (เช่น /Users/username/.config/gcloud/application_default_credentials.json) หลีกเลี่ยงตัวแปร ~ หรือ $HOME เนื่องจากโฮสต์ MCP จำนวนมากไม่ขยายตัวแปร Shell ภายในไฟล์การกำหนดค่า JSON
    • เรียกใช้ gcloud auth application-default login อีกครั้งหากข้อมูลเข้าสู่ระบบของผู้ใช้หมดอายุแล้ว
  • เซิร์ฟเวอร์เปิดไม่สำเร็จ (ข้อผิดพลาดเกี่ยวกับ spawn pipx ENOENT, uvx: command not found หรือเวอร์ชัน Python):

    • ตรวจสอบว่าได้ติดตั้ง Python 3.10 ขึ้นไปแล้ว (python3 --version)
    • แอปพลิเคชัน GUI บนเดสก์ท็อป (เช่น Claude Desktop และ Cursor) มักจะไม่รับค่า PATH ของเชลล์แบบอินเทอร์แอกทีฟ แทนที่ "pipx" หรือ "uvx" ใน "command" ด้วยเส้นทางไบนารีแบบสัมบูรณ์ที่แสดงผลโดย which pipx หรือ which uvx (เช่น /opt/homebrew/bin/pipx หรือ /Users/username/.local/bin/pipx)