Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
MCP server for the Google Tag Manager API v2: containers, workspaces, tags, triggers, publishing.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
GOOGLE_TAGMANAGER_CLIENT_ID, GOOGLE_TAGMANAGER_CLIENT_SECRET, GOOGLE_TAGMANAGER_REFRESH_TOKEN, GOOGLE_TAGMANAGER_ACCESS_TOKEN, GOOGLE_TAGMANAGER_OAUTH_PORT, GOOGLE_TAGMANAGER_API_BASE, GOOGLE_TAGMANAGER_TIMEOUT_MS, GOOGLE_TAGMANAGER_MAX_RETRIES, GOOGLE_TAGMANAGER_MIN_INTERVAL_MS「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"google-tagmanager": {
"command": "npx",
"args": [
"-y",
"mcp-google-tagmanager"
],
"env": {
"GOOGLE_TAGMANAGER_CLIENT_ID": "your-value",
"GOOGLE_TAGMANAGER_CLIENT_SECRET": "your-value",
"GOOGLE_TAGMANAGER_REFRESH_TOKEN": "your-value",
"GOOGLE_TAGMANAGER_ACCESS_TOKEN": "your-value",
"GOOGLE_TAGMANAGER_OAUTH_PORT": "your-value",
"GOOGLE_TAGMANAGER_API_BASE": "your-value",
"GOOGLE_TAGMANAGER_TIMEOUT_MS": "your-value",
"GOOGLE_TAGMANAGER_MAX_RETRIES": "your-value",
"GOOGLE_TAGMANAGER_MIN_INTERVAL_MS": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add google-tagmanager --env GOOGLE_TAGMANAGER_CLIENT_ID=your-value --env GOOGLE_TAGMANAGER_CLIENT_SECRET=your-value --env GOOGLE_TAGMANAGER_REFRESH_TOKEN=your-value --env GOOGLE_TAGMANAGER_ACCESS_TOKEN=your-value --env GOOGLE_TAGMANAGER_OAUTH_PORT=your-value --env GOOGLE_TAGMANAGER_API_BASE=your-value --env GOOGLE_TAGMANAGER_TIMEOUT_MS=your-value --env GOOGLE_TAGMANAGER_MAX_RETRIES=your-value --env GOOGLE_TAGMANAGER_MIN_INTERVAL_MS=your-value -- npx -y mcp-google-tagmanager動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"google-tagmanager": {
"command": "npx",
"args": [
"-y",
"mcp-google-tagmanager"
],
"env": {
"GOOGLE_TAGMANAGER_CLIENT_ID": "your-value",
"GOOGLE_TAGMANAGER_CLIENT_SECRET": "your-value",
"GOOGLE_TAGMANAGER_REFRESH_TOKEN": "your-value",
"GOOGLE_TAGMANAGER_ACCESS_TOKEN": "your-value",
"GOOGLE_TAGMANAGER_OAUTH_PORT": "your-value",
"GOOGLE_TAGMANAGER_API_BASE": "your-value",
"GOOGLE_TAGMANAGER_TIMEOUT_MS": "your-value",
"GOOGLE_TAGMANAGER_MAX_RETRIES": "your-value",
"GOOGLE_TAGMANAGER_MIN_INTERVAL_MS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"google-tagmanager": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-google-tagmanager"
],
"env": {
"GOOGLE_TAGMANAGER_CLIENT_ID": "your-value",
"GOOGLE_TAGMANAGER_CLIENT_SECRET": "your-value",
"GOOGLE_TAGMANAGER_REFRESH_TOKEN": "your-value",
"GOOGLE_TAGMANAGER_ACCESS_TOKEN": "your-value",
"GOOGLE_TAGMANAGER_OAUTH_PORT": "your-value",
"GOOGLE_TAGMANAGER_API_BASE": "your-value",
"GOOGLE_TAGMANAGER_TIMEOUT_MS": "your-value",
"GOOGLE_TAGMANAGER_MAX_RETRIES": "your-value",
"GOOGLE_TAGMANAGER_MIN_INTERVAL_MS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
GOOGLE_TAGMANAGER_CLIENT_ID envGOOGLE_TAGMANAGER_OAUTH_PORT envGOOGLE_TAGMANAGER_API_BASE envGOOGLE_TAGMANAGER_TIMEOUT_MS envGOOGLE_TAGMANAGER_MAX_RETRIES envGOOGLE_TAGMANAGER_MIN_INTERVAL_MS envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント A1-x-Tech で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:GOOGLE_TAGMANAGER_CLIENT_SECRET, GOOGLE_TAGMANAGER_REFRESH_TOKEN, GOOGLE_TAGMANAGER_ACCESS_TOKEN
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.3.2)がレジストリに届いたのは一昨日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, SwarmMemo
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Talk with agent swarms: rooms, private messages and paid tasks for AI agents
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
English | Русский
A1 Google Tag Manager MCP lets an AI app inspect and manage Google Tag Manager containers in plain language. See what fires on a page, work with tags, triggers and variables in a draft workspace, then deliberately compile and publish a version when you are ready.
It connects to the Google Tag Manager API v2 through your Google account. The difference from asking an AI to guess a GTM setup is that it works with the actual container, workspace and version you choose.
127.0.0.1 with PKCE and keeps the tokens itself — no config files, no restart.Start with a read-only question:
Which tags in my containers fire on the page-view trigger?
Connect the server · Explore use cases · Open technical documentation
You: List my GTM containers and show which tags fire on page view.
Assistant: Lists the containers, their workspaces, relevant triggers and the tags attached to them. Nothing changes.
You: In the Default Workspace of
GTM-ABC123, prepare a GA4 configuration tag for measurement IDG-XXXXXXXon all pages.
Assistant: Shows the workspace, proposed tag and trigger configuration, then asks for confirmation before creating the draft.
You: Confirm the draft.
Assistant: Creates the tag in the workspace. It does not publish the container; compiling and publishing a version remains a separate step.
You need Node.js 20+ and a Google account. Credentials are not required at install time — the server connects from the conversation.
Codex
In the app:
npx -y mcp-google-tagmanager@latest and the three environment variables below.| Variable | Value |
|---|---|
GOOGLE_TAGMANAGER_CLIENT_ID | Your Google OAuth client ID |
GOOGLE_TAGMANAGER_CLIENT_SECRET | Your Google OAuth client secret |
GOOGLE_TAGMANAGER_REFRESH_TOKEN | Your Google OAuth refresh token |
From the command line:
codex mcp add google-tagmanager \
-- npx -y mcp-google-tagmanager@latest
codex mcp list
Claude Code
claude mcp add \
--transport stdio \ --scope user \ google-tagmanager \ -- npx -y mcp-google-tagmanager@latest
claude mcp list
Claude Desktop
The current official path is Settings → Extensions. For a custom desktop extension, open Advanced settings → Extension Developer → Install Extension…, select a .mcpb file and follow the prompts.
This repository currently publishes an npm stdio package and does not contain a .mcpb bundle. For Claude Desktop builds that still support local configuration, use the following JSON stdio configuration as a fallback:
{
"mcpServers": { "google-tagmanager": { "command": "npx", "args": ["-y", "mcp-google-tagmanager@latest"] } } }
In those builds, save it to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows.
Claude Desktop MCP documentation
Cursor
Add a user-level server to ~/.cursor/mcp.json on macOS/Linux or %USERPROFILE%\.cursor\mcp.json on Windows:
{
"mcpServers": { "google-tagmanager": { "type": "stdio", "command": "npx", "args": ["-y", "mcp-google-tagmanager@latest"] } } }
VS Code
Run MCP: Open User Configuration from the Command Palette and add:
{
"servers": { "google-tagmanager": { "type": "stdio", "command": "npx", "args": ["-y", "mcp-google-tagmanager@latest"] } } }
Check it with MCP: List Servers.
April release.42 after I confirm the version and its changes.GTM has a clear release path:
This server can inspect each step. It does not treat a draft as a release: version creation and publishing are separate operations.
| Operation | What happens | Confirmation boundary |
|---|---|---|
| List accounts, containers, workspaces, tags, triggers, variables and versions | Reads GTM configuration | No change |
| Create a container or workspace | Adds a new GTM object | Changes GTM |
| Create a tag, trigger or variable | Adds a draft object to a workspace | Changes a draft workspace |
| Enable or disable built-in variables | Changes the workspace configuration | Changes a draft workspace |
| Update a tag, trigger or variable | Replaces the complete resource, protected by its fingerprint | Potentially destructive |
| Delete a tag, trigger or variable | Removes the selected object | Destructive |
| Compile a workspace | Creates a version and deletes the source workspace | Destructive |
| Publish a version | Makes a selected version live | Destructive |
| Raw API request | Can call API methods without a dedicated tool | Potentially destructive |
The AI client decides how it asks for confirmation. The server marks read-only, write and destructive operations so the client can distinguish inspection from a real change.
Google Tag Manager requires OAuth 2.0; an API key is not enough. There are two ways in, and the first one needs no configuration files.
Say "connect Google Tag Manager" and the assistant runs the flow with you:
setup_instructions prints the checklist: create or select a Google Cloud project, enable Tag Manager API, configure the consent screen and create a Desktop app OAuth client.set_client stores it owner-only. The secret never goes through the conversation.start_login returns a Google consent link. Open it on this machine and approve; the code comes back to a one-shot listener on 127.0.0.1 (PKCE), never through the chat.finish_login exchanges the code and saves the tokens to ~/.config/mcp-google-tagmanager/credentials.json (mode 0600) and verifies them with a real Tag Manager API call — so an API that is still switched off is caught right there.The tokens are re-read on every call, so the connection works immediately — no restart of the AI app. auth_status shows what is connected, logout revokes and deletes it.
https://www.googleapis.com/auth/tagmanager.readonly
https://www.googleapis.com/auth/tagmanager.edit.containers https://www.googleapis.com/auth/tagmanager.edit.containerversions https://www.googleapis.com/auth/tagmanager.publish
The scopes are separate: reading, editing, compiling versions and publishing each need their corresponding permission. Treat the client secret and refresh token as passwords.
Every variable is optional — with none of them the server connects from the chat.
| Variable | Required | Description |
|---|---|---|
GOOGLE_TAGMANAGER_CLIENT_ID | No* | OAuth client ID. |
GOOGLE_TAGMANAGER_CLIENT_SECRET | No* | OAuth client secret. |
GOOGLE_TAGMANAGER_REFRESH_TOKEN | No* | OAuth refresh token. |
GOOGLE_TAGMANAGER_ACCESS_TOKEN | No* | Short-lived alternative to the OAuth trio. |
GOOGLE_TAGMANAGER_OAUTH_PORT | No | Fixed loopback port for the in-chat login; useful over SSH port forwarding. |
GOOGLE_TAGMANAGER_API_BASE | No | Tag Manager API base URL override. |
| `GOOGLE_TAGM
冒頭だけを表示しています。続きはリポジトリで読めます