Skip to main content
Glama

Google Calendar and Meet MCP Server

by INSIDE-HAIR
TEAM_SECURITY.md18.5 kB
# 🔐 Team Security Guide - Google Meet MCP Server v3.0 ## Guía de Seguridad para Equipos de Trabajo Esta guía está diseñada específicamente para equipos que implementan el Google Meet MCP Server a través de Smithery, enfocándose en las mejores prácticas de seguridad para entornos corporativos. --- ## 🎯 **Principios de Seguridad para Equipos** ### **1. Principio de Responsabilidad Individual** ``` 👤 Cada miembro del equipo = Sus propias credenciales 🔑 Cada usuario = Su propia configuración OAuth 🛡️ Cada persona = Responsable de su seguridad ``` ### **2. Principio de Separación** ``` ❌ NO compartir credenciales entre miembros ❌ NO usar credenciales de "servicio compartido" ❌ NO almacenar credenciales en ubicaciones compartidas ✅ SÍ crear credenciales individuales por persona ``` ### **3. Principio de Mínimo Privilegio** ``` ✅ Solo scopes necesarios para la funcionalidad ✅ Solo APIs habilitadas que se van a usar ✅ Solo permisos de Google Workspace requeridos ``` --- ## 👥 **Roles y Responsabilidades** ### **A. Administrador de IT/Seguridad** #### **Responsabilidades**: - ✅ **Configurar políticas de seguridad** para el equipo - ✅ **Crear proyecto base** en Google Cloud Console - ✅ **Definir estándares** de naming y ubicación de archivos - ✅ **Monitorear compliance** y usage patterns - ✅ **Gestionar onboarding/offboarding** de miembros #### **Acciones Requeridas**: 1. **Crear Proyecto Team en Google Cloud**: ```yaml Proyecto: "MCP-GoogleMeet-[TEAM-NAME]" Billing Account: [Corporate Account] Organization: [Your Google Workspace Org] APIs a habilitar: - Google Calendar API v3 - Google Meet API v2 Administradores del proyecto: - IT Admin principal - Backup admin ``` 2. **Configurar OAuth Consent Screen Corporativo**: ```yaml Tipo: Interno (Google Workspace) Nombre: "Google Meet MCP Server - [TEAM]" Logo: [Corporate logo] Dominios autorizados: [your-company.com] Email soporte: [it-support@company.com] Scopes requeridos: - https://www.googleapis.com/auth/calendar - https://www.googleapis.com/auth/meetings.space.created - https://www.googleapis.com/auth/meetings.space.readonly - https://www.googleapis.com/auth/meetings.space.settings ``` 3. **Definir Políticas de Seguridad**: ```markdown # Política de Credenciales - Google Meet MCP Server ## Ubicación Estándar de Archivos - macOS: ~/Documents/MCP-Credentials/ - Windows: %USERPROFILE%\Documents\MCP-Credentials\ - Linux: ~/.config/mcp/ ## Naming Convention - Formato: google-meet-credentials-[firstname-lastname].json - Ejemplo: google-meet-credentials-john-smith.json ## Permisos de Archivo - chmod 600 (solo usuario puede leer/escribir) - Verificar con: ls -la credentials.json ## Rotación de Credenciales - Cada 6 meses para equipos críticos - Cada 12 meses para equipos estándar - Inmediatamente si hay incidente de seguridad ## Respaldo de Credenciales - NO realizar backups automáticos - Usuario responsable de re-crear si se pierde - Procedimiento documentado para re-creación ``` ### **B. Miembros del Equipo** #### **Responsabilidades**: - ✅ **Crear sus propias credenciales** siguiendo políticas - ✅ **Guardar credenciales de forma segura** según estándares - ✅ **Configurar su instancia individual** en Smithery - ✅ **Reportar problemas de seguridad** inmediatamente - ✅ **Seguir procedimientos** de rotación de credenciales #### **Proceso de Onboarding Seguro**: 1. **Recibir acceso al proyecto Google Cloud**: ``` Email de invitación → Aceptar → Verificar acceso al proyecto ``` 2. **Crear credenciales OAuth individuales**: ``` Google Cloud Console → APIs y servicios → Credenciales → + CREAR CREDENCIALES → ID de cliente OAuth 2.0 → Aplicación de escritorio → Nombrar con tu nombre ``` 3. **Configurar almacenamiento seguro**: ```bash # Seguir naming convention del equipo mkdir -p ~/Documents/MCP-Credentials chmod 700 ~/Documents/MCP-Credentials mv ~/Downloads/client_secret_*.json ~/Documents/MCP-Credentials/google-meet-credentials-[tu-nombre].json chmod 600 ~/Documents/MCP-Credentials/google-meet-credentials-[tu-nombre].json ``` ### **C. Team Lead/Project Manager** #### **Responsabilidades**: - ✅ **Coordinar implementación** con IT y miembros - ✅ **Documentar casos de uso** y requirements - ✅ **Facilitar training** en mejores prácticas - ✅ **Revisar compliance** regularmente --- ## 🏢 **Configuración Corporativa** ### **A. Google Workspace Integration** #### **1. Configuración de Organización**: ```yaml # En Google Admin Console Aplicaciones → Aplicaciones OAuth adicionales → Agregar "Google Meet MCP Server - [TEAM]" → Configurar como "Confiable" → Limitar a usuarios específicos (opcional) Política de acceso: - Solo usuarios del dominio corporativo - Requiere 2FA habilitado - Auditoría automática de accesos ``` #### **2. Configuración de Proyecto Compartido**: ```yaml # Estructura recomendada Organización: [company.com] ├── Folder: "MCP Servers" ├── Project: "MCP-GoogleMeet-Engineering" ├── Project: "MCP-GoogleMeet-Sales" └── Project: "MCP-GoogleMeet-Marketing" Cada proyecto tiene: - Billing account corporativo - APIs habilitadas consistentemente - IAM roles definidos por equipo - Audit logging habilitado ``` ### **B. Network Security** #### **1. Firewall y Access Control**: ```yaml # Si usando deployment on-premises Network Security: Outbound Rules: - Allow: *.googleapis.com:443 (Google APIs) - Allow: accounts.google.com:443 (OAuth) - Block: All other external traffic Monitoring: - Log all API calls to SIEM - Alert on unusual usage patterns - Monitor for failed auth attempts ``` #### **2. Endpoint Protection**: ```yaml # Requerimientos para estaciones de trabajo Antivirus: Corporativo actualizado Firewall: Habilitado OS Updates: Auto-update habilitado Disk Encryption: BitLocker/FileVault/LUKS Prohibited Actions: - No instalar en máquinas personales - No usar en redes públicas WiFi - No acceder desde dispositivos no corporativos ``` --- ## 📊 **Monitoreo y Auditoría** ### **A. Métricas de Seguridad** #### **1. Dashboard Corporativo**: ```yaml # Métricas a trackear semanalmente KPIs de Seguridad: - Número de usuarios activos por equipo - Frecuencia de uso por usuario - Errores de autenticación por día - APIs calls por usuario/día - Credenciales próximas a expirar Alertas Críticas: - > 10 errores auth por usuario/hora - API usage > 200% del promedio - Acceso desde IPs no corporativas - Credenciales comprometidas (Google alerts) ``` #### **2. Reportes de Compliance**: ```yaml # Reporte mensual automático Compliance Report: Users with valid credentials: [X/Y] Users following naming convention: [X/Y] Users with proper file permissions: [X/Y] Credential rotation compliance: [X/Y] Action Items: - Users requiring credential rotation: [List] - Users with security issues: [List] - Training requirements: [List] ``` ### **B. Logs y Auditoría** #### **1. Centralized Logging**: ```yaml # Integración con SIEM corporativo Log Sources: - Google Cloud Audit Logs - Smithery platform logs - Claude Desktop usage logs (if available) - Endpoint security logs Log Correlation: - User → Credential → API Call → Outcome - Temporal patterns per user - Cross-reference with HR systems (joiners/leavers) ``` #### **2. Incident Response**: ```yaml # Procedimiento de respuesta a incidentes P0 - Critical (Credential compromise): 1. Immediate credential revocation 2. Force re-authentication for user 3. Audit all recent API calls 4. Generate new credentials 5. Security team notification 6. Incident report within 24h P1 - High (Unusual usage pattern): 1. Alert user and team lead 2. Review logs for anomalies 3. Verify legitimate business use 4. Document findings 5. Update monitoring thresholds if needed P2 - Medium (Compliance violation): 1. Notify user of violation 2. Provide remediation steps 3. Set deadline for compliance 4. Schedule follow-up verification 5. Training if repeated violations ``` --- ## 🛠️ **Herramientas de Administración** ### **A. Scripts de Gestión** #### **1. Verificación de Compliance**: ```bash #!/bin/bash # team-compliance-check.sh # Verifica compliance de credenciales del equipo TEAM_MEMBERS=( "john.smith" "jane.doe" "mike.wilson" ) STANDARD_PATH="~/Documents/MCP-Credentials" echo "🔍 Team Compliance Check - $(date)" echo "==================================" for user in "${TEAM_MEMBERS[@]}"; do echo "Checking user: $user" # Check if following naming convention expected_file="$STANDARD_PATH/google-meet-credentials-$user.json" if [[ -f "$expected_file" ]]; then echo " ✅ Credential file found" # Check permissions perms=$(stat -c "%a" "$expected_file" 2>/dev/null || stat -f "%A" "$expected_file" 2>/dev/null) if [[ "$perms" == "600" ]]; then echo " ✅ Correct permissions (600)" else echo " ❌ Incorrect permissions ($perms) - should be 600" fi else echo " ❌ Credential file not found or wrong location" fi echo "" done ``` #### **2. Rotación de Credenciales**: ```bash #!/bin/bash # credential-rotation-reminder.sh # Envía recordatorios de rotación de credenciales # Lista de usuarios y fechas de última rotación declare -A LAST_ROTATION LAST_ROTATION[john.smith]="2024-01-15" LAST_ROTATION[jane.doe]="2024-02-01" ROTATION_INTERVAL_DAYS=180 # 6 meses CURRENT_DATE=$(date +%Y-%m-%d) for user in "${!LAST_ROTATION[@]}"; do last_rotation="${LAST_ROTATION[$user]}" days_since=$(( ($(date -d "$CURRENT_DATE" +%s) - $(date -d "$last_rotation" +%s)) / 86400 )) if [[ $days_since -gt $ROTATION_INTERVAL_DAYS ]]; then echo "⚠️ ALERT: $user needs credential rotation ($days_since days ago)" # Enviar email/Slack notification send_rotation_reminder "$user" "$days_since" elif [[ $days_since -gt $((ROTATION_INTERVAL_DAYS - 30)) ]]; then echo "📅 WARNING: $user should rotate credentials soon ($days_since days ago)" fi done ``` ### **B. Monitoring Dashboards** #### **1. Google Cloud Monitoring**: ```yaml # Dashboard configuration Dashboard: "MCP Team Security" Widgets: - API Calls per User (7 days) - Authentication Success Rate - Error Rate by User - Quota Usage per API - Geographic Access Patterns Alerts: - API error rate > 5% - Unusual access patterns - Quota approaching limits - Failed authentications spike ``` #### **2. Smithery Team Dashboard**: ```yaml # Si Smithery ofrece team features Team Dashboard: Active Deployments: [Count per user] Server Health: [Status per user] Resource Usage: [CPU/Memory per deployment] Error Rates: [Per user, last 24h] Team Policies: Allowed Configurations: [Standardized configs] Restricted Settings: [Debug mode, etc.] Mandatory Updates: [Security patches] ``` --- ## 📋 **Checklist de Implementación para Equipos** ### **Fase 1: Preparación (IT Admin)** - [ ] ✅ Proyecto Google Cloud creado para el equipo - [ ] ✅ APIs Calendar y Meet habilitadas - [ ] ✅ OAuth consent screen configurado (Interno) - [ ] ✅ Políticas de seguridad documentadas - [ ] ✅ Naming conventions definidas - [ ] ✅ Ubicaciones estándar de archivos definidas - [ ] ✅ Procedimientos de rotación creados - [ ] ✅ Monitoreo y alertas configurados ### **Fase 2: Onboarding (Cada Usuario)** - [ ] ✅ Acceso al proyecto Google Cloud confirmado - [ ] ✅ Credenciales OAuth individuales creadas - [ ] ✅ Archivos guardados en ubicación estándar - [ ] ✅ Permisos de archivo configurados (600) - [ ] ✅ Naming convention seguida - [ ] ✅ Servidor desplegado en Smithery - [ ] ✅ Claude Desktop conectado exitosamente - [ ] ✅ Pruebas básicas completadas ### **Fase 3: Operación (Team Lead)** - [ ] ✅ Todos los miembros operacionales - [ ] ✅ Documentación de casos de uso completada - [ ] ✅ Training en mejores prácticas realizado - [ ] ✅ Procedimientos de incidentes comunicados - [ ] ✅ Contactos de soporte definidos ### **Fase 4: Mantenimiento (IT Admin)** - [ ] ✅ Compliance check semanal automatizado - [ ] ✅ Reportes mensuales de seguridad - [ ] ✅ Plan de rotación de credenciales activo - [ ] ✅ Monitoreo de incidentes funcional - [ ] ✅ Procedimiento de offboarding definido --- ## 🚨 **Procedimientos de Emergencia** ### **A. Compromiso de Credenciales** #### **Detección**: ```yaml Indicadores de compromiso: - Google Security Alert recibido - API usage anómalo reportado - Usuario reporta actividad sospechosa - Monitoreo detecta patrones inusuales ``` #### **Respuesta Inmediata** (< 15 minutos): 1. **Revocar credenciales afectadas**: ``` Google Cloud Console → Credenciales → [Usuario] → REVOCAR ``` 2. **Deshabilitar servidor en Smithery**: ``` Smithery Dashboard → [Usuario] → Stop Server ``` 3. **Notificar equipo de seguridad**: ``` Alert: "SECURITY INCIDENT - MCP Credential Compromise - [User]" ``` #### **Investigación** (< 2 horas): 1. **Revisar audit logs**: ```bash # Google Cloud Audit Logs gcloud logging read "resource.type=project AND protoPayload.authenticationInfo.principalEmail=[user-email]" --limit=100 ``` 2. **Analizar patrones de acceso**: ```yaml Verificar: - IPs de origen inusuales - Horarios atípicos de acceso - APIs llamadas no habituales - Volumen de requests anómalo ``` 3. **Determinar alcance**: ```yaml Evaluar: - Qué datos fueron accedidos - Qué acciones fueron realizadas - Si otras cuentas están afectadas - Duración del compromiso ``` #### **Remediación** (< 24 horas): 1. **Generar nuevas credenciales**: ``` Usuario debe crear nuevas credenciales siguiendo procedimiento estándar ``` 2. **Re-configurar Smithery**: ``` Actualizar configuración con nuevas credenciales ``` 3. **Verificar funcionalidad**: ``` Ejecutar suite de pruebas para confirmar operación normal ``` 4. **Documentar incidente**: ```markdown # Incident Report - MCP Credential Compromise Date: [Date] User: [Affected User] Detection Method: [How discovered] Impact: [What was affected] Root Cause: [Why it happened] Remediation: [What was done] Prevention: [How to prevent recurrence] ``` ### **B. Offboarding de Empleados** #### **Proceso Inmediato** (Día de salida): 1. **Revocar todas las credenciales**: ``` Google Cloud Console → IAM → [Usuario] → Remover todos los roles ``` 2. **Deshabilitar servidores**: ``` Smithery → [Usuario] → Stop All Servers → Delete Configurations ``` 3. **Audit trail**: ``` Documentar todas las acciones de cleanup realizadas ``` #### **Proceso Extendido** (Semana siguiente): 1. **Revisar accesos históricos**: ``` Analizar logs de los últimos 30 días para actividad anómala ``` 2. **Verificar cleanup completo**: ``` Confirmar que no quedan accesos residuales en ningún sistema ``` 3. **Actualizar documentación**: ``` Remover usuario de todas las listas y procedimientos ``` --- ## 📈 **Métricas de Éxito** ### **A. KPIs de Seguridad** ```yaml Objetivos Trimestrales: Compliance Rate: >95% - Usuarios siguiendo naming convention - Archivos con permisos correctos - Credenciales rotadas a tiempo Incident Response Time: <2 horas - Desde detección hasta contención - Tiempo de resolución completa User Satisfaction: >4.0/5.0 - Facilidad de configuración - Claridad de documentación - Efectividad del soporte ``` ### **B. Métricas Operacionales** ```yaml Indicadores Mensuales: Active Users: [Count and trend] API Usage per User: [Average and outliers] Error Rate: <1% [Per user and aggregate] Support Tickets: [Count and resolution time] Training Completion: 100% [New users] ``` --- ## 🎓 **Programa de Training** ### **A. Onboarding Obligatorio** #### **Módulo 1: Conceptos de Seguridad (30 min)** - ¿Por qué credenciales individuales? - Riesgos de compartir credenciales - Principios de seguridad corporativa - Compliance y auditoría #### **Módulo 2: Configuración Práctica (45 min)** - Crear proyecto en Google Cloud - Generar credenciales OAuth - Configurar almacenamiento seguro - Deploy en Smithery #### **Módulo 3: Uso Responsable (15 min)** - Qué hacer y qué no hacer - Cómo reportar incidentes - Procedimientos de rotación - Recursos de soporte ### **B. Training Continuo** #### **Trimestral: Security Updates (15 min)** - Nuevas amenazas identificadas - Updates en procedimientos - Cambios en herramientas - Casos de estudio de incidentes #### **Anual: Compliance Review (30 min)** - Revisión de políticas - Auditoría personal de configuración - Feedback sobre procedimientos - Planning para mejoras --- ## 📞 **Contactos y Soporte** ### **A. Escalación de Incidentes** ```yaml P0 - Critical Security: Contact: Security Team Email: security-alerts@company.com Phone: +1-XXX-XXX-XXXX (24/7) Response SLA: 15 minutes P1 - High Impact: Contact: IT Support + Team Lead Email: it-support@company.com Response SLA: 2 hours P2 - Medium: Contact: IT Support Email: it-support@company.com Response SLA: 24 hours P3 - Low/Questions: Contact: Team Lead Email: team-lead@company.com Response SLA: 48 hours ``` ### **B. Documentación y Recursos** ```yaml Internal Resources: Team Wiki: [Internal link] Security Policies: [Internal link] Training Materials: [Internal link] Incident Reports: [Internal link] External Resources: Project Repository: https://github.com/INSIDE-HAIR/google-meet-mcp-server Smithery Support: https://smithery.ai/support Google Cloud Support: [Corporate support link] ``` --- **🛡️ La seguridad del equipo depende de que cada miembro siga estos procedimientos. When in doubt, ask for help rather than guess.** > 💡 **Remember**: Es mejor prevenir un incidente que tener que responder a uno. Take security seriously, but don't let it stop productivity.

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/INSIDE-HAIR/mcp-google-calendar-and-meet'

If you have feedback or need assistance with the MCP directory API, please join our Discord server