GA4 MCP Server
GA4 MCP Server
Готовый к продакшену, мультитенантный Google Analytics 4 MCP-сервер для Claude.
Это первый коннектор в более крупной платформе. Общая инфраструктура (аутентификация, клиенты, хранилище токенов Google OAuth, авторизация, логирование, ошибки) переиспользуется. Код, специфичный для GA4, находится в src/connectors/ga4 и src/mcp/ga4. Не рассматривайте это как монолитный Google Marketing MCP.
Архитектура
Claude
| MCP OAuth 2.1 + Streamable HTTP
v
Next.js / Vercel (/mcp)
|-- MCP tools (ga4_*)
|-- Authorization (client_members only)
|-- GA4 service
|-- Google OAuth token manager
v
Supabase
|-- clients
|-- client_members (application identity)
|-- google_connections (Google credential, not app identity)
|-- ga4_propertiesПользователи приложения — это пользователи Supabase Auth. Доступ к тенанту осуществляется только через client_members(user_id, client_id, role). Учетная запись, подключенная к Google, — это учетные данные, принадлежащие клиенту, и никогда не является пользователем приложения.
Локальная настройка
npm install
cp .env.example .env.local
# fill in the values documented below
npx supabase start # or link a remote project
npx supabase db reset --local
npm run devОткройте http://localhost:3000, создайте учетную запись приложения, создайте клиента, затем подключите Google Analytics.
Настройка Google Cloud
Создайте или выберите проект Google Cloud.
Включите Google Analytics Data API и Google Analytics Admin API.
Настройте экран согласия OAuth (External или Internal).
Создайте учетные данные OAuth 2.0 Client ID (Веб-приложение).
Авторизованный URI перенаправления:
Локально:
http://localhost:3000/api/auth/google/callbackПродакшен:
https://<ваш-домен>/api/auth/google/callback
Запрашивайте только области GA4:
https://www.googleapis.com/auth/analytics.readonlyopenidemail
Не добавляйте области DV360 или Google Ads в этот коннектор.
Настройка GA4
Войдите в это приложение с помощью email/пароля (идентификация приложения).
Создайте клиента (вы становитесь
ownerвclient_members).При желании добавьте других пользователей приложения как
ownerилиmember.Нажмите Connect Google Analytics. Это привязывает учетные данные Google к клиенту.
Привяжите одну или несколько учетных записей GA4, обнаруженных в этой учетной записи Google.
Участник, который не нажал Connect, все равно может выполнять запросы к клиенту, если у него есть строка в client_members.
Настройка Supabase
Этот репозиторий включает SQL-миграции в supabase/migrations. Создавайте их с помощью CLI; не придумывайте имена файлов.
Локально:
npx supabase start
npx supabase db reset --localУдаленно:
npx supabase link --project-ref <project-ref>
npx supabase db pushКлюч роли службы предназначен только для сервера. Никогда не раскрывайте SUPABASE_SERVICE_ROLE_KEY или токены обновления Google в браузере.
Переменные окружения
См. .env.example. Обязательные:
Переменная | Назначение |
| URL проекта Supabase |
| Клиент пользователя браузера/сервера |
| Администратор на стороне сервера (никогда не |
| Приложение Google OAuth |
| Должен совпадать с Google Cloud |
| Области только для GA4 |
| Публичный источник, например |
| Подписывает токены доступа MCP |
| 64 шестнадцатеричных символа (32 байта) для шифрования токенов Google |
Не помещайте идентификатор учетной записи GA4 в .env. Учетные записи принадлежат клиентам в Supabase.
Сгенерируйте ключ шифрования токенов:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Настройка MCP (Claude)
Удаленная конечная точка:
https://<your-domain>/mcpЭтот сервер реализует MCP OAuth 2.1:
Метаданные защищенного ресурса:
/.well-known/oauth-protected-resourceМетаданные сервера авторизации:
/.well-known/oauth-authorization-serverАвторизация:
/oauth/authorize(вход в приложение + согласие)Токен:
/oauth/token(authorization_code + refresh_token, PKCE S256)Регистрация:
/oauth/register(запасной вариант DCR)CIMD рекламируется (
client_id_metadata_document_supported)
В Claude: Settings → Connectors → Add custom connector → вставьте https://<ваш-домен>/mcp. Claude выполнит OAuth. После вашего одобрения инструменты станут доступны.
Локальный инспектор:
npx @modelcontextprotocol/inspectorПодключитесь с помощью Streamable HTTP к http://localhost:3000/mcp. Вам все равно понадобится действительный токен MCP Bearer из потока OAuth.
Инструменты
Инструмент | Назначение |
| Основной отчет (даты, метрики, измерения, лимит, сортировка, базовый фильтр) |
| Активные пользователи в реальном времени / разбивка трафика |
| Обнаружение метрик и измерений для учетной записи |
| Учетные записи, видимые для подключения Google клиента |
| Текущий период по сравнению с предыдущим с абсолютным/% изменением |
Каждый инструмент требует client_id. Инструменты, ограниченные учетной записью, также требуют связанный property_id. Авторизация всегда проверяет client_members перед вызовом Google.
Пример: ga4_run_report
{
"client_id": "11111111-1111-1111-1111-111111111111",
"property_id": "123456789",
"date_start": "2026-08-01",
"date_end": "2026-08-15",
"dimensions": ["country"],
"metrics": ["activeUsers", "sessions", "totalRevenue"],
"limit": 10
}Пример: ga4_compare_periods
{
"client_id": "11111111-1111-1111-1111-111111111111",
"property_id": "123456789",
"current_start": "2026-08-01",
"current_end": "2026-08-15",
"previous_start": "2026-07-17",
"previous_end": "2026-07-31",
"metrics": ["activeUsers", "sessions", "totalRevenue"]
}Затем Claude может отвечать на такие вопросы, как:
Сколько пользователей было вчера?
Топ-10 стран в этом месяце
Сравните этот месяц с прошлым
Сколько активных пользователей сейчас на сайте?
Тестирование
npm testТесты используют имитированные Google и Supabase. Они никогда не используют продакшен-токены OAuth.
Vercel
Разверните приложение Next.js и установите те же переменные окружения. MCP_BASE_URL и GOOGLE_REDIRECT_URI должны использовать продакшен-домен. Маршрут /mcp работает на среде выполнения Node.js с максимальной продолжительностью 60 секунд.
Структура проекта
src/
auth/ application authentication
authorization/ authorizeClient via client_members
oauth/ Google OAuth + token manager
mcp-oauth/ MCP OAuth 2.1 authorization server
connectors/ga4/ Google Analytics APIs
mcp/ga4/ MCP tools
repositories/ Supabase data access
app/mcp/ Streamable HTTP transportБудущие коннекторы (DV360, Google Ads) должны добавлять src/connectors/<имя> и src/mcp/<имя> и переиспользовать общее ядро. Не создавайте универсальное хранилище для Google API.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Query Churn Solution cancellation-flow metrics, revenue, and feedback analytics (read-only).
Ask your app anything — revenue, errors, read-cost, growth — and get rendered charts back.
Privacy-first web analytics. Query pageviews, referrers, trends, and AI insights.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/devopsbrandmirchi/GoogleMcpServer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server