AI Agents Analytics

Google Analytics MCP सर्वर कैसे बनाएं

Alejandro Rioja
Alejandro Rioja
6 मिनट पढ़ें
TL;DR

पहले Google का अपना GA4 MCP सर्वर आज़माएं: यह प्रायोगिक है, Python में लोकल चलता है, और अपने कंप्यूटर पर GA4 के लिए काफ़ी है। अपना बनाना हो तो MCP TypeScript SDK और @google-analytics/data से एक run_report टूल लिखें, gcloud और analytics.readonly स्कोप से लॉग इन करें, और claude mcp add से रजिस्टर करें। मुश्किल हिस्सा दूसरों के लिए होस्ट करना है: आपको MCP का OAuth फ़्लो, संवेदनशील स्कोप के लिए Google का ऐप सत्यापन (असत्यापित ऐप 100 यूज़र तक सीमित रहते हैं), और Data API के प्रति-प्रॉपर्टी कोटा में रहने के लिए कैशिंग चाहिए।

मुफ़्त न्यूज़लेटर

हर बुधवार। 28,400+ पाठक। बिना फालतू बात।

आपके लैपटॉप पर चलने वाला GA4 MCP सर्वर एक दोपहर का काम है। ऐसा सर्वर जिसमें दूसरे लोग साइन इन कर सकें, कहीं बड़ा काम है। यह गाइड आपको एक दोपहर वाला वर्शन देती है, फिर बताती है कि बड़े वर्शन में क्या-क्या लगता है, ताकि आप तय कर सकें कि आपको कौन-सा चाहिए।

विषय-सूची

विषय-सूची खोलें

पहले आधिकारिक सर्वर देखें

Google अपना Google Analytics MCP सर्वर प्रकाशित करता है, जिस पर अब भी प्रायोगिक का लेबल है। यह आपके अपने कंप्यूटर पर Python में चलता है, और इसके काम करने से पहले आपको Google Cloud प्रोजेक्ट में Google Analytics Admin API और Data API चालू करनी होती हैं। इसमें पहले से run_report, run_realtime_report, run_funnel_report और आपके अकाउंट, प्रॉपर्टी, कस्टम डाइमेंशन और Google Ads लिंक देखने वाले टूल हैं। अगर आपको सिर्फ़ GA4 चाहिए, और सिर्फ़ अपने कंप्यूटर पर, तो यही इस्तेमाल करें:

bash
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

pipx run analytics-mcp

Google का सेटअप पेज Cloud प्रोजेक्ट को कदम-दर-कदम समझाता है, और README में Claude Code के लिए सटीक claude mcp add लाइन है। इसका कोई होस्ट किया हुआ वर्शन नहीं है, इसलिए यह वहीं चलता है जहां आप Python चला सकें।

अपना सर्वर तब बनाएं जब आपको अपने सवालों के हिसाब से बने टूल चाहिए, एक ही जवाब में एक से ज़्यादा स्रोतों का डेटा चाहिए, या ऐसा सर्वर चाहिए जिसे आपकी टीम या क्लाइंट इस्तेमाल कर सकें।

आपको क्या चाहिए

  • एक Google Cloud प्रोजेक्ट जिसमें Google Analytics Data API चालू हो (पांच मिनट का काम)।
  • उसी प्रोजेक्ट में डेस्कटॉप ऐप टाइप का OAuth क्लाइंट ID, JSON के रूप में डाउनलोड किया हुआ। --client-id-file इसी फ़ाइल की ओर इशारा करता है।
  • Node 22 या नया, क्योंकि मौजूदा @google-analytics/data पैकेज को यही चाहिए।
  • जिस Google अकाउंट से आप साइन इन करेंगे, उस पर GA4 प्रॉपर्टी का व्यूअर ऐक्सेस।

स्टेप 1: एक टूल जो कोई भी रिपोर्ट चलाए

एक ही टूल से शुरुआत करें, run_report। Claude पहले से GA4 के मेट्रिक और डाइमेंशन के नाम जानता है, इसलिए एक लचीला टूल ज़्यादातर सवाल संभाल लेता है। जब दिखने लगे कि आप असल में कौन-से सवाल पूछते हैं, तब इसे छोटे-छोटे टूल में बांटें।

फ़ोल्डर तैयार करें और एक बार लॉग इन करें। दूसरी gcloud कमांड ज़रूरी है: Google की Analytics API ऐसे यूज़र क्रेडेंशियल अस्वीकार कर देती हैं जिनमें कोटा प्रोजेक्ट तय न हो।

bash
mkdir ga4-mcp && cd ga4-mcp
npm init -y && npm pkg set type=module
npm install @modelcontextprotocol/sdk @google-analytics/data zod

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
gcloud auth application-default set-quota-project YOUR_PROJECT_ID

फिर इसे ga4.ts नाम से सेव करें:

typescript
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { BetaAnalyticsDataClient } from '@google-analytics/data';
import { z } from 'zod';

const ga = new BetaAnalyticsDataClient(); // Application Default Credentials
const server = new McpServer({ name: 'ga4', version: '1.0.0' });

server.registerTool(
  'run_report',
  {
    description:
      'Run a GA4 report. Uses GA4 Data API metric and dimension names. ' +
      'Dates accept YYYY-MM-DD, "28daysAgo", "yesterday", "today".',
    inputSchema: {
      propertyId: z.string().describe('Numeric GA4 property ID, e.g. 123456789'),
      metrics: z.array(z.string()).describe('e.g. ["sessions", "engagedSessions"]'),
      dimensions: z.array(z.string()).default([]).describe('e.g. ["sessionDefaultChannelGroup"]'),
      startDate: z.string().default('28daysAgo'),
      endDate: z.string().default('today'),
    },
  },
  async ({ propertyId, metrics, dimensions, startDate, endDate }) => {
    const [res] = await ga.runReport({
      property: `properties/${propertyId}`,
      dateRanges: [{ startDate, endDate }],
      metrics: metrics.map((name) => ({ name })),
      dimensions: dimensions.map((name) => ({ name })),
      limit: 100,
    });
    // Turn GA's nested rows into plain { dimension: value, metric: value } objects.
    const rows = (res.rows ?? []).map((row) => {
      const out: Record<string, string> = {};
      row.dimensionValues?.forEach((v, i) => (out[dimensions[i]] = v.value ?? ''));
      row.metricValues?.forEach((v, i) => (out[metrics[i]] = v.value ?? ''));
      return out;
    });
    return { content: [{ type: 'text', text: JSON.stringify({ rowCount: res.rowCount, rows }) }] };
  },
);

await server.connect(new StdioServerTransport());

फ़ाइल में कोई key नहीं है। क्लाइंट वही लॉगिन इस्तेमाल करता है जो gcloud ने अभी सेव किया, और हर कॉल आपके नाम से, आपके व्यूअर ऐक्सेस के साथ चलती है।

स्टेप 2: इसे Claude में जोड़ें

Claude Code में एक कमांड से यह रजिस्टर हो जाता है। फ़ाइल का पूरा पाथ दें। --scope user लगाने से यह आपके सभी प्रोजेक्ट में मिलता है; इसके बिना यह सिर्फ़ उसी फ़ोल्डर में लोड होता है जहां आपने कमांड चलाई थी:

bash
claude mcp add --scope user ga4 -- npx -y tsx /full/path/to/ga4-mcp/ga4.ts

फिर पूछें: “प्रॉपर्टी 123456789 में पिछले महीने किन चैनलों से सबसे ज़्यादा एंगेज्ड सेशन आए?” Claude मेट्रिक चुनता है, टूल को कॉल करता है और पंक्तियां समझाता है। Claude Desktop में यही सर्वर कॉन्फ़िग फ़ाइल में जाता है; वह फ़ाइल कहां होती है, यह पहला MCP सर्वर बनाने की मेरी गाइड में बताया है।

स्टेप 3: मुश्किल कहां आती है

ऊपर का सब कुछ आपके नाम से, आपके कंप्यूटर पर चलता है। जब इसे कहीं और चलाना पड़े, तो ये बातें बदल जाती हैं:

  1. होस्टिंग और OAuth. claude.ai और मोबाइल ऐप आपके लैपटॉप पर चल रहे सर्वर तक नहीं पहुंच सकते। होस्ट किए गए सर्वर को MCP का OAuth फ़्लो चाहिए, ताकि हर यूज़र अपने Google अकाउंट से साइन इन करे, और साथ में उनके refresh token सुरक्षित रखने की जगह भी।
  2. Google का ऐप सत्यापन. analytics.readonly एक संवेदनशील स्कोप है। जब तक Google आपके ऐप को सत्यापित नहीं करता, हर यूज़र को “असत्यापित ऐप” वाली चेतावनी दिखती है और आप 100 यूज़र तक सीमित रहते हैं। सत्यापन के लिए आपके अपने डोमेन पर प्राइवेसी पॉलिसी, साइन-इन का डेमो वीडियो, हर स्कोप का लिखित कारण और एक समीक्षा चाहिए।
  3. कोटा. Data API हर प्रॉपर्टी के टोकन गिनती है: स्टैंडर्ड प्रॉपर्टी पर हर घंटे 40,000 और हर दिन 200,000, जबकि कोई एक Cloud प्रोजेक्ट हर प्रॉपर्टी पर हर घंटे ज़्यादा से ज़्यादा 14,000 इस्तेमाल कर सकता है, और एक साथ 10 रिक्वेस्ट तक। ज़्यादातर रिक्वेस्ट 10 टोकन या उससे कम लेती हैं। लंबी तारीख़ सीमा, बहुत सारे डाइमेंशन और ज़्यादा ट्रैफ़िक वाली प्रॉपर्टी ज़्यादा टोकन लेती हैं, और एजेंट GA4 में क्लिक करते इंसान से कहीं तेज़ रिपोर्ट चलाता है। होस्ट करने पर हर कॉल आपके प्रोजेक्ट के हिस्से से कटती है, इसलिए हर रिक्वेस्ट की लागत देखने के लिए returnPropertyQuota: true जोड़ें, दोहराए जाने वाले नतीजे कैश करें और रिपोर्ट छोटी रखें।

SiteWide होस्टिंग और साइन-इन संभालता है। इसका Google सत्यापन अभी चल रहा है, इसलिए फ़िलहाल वहां भी GA4 वही असत्यापित ऐप वाली स्क्रीन दिखाता है। अगर आप इनमें से कुछ भी ख़ुद नहीं बनाना चाहते, तो SiteWide कनेक्ट करें।

Claude से बनवाएं

किसी खाली फ़ोल्डर में Claude Code खोलें और इसे पेस्ट करें। कोड अंग्रेज़ी में है, इसलिए प्रॉम्प्ट भी अंग्रेज़ी में ही रखा है:

code
Build me a TypeScript MCP server for Google Analytics 4 using @modelcontextprotocol/sdk and @google-analytics/data. Give it one tool, run_report, that takes a property id, metrics, dimensions and a date range. Authenticate with Application Default Credentials. Then give me the exact gcloud command to log in with the analytics.readonly scope, and register the server with `claude mcp add`. Don't invent metric names: link me to Google's API schema page so I can check them.

नतीजे पर भरोसा करने से पहले, इसमें इस्तेमाल हर मेट्रिक और डाइमेंशन को Google के API स्कीमा पेज से मिलाएं। गढ़ा हुआ नाम कोड में ठीक दिखता है और तभी फ़ेल होता है जब API उसे अस्वीकार करती है।

विज्ञापन
पढ़ते रहें

संबंधित पोस्ट

पढ़ते रहें

AI प्लेबुक अपने इनबॉक्स में पाएं

हर बुधवार। 28,400+ पाठक। बिना फालतू बात।

↵ ↵ सभी परिणाम देखें esc esc बंद करें