Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jacob-bd/notebooklm-mcp-cli/llms.txt

Use this file to discover all available pages before exploring further.

The notebooklm-mcp binary is the MCP server process that your AI tool launches (or connects to) when you use NotebookLM tools. Most users run it with the default stdio transport and zero extra configuration — the nlm setup add <tool> command handles everything automatically. This page covers the full set of options for users who need HTTP transport, remote deployment, enterprise URL overrides, or manual JSON configurations.

Server Options

The following flags can be passed to the notebooklm-mcp binary directly. Each flag also has a corresponding environment variable (see the next section).
FlagDescriptionDefault
--transportTransport protocol: stdio, http, or ssestdio
--hostHost to bind for HTTP/SSE transport127.0.0.1
--portPort for HTTP/SSE transport8000
--pathMCP endpoint path for HTTP transport/mcp
--statelessStateless HTTP sessions (avoids MCP SDK double-response bug)true
--debugEnable verbose debug loggingfalse
--query-timeoutQuery timeout in seconds120.0
# Default stdio transport (most AI tools)
notebooklm-mcp

# HTTP on default port
notebooklm-mcp --transport http

# HTTP on a custom port with debug logging
notebooklm-mcp --transport http --port 3000 --debug

# Legacy SSE transport (backwards compatibility)
notebooklm-mcp --transport sse --port 8080
Binding to a non-loopback address (anything other than 127.0.0.1, localhost, or ::1) is blocked by default because the HTTP transport has no built-in authentication — anyone who can reach the port gets access to your Google cookies. To override, set NOTEBOOKLM_ALLOW_EXTERNAL_BIND=1 and ensure the port is behind a trusted network or auth proxy.

Environment Variables

All server options can be set via environment variables. These are read at startup and can be placed in your shell profile, a .env file, or inside the AI tool’s MCP server config block.
VariableDescriptionDefault
NOTEBOOKLM_MCP_TRANSPORTTransport type: stdio, http, or ssestdio
NOTEBOOKLM_MCP_HOSTHost to bind for HTTP/SSE127.0.0.1
NOTEBOOKLM_MCP_PORTPort for HTTP/SSE8000
NOTEBOOKLM_MCP_PATHMCP endpoint path for HTTP/mcp
NOTEBOOKLM_MCP_STATELESSStateless HTTP sessions (true/false)true
NOTEBOOKLM_MCP_DEBUGEnable debug logging (true/false)false
NOTEBOOKLM_HLInterface language and default artifact language (BCP-47 code, e.g. en, fr, ja)en
NOTEBOOKLM_QUERY_TIMEOUTQuery timeout in seconds120.0
NOTEBOOKLM_BASE_URLOverride the NotebookLM base URL for enterprise or workspace deploymentshttps://notebooklm.google.com
NOTEBOOKLM_BLBuild label override. Usually auto-extracted from the NotebookLM page — only set this if auto-extraction fails.(auto)
NOTEBOOKLM_ALLOW_EXTERNAL_BINDAllow binding HTTP/SSE to non-loopback addresses. Set to 1 to enable (security risk).(unset)
NOTEBOOKLM_CONVERSATION_MAX_TURNSMaximum number of turns to keep in the in-process conversation history cache.(unbounded)
NOTEBOOKLM_CONVERSATION_MAX_CONVSMaximum number of concurrent conversations to keep in the in-process cache.(unbounded)
Setting NOTEBOOKLM_HL changes both the NotebookLM UI language and the default language used for studio artifacts (audio, video, reports, etc.). You can override the language per-artifact with the language parameter on studio_create.

HTTP Transport

Use HTTP transport when you need to connect to the server over a network connection — for example, from a remote machine, a container, or a tool that only supports HTTP-based MCP.
{
  "mcpServers": {
    "notebooklm-mcp": {
      "command": "notebooklm-mcp",
      "args": ["--transport", "http", "--port", "8000"]
    }
  }
}
Or set via environment variable in your config:
{
  "mcpServers": {
    "notebooklm-mcp": {
      "command": "notebooklm-mcp",
      "env": {
        "NOTEBOOKLM_MCP_TRANSPORT": "http",
        "NOTEBOOKLM_MCP_PORT": "8000"
      }
    }
  }
}

Health Endpoint

When running with HTTP or SSE transport, the server exposes a health check endpoint at /health:
curl http://127.0.0.1:8000/health
{
  "status": "healthy",
  "service": "notebooklm-mcp",
  "version": "0.2.0"
}
This is useful for load balancers, monitoring systems, and container health probes.

Multi-User / Remote Setup

To run the MCP server on a remote machine and connect to it from your local AI tool:
  1. On the remote machine, start the server bound to all interfaces with HTTP transport:
    NOTEBOOKLM_ALLOW_EXTERNAL_BIND=1 notebooklm-mcp --transport http --host 0.0.0.0 --port 8000
    
    Place this behind an SSH tunnel, VPN, or reverse proxy with authentication — the server itself has no auth layer.
  2. On the local machine, configure your AI tool to connect to the remote URL. Consult your AI tool’s documentation for its remote MCP connection format.
  3. Use GET /health to verify the server is reachable before connecting your AI tool.
Never expose the MCP server port directly to the public internet. Your Google authentication cookies are transmitted with every request — treat the port as you would an SSH key.

Manual JSON Configs

If you prefer to configure your AI tool by editing JSON files directly (instead of using nlm setup add), use the configurations below. Run which notebooklm-mcp to find the full binary path if needed.
Register via the Claude CLI (recommended):
claude mcp add --scope user notebooklm-mcp notebooklm-mcp
Or add manually to your Claude Code MCP settings:
{
  "mcpServers": {
    "notebooklm-mcp": {
      "command": "notebooklm-mcp",
      "args": []
    }
  }
}

Context Window Management

The MCP server exposes 39 tools. Each tool registration consumes a small but non-trivial amount of your AI assistant’s context budget, and this cost is paid on every request whether or not you use NotebookLM in that session. Best practices:
  • Disable when not in use. In Claude Code, type @notebooklm-mcp in the chat to toggle the server on or off without restarting.
  • Use unified tools. source_add, studio_create, and download_artifact each handle multiple operations. Prefer these over chaining multiple single-purpose calls — you save both context and round-trips.
  • Poll wisely. Studio artifacts take 1–5 minutes to generate. Don’t call studio_status in a tight loop; a 15–30 second poll interval is sufficient.
  • Scope your queries. Pass source_ids to notebook_query to limit the AI’s grounding context to only the sources that are relevant to your question.
If you use multiple AI tools simultaneously, you only need the MCP server registered in one of them at a time. Use nlm setup list to see which tools are currently configured and nlm setup remove <tool> to clean up unused registrations.

Build docs developers (and LLMs) love