seomcp
Search Console, Analytics 4, Bing Webmaster, Cloudflare, Core Web Vitals, analisi GEO/AEO, validatore schema.org e controlli tecnici dentro il tuo assistente AI. Open source, gratuito, in italiano.
🇬🇧 English version · Sito · npm · Licenza MIT
seomcp è un server MCP che permette al tuo assistente AI (Claude, ChatGPT, GitHub Copilot, Gemini CLI, Mistral Vibe e altri client MCP) di leggere i dati dei tuoi siti da Search Console, Google Analytics 4, Bing Webmaster Tools, Cloudflare, PageSpeed Insights e Chrome UX Report, e di analizzare le pagine pubbliche: accesso dei crawler AI, dati strutturati, redirect, canonical, sitemap e link rotti. 36 tool e 21 prompt, tutti in sola lettura. Così puoi chiedere, in italiano:
Quali query sono in posizione 4-20 negli ultimi 90 giorni, e quali pagine dovrei ottimizzare per prime?
Confronta questo mese con lo stesso periodo dell'anno scorso e segnala i cali di clic sopra il 30%.
Questa pagina è indicizzata? Quale canonical ha scelto Google?
Su Bing come va rispetto a Google la query "scarpe da trekking"?
Perché fidarsi
Affidare le credenziali di Search Console a uno strumento è una decisione seria. seomcp è costruito per essere facile da verificare:
- Sola lettura. Chiede a Google solo gli scope
webmasters.readonlyeanalytics.readonly: non può modificare nulla nelle tue proprietà. - Le credenziali restano sul tuo computer. Nessun server intermedio, nessun gateway di terzi, nessuna telemetria.
- Solo librerie ufficiali: l'SDK MCP,
@googleapis/searchconsole,@googleapis/analyticsdata,@googleapis/analyticsadmin,@googleapis/pagespeedonline,@googleapis/chromeuxreportegoogle-auth-library. Bing, Wikidata, Knowledge Graph e Common Crawl sono semplici chiamate REST alle loro API pubbliche. Per leggere l'HTML delle pagine:htmlparser2, la libreria usata da cheerio. - Codice piccolo e leggibile. Circa 7.700 righe di TypeScript in
src/: leggerlo prima di installarlo è alla portata di chiunque. - Nessun uso improprio della Google Indexing API, che Google riserva alle offerte di lavoro e alle dirette video.
Tool disponibili (36)
Le analisi più complesse (cannibalizzazione, content gap, report) le fa l'assistente ragionando sui dati: non serve codificarle nel server.
Prompt (21)
Oltre ai tool, seomcp offre 21 prompt: analisi già impostate che combinano più tool e chiudono con le correzioni in ordine di impatto. Sono divisi per obiettivo, come la guida dei prompt di Bing Webmaster Tools:
Dentro l'assistente la stessa guida è la risorsa MCP seomcp://prompt. Dettagli, argomenti e credenziali di ogni prompt: seomcp.contentisking.guru/prompt. Approfondimenti: docs/geo.md e docs/schema-validator.md.
Domande pronte (108)
Non sai da dove partire? L'archivio domande/ raccoglie 108 domande da copiare nell'assistente, divise in 10 temi: primi passi, traffico, opportunità, indicizzazione, GEO e AEO, dati strutturati, prestazioni, Analytics, Bing e report. Per ognuna c'è cosa serve (36 funzionano senza credenziali), quali tool usa e cosa aspettarsi.
Le stesse domande sono anche risorse MCP dentro seomcp: seomcp://domande è l'indice e seomcp://domande/<tema> contiene il singolo tema. Nei client che supportano le risorse si allegano alla chat; in Claude Code si richiamano con @. Oppure chiedi all'assistente: «Cosa posso chiedere a seomcp?».
Installazione
Serve Node.js 22 o superiore. Configura solo le fonti che usi: Google e Bing sono entrambe facoltative.
Il modo più rapido: la configurazione guidata
npx -y @contentisking/seomcp setup
Ti fa le domande una alla volta e apre le pagine giuste di Google e Bing. Prova subito ogni credenziale e ti fa scegliere proprietà e siti predefiniti. Salva tutto in ~/.config/seomcp/config.json, leggibile solo dal tuo utente. Infine aggiunge seomcp a Claude Code, Claude Desktop, ChatGPT e Codex, GitHub Copilot, Gemini CLI o Mistral Vibe, facendo prima una copia di sicurezza dei file che modifica. Nella configurazione dell'assistente non finisce nessuna chiave.
Preferisci fare a mano? Segui i passaggi qui sotto.
1. Prepara le credenziali
La pagina Credenziali ha tutti i passaggi con i link diretti e compila la configurazione per il tuo assistente. Le guide qui sotto dicono le stesse cose.
- Google Search Console: segui la guida passo passo. Puoi scegliere tra un service account (comodo per i team) e OAuth con un client tuo (comodo per il singolo professionista).
- Google Analytics 4 (facoltativo): stesse credenziali di Search Console, più tre passaggi nella guida Analytics.
- PageSpeed e Core Web Vitals (facoltativo): una API key gratuita, come spiegato nella guida PageSpeed.
- Bing Webmaster Tools: genera una API key in due minuti, come spiegato nella guida.
- Cloudflare (facoltativo, se il sito passa da Cloudflare, anche con il piano gratuito): un token in sola lettura con i permessi Zona → Zona → Lettura e Zona → Analisi → Lettura. Il filtro IP del token è facoltativo: con una connessione domestica, che ha l'IP dinamico, lascialo vuoto. Cosa ottieni e come attivarlo nella pagina Cloudflare.
2. Collegalo al tuo assistente
Il comando è sempre lo stesso, cambia solo dove si scrive. Trovi una guida passo passo per ogni assistente su seomcp.contentisking.guru/installa; qui sotto le configurazioni in breve.
Claude Code
Da terminale:
claude mcp add seomcp -s user \
-e GOOGLE_APPLICATION_CREDENTIALS=/percorso/service-account.json \
-e BING_WEBMASTER_API_KEY=la-tua-chiave \
-e SEOMCP_GSC_SITE=sc-domain:tuosito.it \
-e SEOMCP_GA_PROPERTY=123456789 \
-e SEOMCP_GOOGLE_API_KEY=la-tua-api-key \
-- npx -y @contentisking/seomcp
Poi verifica con /mcp che seomcp risulti connesso.
Claude Desktop
In claude_desktop_config.json (Impostazioni → Sviluppatore → Modifica configurazione):
{
"mcpServers": {
"seomcp": {
"command": "npx",
"args": ["-y", "@contentisking/seomcp"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/percorso/service-account.json",
"BING_WEBMASTER_API_KEY": "la-tua-chiave",
"SEOMCP_GSC_SITE": "sc-domain:tuosito.it",
"SEOMCP_GA_PROPERTY": "123456789",
"SEOMCP_GOOGLE_API_KEY": "la-tua-api-key"
}
}
}
}
ChatGPT (app desktop) e Codex
Da Impostazioni → MCP servers → Add server → STDIO, oppure in ~/.codex/config.toml:
[mcp_servers.seomcp]
command = "npx"
args = ["-y", "@contentisking/seomcp"]
[mcp_servers.seomcp.env]
GOOGLE_APPLICATION_CREDENTIALS = "/percorso/service-account.json"
BING_WEBMASTER_API_KEY = "la-tua-chiave"
SEOMCP_GSC_SITE = "sc-domain:tuosito.it"
SEOMCP_GA_PROPERTY = "123456789"
SEOMCP_GOOGLE_API_KEY = "la-tua-api-key"
GitHub Copilot in VS Code
Comando MCP: Open User Configuration, poi nel file mcp.json:
{
"servers": {
"seomcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@contentisking/seomcp"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/percorso/service-account.json",
"BING_WEBMASTER_API_KEY": "la-tua-chiave",
"SEOMCP_GSC_SITE": "sc-domain:tuosito.it",
"SEOMCP_GA_PROPERTY": "123456789",
"SEOMCP_GOOGLE_API_KEY": "la-tua-api-key"
}
}
}
}
Usa la chat di Copilot in modalità Agent.
GitHub Copilot CLI
In ~/.copilot/mcp-config.json:
{
"mcpServers": {
"seomcp": {
"type": "local",
"command": "npx",
"args": ["-y", "@contentisking/seomcp"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/percorso/service-account.json",
"BING_WEBMASTER_API_KEY": "la-tua-chiave",
"SEOMCP_GSC_SITE": "sc-domain:tuosito.it",
"SEOMCP_GA_PROPERTY": "123456789",
"SEOMCP_GOOGLE_API_KEY": "la-tua-api-key"
},
"tools": ["*"]
}
}
}
Gemini CLI
In ~/.gemini/settings.json:
{
"mcpServers": {
"seomcp": {
"command": "npx",
"args": ["-y", "@contentisking/seomcp"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/percorso/service-account.json",
"BING_WEBMASTER_API_KEY": "la-tua-chiave",
"SEOMCP_GSC_SITE": "sc-domain:tuosito.it",
"SEOMCP_GA_PROPERTY": "123456789",
"SEOMCP_GOOGLE_API_KEY": "la-tua-api-key"
}
}
}
}
Dal giugno 2026 Gemini CLI richiede una chiave API Gemini a pagamento o una licenza enterprise.
Mistral Vibe CLI
In ~/.vibe/config.toml:
[[mcp_servers]]
name = "seomcp"
transport = "stdio"
command = "npx"
args = ["-y", "@contentisking/seomcp"]
env = { "GOOGLE_APPLICATION_CREDENTIALS" = "/percorso/service-account.json", "BING_WEBMASTER_API_KEY" = "la-tua-chiave", "SEOMCP_GSC_SITE" = "sc-domain:tuosito.it", "SEOMCP_GA_PROPERTY" = "123456789", "SEOMCP_GOOGLE_API_KEY" = "la-tua-api-key" }
Versioni web non supportate. Le versioni web (claude.ai, chatgpt.com, l'app Gemini, Microsoft 365 Copilot, Mistral Vibe sul web) accettano solo server MCP remoti, raggiungibili su internet.
seomcpgira in locale per non far uscire le tue credenziali dal computer, quindi servono le app desktop o la riga di comando. Microsoft 365 Copilot si collega ai server MCP solo come connettore federato remoto, configurato dall'amministratore: perché seomcp non si può ancora aggiungere.
3. Controlla che funzioni
npx @contentisking/seomcp doctor
Il comando prova ogni fonte e ti dice esattamente cosa manca. Ad esempio: "aggiungi [email protected] come utente della proprietà".
Avviso
npm warn deprecated node-domexception? Si può ignorare. Arriva dalla libreria ufficiale di Google per l'autenticazione (google-auth-library→gaxios→node-fetch) e serviva solo alle vecchie versioni di Node: con Node 22 non viene usato. Sparirà quando Google aggiornerà le sue dipendenze.
Configurazione
In alternativa alle variabili d'ambiente puoi usare ~/.config/seomcp/config.json:
{
"google": { "serviceAccountFile": "/percorso/service-account.json", "apiKey": "la-tua-api-key" },
"bing": { "apiKey": "la-tua-chiave" },
"defaults": { "gscSite": "sc-domain:tuosito.it", "gaProperty": "123456789", "bingSite": "https://www.tuosito.it/" }
}
Se il file contiene chiavi, rendilo leggibile solo a te: chmod 600 ~/.config/seomcp/config.json.
Usarlo come libreria
I client funzionano anche senza MCP e non leggono né file né variabili d'ambiente. Per questo puoi usarli dentro un'applicazione tua, anche multi-utente, passando le credenziali di ciascun utente:
import { GscClient, BingClient, strikingDistance, lastNDays } from '@contentisking/seomcp';
import { OAuth2Client } from 'google-auth-library';
const auth = new OAuth2Client({ clientId, clientSecret });
auth.setCredentials({ refresh_token: utente.googleRefreshToken });
const gsc = new GscClient(auth);
const rows = await gsc.query({ siteUrl: 'sc-domain:esempio.it', ...lastNDays(90), dimensions: ['query', 'page'], rowLimit: 5000 });
const opportunita = strikingDistance(rows);
const bing = new BingClient({ apiKey: utente.bingApiKey });
const stats = await bing.getQueryStats('https://www.esempio.it/');
Stato del progetto e supporto
seomcp è mantenuto da Content is King nel tempo libero, senza garanzie di supporto. Segnalazioni e pull request sono benvenute: leggi CONTRIBUTING.md. Per le vulnerabilità segui invece SECURITY.md.
È un progetto indipendente, non affiliato a Google, Microsoft, Anthropic né OpenAI. Search Console, Bing Webmaster Tools, Claude e ChatGPT sono marchi dei rispettivi proprietari.