Google MCP

Un servidor MCP todo en uno para Google Workspace

Documentación

Servidor Google MCP

Un servidor integral del Protocolo de Contexto de Modelo (MCP) para la integración con Google, que proporciona acceso a Google Calendar, Docs, Sheets, Slides, Drive, Gmail, Contacts, YouTube, Tasks, Forms, Chat y Meet.

Características

Google Forms

  • Crear y gestionar formularios de Google
  • Agregar preguntas (opción múltiple, respuesta corta, casillas de verificación, etc.)
  • Agregar saltos de página, elementos de texto, imágenes y videos
  • Listar y recuperar respuestas de formularios
  • Actualizar la configuración del formulario (modo de cuestionario, etc.)

Google Chat

  • Listar, crear y gestionar espacios de Chat
  • Enviar, actualizar y eliminar mensajes
  • Agregar y quitar reacciones
  • Gestionar miembros del espacio
  • Soporte de hilos para conversaciones

Google Meet

  • Crear espacios de reunión con controles de acceso
  • Programar reuniones mediante la integración con Calendar
  • Crear reuniones instantáneas
  • Listar y acceder a registros de conferencias
  • Ver información de participantes
  • Acceder a grabaciones y transcripciones de reuniones

Google Calendar

  • Listar calendarios y eventos
  • Crear, actualizar y eliminar eventos
  • Agregar eventos rápidamente usando lenguaje natural
  • Obtener los eventos de hoy y los próximos eventos
  • Consultar disponibilidad libre/ocupado

Google Gmail

  • Leer, buscar y listar correos electrónicos
  • Enviar correos y responder a hilos, con archivos adjuntos
  • Listar y descargar archivos adjuntos en mensajes recibidos
  • Marcar como leído/no leído, mover a la papelera
  • Listar etiquetas y organizar correos

Google Contacts (API de People)

  • Listar, buscar y gestionar contactos
  • Crear, actualizar y eliminar contactos
  • Listar grupos de contactos

Google Drive

  • Listar, buscar y explorar archivos y carpetas
  • Subir, descargar, copiar, mover y eliminar archivos, de texto o binarios
  • Reemplazar el contenido de un archivo existente
  • Exportar archivos de Google Workspace a otros formatos (PDF, DOCX, CSV, ...)
  • Crear carpetas
  • Renombrar archivos

Google Docs

  • Crear nuevos documentos con contenido inicial opcional
  • Leer el contenido del documento
  • Insertar y agregar texto
  • Buscar y reemplazar texto
  • Listar todos los documentos

Google Sheets

  • Crear hojas de cálculo con múltiples hojas
  • Leer valores de rangos
  • Actualizar y agregar valores
  • Limpiar rangos
  • Agregar y eliminar hojas
  • Listar todas las hojas de cálculo

Google Slides

  • Crear y gestionar presentaciones
  • Agregar, eliminar y duplicar diapositivas
  • Agregar cuadros de texto e imágenes
  • Buscar y reemplazar texto
  • Listar todas las presentaciones

Google YouTube

  • Buscar videos, canales y listas de reproducción
  • Obtener detalles de videos y canales
  • Ver y gestionar listas de reproducción
  • Obtener comentarios de videos
  • Ver suscripciones y videos que me gustan
  • Calificar videos

Google Tasks (Alternativa a Keep)

  • Gestionar listas de tareas (similares a las categorías de Keep)
  • Crear, actualizar, completar y eliminar tareas
  • Las tareas admiten notas/descripciones (similares a las notas de Keep)
  • Herramientas de "notas" convenientes que brindan funcionalidad similar a Keep

Nota: Google Keep no tiene una API pública oficial. Este servidor utiliza la API de Google Tasks como alternativa, que proporciona capacidades similares de toma de notas a través de tareas con descripciones.

Instalación

# Clone the repository
cd google-mcp

# Install dependencies
pnpm install

# Build the project
pnpm build

Configuración de Google Cloud

Antes de usar este servidor, debe configurar las credenciales de Google Cloud:

1. Crear un proyecto de Google Cloud

  1. Vaya a Consola de Google Cloud
  2. Cree un nuevo proyecto o seleccione uno existente
  3. Habilite las siguientes API:
    • API de Google Calendar
    • API de Google Docs
    • API de Google Sheets
    • API de Google Slides
    • API de Google Drive
    • API de Gmail
    • API de People (Contactos)
    • API de datos de YouTube v3
    • API de Google Tasks
    • API de Google Forms
    • API de Google Chat
    • API REST de Google Meet

2. Crear credenciales OAuth 2.0

  1. Navegue a API y servicios > Credenciales
  2. Haga clic en Crear credenciales > ID de cliente de OAuth
  3. Seleccione Aplicación de escritorio como tipo de aplicación
  4. Descargue el archivo JSON

3. Colocar el archivo de credenciales

Guarde el archivo JSON descargado como credentials.json en la ubicación adecuada para su plataforma:

Linux:

~/.config/google-mcp/credentials.json

(o $XDG_CONFIG_HOME/google-mcp/credentials.json si XDG_CONFIG_HOME está configurado)

macOS:

~/Library/Application Support/google-mcp/credentials.json

Windows:

%APPDATA%\google-mcp\credentials.json

(normalmente C:\Users\<username>\AppData\Roaming\google-mcp\credentials.json)

El archivo debería verse así:

{
  "installed": {
    "client_id": "YOUR_CLIENT_ID.apps.googleusercontent.com",
    "project_id": "your-project-id",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_secret": "YOUR_CLIENT_SECRET",
    "redirect_uris": ["http://localhost:3000/oauth2callback"]
  }
}

Uso con clientes MCP

El servidor se ejecuta como un trabajador agrupado de larga duración, no como un subproceso de stdio. Expone el transporte HTTP Streamable actual en /mcp y conserva el transporte HTTP+SSE heredado en /sse más /messages para clientes más antiguos. Inicie el trabajador una vez y luego apunte los clientes a /mcp.

Inicie el trabajador:

node /path/to/google-mcp/dist/index.js
# or from the project directory:
pnpm dev

Escucha en 127.0.0.1:3015 de forma predeterminada. Anule con GOOGLE_MCP_HOST y GOOGLE_MCP_PORT (o PORT).

Agregue a su configuración de ajustes de MCP:

{
  "mcpServers": {
    "google": {
      "url": "http://127.0.0.1:3015/mcp"
    }
  }
}

Cada cliente que se conecta obtiene su propia sesión de MCP mientras comparte una sesión autenticada de Google, por lo que solo completa el flujo de OAuth una vez sin importar cuántos clientes o agentes se conecten. Los clientes SSE heredados pueden continuar usando http://127.0.0.1:3015/sse.

Autenticación

En el primer uso, llame a la herramienta google_auth para iniciar la autenticación OAuth:

  1. El servidor proporcionará una URL para autenticarse
  2. Abra la URL en un navegador e inicie sesión con su cuenta de Google
  3. Conceda los permisos solicitados
  4. La autenticación se completará automáticamente

Los tokens se almacenan localmente y se actualizarán automáticamente:

  • Linux: ~/.local/share/google-mcp/tokens.json (o $XDG_DATA_HOME/google-mcp/)
  • macOS: ~/Library/Application Support/google-mcp/tokens.json
  • Windows: %APPDATA%\google-mcp\tokens.json

Archivos locales

Las herramientas que leen un archivo local (path) o escriben uno (savePath) resuelven cada ruta dentro de un único directorio de espacio aislado, que por defecto es ~/Downloads/google-mcp. Las rutas relativas se toman desde esa raíz; las rutas absolutas deben estar dentro de ella.

Esto es importante porque los argumentos provienen de un modelo que puede haber leído un correo electrónico hostil. Sin un límite, un "adjuntar ~/.ssh/id_rsa" inyectado es una primitiva de exfiltración y un savePath inyectado de ~/.ssh/authorized_keys es ejecución de código. Dentro del espacio aislado, ambos son inertes.

export GOOGLE_MCP_FILE_ROOT="$HOME/Documents/mcp-files"

Independientemente de la raíz, el servidor se niega a tocar directorios de claves y credenciales (.ssh, .aws, .gnupg, ...) o archivos que parezcan secretos (*.pem, *.key, tokens.json, credentials.json, .env*), no sigue enlaces simbólicos fuera de la raíz y nunca sobrescribe un archivo existente.

Las transferencias en línea están limitadas a 1 MB, ya que llegan al contexto del modelo; pase savePath para cualquier cosa más grande, hasta 25 MB.

Herramientas disponibles

Autenticación

HerramientaDescripción
google_authIniciar autenticación OAuth
google_auth_statusVerificar estado de autenticación
google_auth_codeEstablecer manualmente el código de autenticación
google_logoutCerrar sesión y borrar tokens

Google Calendar

HerramientaDescripción
calendar_listListar todos los calendarios
calendar_getObtener detalles del calendario
calendar_list_eventsListar eventos del calendario
calendar_get_eventObtener detalles del evento
calendar_create_eventCrear nuevo evento
calendar_update_eventActualizar evento existente
calendar_delete_eventEliminar un evento
calendar_quick_addAgregar evento mediante lenguaje natural
calendar_get_freebusyVerificar disponibilidad
calendar_todayObtener los eventos de hoy
calendar_upcomingObtener próximos eventos

Google Gmail

HerramientaDescripción
gmail_get_profileObtener información del perfil de Gmail
gmail_list_labelsListar etiquetas de Gmail
gmail_list_messagesListar correos electrónicos
gmail_get_messageObtener correo electrónico específico
gmail_sendEnviar un correo electrónico
gmail_replyResponder a un correo electrónico
gmail_get_attachmentDescargar un archivo adjunto de un mensaje
gmail_trashMover a la papelera
gmail_mark_readMarcar como leído
gmail_mark_unreadMarcar como no leído
gmail_searchBuscar correos electrónicos
gmail_get_unreadObtener correos no leídos
gmail_get_threadObtener hilo de correo electrónico

Google Contacts

HerramientaDescripción
contacts_listListar contactos
contacts_getObtener detalles del contacto
contacts_searchBuscar contactos
contacts_createCrear contacto
contacts_deleteEliminar contacto
contacts_list_groupsListar grupos de contactos

Google Drive

HerramientaDescripción
drive_list_filesListar archivos con filtrado
drive_get_fileObtener metadatos del archivo
drive_download_fileDescargar contenido del archivo, texto o binario
drive_upload_fileSubir un nuevo archivo
drive_update_fileReemplazar el contenido de un archivo existente
drive_delete_fileEliminar un archivo
drive_create_folderCrear una nueva carpeta
drive_searchBuscar archivos por contenido
drive_move_fileMover archivo a carpeta
drive_copy_fileCopiar un archivo
drive_rename_fileRenombrar un archivo

Google Docs

HerramientaDescripción
docs_createCrear un nuevo documento
docs_readLeer contenido del documento
docs_insert_textInsertar texto en una posición
docs_append_textAgregar texto al final
docs_replace_textBuscar y reemplazar texto
docs_listListar todos los documentos

Google Sheets

HerramientaDescripción
sheets_createCrear hoja de cálculo
sheets_getObtener información de la hoja de cálculo
sheets_readLeer valores de un rango
sheets_updateActualizar valores en un rango
sheets_appendAgregar filas
sheets_clearLimpiar un rango
sheets_add_sheetAgregar una nueva hoja
sheets_delete_sheetEliminar una hoja
sheets_listListar todas las hojas de cálculo

Google Slides

HerramientaDescripción
slides_createCrear presentación
slides_getObtener presentación
slides_listListar presentaciones
slides_add_slideAgregar una diapositiva
slides_delete_slideEliminar una diapositiva
slides_add_textAgregar cuadro de texto
slides_add_imageAgregar imagen
slides_replace_textBuscar/reemplazar texto
slides_duplicate_slideDuplicar diapositiva

Google YouTube

HerramientaDescripción
youtube_searchBuscar en YouTube
youtube_get_videoObtener detalles del video
youtube_get_channelObtener detalles del canal
youtube_get_my_channelObtener su canal
youtube_list_playlistsListar sus listas de reproducción
youtube_get_playlist_itemsObtener videos de la lista de reproducción
youtube_get_video_commentsObtener comentarios del video
youtube_list_subscriptionsListar suscripciones
youtube_list_liked_videosListar videos que me gustan
youtube_rate_videoMe gusta/No me gusta video

Google Tasks

HerramientaDescripción
tasks_list_tasklistsListar listas de tareas
tasks_create_tasklistCrear lista de tareas
tasks_delete_tasklistEliminar lista de tareas
tasks_list_tasksListar tareas
tasks_create_taskCrear una tarea
tasks_update_taskActualizar una tarea
tasks_delete_taskEliminar una tarea
tasks_complete_taskMarcar tarea como completada

Notas (similares a Keep)

HerramientaDescripción
notes_createCrear una nota rápida
notes_listListar todas las notas
notes_updateActualizar una nota
notes_deleteEliminar una nota

Google Forms

HerramientaDescripción
forms_createCrear un nuevo formulario
forms_getObtener detalles del formulario
forms_update_infoActualizar título/descripción
forms_add_questionAgregar una pregunta
forms_delete_itemEliminar elemento del formulario
forms_list_responsesListar respuestas del formulario
forms_get_responseObtener respuesta específica
forms_add_page_breakAgregar salto de página
forms_add_textAgregar elemento de texto
forms_add_imageAgregar imagen
forms_add_videoAgregar video de YouTube

Google Chat

HerramientaDescripción
chat_list_spacesListar espacios de Chat
chat_get_spaceObtener detalles del espacio
chat_create_spaceCrear un espacio
chat_delete_spaceEliminar un espacio
chat_list_messagesListar mensajes
chat_get_messageObtener detalles del mensaje
chat_send_messageEnviar un mensaje
chat_update_messageActualizar un mensaje
chat_delete_messageEliminar un mensaje
chat_list_membersListar miembros del espacio
chat_add_memberAñadir un miembro
chat_remove_memberEliminar un miembro
chat_add_reactionAñadir reacción con emoji

Google Meet

HerramientaDescripción
meet_create_spaceCrear espacio de reunión
meet_get_spaceObtener detalles del espacio
meet_end_conferenceFinalizar reunión activa
meet_scheduleProgramar una reunión
meet_create_instantCrear reunión instantánea
meet_get_by_eventObtener reunión desde evento
meet_list_upcomingListar próximas reuniones
meet_list_conference_recordsListar reuniones pasadas
meet_get_conference_recordObtener registro de reunión
meet_list_participantsListar participantes
meet_list_recordingsListar grabaciones
meet_get_recordingObtener grabación
meet_list_transcriptsListar transcripciones
meet_get_transcriptObtener transcripción
meet_list_transcript_entriesObtener texto de transcripción

Ejemplos

Enviar un Correo Electrónico

Use gmail_send with to "recipient@example.com", subject "Hello", and body "This is a test email."

Crear un Evento de Calendario

Use calendar_create_event with summary "Team Meeting", startDateTime "2025-01-15T10:00:00-05:00", and endDateTime "2025-01-15T11:00:00-05:00"

Buscar en YouTube

Use youtube_search with query "MCP tutorial" and type "video"

Crear un Documento de Google

Use docs_create with title "Meeting Notes" and content "# Weekly Meeting\n\nAttendees: ..."

Leer una Hoja de Cálculo

Use sheets_read with spreadsheetId "abc123" and range "Sheet1!A1:D10"

Buscar en Drive

Use drive_search with query "quarterly report"

Crear una Nota

Use notes_create with title "Shopping List" and content "- Milk\n- Eggs\n- Bread"

Crear un Formulario de Google

Use forms_create with title "Customer Survey" and description "Help us improve our service"

Enviar un Mensaje de Chat

Use chat_send_message with spaceName "spaces/AAAAA" and text "Hello team!"

Programar una Reunión de Google Meet

Use meet_schedule with summary "Team Standup", startTime "2025-01-15T09:00:00-05:00", and endTime "2025-01-15T09:30:00-05:00"

Desarrollo

# Run in development mode with hot reload
pnpm dev

# Build for production
pnpm build

# Run tests
pnpm test

Licencia

Licencia MIT - consulte LICENSE para más detalles.

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de Extracción (Pull Request).