Skip to main content
Glama
ruchernchong

mcp-server-google-analytics

by ruchernchong

getActiveUsers

Retrieve active user metrics from Google Analytics 4 for specified date ranges to analyze engagement and traffic patterns.

Instructions

Get active users metrics for a specific date range

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
startDateYesStart date in YYYY-MM-DD format
endDateYesEnd date in YYYY-MM-DD format

Implementation Reference

  • The handler logic for the 'getActiveUsers' tool. It validates the input dates and calls fetchAnalyticsData with specific metrics for activeUsers and newUsers, grouped by date.
    case "getActiveUsers": {
      const { startDate, endDate } = args as {
        startDate: string;
        endDate: string;
      };
    
      validateDateRange(startDate, endDate);
    
      return fetchAnalyticsData({
        dateRanges: [{ startDate, endDate }],
        metrics: [{ name: "activeUsers" }, { name: "newUsers" }],
        dimensions: [{ name: "date" }],
      });
    }
  • The input schema and registration details for the 'getActiveUsers' tool, defining required startDate and endDate parameters.
    {
      name: "getActiveUsers",
      description: "Get active users metrics for a specific date range",
      inputSchema: {
        type: "object",
        properties: {
          startDate: {
            type: "string",
            description: "Start date in YYYY-MM-DD format",
          },
          endDate: {
            type: "string",
            description: "End date in YYYY-MM-DD format",
          },
        },
        required: ["startDate", "endDate"],
      },
    },
  • src/index.ts:130-261 (registration)
    The listTools request handler that registers the 'getActiveUsers' tool among others.
    server.setRequestHandler(ListToolsRequestSchema, async () => {
      return {
        tools: [
          {
            name: "runReport",
            description: "Run a report to get analytics data",
            inputSchema: {
              type: "object",
              properties: {
                startDate: {
                  type: "string",
                  description: "Start date in YYYY-MM-DD format",
                },
                endDate: {
                  type: "string",
                  description: "End date in YYYY-MM-DD format",
                },
                dimensions: {
                  type: "array",
                  items: {
                    type: "object",
                    properties: {
                      name: { type: "string" },
                    },
                    required: ["name"],
                  },
                  description: "Dimensions to group by (e.g., page, country)",
                },
                metrics: {
                  type: "array",
                  items: {
                    type: "object",
                    properties: {
                      name: { type: "string" },
                    },
                    required: ["name"],
                  },
                  description: "Metrics to include in the report",
                },
                dimensionFilter: {
                  type: "object",
                  description: "Filter for dimensions",
                },
              },
              required: ["startDate", "endDate", "metrics", "dimensions"],
            },
          },
          {
            name: "getPageViews",
            description: "Get page view metrics for a specific date range",
            inputSchema: {
              type: "object",
              properties: {
                startDate: {
                  type: "string",
                  description: "Start date in YYYY-MM-DD format",
                },
                endDate: {
                  type: "string",
                  description: "End date in YYYY-MM-DD format",
                },
                dimensions: {
                  type: "array",
                  items: { type: "string" },
                  description: "Dimensions to group by (e.g., page, country)",
                },
              },
              required: ["startDate", "endDate"],
            },
          },
          {
            name: "getActiveUsers",
            description: "Get active users metrics for a specific date range",
            inputSchema: {
              type: "object",
              properties: {
                startDate: {
                  type: "string",
                  description: "Start date in YYYY-MM-DD format",
                },
                endDate: {
                  type: "string",
                  description: "End date in YYYY-MM-DD format",
                },
              },
              required: ["startDate", "endDate"],
            },
          },
          {
            name: "getEvents",
            description: "Get event metrics for a specific date range",
            inputSchema: {
              type: "object",
              properties: {
                startDate: {
                  type: "string",
                  description: "Start date in YYYY-MM-DD format",
                },
                endDate: {
                  type: "string",
                  description: "End date in YYYY-MM-DD format",
                },
                eventName: {
                  type: "string",
                  description: "Specific event name to filter by (optional)",
                },
              },
              required: ["startDate", "endDate"],
            },
          },
          {
            name: "getUserBehavior",
            description:
              "Get user behavior metrics like session duration and bounce rate",
            inputSchema: {
              type: "object",
              properties: {
                startDate: {
                  type: "string",
                  description: "Start date in YYYY-MM-DD format",
                },
                endDate: {
                  type: "string",
                  description: "End date in YYYY-MM-DD format",
                },
              },
              required: ["startDate", "endDate"],
            },
          },
        ],
      };
    });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ruchernchong/mcp-server-google-analytics'

If you have feedback or need assistance with the MCP directory API, please join our Discord server