Cómo Crear una Service Account en Google Cloud para MCPs con Claude: Tutorial Completo [2026]
¿Quieres formar a tu equipo en MCPs y Claude Code? Formación in-company con casos prácticos sobre todo el ecosistema Google.
TL;DR
- Una service account es la identidad "robot" de Google Cloud que tu agente de IA (Claude) usa para autenticarse contra Analytics, Ads, Search Console, Gmail, Drive o cualquier API de Google
- Se crea una vez y se reutiliza para múltiples productos: el mismo email funciona en GA4, Search Console, Sheets y Drive a la vez
- Tiempo total: 10 minutos para la SA básica + 2-3 minutos por cada herramienta de Google donde le des permisos
- Coste: 0 EUR (la creación de SAs y la habilitación de APIs de productividad son gratuitas)
- Permisos recomendados: solo lectura por defecto. Da escritura solo si necesitas que Claude modifique recursos
- Buena práctica agencia: una SA por cliente para evitar que la IA cruce datos en los reportes
- Lo que sigue: este post es la base reutilizable para los tutoriales de Google Analytics + Claude y Google Ads + Claude
"Las service accounts son la pieza menos glamurosa pero más infravalorada del stack de IA empresarial. Bien configuradas, son la diferencia entre un MCP que funciona y uno que filtra credenciales." — Javier Santos Criado, consultor de IA en Javadex
"En 2026, el 67% de los incidentes de seguridad en stacks con IA agentica vienen por service accounts mal configuradas o con permisos excesivos." — Google Cloud Security Report (Q1 2026)
Qué es una Service Account
Una service account es una cuenta de Google que pertenece a una aplicación o servicio en lugar de a una persona. Tiene un email único (formato nombre@proyecto.iam.gserviceaccount.com), no inicia sesión nunca con contraseña, y se autentica mediante claves criptográficas (archivos JSON).
| Diferencia | Cuenta de usuario | Service account |
|---|---|---|
| Quién la usa | Una persona física | Una aplicación o agente |
| Login | Usuario + contraseña + 2FA | Clave JSON (privada) |
| tu@gmail.com | nombre@proyecto.iam.gserviceaccount.com | |
| Permisos | Sobre todo Google | Solo donde se la invita explícitamente |
| Ideal para MCP | ❌ Riesgo si se filtran credenciales | ✅ Aislamiento y mínimos privilegios |
Cuando configuras un MCP de Google Analytics, Ads, Search Console o Drive con Claude Code, siempre va a haber una service account de por medio. Aprende a crearla bien una vez y la reutilizarás para todo.
Por Qué No Usar tu Cuenta de Usuario Directamente
Tres razones de seguridad y operativa:
- Aislamiento: si filtras credenciales, perdes acceso solo a recursos donde la SA es usuario, no a toda tu identidad Google
- Permisos granulares: puedes dar a la SA acceso de lectura a una sola propiedad GA4 sin tocar ni Gmail ni Drive
- Auditoría: en los logs de Google Cloud distingues acciones humanas de acciones automatizadas
Además, la mayoría de MCP servers están diseñados para trabajar con SA: pedirles que usen tu cuenta personal con OAuth interactivo es más complicado y menos estable.
Requisitos Previos
| Requisito | Coste | Tiempo |
|---|---|---|
| Cuenta de Google (Gmail personal o Workspace) | Gratis | Ya la tienes |
| Acceso al producto donde quieres dar permisos (GA4, Ads, Search Console, etc.) | Variable | Variable |
| Permisos de admin sobre el recurso a conectar | — | — |
Caso empresarial: si tu cuenta es Workspace y tu organización aplica políticas estrictas, puede que necesites pedir a tu equipo de IT que cree el proyecto y la service account. Es una operación rutinaria.
Paso 1: Crear el Proyecto en Google Cloud
El proyecto es el contenedor donde viven la service account, las APIs habilitadas y las claves. Un proyecto puede tener varias SAs y dar acceso a varios productos.
- Entra en console.cloud.google.com
- Acepta los términos de servicio si es tu primera vez
- En la barra superior, pulsa el selector de proyecto → Proyecto nuevo
- Nombre del proyecto: usa algo descriptivo como
mcp-google-2026omcp-cliente-acme-2026 - Organización: déjalo "Sin organización" si es Gmail personal
- Ubicación: si tienes Workspace, selecciona tu organización
- Pulsa Crear y espera ~30 segundos
Tip: pon nombres claros. Cuando tengas 5 proyectos, agradecerás haber escritomcp-cliente-acmeen lugar deproyecto-test-2.
Estructura recomendada
| Estructura | Cuándo usarla | Ventaja |
|---|---|---|
| 1 proyecto, 1 SA, varios productos | Uso personal o agencia pequeña | Simple, todo centralizado |
| 1 proyecto por cliente | Agencia con varios clientes | Aislamiento y facturación clara |
| 1 proyecto por producto | Empresa con stacks separados | Permisos granulares por equipo |
Paso 2: Habilitar las APIs que Necesites
Cada producto de Google requiere su API habilitada en el proyecto. Es gratis y se hace en segundos.
- Menú lateral → APIs y servicios → Biblioteca
- Busca el nombre de la API
- Pulsa el resultado → Habilitar
- Repite para cada API que necesites
Tabla de APIs por producto
| Producto Google | API(s) a habilitar |
|---|---|
| Google Analytics 4 | Google Analytics Data API + Google Analytics Admin API |
| Google Ads | Google Ads API |
| Google Search Console | Google Search Console API |
| Google Sheets | Google Sheets API + Google Drive API |
| Google Drive | Google Drive API |
| Gmail | Gmail API (requiere Workspace + domain-wide delegation) |
| Google Calendar | Google Calendar API |
| YouTube Data | YouTube Data API v3 |
| Cloud Storage (buckets) | Cloud Storage API |
| BigQuery | BigQuery API |
Atención: habilitar una API no expone tus datos. Solo permite que las SAs del proyecto puedan llamar esa API. Los permisos de acceso a datos los das en el producto destino (paso 5).
Paso 3: Crear la Service Account
- Menú lateral → IAM y administración → Cuentas de servicio
- Pulsa Crear cuenta de servicio
- Nombre: descriptivo como
mcp-claude-readonlyomcp-cliente-acme-ga4 - ID (se autocompleta):
mcp-claude-readonly - Descripción:
Acceso de lectura para MCPs con Claude Code - Pulsa Crear y continuar
- Roles del proyecto: déjalo vacío. Daremos permisos directamente en cada producto (mínimos privilegios)
- Pulsa Continuar y luego Listo
Te queda una SA con email único. Cópialo:
1mcp-claude-readonly@mcp-google-2026.iam.gserviceaccount.com
Nomenclatura recomendada
| Patrón | Ejemplo | Cuándo usar |
|---|---|---|
mcp-claude-readonly | Para todo en lectura | Setup personal simple |
mcp-{cliente}-{producto} | mcp-acme-ga4 | Agencia, granularidad por producto |
mcp-{cliente}-readonly | mcp-acme-readonly | Agencia, una SA por cliente todo en lectura |
mcp-{producto}-rw | mcp-sheets-rw | Cuando das escritura, deja claro en el nombre |
Paso 4: Descargar la Clave JSON
La clave JSON es la "llave privada" que demuestra a Google que el proceso (Claude) que se autentica es realmente esta service account. Trátala como una contraseña.
- En la lista de cuentas de servicio, pulsa la que acabas de crear
- Pestaña Claves
- Agregar clave → Crear clave nueva
- Tipo: JSON
- Pulsa Crear — se descarga automáticamente
El archivo tendrá un nombre como mcp-google-2026-a1b2c3d4e5f6.json.
Buenas prácticas con la clave JSON
- Renómbrala:
gsa-mcp-readonly.json(más fácil de identificar) - Guárdala fuera de Descargas: muévela a
~/.config/gcp/o~/keys/ - Permisos restrictivos: en macOS/Linux:
chmod 600 ~/.config/gcp/gsa-mcp-readonly.json - Nunca la subas a Git: añade el patrón
*.jsona tu.gitignoreglobal o ten una carpetakeys/siempre fuera del repo - No la pegues en chats ni la mandes por email
- Si se filtra: vuelve a Google Cloud Console → cuenta de servicio → Claves → eliminar la comprometida (revoca el acceso en segundos)
Paso 5: Dar Permisos en el Producto Destino
Aquí es donde la SA pasa de existir a poder hacer cosas. Cada producto tiene su propia interfaz para añadir usuarios externos.
Google Analytics 4
- analytics.google.com → propiedad → Administrar
- Gestión de accesos a la propiedad →
+→ Añadir usuarios - Email: el de la SA. Rol: Lector
Tutorial completo de GA4 + Claude vía MCP →
Google Ads
- ads.google.com → MCC → Configuración → Centro de API
- Vincula el cliente OAuth y obtén un refresh token (más complejo que GA4)
Tutorial completo de Google Ads + Claude vía MCP →
Google Search Console
- search.google.com/search-console
- Selecciona la propiedad → Configuración → Usuarios y permisos
- Añadir usuario → email de la SA → permisos: Restringido (lectura)
Google Sheets / Drive
- Abre la hoja o carpeta en Drive
- Botón Compartir
- Email de la SA → permiso: Lector (o Editor si necesita escritura)
- Desmarca "Notificar a personas" (no recibirá email, es una SA)
Gmail
Gmail requiere domain-wide delegation y solo se puede configurar con Google Workspace. No es viable con cuenta personal de Gmail. Documentación: Google Workspace — Domain-Wide Delegation.
Paso 6: Configurar el MCP en Claude
Una vez creada la SA y dados los permisos, conecta el MCP en Claude:
1Instala el MCP de [producto Google] desde [URL del repositorio oficial]2y configúralo con la cuenta de servicio del archivo3~/.config/gcp/gsa-mcp-readonly.json
Claude:
- Lee el README del MCP
- Detecta el método de instalación correcto
- Genera/actualiza
~/.claude/mcp.jsonapuntando al JSON de la SA - Configura la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
Ejemplo de mcp.json final con varios MCPs Google compartiendo la misma SA:
1{2 "mcpServers": {3 "google-analytics": {4 "command": "uvx",5 "args": ["google-analytics-mcp"],6 "env": {7 "GOOGLE_APPLICATION_CREDENTIALS": "/Users/tunombre/.config/gcp/gsa-mcp-readonly.json"8 }9 },10 "google-search-console": {11 "command": "uvx",12 "args": ["search-console-mcp"],13 "env": {14 "GOOGLE_APPLICATION_CREDENTIALS": "/Users/tunombre/.config/gcp/gsa-mcp-readonly.json"15 }16 }17 }18}
Cierra Claude Desktop y vuelve a abrirlo. Verifica con:
1¿Qué MCPs tienes activos? Lista las herramientas disponibles de cada uno.
Paso 7: Verificar y Probar
Antes de fiarte de un MCP en producción, verifica que solo accede a lo que esperas.
Pruebas mínimas:
- Lectura: pide un dato simple (
muéstrame las 5 páginas más vistas en GA4 últimos 7 días) - Escritura intencional: pide algo que NO debería poder hacer si está en lectura. Debe responder con error de permisos
- Aislamiento: confirma que no ve recursos donde no le diste acceso explícito
Si todo cuadra, ya está operativo. Si algo falla, revisa los errores comunes abajo.
Buenas Prácticas de Seguridad
1. Principio de mínimos privilegios
No le des roles globales a la SA en Google Cloud (Editor, Owner). Da permisos solo a los recursos exactos que necesita en cada producto.
2. Una SA por entorno
| Entorno | SA recomendada |
|---|---|
| Personal/dev | mcp-claude-personal |
| Cliente A | mcp-cliente-a-readonly |
| Producción equipo | mcp-prod-readonly (en proyecto separado) |
3. Rota las claves periódicamente
Cada 90 días: ve a la SA → Claves → genera una nueva → actualiza el mcp.json → elimina la antigua. Reduce el blast radius si una clave se filtró sin que te enteres.
4. Audita los accesos
Google Cloud Console → IAM y administración → Auditoría muestra qué SA accedió a qué recurso y cuándo. Revísalo mensualmente.
5. Activa Workload Identity Federation (avanzado)
Si despliegas el MCP server en infra (no en tu portátil), evita pasar archivos JSON. Configura Workload Identity Federation: la app se autentica desde el cluster sin claves estáticas.
Errores Comunes
Error 1: política de organización bloquea la creación de claves
Problema: Constraint constraints/iam.disableServiceAccountKeyCreation enforced.
Solución: tu admin de Workspace bloqueó la creación de claves JSON por seguridad. Pídele excepción para tu proyecto o que cree la SA por ti.
Error 2: la SA no aparece al añadirla al producto
Problema: Analytics/Drive te dicen usuario no encontrado.
Solución: la propagación tarda 1-2 minutos tras crear la SA. Espera y reintenta. Si sigue sin aparecer, revisa que copiaste el email completo (incluido .iam.gserviceaccount.com).
Error 3: 403 al consultar datos pese a tener la SA configurada
Problema: Claude conecta el MCP pero las llamadas devuelven PERMISSION_DENIED.
Solución: la API correcta no está habilitada en el proyecto. Vuelve a APIs y servicios → APIs habilitadas y verifica.
Error 4: archivo JSON con saltos de línea raros
Problema: el MCP server falla al parsear el JSON. Solución: descarga el JSON limpio desde Google Cloud (no lo edites a mano). Si lo abriste con un editor que cambió saltos de línea (CRLF/LF), regenera la clave.
Error 5: cuota de claves por SA excedida
Problema: Maximum number of keys exceeded.
Solución: cada SA admite hasta 10 claves. Borra las que ya no uses (Google Cloud → SA → Claves → eliminar).
Error 6: ruta del JSON con espacios
Problema: el MCP no encuentra el archivo si la ruta tiene espacios.
Solución: muévelo a una ruta sin espacios (~/keys/gsa.json) o entrecomilla la ruta en el mcp.json.
Preguntas Frecuentes
¿Cuánto cuesta crear una service account?
Es gratis. Las SAs en sí no cobran. Las APIs de productividad (Analytics, Search Console, Sheets, Drive, Gmail) tienen cuotas gratuitas generosas. Solo APIs de cómputo (Compute Engine, Cloud Run, Vertex AI) requieren cuenta de facturación activa.
¿Necesito cuenta de facturación en Google Cloud para crear la SA?
No, para SAs y APIs de Workspace/Analytics/Ads/Search Console no. Solo si vas a usar APIs como Vertex AI, Cloud Run o BigQuery con datos extensos.
¿Puedo usar la misma service account para varios productos?
Sí, y es lo recomendado para uso personal. Una SA puede tener acceso a GA4, Search Console, Sheets y Drive a la vez. En agencias, separa una SA por cliente para evitar mezclas.
¿Cuántas service accounts puedo crear?
Hasta 100 por proyecto y miles de proyectos por organización. Para 99% de los casos, sobra.
¿La service account aparece en mi Google Workspace como usuario?
No. Las SAs son entidades de Cloud, no usuarios de Workspace. No consumen licencias. No aparecen en el directorio. Solo se ven cuando las invitas explícitamente a un recurso.
¿Puedo usar la misma SA en producción y desarrollo?
Técnicamente sí, pero no es buena práctica. Crea SAs separadas por entorno: mcp-dev-readonly, mcp-prod-readonly. Si filtras la de dev, no compromete producción.
¿Cómo revoco el acceso de una SA si sospecho que la clave se filtró?
Dos opciones:
- Eliminar la clave (Google Cloud → SA → Claves → eliminar): la SA sigue existiendo pero esa clave deja de funcionar
- Eliminar la SA entera: revoca todos los accesos en todos los productos
La opción 1 es lo habitual: generas nueva clave y borras la vieja.
¿Puedo automatizar la creación de SAs con Terraform o gcloud CLI?
Sí. El comando gcloud iam service-accounts create y el recurso google_service_account de Terraform funcionan perfectamente. Útil si gestionas decenas de SAs en una agencia o empresa.
¿Merece la Pena el Esfuerzo?
Si vas a conectar más de un producto de Google con MCPs, la SA es obligatoria de facto. No hay alternativa viable. Y si solo conectas uno, sigue siendo más seguro y mantenible que OAuth interactivo. ROI: tiempo de configuración 10 min, tiempo ahorrado por sesión de trabajo con Claude 1-3 horas según el caso.
Plan de Acción
| Cuándo | Acción | Resultado |
|---|---|---|
| Ahora | Crea proyecto Google Cloud mcp-google-2026 | Proyecto listo |
| En 5 min | Crea SA mcp-claude-readonly y descarga JSON | Identidad reutilizable |
| En 10 min | Habilita APIs (GA4, Search Console, Sheets) | APIs activas |
| En 15 min | Da permisos de lectura en cada producto | Accesos granulares listos |
| En 25 min | Pide a Claude que instale los MCPs | Stack completo activo |
| Mes 1 | Rota la clave JSON | Buenas prácticas de seguridad |
Recursos para Seguir Aprendiendo
Documentación oficial
- Google Cloud — Service Accounts — Documentación completa
- Google Cloud — Best practices for managing service account keys — Buenas prácticas oficiales
- Workload Identity Federation — Alternativa avanzada sin claves JSON
Posts complementarios
- Cómo conectar Google Analytics con Claude vía MCP — Aplicación inmediata
- Cómo conectar Google Ads con Claude vía MCP — Caso con autenticación extra
- Mejores MCP servers para Claude Code — Catálogo
- Qué es MCP — Concepto
- AI-Driven Growth Marketing — Estrategia
Fuentes
- Google Cloud Security Report Q1 2026 — Datos de incidentes en SAs
- Google Cloud — IAM documentation — Actualizada abril 2026
- Análisis propio (javadex.es, abril 2026) — 47 SAs configuradas en proyectos de clientes Q1 2026
Posts Relacionados
- Tutorial GA4 + Claude vía MCP
- Tutorial Google Ads + Claude vía MCP
- AI-Driven Growth Marketing
- Mejores MCP servers para Claude Code
- Qué es MCP
Actualización abril 2026: Google sigue empujando Workload Identity Federation como alternativa a las claves JSON estáticas. Si despliegas MCP servers en GKE, Cloud Run o GitHub Actions, valora migrar.
En Resumen
- Service account = identidad robot de Google Cloud que la IA usa para autenticarse contra cualquier API de Google
- Una sola SA puede tener acceso a múltiples productos (GA4, Ads, Search Console, Sheets, Drive)
- Coste: 0 EUR. Tiempo de creación: 10 minutos
- Permisos por defecto: solo lectura. Da escritura solo si Claude debe modificar recursos
- Buena práctica agencia: una SA por cliente para evitar cruces de datos en reportes
- Rota la clave JSON cada 90 días y nunca la subas a Git
- Eliminar una clave comprometida revoca el acceso en segundos sin tirar la SA entera
