NotebookLM MCP Server allows your CLI agents (Claude, Cursor, Codex, etc.) to directly interact with Google's NotebookLM for accurate, zero-hallucination responses based on your own knowledge bases. This integration eliminates the manual copy-paste workflow between NotebookLM and your editor, enabling your AI assistants to perform deep, iterative research before writing code.
When AI assistants try to search through local documentation, they face several challenges:
NotebookLM MCP addresses these problems by connecting your AI tools directly to Google's NotebookLM, which provides synthesized answers from your documentation with zero hallucinations.
claude mcp add notebooklm npx notebooklm-mcp@latest
codex mcp add notebooklm -- npx notebooklm-mcp@latest
For Gemini:
gemini mcp add notebooklm npx notebooklm-mcp@latest
For Cursor, add to ~/.cursor/mcp.json:
{
"mcpServers": {
"notebooklm": {
"command": "npx",
"args": ["-y", "notebooklm-mcp@latest"]
}
}
}
For amp:
amp mcp add notebooklm -- npx notebooklm-mcp@latest
For VS Code:
code --add-mcp '{"name":"notebooklm","command":"npx","args":["notebooklm-mcp@latest"]}'
Generic MCP configuration:
{
"mcpServers": {
"notebooklm": {
"command": "npx",
"args": ["notebooklm-mcp@latest"]
}
}
}
Follow the installation instructions above for your preferred AI tool.
In your chat with Claude, Codex, or other AI tool, say:
"Log me in to NotebookLM"
A Chrome window will open where you'll need to log in with your Google account.
Go to notebooklm.google.com, create a notebook, and upload your documentation:
Share your notebook by clicking ⚙️ Share → Anyone with link → Copy
"I'm building with [library]. Here's my NotebookLM: [link]"
Your AI assistant can now ask NotebookLM whatever it needs, building expertise before writing code.
You can reduce token usage by loading only the tools you need:
| Profile | Tools | Use Case |
|---|---|---|
| minimal | 5 | Query-only: ask_question, get_health, list_notebooks, select_notebook, get_notebook |
| standard | 10 | + Library management: setup_auth, list_sessions, add_notebook, update_notebook, search_notebooks |
| full | 16 | All tools including cleanup_data, re_auth, remove_notebook, reset_session, close_session, get_library_stats |
# Check current settings
npx notebooklm-mcp config get
# Set a profile
npx notebooklm-mcp config set profile minimal
npx notebooklm-mcp config set profile standard
npx notebooklm-mcp config set profile full
# Disable specific tools (comma-separated)
npx notebooklm-mcp config set disabled-tools "cleanup_data,re_auth"
# Reset to defaults
npx notebooklm-mcp config reset
# Set profile
export NOTEBOOKLM_PROFILE=minimal
# Disable specific tools
export NOTEBOOKLM_DISABLED_TOOLS="cleanup_data,re_auth,remove_notebook"
Settings are saved to ~/.config/notebooklm-mcp/settings.json and persist across sessions.
| Intent | Say | Result |
|---|---|---|
| Authenticate | "Open NotebookLM auth setup" or "Log me in to NotebookLM" | Chrome opens for login |
| Add notebook | "Add [link] to library" | Saves notebook with metadata |
| List notebooks | "Show our notebooks" | Lists all saved notebooks |
| Research first | "Research this in NotebookLM before coding" | Multi-question session |
| Select notebook | "Use the React notebook" | Sets active notebook |
| Update notebook | "Update notebook tags" | Modify metadata |
| Remove notebook | "Remove [notebook] from library" | Deletes from library |
| View browser | "Show me the browser" | Watch live NotebookLM chat |
| Fix auth | "Repair NotebookLM authentication" | Clears and re-authenticates |
| Switch account | "Re-authenticate with different Google account" | Changes account |
| Clean restart | "Run NotebookLM cleanup" | Removes all data for fresh start |
| Keep library | "Cleanup but keep my library" | Preserves notebooks |
| Delete all data | "Delete all NotebookLM data" | Complete removal |
Is it really zero hallucinations?
Yes. NotebookLM is specifically designed to only answer from uploaded sources. If it doesn't know, it says so.
What about rate limits?
Free tier has daily query limits per Google account. Quick account switching supported for continued research.
How secure is this?
Chrome runs locally. Your credentials never leave your machine. Use a dedicated Google account if concerned.
Can I see what's happening?
Yes! Say "Show me the browser" to watch the live NotebookLM conversation.
What makes this better than Claude's built-in knowledge?
Your docs are always current. No training cutoff. No hallucinations. Perfect for new libraries, internal APIs, or fast-moving projects.
To add this MCP server to Claude Code, run this command in your terminal:
claude mcp add-json "notebooklm" '{"command":"npx","args":["notebooklm-mcp@latest"]}'
See the official Claude Code MCP documentation for more details.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.
To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".
When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:
{
"mcpServers": {
"notebooklm": {
"command": "npx",
"args": [
"notebooklm-mcp@latest"
]
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.
To add this MCP server to Claude Desktop:
1. Find your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json2. Add this to your configuration file:
{
"mcpServers": {
"notebooklm": {
"command": "npx",
"args": [
"notebooklm-mcp@latest"
]
}
}
}
3. Restart Claude Desktop for the changes to take effect