plausible-mcp
plausible-mcp
Un servidor MCP que permite que cualquier persona de una organización consulte Plausible Analytics desde Claude.
Un único despliegue sirve a toda la organización. Guarda una sola clave de API de
Plausible en el servidor y autentica a cada persona con Google, de modo que nadie
necesite su propia clave ni haya que conceder acceso a cada uno individualmente:
pon tu dominio de Google Workspace en ALLOWED_DOMAINS y cualquiera con una dirección
de ese dominio podrá conectarse la primera vez que lo intente. Las personas que
trabajen fuera de ese dominio van en ALLOWED_EMAILS, una dirección cada vez.
Si te encargas de la analítica de un equipo y quieres que lean los números por sí mismos en lugar de pedírtelos, esto es exactamente para eso.
Cómo funciona la autenticación
Claude se registra en este servidor mediante el registro dinámico de clientes de OAuth 2.1. Google no es compatible con el registro dinámico de clientes, así que este servidor actúa como su propio servidor de autorización y delega el inicio de sesión de las personas en Google.
Google establece quién es la persona. No decide si puede leer tu analítica. Un
middleware comprueba la dirección de correo verificada de cada llamador contra
ALLOWED_DOMAINS y ALLOWED_EMAILS en cada llamada a una herramienta. Si no
configuras ninguna de las dos, el servidor se niega a arrancar.
ALLOWED_DOMAINS es la parte que hace que esto valga para toda la organización:
compara el dominio de la dirección verificada exactamente, así que example.com
admite alice@example.com, pero no alice@evil-example.com ni
alice@example.com.evil.com.
Para revocar a alguien, sácalo de ALLOWED_EMAILS o de ALLOWED_DOMAINS y vuelve a
desplegar. Suspender su cuenta de Google impide que vuelva a iniciar sesión, pero la
lista de permitidos lee las afirmaciones de un token que este servidor ha firmado,
así que un token ya emitido sigue funcionando hasta que caduque. Cambiar
JWT_SIGNING_KEY invalida todos los tokens a la vez, a costa de cerrar la sesión de
todos.
Related MCP server: Plausible MCP
Herramientas
queryejecuta una consulta de la API Stats API v2. Agrupar calibrando por dimensiones distintas te da series temporales, desglose de y conversiones de objetivo desde la misma herramienta. Para comparar dos periodos, llname una vez por cada viaje.list_sitesdevuelve los dominios de los sitios que puedes pasar comosite_id.usage_statsinforma de quién ha usado el servidor, con qué frecuencia y qué cuentas fueron rechazadas.
Seguimiento de uso
El middleware de la lista de permitidos ve la dirección de correo de cada llamador,
porque tiene que comprobarla. Registra un recuento de llamadas por persona, la hora de
la primera y de la última vez, y un desglose por herramienta en el volumen de
USAGE_PATH. Las cuentas rechazadas se convierten por separado; así puedes localizar
a personasde fuera de la lista que intenten conectarse.
Puedes leerlo con la herramienta usage_stats. Cualquiera que esté en la lista de
permitidos puede ver las filas de todo el mundo. Deja sin definir USAGE_PATH para
desactivar el seguimiento.
Configuración
Variable | Requerido | Propósito |
| sí | Cliente OAuth de Google y secreto para iniciar sesión de los usuarios |
| sí | Clave de Plausible con acceso a la API Stats; utilizada por todos |
| sí | URL pública de este servidor; la URI de redirección de Google es |
| uno de ellos | Quién puede consultar. Si no se define ninguna, el servidor se niega |
| recomendada | Firma los tokens de acceso de este servidor. Sin él, un reinicio cierra la sesión de todos |
| no | Dónde guardar los registros de clientes OAuth. Si no se define, en memoria |
| no | Dónde registrar el uso por persona. Si se desactiva, se desactiva el seguimiento |
Consulta .env.example para obtenerla la misma lista en formato listo para copiar y pegar.
Despliegue
El repositorio incluye un fly.toml, así que las instrucciones siguientes son para
Fly.io, pero nada en el servidor es específico de Fly: es un único
contenedor que necesita un directorio con permiso de escrit y el entorno de variables
de más de una persona. Reemplaza YOUR-APP en todos los pasos.
Crea un cliente OAuth en la consola de Google Cloud. Elige Aplicación web and define la URI de redirección autorizada como
https://YOUR-APP.fly.dev/auth/callback. Ese URI debe coincidir exactamente.Crea la aplicación y su volumen de almacenamiento:
fly apps create YOUR-APP --org YOUR-ORG fly volumes create plausible_mcp_data --app YOUR-APP --region fra --size 1 --yesUsa
fly apps createen lugar defly launch, que regeneraría el archivofly.tomly descartaría el volumen y el checkeo de salud.Apunta
appenfly.tomlal nombre de la aplicación.Establece la configuración.
BASE_URLyALLOWED_DOMAINSdeben ir aquí y no enfly.toml, porque deconfiguración por despliegue y un marcador de posición incluido en el repositorio sobrescuría en el ValueError del siguiente despliegue:fly secrets set --app YOUR-APP \ BASE_URL=https://YOUR-APP.fly.dev \ ALLOWED_DOMAINS=your-domain.org \ GOOGLE_CLIENT_ID=xxx.apps.googleusercontent.com \ GOOGLE_CLIENT_SECRET=GOCSPX-xxx \ PLAUSIBLE_API_KEY=xxx \ JWT_SIGNING_KEY="$(openssl rand -hex 32)"Mantén estable un
JWT_SIGNING_KEY; cambiarlo cierra la sesión de todos.fly deploy --ha=falseWithout
--ha=false, Fly puede iniciar dos máquinas. Cada una tendría su propio volumen, por lo que una sesión que se registra en una máquina falla si la siguiente petición llega a la otra.
Añadirlo a Claude
Para añadirlo para todo un equipo, ve a Ajustes > Conectores en claude.ai, elige
Añadirconector personalizado e introduce https://YOUR-APP.fly.dev/mcp. Cada
persona iniciará sesión con Google la primera vez que lo use.
Para añadirlo a Claude Code:
claude mcp add --transport http plausible https://YOUR-APP.fly.dev/mcpEjecutarlo localmente
uv venv && uv pip install -r pyproject.toml
cp .env.example .env # then fill it in
set -a && source .env && set +a
python server.pyAñade http://localhost:8000/auth/callback a los URIs de redirección del cliente de
Google paraprobar el flujo de inicio de sesión local.
Ejecuta las pruebas con python test_server.py. Para probar manualmente el flujo de
OAuth y las herramientas, usa npx @modelcontextprotocol/inspector.
Licencia
MIT — consulta LICENSE.
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
Cookieless dashboard aggregates for Claude and Cursor. No visitor hashes. Starter and Growth.
Give Claude only the Google Drive files you choose. Every action logged.
Query 40 databases from Claude, ChatGPT, or Cursor — on any device. Read-only, encrypted, audited.
Ask Claude about your ads: Meta, Google, TikTok, LinkedIn, GA4 & Shopify. No AI credits.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude AI to query Google Search Console data and manage properties via OAuth 2.0 authentication, eliminating the need for API keys.MIT
- AlicenseBqualityDmaintenanceEnables natural language interaction with Plausible Analytics data to query traffic, visitors, engagement, and more using conversational questions.41MIT
- FlicenseAqualityDmaintenanceEnables natural language querying of Google Analytics 4, Google Search Console, Meta Ads, and Google Ads data through Claude.23
- FlicenseAqualityCmaintenanceConnects Claude to Google Analytics 4 for querying website analytics via natural language, enabling traffic summaries, top pages, traffic sources, and user engagement.4
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/effektiv-spenden-jetzt/plausible-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server