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 ChromeDocumentació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-mcpcomo nombre del servidor al registrarlo con tu agente. El ejecutable sigue siendonotebooklm-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)
| Herramienta | Descripción |
|---|---|
notebook_list | Listar todos los notebooks |
notebook_create | Crear nuevo notebook |
notebook_get | Obtener detalles del notebook con fuentes |
notebook_describe | Obtener resumen de IA y temas sugeridos |
notebook_rename | Renombrar un notebook |
notebook_delete | Eliminar notebook (requiere confirm=True) |
Fuentes (7 herramientas)
| Herramienta | Descripción |
|---|---|
source_add | Unificada - Añadir URL, texto, archivo o fuente de Drive |
source_list_drive | Listar fuentes con estado de frescura de Drive; usa skip_freshness=True para notebooks grandes cuando no se necesite frescura |
source_sync_drive | Sincronizar fuentes de Drive desactualizadas |
source_delete | Eliminar fuente (requiere confirm=True) |
source_describe | Obtener resumen de IA con palabras clave |
source_get_content | Obtener contenido de texto sin procesar |
source_rename | Renombrar 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)
| Herramienta | Descripción |
|---|---|
notebook_query | Preguntar a la IA sobre fuentes en el notebook |
notebook_query_start | Iniciar una consulta de forma asíncrona para notebooks con muchas fuentes o preguntas de larga duración |
notebook_query_status | Consultar una consulta asíncrona iniciada con notebook_query_start |
chat_configure | Establecer 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)
| Herramienta | Descripción |
|---|---|
chat_list | Listar sesiones de chat de un notebook |
chat_get | Obtener transcripción completa de una sesión de chat (por defecto la más reciente) |
chat_export | Exportar una transcripción de chat a Markdown o JSON |
Contenido de Studio (4 herramientas)
| Herramienta | Descripción |
|---|---|
studio_create | Unificada - Crear cualquier tipo de artefacto |
studio_status | Comprobar progreso de generación |
studio_delete | Eliminar artefacto (requiere confirm=True) |
studio_revise | Revisar 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últipleflashcards- Tarjetas de estudiomind_map- Mapa mental visualslide_deck- Diapositivas de presentacióninfographic- Infografía visualdata_table- Tabla de datos estructurada
Descargas (2 herramientas)
| Herramienta | Descripción |
|---|---|
download_artifact | Unificada - Descargar cualquier tipo de artefacto |
download_all_artifacts | Descargar 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)
| Herramienta | Descripción |
|---|---|
export_artifact | Exportar a Google Docs/Sheets |
Investigación (3 herramientas)
| Herramienta | Descripción |
|---|---|
research_start | Iniciar investigación web/Drive |
research_status | Consultar progreso de investigación |
research_import | Importar fuentes descubiertas (se admiten timeout y cited_only) |
Notas (1 herramienta unificada)
| Herramienta | Descripción |
|---|---|
note | Unificada - 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)
| Herramienta | Descripción |
|---|---|
label | Unificada - 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)
| Herramienta | Descripción |
|---|---|
notebook_share_status | Obtener configuración de uso compartido |
notebook_share_public | Habilitar/deshabilitar enlace público |
notebook_share_invite | Invitar colaborador por correo electrónico |
notebook_share_batch | Invitar múltiples colaboradores en una sola solicitud |
Autenticación (2 herramientas)
| Herramienta | Descripción |
|---|---|
refresh_auth | Recargar tokens de autenticación |
save_auth_tokens | Guardar cookies (método alternativo) |
Servidor (1 herramienta)
| Herramienta | Descripción |
|---|---|
server_info | Obtener versión y comprobar actualizaciones |
Lote y Multi-Notebook (2 herramientas)
| Herramienta | Descripción |
|---|---|
batch | Unificada — Operaciones por lotes en múltiples notebooks (acción: query, add_source, create, delete, studio) |
cross_notebook_query | Consultar 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)
| Herramienta | Descripción |
|---|---|
pipeline | Unificada — 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)
| Herramienta | Descripción |
|---|---|
tag | Unificada — 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
| Indicador | Descripción | Predeterminado |
|---|---|---|
--transport | Protocolo (stdio, http, sse) | stdio |
--port | Puerto para HTTP/SSE | 8000 |
--debug | Habilitar registro detallado | false |
Variables de Entorno
| Variable | Descripción |
|---|---|
NOTEBOOKLM_MCP_TRANSPORT | Tipo de transporte |
NOTEBOOKLM_MCP_PORT | Puerto HTTP/SSE |
NOTEBOOKLM_MCP_DEBUG | Habilitar registro de depuración |
NOTEBOOKLM_HL | Idioma de la interfaz y configuración regional predeterminada de artefactos, incluidos valores BCP-47 regionales como es-419 (predeterminado: en) |
NOTEBOOKLM_QUERY_TIMEOUT | Tiempo de espera de consulta (segundos) |
NOTEBOOKLM_BASE_URL | Anular URL base para Enterprise/Workspace (predeterminado: https://notebooklm.google.com) |
NOTEBOOKLM_PROJECT_ID | ID o número de proyecto GCP requerido para Gemini Notebook Enterprise |
NOTEBOOKLM_LOCATION | Ubicación/multi-región empresarial (global, us o eu; predeterminado: global) |
NOTEBOOKLM_DOWNLOAD_DIR | Directorio 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_DIRS | Lista opcional separada por sistema operativo de directorios permitidos para fuentes de archivos locales. Sin establecer significa sin restricciones. |
NOTEBOOKLM_DISABLED_GROUPS | Grupos de herramientas separados por comas para ocultar (ver Exposición selectiva de herramientas) |
NOTEBOOKLM_DISABLED_TOOLS | Herramientas individuales separadas por comas para ocultar |
NOTEBOOKLM_ENABLED_TOOLS | Herramientas 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-mcppara 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_artifactsmanejan múltiples operaciones cada una - Consultar con prudencia: Usa
studio_statuscon 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