Wingate SEO MCP
Provides read-only access to GA4 data, including aggregate traffic/engagement/revenue overviews, event counts and key-event attribution, landing-page behavior, and blended GSC+GA4 landing-page analysis.
Allows querying Search Console performance data (clicks, impressions, CTR, average position), comparing periods, reviewing submitted sitemaps, and inspecting URLs for a configured property.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Wingate SEO MCPWhat were my top pages by clicks in the last 28 days?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Wingate SEO MCP
Open-source, self-hosted Google Search Console + Google Analytics 4 MCP server for ChatGPT and other MCP clients. Analyze your own SEO data without paying for another SEO dashboard.
Wingate SEO MCP connects an MCP client to Google properties you already control. It combines Search Console performance, GA4 engagement, sitemap and URL Inspection evidence, period comparisons, and deterministic SEO diagnostics in one read-only service.
Publisher: Wingnut Innovations
Version: 0.5.0
License: MIT
Why use it?
Ask questions about your own GSC and GA4 data in natural language.
Keep credentials and property mappings on infrastructure you control.
Replace recurring dashboard work with reproducible evidence and calculations.
Inspect event activity, landing-page engagement, CTR opportunities, ranking changes, decay, and cannibalization.
Start with a deliberately small, read-only security boundary.
You supply your own Google credentials and grant that identity access only to the properties you want to analyze. Wingate SEO MCP does not include hosted accounts, bundled Google access, paid gates, telemetry, advertising, or subscriptions.
Read-only MCP tools
The public server exposes exactly 11 tools:
Tool | Purpose |
| List locally mapped sites available to the connector |
| Query clicks, impressions, CTR, and average position |
| Compare a period with the immediately preceding period |
| Review submitted sitemap health |
| Inspect one URL within a locally configured property |
| Review aggregate traffic, engagement, events, and revenue |
| Review event counts, key-event attribution, and active users |
| Review landing-page behavior |
| Join GSC and GA4 evidence by normalized landing path |
| Find CTR, striking-distance, decay, and cannibalization opportunities |
| Run the complete deterministic evidence bundle |
There are no Search Console, Google Indexing, GA4 Admin, sitemap-submission, or other write tools in the public candidate.
Requirements
Node.js 20, 22, or 24
npm
A Google Cloud project with the required APIs enabled
A user-supplied Google service-account JSON credential with access to your GSC and GA4 properties
An MCP client that can reach the local Streamable HTTP endpoint
Quick start
git clone https://github.com/wingnutinnovations-tech/wingate-seo-mcp.git
cd wingate-seo-mcp
npm installUse .env.example as a template and set the same environment variables in the shell that starts the commands. The project does not automatically load .env. Keep the downloaded service-account JSON outside the repository.
GOOGLE_SERVICE_ACCOUNT_FILE=/absolute/path/to/google-service-account.json
WINGATE_SITES_FILE=./config/sites.local.jsonThe v0.5.0 MCP runtime started by npm start requires explicit service-account credentials. Set GOOGLE_SERVICE_ACCOUNT_FILE (preferred), GOOGLE_APPLICATION_CREDENTIALS, or GOOGLE_SERVICE_ACCOUNT_JSON. It does not fall back to an attached Google Cloud metadata/workload identity.
Validate credentials and discover accessible properties:
npm run doctor
npm run discover:googleGenerate an ignored local site registry using properties returned by discovery:
npm run setup -- --output config/sites.local.json \
--gsc sc-domain:example.com \
--ga4 123456789 \
--origin https://example.com \
--key example-site \
--name "Example Site"Run bounded live reads, then start the server:
npm run live:smoke -- --site example-site --inspect-origin
npm startThe default endpoints are:
http://127.0.0.1:3000/healthz
http://127.0.0.1:3000/mcpSee Google setup and live onboarding for a detailed walkthrough.
Google API setup
Enable these APIs in your Google Cloud project:
Google Search Console API
Search Console URL Inspection API
Google Analytics Data API
Google Analytics Admin API
Grant the service-account email access to each Search Console property and at least Viewer access to each GA4 property. The runtime requests only:
https://www.googleapis.com/auth/webmasters.readonlyhttps://www.googleapis.com/auth/analytics.readonly
The Analytics Admin API is used only to discover accessible GA4 properties and web streams. The MCP server does not modify GA4 Admin settings.
Site mapping
Each local registry entry maps a stable siteKey to one Search Console property, an optional GA4 property, and the site's origin. Copy config/sites.example.json for the shape, or let npm run setup generate and validate config/sites.local.json.
Local registries are ignored by Git. Never commit real property mappings if repository readers should not know which sites you operate.
Connect an MCP client
Start the server and point a Streamable HTTP-capable MCP client at the local /mcp endpoint. Use a client-supported local connection or an independently reviewed transport boundary. This repository does not ship an Internet tunnel or authentication layer.
Before sending data, inspect tool discovery and confirm there are exactly 11 tools and every tool is marked read-only. See MCP client connection.
Example questions
“Which pages lost clicks this month?”
“Find queries ranking 4–20 with weak CTR.”
“Which organic landing pages have the best engagement?”
“Did my lead event fire?”
“Compare the last 28 days with the previous 28 days.”
Privacy and security
Wingate SEO MCP has no undisclosed telemetry. It does not send usage analytics to Wingnut Innovations or any third party.
Data leaves your machine or server only when:
the connector calls Google APIs using the credentials and property access you configured; or
your configured MCP client sends requests to, and receives results from, this server.
The server binds to 127.0.0.1 by default. Do not expose it directly to the public Internet without adding an independently reviewed authentication and transport boundary. Do not place credentials, local registries, or command output in prompts or source control. See SECURITY.md.
Troubleshooting
Credential file unreadable: use an absolute path and keep the JSON outside the repository.
403 from Google: enable the relevant API and grant the service-account email access to the property.
No GA4 property found: grant at least Viewer access, then rerun
npm run doctor.Ambiguous mapping: provide
--ga4explicitly; discovery never silently chooses a weak match.No event row: GA4 observed no matching row for that date/filter scope; absence alone does not diagnose instrumentation.
MCP client cannot connect: confirm
npm start,/healthz, loopback binding, and the client's local-network or separately secured transport configuration.
Development and validation
npm run ciThis runs syntax checks, TypeScript checks, unit/integration tests, a production build, and MCP discovery. CI targets Node.js 20, 22, and 24.
Docker packaging is intentionally deferred until a small, reviewable image and non-root runtime policy are ready; the Node/npm self-hosting path is the v0.5.0 baseline.
Roadmap and support
See the roadmap. Wingate SEO MCP is free and open source. If it saves you time or an SEO-tool subscription, you can optionally support continued development. No funding provider is configured in v0.5.0.
License, provenance, and independence
Wingate SEO MCP is licensed under the MIT License. Selected Google client and method mappings were adapted and substantially rewritten from the pinned MIT-licensed upstream documented in UPSTREAM.md, UPSTREAM_IMPORT_MANIFEST.json, and THIRD_PARTY_NOTICES.md.
Wingate SEO MCP is an independent project published by Wingnut Innovations. It is not affiliated with, endorsed by, or sponsored by Google or OpenAI. Google Search Console, Google Analytics, GA4, ChatGPT, and OpenAI are trademarks of their respective owners.
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
Turn Search Console data into SEO actions, content, publishing, indexing, and AI insights.
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
Google Ads, Meta (Facebook) Ads, GA4 and Merchant Center analysis in plain language. Read-only.
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/aitradesniper-blip/wingate-seo-mcp-public'
If you have feedback or need assistance with the MCP directory API, please join our Discord server