notebooklm-mcp-cli
Acesso programático ao Google NotebookLM — via interface de linha de comando (CLI) ou servidor Model Context Protocol (MCP).
NotebookLM Web Importer
Importe páginas da web e vídeos do YouTube para o NotebookLM com um clique. Confiado por mais de 200.000 usuários.
Instalar extensão do ChromeDocumentação
Guia do MCP
Referência completa para o servidor MCP do Gemini Notebook (antigo Google NotebookLM) — 43 ferramentas para assistentes de IA.
Instalação
# 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
Nomeação do servidor: Use
gemini-notebook-mcpcomo nome do servidor ao registrar com seu agente. O executável permanecenotebooklm-mcp. Se você tiver um MCP do Gemini Notebook legado com automação de navegador instalado sob um nome diferente (ex.:notebooklm), remova-o primeiro — agentes como Hermes ficam confusos quando dois servidores expõem nomes de ferramentas sobrepostos (notebook_create,source_add,notebook_query, …).Consulte a seção Migrando de outro Gemini Notebook MCP no guia de Introdução para o passo a passo completo.
Autenticação
Antes de usar as ferramentas MCP, autentique-se:
nlm login
Ou use a ferramenta de autenticação independente:
nlm login
Referência de Ferramentas
Notebooks (6 ferramentas)
| Ferramenta | Descrição |
|---|---|
notebook_list | Listar todos os notebooks |
notebook_create | Criar novo notebook |
notebook_get | Obter detalhes do notebook com fontes |
notebook_describe | Obter resumo de IA e tópicos sugeridos |
notebook_rename | Renomear um notebook |
notebook_delete | Excluir notebook (requer confirm=True) |
Fontes (7 ferramentas)
| Ferramenta | Descrição |
|---|---|
source_add | Unificada - Adicionar URL, texto, arquivo ou fonte do Drive |
source_list_drive | Listar fontes com status de atualização do Drive; use skip_freshness=True para notebooks grandes quando a atualização não for necessária |
source_sync_drive | Sincronizar fontes do Drive desatualizadas |
source_delete | Excluir fonte (requer confirm=True) |
source_describe | Obter resumo de IA com palavras-chave |
source_get_content | Obter conteúdo de texto bruto |
source_rename | Renomear uma fonte em um 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 ferramentas)
| Ferramenta | Descrição |
|---|---|
notebook_query | Perguntar à IA sobre fontes no notebook |
notebook_query_start | Iniciar uma consulta assíncrona para notebooks com muitas fontes ou perguntas de longa duração |
notebook_query_status | Consultar uma consulta assíncrona iniciada com notebook_query_start |
chat_configure | Definir objetivo do chat e tamanho da resposta |
As consultas usam um orçamento de 120 segundos de tempo real por padrão. Notebooks
com muitas fontes podem levar mais tempo; tente novamente com timeout=180 (ou outro valor adequado
ao notebook). Para operações mais longas, use notebook_query_start e consulte
notebook_query_status até que ele relate completed ou error. Um tempo limite
retorna um erro estruturado com uma dica de nova tentativa em vez de uma falha de transporte sem informações.
Sessões de Chat (3 ferramentas)
| Ferramenta | Descrição |
|---|---|
chat_list | Listar sessões de chat de um notebook |
chat_get | Obter transcrição completa de uma sessão de chat (padrão: a mais recente) |
chat_export | Exportar uma transcrição de chat para Markdown ou JSON |
Conteúdo do Studio (4 ferramentas)
| Ferramenta | Descrição |
|---|---|
studio_create | Unificada - Criar qualquer tipo de artefato |
studio_status | Verificar progresso da geração |
studio_delete | Excluir artefato (requer confirm=True) |
studio_revise | Revisar slides em uma apresentação existente (requer confirm=True) |
Tipos de artefato de studio_create:
audio- Podcast (formatos: deep_dive, brief, critique, debate)video- Visão geral em vídeo (formatos: explainer, brief, cinematic, short)report- Relatório de texto (Briefing Doc, Guia de Estudo, Post de Blog)quiz- Quiz de múltipla escolhaflashcards- Flashcards de estudomind_map- Mapa mental visualslide_deck- Slides de apresentaçãoinfographic- Infográfico visualdata_table- Tabela de dados estruturados
Downloads (2 ferramentas)
| Ferramenta | Descrição |
|---|---|
download_artifact | Unificada - Baixar qualquer tipo de artefato |
download_all_artifacts | Baixar todos os artefatos concluídos de um notebook — ou todos os notebooks com all_notebooks=True — em pastas por notebook |
Tipos de download_artifact:
audio, video, report, mind_map, slide_deck, infographic, data_table, data_table_xlsx, quiz, flashcards
Exportações (1 ferramenta)
| Ferramenta | Descrição |
|---|---|
export_artifact | Exportar para Google Docs/Sheets |
Pesquisa (3 ferramentas)
| Ferramenta | Descrição |
|---|---|
research_start | Iniciar pesquisa na web/Drive |
research_status | Consultar progresso da pesquisa |
research_import | Importar fontes descobertas (timeout e cited_only suportados) |
Notas (1 ferramenta unificada)
| Ferramenta | Descrição |
|---|---|
note | Unificada - Gerenciar notas (ação: list, create, update, delete) |
Ações 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)
Rótulos (1 ferramenta)
| Ferramenta | Descrição |
|---|---|
label | Unificada - Gerenciar rótulos de fontes (ação: auto, list, reorganize, create, rename, set_emoji, move_source, delete) |
Ações 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)
Compartilhamento (4 ferramentas)
| Ferramenta | Descrição |
|---|---|
notebook_share_status | Obter configurações de compartilhamento |
notebook_share_public | Ativar/desativar link público |
notebook_share_invite | Convidar colaborador por e-mail |
notebook_share_batch | Convidar vários colaboradores em uma única solicitação |
Autenticação (2 ferramentas)
| Ferramenta | Descrição |
|---|---|
refresh_auth | Recarregar tokens de autenticação |
save_auth_tokens | Salvar cookies (método alternativo) |
Servidor (1 ferramenta)
| Ferramenta | Descrição |
|---|---|
server_info | Obter versão e verificar atualizações |
Lote e Entre Notebooks (2 ferramentas)
| Ferramenta | Descrição |
|---|---|
batch | Unificada — Operações em lote em vários notebooks (ação: query, add_source, create, delete, studio) |
cross_notebook_query | Consultar vários notebooks e obter respostas agregadas com citações por notebook |
Ações 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 ferramenta)
| Ferramenta | Descrição |
|---|---|
pipeline | Unificada — Listar ou executar fluxos de trabalho de várias etapas (ação: list, run) |
Ações 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
Tags e Seleção Inteligente (1 ferramenta)
| Ferramenta | Descrição |
|---|---|
tag | Unificada — Marcar notebooks e encontrar os relevantes (ação: add, remove, list, select) |
Ações 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
Exemplos de Fluxos de Trabalho
Pesquisa → 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 retorna campos enxutos e no máximo 20 artefatos por padrão. Consulte
um novo artefato com artifact_id, pagine notebooks grandes com limit/offset e
defina include_details=True somente quando prompts, IDs de fontes, conteúdo de relatórios ou detalhes
de mídia forem necessários.
Adicionar Fontes com Espera
source_add(notebook_id, source_type="url", url="https://...", wait=True)
# Returns when source is fully processed and ready for queries
Gerar Materiais de Estudo
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 Visões Gerais de Áudio, observou-se que o Gemini Notebook usa subtags de região
BCP-47 para selecionar o sotaque da voz. es e es-ES produzem espanhol da Espanha,
enquanto es-US e es-419 produzem espanhol latino-americano. O prompt de
geração não substitui o sotaque de forma confiável. Trate isso como comportamento observado,
não como um contrato de API garantido.
Tags, Lote e Entre Notebooks
# 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)
Automação 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")
Configuração
Planejando conectar-se pelo Claude web/mobile ou expor o servidor em uma rede? Leia Implantação Remota de MCP primeiro. O suporte ao transporte HTTP não fornece HTTPS, autenticação do chamador, contas Gemini Notebook por usuário ou transferência remota de arquivos.
Opções do Servidor MCP
| Sinalizador | Descrição | Padrão |
|---|---|---|
--transport | Protocolo (stdio, http, sse) | stdio |
--port | Porta para HTTP/SSE | 8000 |
--debug | Ativar registro detalhado (verbose) | false |
Variáveis de Ambiente
| Variável | Descrição |
|---|---|
NOTEBOOKLM_MCP_TRANSPORT | Tipo de transporte |
NOTEBOOKLM_MCP_PORT | Porta HTTP/SSE |
NOTEBOOKLM_MCP_DEBUG | Ativar registro de depuração |
NOTEBOOKLM_HL | Idioma da interface e localidade padrão de artefatos, incluindo valores BCP-47 regionais como es-419 (padrão: en) |
NOTEBOOKLM_QUERY_TIMEOUT | Tempo limite de consulta (segundos) |
NOTEBOOKLM_BASE_URL | Substituir URL base para Enterprise/Workspace (padrão: https://notebooklm.google.com) |
NOTEBOOKLM_PROJECT_ID | ID ou número do projeto GCP obrigatório para Gemini Notebook Enterprise |
NOTEBOOKLM_LOCATION | Localização/multirregião Enterprise (global, us ou eu; padrão: global) |
NOTEBOOKLM_DOWNLOAD_DIR | Diretório ao qual os downloads de artefatos MCP estão restritos. Sem definição, o padrão é ~/Downloads/gemini-notebook ou ~/.notebooklm-mcp-cli/downloads/ quando não existe ~/Downloads. Também limita downloads da CLI quando definido. |
NOTEBOOKLM_ALLOWED_FILE_DIRS | Lista opcional separada por separador do SO de diretórios permitidos para fontes de arquivos locais. Sem definição, significa sem restrições. |
NOTEBOOKLM_DISABLED_GROUPS | Grupos de ferramentas separados por vírgula para ocultar (consulte Exposição seletiva de ferramentas) |
NOTEBOOKLM_DISABLED_TOOLS | Ferramentas individuais separadas por vírgula para ocultar |
NOTEBOOKLM_ENABLED_TOOLS | Ferramentas separadas por vírgula para reativar, substituindo as duas acima |
Dicas de Janela de Contexto
Este MCP tem 43 ferramentas que consomem contexto. Boas práticas:
- Desative quando não estiver usando: No Claude Code, use
@gemini-notebook-mcppara alternar - Oculte ferramentas que você não precisa: Consulte Exposição seletiva de ferramentas abaixo para expor apenas um subconjunto
- Use ferramentas unificadas:
source_add,studio_create,download_artifact,download_all_artifactslidam com várias operações cada - Consulte com sabedoria: Use
studio_statuscom moderação — artefatos levam de 1 a 5 minutos
Exposição seletiva de ferramentas
O controle é opcional: sem configuração, todas as ferramentas ficam visíveis. Para reduzir o contexto, oculte ferramentas por grupo ou por nome por meio de variáveis de ambiente. As ferramentas são ocultadas em vez de removidas, portanto nenhuma alteração de código é necessária.
Ordem de resolução (a última vence): NOTEBOOKLM_DISABLED_GROUPS, depois
NOTEBOOKLM_DISABLED_TOOLS, depois 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 disponíveis: notebooks_read, notebooks_manage, sources_read,
sources_manage, chat, query_multi, organization, automation, notes,
auth, server, sharing, research, studio.
Nomes de grupos desconhecidos são ignorados. As alterações entram em vigor na reinicialização do servidor.
Configuração de IDE
A maneira mais fácil de configurar qualquer ferramenta é com 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)
Configuração manual
Claude Code
claude mcp add --scope user gemini-notebook-mcp notebooklm-mcp
Cursor
Adicione a ~/.cursor/mcp.json:
{
"mcpServers": {
"gemini-notebook-mcp": {
"command": "/path/to/notebooklm-mcp"
}
}
}
GitHub Copilot / VS Code
Adicione a .vscode/mcp.json:
{
"servers": {
"gemini-notebook-mcp": {
"command": "notebooklm-mcp",
"args": []
}
}
}
Gemini CLI
gemini mcp add --scope user gemini-notebook-mcp notebooklm-mcp