GSC MCP Server v2 - Remote Edition
π GSC MCP Server v2 - Remote Edition
A hosted MCP server that connects Claude AI to Google Search Console with OAuth 2.0 web authentication. Users simply sign in with Googleβno API keys or credentials to manage!
β¨ What's Different About v2?
Feature | v1 (Local) | v2 (Remote) |
Authentication | Local credentials file | OAuth 2.0 web flow |
Setup | Complex | Just sign in with Google! |
Hosting | Your machine | Any cloud platform |
Multi-user | Single user | Multiple users supported |
ποΈ Architecture
βββββββββββββββββββ OAuth 2.0 ββββββββββββββββββββββββ
β User's β ββββββββββββββββββββ Your Hosted β
β Browser ββββββββββββββββββββββ MCP Server β
βββββββββββββββββββ ββββββββββββββββββββββββ
β
βββββββββββββββββββ MCP over SSE ββββββββββββββββββββββββ
β Claude Desktop β ββββββββββββββββββββ Stored User Token β
βββββββββββββββββββ ββββββββββββββββββββββββ
β
ββββββββββββββββββββββββ
β Google Search β
β Console API β
ββββββββββββββββββββββββπ Quick Start
1. Set Up Google OAuth (Web Application)
Go to Google Cloud Console
Create a new project or select existing
Enable APIs:
Indexing API (optional)
Go to Credentials β Create Credentials β OAuth client ID
Select Web application
Add authorized redirect URI:
https://your-domain.com/oauth/callbackSave your Client ID and Client Secret
2. Deploy
Option A: Railway (Easiest)
Click the button above
Set environment variables:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETGOOGLE_REDIRECT_URI(your Railway URL +/oauth/callback)BASE_URL(your Railway URL)
Option B: Docker
# Build
docker build -t gsc-mcp-server .
# Run
docker run -p 8000:8000 \
-e GOOGLE_CLIENT_ID="your-client-id" \
-e GOOGLE_CLIENT_SECRET="your-secret" \
-e GOOGLE_REDIRECT_URI="https://your-domain.com/oauth/callback" \
-e BASE_URL="https://your-domain.com" \
-v ./data:/app/data \
gsc-mcp-serverOption C: Manual
# Clone
git clone https://github.com/AminForou/google-search-console-mcp-v2.git
cd google-search-console-mcp-v2
# Install
pip install -r requirements.txt
# Set environment variables
export GOOGLE_CLIENT_ID="your-client-id"
export GOOGLE_CLIENT_SECRET="your-secret"
export GOOGLE_REDIRECT_URI="http://localhost:8000/oauth/callback"
# Run
uvicorn gsc_server_remote:app --host 0.0.0.0 --port 80003. User Flow
Users visit your server β
https://your-domain.comClick "Sign in with Google" β OAuth flow
Get unique API key β Displayed after login
Configure Claude Desktop:
{
"mcpServers": {
"gscServer": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://your-domain.com/mcp/USER_API_KEY/sse"]
}
}
}Start chatting! β "List my GSC properties"
π οΈ Available Tools
Tool | Description |
| List all GSC properties |
| Search performance data |
| Performance summary |
| Find ranking opportunities |
| Top performing pages |
| Mobile vs desktop |
| Traffic by country |
| URL indexing status |
| List sitemaps |
| Submit new sitemap |
| Request URL indexing |
| Export to CSV/JSON |
π Security Considerations
HTTPS Required: Always use HTTPS in production
API Keys: Each user gets a unique key - treat it like a password
Token Storage: Uses SQLite by default - use PostgreSQL for production
CORS: Restrict origins in production
Rate Limiting: Add rate limiting for production
π Project Structure
google-search-console-mcp-v2/
βββ gsc_server_remote.py # Main server application
βββ requirements.txt # Python dependencies
βββ Dockerfile # Docker configuration
βββ .gitignore # Git ignore rules
βββ README.md # This fileπ Environment Variables
Variable | Required | Description |
| β | OAuth client ID |
| β | OAuth client secret |
| β | OAuth callback URL |
| β‘ | Public server URL |
| β‘ | Session encryption key |
| β | SQLite path (default: gsc_tokens.db) |
π API Endpoints
Endpoint | Method | Description |
| GET | Home page with login |
| GET | Start OAuth flow |
| GET | OAuth callback |
| GET | Revoke user access |
| GET | MCP SSE endpoint |
| GET | Health check |
| GET | User auth status |
π€ Contributing
Contributions welcome! Please:
Fork the repository
Create a feature branch
Submit a pull request
π License
MIT License - see LICENSE file.
π¨βπ» Author
Amin Foroutan - SEO Consultant & Developer
π aminforoutan.com
πΌ LinkedIn
π¦ Twitter
πΊ YouTube
β If you find this useful, please star the repo!
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/AminForou/google-search-console-mcp-v2'
If you have feedback or need assistance with the MCP directory API, please join our Discord server