Salta l'installazione. Attivo in meno di 2 minuti.
Avvia una prova gratuita su cloud.anythingmcp.com, aggiungi PostHog con un clic, poi punta il tuo client AI (Claude, ChatGPT, Copilot o Cursor) all'endpoint MCP generato. Niente Docker, niente git clone, nessuna esperienza di sviluppo richiesta.
In breve
Fai rispondere alla tua AI alle domande di product analytics con PostHog: esegui SQL in sola lettura (HogQL) su eventi e persone, calcola trend, funnel e retention, leggi insight e dashboard salvati, consulta persone, coorti, annotazioni ed esperimenti e gestisci insight e feature flag. PostHog Cloud (US o EU) o self-hosted, con una personal API key.
Prova a chiedere
Prompt di esempio per PostHog
Clicca su un prompt per copiarlo. Incollalo in Claude, ChatGPT, Cursor, Gemini, Copilot o OpenClaw per eseguirlo contro questo connettore.
Claude è un'AI e può sbagliare. Verifica sempre le risposte.
💡 Niente installazione? Vai direttamente su cloud.anythingmcp.com. Accedi, clicca Connectors → PostHog, inserisci le credenziali, genera una MCP API key e hai finito. Niente Docker, niente
git clone, niente server locale.
PostHog + Meta Muse
Fai rispondere alla tua AI alle domande di product analytics con PostHog: esegui SQL in sola lettura (HogQL) su eventi e persone, calcola trend, funnel e retention, leggi insight e dashboard salvati, consulta persone, coorti, annotazioni ed esperimenti e gestisci insight e feature flag. PostHog Cloud (US o EU) o self-hosted, con una personal API key.
Prerequisiti
Le istruzioni di setup complete sono incluse nel connettore stesso (visibili nello store quando lo selezioni). Le variabili d'ambiente richieste sono:
POSTHOG_HOST, POSTHOG_PERSONAL_API_KEY
Step 1 — Ottieni le credenziali
- In PostHog apri Settings → User → Personal API keys (US Cloud:
https://us.posthog.com/settings/user-api-keys, EU Cloud:https://eu.posthog.com/settings/user-api-keys) e clicca su + Create a personal API key. - Dai alla chiave un'etichetta (per esempio "AnythingMCP") e scegli l'organization and project access: tutto, una sola organizzazione o progetti specifici. Una chiave limitata a progetti specifici non può elencare organizzazioni o progetti, ma
posthog_get_current_userfunziona comunque e indica il progetto corrente. - Seleziona questi scope:
user:read,organization:read,project:readquery:read,person:read,cohort:read,experiment:readinsight:read,insight:write,dashboard:readfeature_flag:read,feature_flag:writeannotation:read,annotation:write
- Copia subito la chiave: PostHog la mostra una sola volta. Inizia con
phx_(un project token che inizia conphc_qui non funziona). Inseriscila inPOSTHOG_PERSONAL_API_KEY, senza la parola Bearer. - Imposta
POSTHOG_HOSTsull'indirizzo da cui apri PostHog:https://us.posthog.comper US Cloud,https://eu.posthog.comper EU Cloud o l'indirizzo della tua istanza self-hosted, senza slash finale né percorso. Gli host di ingestioneus.i.posthog.comeeu.i.posthog.comvengono rifiutati, e una chiave funziona solo nella regione cloud in cui è stata creata. Poi installa il connettore. - Comincia con
posthog_get_current_user: mostra a quale utente PostHog appartiene la chiave, il progetto corrente e i progetti dell'organizzazione.
Configurazione in sola lettura: crea la chiave solo con gli scope :read e disattiva posthog_create_insight, posthog_update_insight, posthog_create_feature_flag, posthog_update_feature_flag e posthog_create_annotation. Le query non modificano mai i dati, perché HogQL accetta solo SELECT. L'AI vede e modifica esattamente ciò che può l'utente della chiave.
Disattivati all'installazione: posthog_delete_insight, posthog_delete_feature_flag e posthog_delete_annotation. Tramite API PostHog non elimina mai definitivamente: questi strumenti segnano l'insight, il flag o l'annotazione come eliminati, e si possono ripristinare nell'app PostHog. Un flag eliminato viene spento, quindi il codice che ne controlla la chiave riceve false.
Id di progetto: ogni strumento di progetto richiede project_id, il numero nell'URL di PostHog (/project/12345/...), visibile anche in Settings → Project → General. È accettato anche @current, ma indica il progetto che l'utente ha aperto per ultimo nell'app, che può cambiare: meglio il numero. posthog_list_organizations e posthog_list_projects elencano gli altri.
Query: posthog_run_hogql_query esegue una SELECT HogQL (l'SQL di PostHog) su events, persons, sessions e groups; le proprietà si leggono come properties.$browser o person.properties.email. Filtra sempre sul tempo (per esempio WHERE timestamp >= now() - INTERVAL 7 DAY): le scansioni senza filtro sono lente e consumano il budget di lettura. Senza LIMIT arrivano 100 righe, con LIMIT fino a 50.000. OFFSET viene rifiutato, quindi l'AI pagina per timestamp o id. Le date vengono lette nel fuso orario del progetto, non in UTC. Per trend, funnel, retention, stickiness, lifecycle e percorsi c'è posthog_run_insight_query; le percentuali di conversione e retention si calcolano dai valori count. L'endpoint delle query è pensato per analisi ad hoc, non per esportazioni massive.
Insight, dashboard e flag: posthog_get_insight restituisce di default l'ultimo risultato in cache; refresh blocking ricalcola quello non aggiornato. posthog_get_dashboard restituisce i riquadri con i loro insight. I feature flag decidono cosa vedono gli utenti reali: prima di crearne o modificarne uno, l'AI ti mostra la chiave del flag, active e il rollout e aspetta il tuo sì. Un nuovo flag è più sicuro con active false o un rollout di 0. Le modifiche inviano la version del flag letta per ultima, così non si sovrascrivono le modifiche di altri.
Paginazione: gli strumenti di elenco accettano limit e offset e restituiscono count, next (null sull'ultima pagina) e results. Le risposte oltre 200 KB vengono troncate.
Limiti di frequenza: valgono per organizzazione e sono condivisi da tutte le chiavi e gli utenti. Letture e scritture normali consentono 480 richieste al minuto e 4.800 all'ora; le analisi come persone e calcoli degli insight 240 al minuto e 1.200 all'ora. L'endpoint delle query consente 240 richieste al minuto e 2.400 all'ora, al massimo 3 query in esecuzione per progetto, e attinge a un budget di lettura orario per progetto (più piccolo nel piano gratuito). Oltre il limite PostHog risponde 429; a budget esaurito la risposta contiene api_queries_budget_exceeded, mentre i risultati in cache continuano a funzionare.
Errori comuni: 401 significa che la chiave è sbagliata, eliminata o dell'altra regione cloud: controlla POSTHOG_HOST. 403 "API key missing required scope" indica lo scope da aggiungere (puoi modificare gli scope della chiave anche dopo); altri 403 significano che la chiave è limitata ad altri progetti o organizzazioni, o che l'organizzazione non consente le personal API key ai membri. 404 "Project not found." è un project_id sbagliato o non visibile all'utente. 400 indica il campo non valido e, per HogQL, riporta l'errore del parser. 409 su un flag significa che la sua version non è aggiornata: rileggi il flag.
Il connettore non acquisisce eventi né imposta proprietà delle persone, non elimina persone, non legge session replay o sondaggi, non crea né modifica dashboard, coorti ed esperimenti e non gestisce batch export, membri e fatturazione.
Step 2 — Installa l'adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Aggiungi il connettore in Muse
L'URL del tuo server: in AnythingMCP apri MCP Servers → il server su cui si trova questo connettore e copia il suo URL (
https://cloud.anythingmcp.com/mcp/…). Usalo ovunque questa guida mostraYOUR_SERVER_ID.
Muse aggiunge i server MCP remoti come connettori personalizzati e vi accede con OAuth.
- In Muse apri Settings → Connectors e scegli Add custom connector.
- Incolla l'URL del server MCP
https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. - Muse apre la pagina di accesso di AnythingMCP: accedi e approva l'accesso.
- In una chat, chiedi a Muse qualcosa che richiede i tool di
PostHog.
Puoi configurarlo anche da una chat, sul web, nelle app per iOS e Android o su WhatsApp. Invia a Muse questo messaggio:
Create a Custom Connector for a new remote MCP server, then connect to it:
Name: AnythingMCP
Transport: remote streamable HTTP
URL: https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID
Auth: OAuth
Usi il self-hosting? Usa l'indirizzo HTTPS pubblico della tua istanza al posto di https://cloud.anythingmcp.com. Muse si collega dal cloud di Meta, quindi localhost non funziona.
Tool disponibili
| Tool | What it does |
|---|---|
posthog_get_current_user | Get the user the personal API key belongs to: uuid, email and name, the current project (id, name, project_id, timezone), the current… |
posthog_list_organizations | List the organizations the user belongs to: id (a UUID), name, slug, membership_level, and each organization's projects |
posthog_list_projects | List the projects of an organization: id (the project_id every other tool takes), name, project_id, timezone, tags, is_demo and… |
posthog_get_project | Get one project's settings: name, timezone, week_start_day, base_currency, app_urls, test account filters, group types, whether events… |
posthog_run_hogql_query | Run one read-only HogQL (PostHog SQL) SELECT over events, persons, sessions, groups or warehouse tables and return columns, results (rows… |
posthog_run_insight_query | Run one of PostHog's insight calculations without saving it: TrendsQuery, FunnelsQuery, RetentionQuery, StickinessQuery, LifecycleQuery or… |
posthog_list_persons | List or search persons (identified users and anonymous visitors): id, uuid, name, distinct_ids, properties, created_at and last_seen_at.… |
posthog_get_person | Get one person by numeric id or UUID: name, distinct_ids, all person properties (email, initial UTM and referrer, geo), created_at and… |
posthog_list_insights | List saved insights (charts): id, short_id, name, description, query, tags, favorited, dashboard_tiles, created_by and last_modified_at |
posthog_get_insight | Get one insight by numeric id or 8-character short_id: name, description, query, result, columns, last_refresh, is_cached, the hogql it ran… |
posthog_create_insight | Save a new insight (chart) in the project from a query: a product analytics chart or a SQL insight |
posthog_update_insight | Change a saved insight: name, description, query, tags or favorited |
posthog_delete_insight | Delete a saved insight (PostHog marks it deleted; it disappears from every dashboard and can be restored in the app) |
posthog_list_dashboards | List dashboards: id, name, description, pinned, tags, created_by, created_at and last_viewed_at |
posthog_get_dashboard | Get one dashboard with its filters and tiles: each tile carries its insight (id, short_id, name, query and the last cached result) or a… |
posthog_list_feature_flags | List feature flags: id, key, name (the description), active, filters (release conditions with rollout_percentage, variants, payloads)… |
posthog_get_feature_flag | Get one feature flag by id: key, name, active, filters (release condition groups with properties and rollout_percentage, multivariate… |
posthog_create_feature_flag | Create a feature flag |
posthog_update_feature_flag | Change a feature flag: switch it on or off, change its rollout or targeting, rename its description, archive it or retag it |
posthog_delete_feature_flag | Delete a feature flag (PostHog marks it deleted and switches it off; code that checks the key then gets false) |
posthog_list_cohorts | List cohorts (saved groups of persons): id, name, description, count (persons in it), is_static, is_calculating, filters and created_at |
posthog_get_cohort | Get one cohort by id: name, description, its definition (filters or query), count of persons, whether it is static or behavioral… |
posthog_list_annotations | List annotations (notes on charts such as releases or incidents): id, content, date_marker, scope, the insight or dashboard they belong to… |
posthog_get_annotation | Get one annotation by id: content, date_marker, scope (project, organization, dashboard or insight), emoji, the insight or dashboard it is… |
posthog_create_annotation | Add an annotation, a note shown on charts at a point in time, e.g. a release, a campaign start or an incident |
posthog_delete_annotation | Delete an annotation (PostHog marks it deleted; it disappears from every chart and can be restored) |
posthog_list_experiments | List A/B test experiments: id, name, description, status, start_date, end_date, feature_flag_key, type, conclusion, archived and created_by |
posthog_get_experiment | Get one experiment by id: status, start and end dates, its feature flag and variants, metrics, parameters, exposure cohort, conclusion and… |
Esempi di prompt
- "Quanti utenti unici hanno visitato ogni giorno la pagina dei prezzi la settimana scorsa, e con quali browser?"
- "Qual è stato negli ultimi 30 giorni il tasso di conversione del funnel di registrazione, dalla visita alla pagina dei prezzi al checkout completato?"
- "Quali feature flag sono attivi in questo momento, e con quale percentuale di rollout?"
- "Aggiungi un'annotazione con la data di oggi nel progetto principale: lanciata la campagna di primavera."
FAQ
Dove è disponibile Muse? Al momento Meta offre Muse negli Stati Uniti e in Canada, sul web, nelle app per iOS e Android e su WhatsApp.
Meta verifica questo connettore? No. Meta non verifica i connettori personalizzati. Muse vede solo i tool che hai attivato per questo server MCP in AnythingMCP, e puoi scollegarlo in qualsiasi momento da Settings → Connectors.
Prossimi passi
Questa guida ti è stata utile?