Samarth Gtm MCP runs on your own machine — the client starts it, so there is no endpoint to ping. 159 installs a week from npm. Last commit 5 Oct 2026.
Google Tag Manager + read-only GA4 MCP server. Read-only by default, gated writes, audits.
We read the source, 3 d ago · rules 995398eba69f
Things with no honest explanation: a promise that contradicts the code, code that runs at install time while hiding what it does, data leaving the machine.
const child = spawn(exe, [safe], { detached: true, stdio: 'ignore' });
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
const child = spawn(exe, [safe], { detached: true, stdio: 'ignore' });
placeholder={t.hasWebhook ? 'New webhook URL (leave empty to keep the current one)' : 'https://hooks.slack.com/services/…'}
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
Code changes quietly between releases, and nobody reads the diff of a dependency. We do, on every release — watch Samarth Gtm MCP and you get told the day something new turns up.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add samarth-gtm-mcp -e 'GOOGLE_OAUTH_CLIENT_ID=<GOOGLE_OAUTH_CLIENT_ID>' -e 'GOOGLE_OAUTH_CLIENT_SECRET=<GOOGLE_OAUTH_CLIENT_SECRET>' -- npx -y samarth-gtm-mcp
{
"mcpServers": {
"samarth-gtm-mcp": {
"command": "npx",
"args": [
"-y",
"samarth-gtm-mcp"
],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "<GOOGLE_OAUTH_CLIENT_ID>",
"GOOGLE_OAUTH_CLIENT_SECRET": "<GOOGLE_OAUTH_CLIENT_SECRET>"
}
}
}
}
[mcp_servers.samarth-gtm-mcp]
command = "npx"
args = ["-y", "samarth-gtm-mcp"]
env = { GOOGLE_OAUTH_CLIENT_ID = "<GOOGLE_OAUTH_CLIENT_ID>", GOOGLE_OAUTH_CLIENT_SECRET = "<GOOGLE_OAUTH_CLIENT_SECRET>" }
{
"mcpServers": {
"samarth-gtm-mcp": {
"command": "npx",
"args": [
"-y",
"samarth-gtm-mcp"
],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "<GOOGLE_OAUTH_CLIENT_ID>",
"GOOGLE_OAUTH_CLIENT_SECRET": "<GOOGLE_OAUTH_CLIENT_SECRET>"
}
}
}
}
{
"servers": {
"samarth-gtm-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"samarth-gtm-mcp"
],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "<GOOGLE_OAUTH_CLIENT_ID>",
"GOOGLE_OAUTH_CLIENT_SECRET": "<GOOGLE_OAUTH_CLIENT_SECRET>"
}
}
}
}
Put your own values in place of
<GOOGLE_OAUTH_CLIENT_ID> (Your Google OAuth 2.0 client ID (Desktop app type)), <GOOGLE_OAUTH_CLIENT_SECRET> (Your Google OAuth 2.0 client secret).
The author’s registry entry marks them as required.
Optional settings from the registry entry, left out of the block above:
GTM_MCP_ENABLE_WRITES (Set to 'true' to allow create/update operations (default: read-only)), GTM_MCP_ENABLE_PUBLISH (Set to 'true' to allow publish operations (default: disabled)), GTM_MCP_ENABLE_DELETES (Set to 'true' to allow delete operations (default: disabled)).
Safe Google Workspace admin for AI agents: read-only by default, confirm-gated deletes, audit log.
Microsoft Ads MCP server: 11 tools for search, PMax, Google Ads imports. Read-only by default.
Google Analytics 4 MCP server: 27 read tools, no write tools.
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
Google Ads MCP server: 35 read tools, 13 opt-in preview-first writes.
Hosted Gmail MCP server: read, search, and manage messages. Google OAuth2 handled by NordicMCP.
MCP server for Google Sheets API — read, write, format, batch operations.
GA4 MCP that reads AND writes: reports, funnels, audits, and server-side events. 26 tools.
Answers built from our own checks of this server.