notebooklm-mcp-cli

Acceso programático a Google NotebookLM — mediante interfaz de línea de comandos (CLI) o servidor del Protocolo de Contexto de Modelo (MCP).

NotebookLM Web Importer

Importa páginas web y videos de YouTube a NotebookLM con un clic. Utilizado por más de 200,000 usuarios.

Instalar extensión de Chrome

Documentación

Guía de MCP

Referencia completa para el servidor MCP de Gemini Notebook (anteriormente Google NotebookLM) — 43 herramientas para asistentes de IA.

Instalación

# Install the package
uv tool install notebooklm-mcp-cli

# Add to Claude Code
claude mcp add --scope user gemini-notebook-mcp notebooklm-mcp

# Add to Gemini CLI
gemini mcp add --scope user gemini-notebook-mcp notebooklm-mcp

Nombrado del servidor: Usa gemini-notebook-mcp como nombre del servidor al registrarlo con tu agente. El ejecutable sigue siendo notebooklm-mcp. Si tienes un MCP de Gemini Notebook con automatización de navegador instalado bajo un nombre diferente (por ejemplo, notebooklm), elimínalo primero — agentes como Hermes se confunden cuando dos servidores exponen nombres de herramientas superpuestos (notebook_create, source_add, notebook_query, …).

Consulta la sección Migración desde otro Gemini Notebook MCP en la guía de inicio para ver el procedimiento completo paso a paso.

Autenticación

Antes de usar las herramientas MCP, autentícate:

nlm login

O usa la herramienta de autenticación independiente:

nlm login

Referencia de Herramientas

Notebooks (6 herramientas)

HerramientaDescripción
notebook_listListar todos los notebooks
notebook_createCrear nuevo notebook
notebook_getObtener detalles del notebook con fuentes
notebook_describeObtener resumen de IA y temas sugeridos
notebook_renameRenombrar un notebook
notebook_deleteEliminar notebook (requiere confirm=True)

Fuentes (7 herramientas)

HerramientaDescripción
source_addUnificada - Añadir URL, texto, archivo o fuente de Drive
source_list_driveListar fuentes con estado de frescura de Drive; usa skip_freshness=True para notebooks grandes cuando no se necesite frescura
source_sync_driveSincronizar fuentes de Drive desactualizadas
source_deleteEliminar fuente (requiere confirm=True)
source_describeObtener resumen de IA con palabras clave
source_get_contentObtener contenido de texto sin procesar
source_renameRenombrar una fuente en un notebook

Parámetros de source_list_drive:

source_list_drive(
    notebook_id="...",
    skip_freshness=False,  # True skips per-source freshness API calls for faster listing
)

Parámetros de source_add:

source_add(
    notebook_id="...",
    source_type="url",        # url | text | file | drive
    url="https://...",        # for source_type=url
    text="...",               # for source_type=text
    title="...",              # optional title
    file_path="/path/to.pdf", # for source_type=file
    document_id="...",        # for source_type=drive
    doc_type="doc",           # doc | slides | sheets | pdf
    wait=True,                # wait for processing to complete
    wait_timeout=120.0        # seconds to wait
)

Consultas (4 herramientas)

HerramientaDescripción
notebook_queryPreguntar a la IA sobre fuentes en el notebook
notebook_query_startIniciar una consulta de forma asíncrona para notebooks con muchas fuentes o preguntas de larga duración
notebook_query_statusConsultar una consulta asíncrona iniciada con notebook_query_start
chat_configureEstablecer objetivo del chat y longitud de respuesta

Las consultas usan un presupuesto de 120 segundos de tiempo real por defecto. Los notebooks con muchas fuentes pueden tardar más que eso; reintenta con timeout=180 (u otro valor adecuado al notebook). Para operaciones más largas, usa notebook_query_start y consulta notebook_query_status hasta que informe completed o error. Un tiempo de espera devuelve un error estructurado con una sugerencia de reintento en lugar de un fallo de transporte poco informativo.

Sesiones de Chat (3 herramientas)

HerramientaDescripción
chat_listListar sesiones de chat de un notebook
chat_getObtener transcripción completa de una sesión de chat (por defecto la más reciente)
chat_exportExportar una transcripción de chat a Markdown o JSON

Contenido de Studio (4 herramientas)

HerramientaDescripción
studio_createUnificada - Crear cualquier tipo de artefacto
studio_statusComprobar progreso de generación
studio_deleteEliminar artefacto (requiere confirm=True)
studio_reviseRevisar diapositivas en una presentación existente (requiere confirm=True)

Tipos de artefacto de studio_create:

  • audio - Podcast (formatos: deep_dive, brief, critique, debate)
  • video - Resumen en video (formatos: explainer, brief, cinematic, short)
  • report - Informe de texto (Briefing Doc, Study Guide, Blog Post)
  • quiz - Cuestionario de opción múltiple
  • flashcards - Tarjetas de estudio
  • mind_map - Mapa mental visual
  • slide_deck - Diapositivas de presentación
  • infographic - Infografía visual
  • data_table - Tabla de datos estructurada

Descargas (2 herramientas)

HerramientaDescripción
download_artifactUnificada - Descargar cualquier tipo de artefacto
download_all_artifactsDescargar todos los artefactos completados de un notebook — o todos los notebooks con all_notebooks=True — en carpetas por notebook

Tipos de download_artifact: audio, video, report, mind_map, slide_deck, infographic, data_table, data_table_xlsx, quiz, flashcards

Exportaciones (1 herramienta)

HerramientaDescripción
export_artifactExportar a Google Docs/Sheets

Investigación (3 herramientas)

HerramientaDescripción
research_startIniciar investigación web/Drive
research_statusConsultar progreso de investigación
research_importImportar fuentes descubiertas (se admiten timeout y cited_only)

Notas (1 herramienta unificada)

HerramientaDescripción
noteUnificada - Gestionar notas (acción: list, create, update, delete)

Acciones de note:

note(notebook_id, action="list")             # List all notes
note(notebook_id, action="create", content="...", title="...")
note(notebook_id, action="update", note_id="...", content="...")
note(notebook_id, action="delete", note_id="...", confirm=True)

Etiquetas (1 herramienta)

HerramientaDescripción
labelUnificada - Gestionar etiquetas de fuentes (acción: auto, list, reorganize, create, rename, set_emoji, move_source, delete)

Acciones de label:

label(notebook_id="abc", action="auto")           # AI auto-labels all sources
label(notebook_id="abc", action="list")           # List current labels
label(notebook_id="abc", action="reorganize", unlabeled_only=True)
label(notebook_id="abc", action="create", name="Research", emoji="📚")
label(notebook_id="abc", action="move_source", label_id="...", source_id="...")
label(notebook_id="abc", action="delete", label_id="...", confirm=True)

Compartir (4 herramientas)

HerramientaDescripción
notebook_share_statusObtener configuración de uso compartido
notebook_share_publicHabilitar/deshabilitar enlace público
notebook_share_inviteInvitar colaborador por correo electrónico
notebook_share_batchInvitar múltiples colaboradores en una sola solicitud

Autenticación (2 herramientas)

HerramientaDescripción
refresh_authRecargar tokens de autenticación
save_auth_tokensGuardar cookies (método alternativo)

Servidor (1 herramienta)

HerramientaDescripción
server_infoObtener versión y comprobar actualizaciones

Lote y Multi-Notebook (2 herramientas)

HerramientaDescripción
batchUnificada — Operaciones por lotes en múltiples notebooks (acción: query, add_source, create, delete, studio)
cross_notebook_queryConsultar múltiples notebooks y obtener respuestas agregadas con citas por notebook

Acciones de batch:

batch(action="query", query="What are the key findings?", notebook_names="AI Research, Dev Tools")
batch(action="add_source", source_url="https://...", tags="ai,research")
batch(action="create", titles="Project A, Project B, Project C")
batch(action="delete", notebook_names="Old Project", confirm=True)
batch(action="studio", artifact_type="audio", tags="research", confirm=True)

cross_notebook_query:

cross_notebook_query(query="Compare approaches", notebook_names="Notebook A, Notebook B")
cross_notebook_query(query="Summarize", tags="ai,research")
cross_notebook_query(query="Everything", all=True)

Pipelines (1 herramienta)

HerramientaDescripción
pipelineUnificada — Listar o ejecutar flujos de trabajo de múltiples pasos (acción: list, run)

Acciones de pipeline:

pipeline(action="list")  # List available pipelines
pipeline(action="run", notebook_id="...", pipeline_name="ingest-and-podcast", input_url="https://...")

Pipelines integrados: ingest-and-podcast, research-and-report, multi-format

Etiquetas y Selección Inteligente (1 herramienta)

HerramientaDescripción
tagUnificada — Etiquetar notebooks y encontrar los relevantes (acción: add, remove, list, select)

Acciones de tag:

tag(action="add", notebook_id="...", tags="ai,research,llm")
tag(action="remove", notebook_id="...", tags="ai")
tag(action="list")  # List all tagged notebooks
tag(action="select", query="ai research")  # Find notebooks by tag match

Ejemplos de Flujos de Trabajo

Investigación → Podcast

1. research_start(query="AI trends 2026", mode="deep")
2. research_status(notebook_id, auto_import=True)  # waits up to 15 min, imports automatically
# Or review sources first, then import manually:
2a. research_status(notebook_id)  # waits up to 15 min, returns next_action hint
2b. research_import(notebook_id, task_id, cited_only=True, timeout=600)  # optional cited subset
4. studio_create(notebook_id, artifact_type="audio", confirm=True)
5. studio_status(notebook_id, artifact_id=created_artifact_id)  # poll one artifact
6. download_artifact(notebook_id, artifact_type="audio", output_path="podcast.m4a")

studio_status devuelve campos reducidos y como máximo 20 artefactos por defecto. Consulta un nuevo artefacto con artifact_id, pagina notebooks grandes con limit/offset, y establece include_details=True solo cuando se requieran prompts, IDs de fuentes, contenido de informes o detalles de medios.

Añadir Fuentes con Espera

source_add(notebook_id, source_type="url", url="https://...", wait=True)
# Returns when source is fully processed and ready for queries

Generar Materiales de Estudio

studio_create(notebook_id, artifact_type="quiz", question_count=10, confirm=True)
studio_create(notebook_id, artifact_type="flashcards", difficulty="hard", confirm=True)
studio_create(notebook_id, artifact_type="report", report_format="Study Guide", confirm=True)
studio_create(notebook_id, artifact_type="audio", language="es-419", confirm=True)

Para Resúmenes de Audio, se ha observado que Gemini Notebook usa subtags de región BCP-47 para seleccionar el acento de la voz. es y es-ES producen español de España, mientras que es-US y es-419 producen español latinoamericano. El prompt de generación no anula el acento de forma fiable. Trata esto como comportamiento observado, no como un contrato de API garantizado.

Etiquetar, Lote y Multi-Notebook

# Tag notebooks for organization
tag(action="add", notebook_id="abc", tags="ai,research")
tag(action="add", notebook_id="def", tags="ai,product")

# Find relevant notebooks
tag(action="select", query="ai research") 

# Query across tagged notebooks
cross_notebook_query(query="What are the main conclusions?", tags="ai")

# Batch generate podcasts for all tagged notebooks
batch(action="studio", artifact_type="audio", tags="ai", confirm=True)

Automatización de Pipelines

# List available pipelines
pipeline(action="list")

# Run a full ingest-and-podcast workflow
pipeline(action="run", notebook_id="abc", pipeline_name="ingest-and-podcast", input_url="https://example.com")

Configuración

¿Planeas conectarte desde Claude web/móvil o exponer el servidor a través de una red? Lee Implementación remota de MCP primero. El soporte de transporte HTTP no proporciona HTTPS, autenticación de llamantes, cuentas de Gemini Notebook por usuario ni transferencia remota de archivos.

Opciones del Servidor MCP

IndicadorDescripciónPredeterminado
--transportProtocolo (stdio, http, sse)stdio
--portPuerto para HTTP/SSE8000
--debugHabilitar registro detalladofalse

Variables de Entorno

VariableDescripción
NOTEBOOKLM_MCP_TRANSPORTTipo de transporte
NOTEBOOKLM_MCP_PORTPuerto HTTP/SSE
NOTEBOOKLM_MCP_DEBUGHabilitar registro de depuración
NOTEBOOKLM_HLIdioma de la interfaz y configuración regional predeterminada de artefactos, incluidos valores BCP-47 regionales como es-419 (predeterminado: en)
NOTEBOOKLM_QUERY_TIMEOUTTiempo de espera de consulta (segundos)
NOTEBOOKLM_BASE_URLAnular URL base para Enterprise/Workspace (predeterminado: https://notebooklm.google.com)
NOTEBOOKLM_PROJECT_IDID o número de proyecto GCP requerido para Gemini Notebook Enterprise
NOTEBOOKLM_LOCATIONUbicación/multi-región empresarial (global, us o eu; predeterminado: global)
NOTEBOOKLM_DOWNLOAD_DIRDirectorio al que se limitan las descargas de artefactos MCP. Sin establecer, el predeterminado es ~/Downloads/gemini-notebook, o ~/.notebooklm-mcp-cli/downloads/ donde no existe ~/Downloads. También limita las descargas CLI cuando se establece.
NOTEBOOKLM_ALLOWED_FILE_DIRSLista opcional separada por sistema operativo de directorios permitidos para fuentes de archivos locales. Sin establecer significa sin restricciones.
NOTEBOOKLM_DISABLED_GROUPSGrupos de herramientas separados por comas para ocultar (ver Exposición selectiva de herramientas)
NOTEBOOKLM_DISABLED_TOOLSHerramientas individuales separadas por comas para ocultar
NOTEBOOKLM_ENABLED_TOOLSHerramientas separadas por comas para re-habilitar, anulando las dos anteriores

Consejos sobre la Ventana de Contexto

Este MCP tiene 43 herramientas que consumen contexto. Buenas prácticas:

  • Deshabilitar cuando no se use: En Claude Code, usa @gemini-notebook-mcp para alternar
  • Ocultar herramientas que no necesites: Ver Exposición selectiva de herramientas abajo para exponer solo un subconjunto
  • Usar herramientas unificadas: source_add, studio_create, download_artifact, download_all_artifacts manejan múltiples operaciones cada una
  • Consultar con prudencia: Usa studio_status con moderación — los artefactos tardan 1-5 minutos

Exposición selectiva de herramientas

La limitación es opcional: sin configuración, todas las herramientas son visibles. Para reducir el contexto, oculta herramientas por grupo o por nombre mediante variables de entorno. Las herramientas se ocultan en lugar de eliminarse, por lo que no se necesitan cambios de código.

Orden de resolución (el último gana): NOTEBOOKLM_DISABLED_GROUPS, luego NOTEBOOKLM_DISABLED_TOOLS, luego NOTEBOOKLM_ENABLED_TOOLS.

# Query-first setup: hide mutating groups, keep read + chat tools
export NOTEBOOKLM_DISABLED_GROUPS="notebooks_manage,sources_manage,studio,research,sharing,notes"

# Hide one extra tool, but keep studio_status from an otherwise-hidden group
export NOTEBOOKLM_DISABLED_TOOLS="tag"
export NOTEBOOKLM_ENABLED_TOOLS="studio_status"

Grupos disponibles: notebooks_read, notebooks_manage, sources_read, sources_manage, chat, query_multi, organization, automation, notes, auth, server, sharing, research, studio.

Los nombres de grupos desconocidos se ignoran. Los cambios surten efecto al reiniciar el servidor.


Configuración del IDE

La forma más fácil de configurar cualquier herramienta es con nlm setup:

nlm setup add claude-code       # Claude Code
nlm setup add gemini            # Gemini CLI
nlm setup add github-copilot    # GitHub Copilot
nlm setup add cursor            # Cursor
nlm setup add windsurf          # Windsurf
nlm setup add json              # Any other tool (interactive JSON generator)
Configuración manual

Claude Code

claude mcp add --scope user gemini-notebook-mcp notebooklm-mcp

Cursor

Añade a ~/.cursor/mcp.json:

{
  "mcpServers": {
    "gemini-notebook-mcp": {
      "command": "/path/to/notebooklm-mcp"
    }
  }
}

GitHub Copilot / VS Code

Añade a .vscode/mcp.json:

{
  "servers": {
    "gemini-notebook-mcp": {
      "command": "notebooklm-mcp",
      "args": []
    }
  }
}

Gemini CLI

gemini mcp add --scope user gemini-notebook-mcp notebooklm-mcp