A side-by-side look at the Site and Notebooklm MCP Secure MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Site for research work; choose Notebooklm MCP Secure for research as a local process. You can also run both side by side in one mcpServers block.
ask_question, add_notebook, list_notebooks.Rows where the two servers differ are marked.
| Spec | S Site | |
|---|---|---|
| Category | Research | Research |
| Quality signal | 43/100 · Fair | 65/100 · Great |
| Install command | Not confirmed yet | Confirmed |
| Transport | — | Local subprocess (stdio) |
| Auth | No auth required | other |
| Pricing | Free | Free |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | — | 85 |
| Directory activity | 0 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | Not listed | 25 |
| Full listing | View Site | View Notebooklm MCP Secure |
No tool names declared yet. Check the project README from the listing page.
ask_questionNotebookLM notebook Q&A via browser automation.
No active notebook is selected.
Use list_notebooks and select_notebook to choose one, or pass notebook_url.
No Gemini API key is required, but browser authentication must be valid.
If login is required, use the setup_auth tool and verify with get_health (or ask the user to run the notebooklm.auth-setup prompt for a guided walkthrough).add_notebookAdd a NotebookLM notebook to the local library after explicit user confirmation. Provide the NotebookLM URL plus concise metadata: name, description, topics, and optional use cases/tags. Do not infer missing metadata; ask the user first.list_notebooksList all library notebooks with metadata (name, topics, use cases, URL). Use this to present options, then ask which notebook to use for the task.get_notebookGet detailed information about a specific notebook by IDselect_notebookSet a notebook as the active default (used when ask_question has no notebook_id).
## When To Use
- User switches context: "Let's work on React now"
- User asks explicitly to activate a notebook
- Obvious task change requires another notebook
## Auto-Switching
- Safe to auto-switch if the context is clear and you announce it:
"Switching to React notebook for this task..."
- If ambiguous, ask: "Switch to [notebook] for this task?"
## Example
User: "Now let's build the React frontend"
You: "Switching to React notebook..." (call select_notebook)update_notebookUpdate notebook metadata based on user intent.
## Pattern
1) Identify target notebook and fields (topics, description, use_cases, tags, url)
2) Propose the exact change back to the user
3) After explicit confirmation, call this tool
## Examples
- User: "React notebook also covers Next.js 14"
You: "Add 'Next.js 14' to topics for React?"
User: "Yes" → call update_notebook
- User: "Include error handling in n8n description"
You: "Update the n8n description to mention error handling?"
User: "Yes" → call update_notebook
Tip: You may update multiple fields at once if requested.remove_notebookDangerous — requires explicit user confirmation.
## Confirmation Workflow
1) User requests removal ("Remove the React notebook")
2) Look up full name to confirm
3) Ask: "Remove '[notebook_name]' from your library? (Does not delete the actual NotebookLM notebook)"
4) Only on explicit "Yes" → call remove_notebook
Never remove without permission or based on assumptions.
Example:
User: "Delete the old React notebook"
You: "Remove 'React Best Practices' from your library?"
User: "Yes" → call remove_notebooksearch_notebooksSearch library by query (name, description, topics, tags). Use to propose relevant notebooks for the task and then ask which to use.create_notebookCreate a new NotebookLM notebook with sources programmatically.
## What This Tool Does
- Creates a NEW notebook in your NotebookLM account
- Uploads sources (URLs, text, files) to the notebook
- Returns the notebook URL for immediate use
- Optionally adds to your local library
## Supported Source Types
- **url**: Web page URL (documentation, articles, etc.)
- **text**: Raw text content (code, notes, etc.)
- **file**: Local file path (PDF, DOCX, TXT)
## Example Usage
Create a notebook from API documentation:
```json
{
"name": "React Docs",
"sources": [
{ "type": "url", "value": "https://react.dev/reference/react" }
]
}
```
Create a notebook with multiple sources:
```json
{
"name": "Security Research",
"sources": [
{ "type": "url", "value": "https://owasp.org/Top10" },
{ "type": "file", "value": "/path/to/security-report.pdf" },
{ "type": "text", "value": "Custom notes...", "title": "My Notes" }
],
"description": "Security best practices and research",
"topics": ["security", "owasp", "best-practices"]
}
```
## NotebookLM Limits (Free Tier)
- 100 notebooks maximum
- 50 sources per notebook
- 500k words per source
- 50 queries per day
## Notes
- Requires authentication (run setup_auth first)
- Creates notebook with sharing set to private by default
- Large files may take longer to processsync_librarySync your local library with actual NotebookLM notebooks.
## What This Tool Does
- Navigates to NotebookLM and extracts all your notebooks
- Compares with local library entries
- Detects stale entries (notebooks deleted or URLs changed)
- Identifies notebooks not in your library
- Optionally auto-removes stale entries
## When To Use
- Library seems out of sync with NotebookLM
- After deleting notebooks in NotebookLM
- To discover new notebooks to add
- Before setting up automation workflows
## Output
Returns a sync report with:
- **matched**: Library entries that match actual notebooks
- **staleEntries**: Library entries with no matching notebook (candidates for removal)
- **missingNotebooks**: NotebookLM notebooks not in library (candidates for adding)
- **suggestions**: Recommended actions
## Example Usage
```json
{ "auto_fix": false }
```
With auto-fix to remove stale entries:
```json
{ "auto_fix": true }
```list_sourcesList sources in a notebook. Provide notebook_id or notebook_url; if neither is provided, the active notebook from the local library is used. Returns source id, title, type, and status.add_sourceAdd a source to an existing NotebookLM notebook.
If neither `notebook_id` nor `notebook_url` is provided, this tool uses the currently active notebook from the local library.
## Source Types
- **url**: Web page URL
- **text**: Text content (paste)
- **file**: Local file path (PDF, DOCX, TXT)
## Example
```json
{
"notebook_id": "my-notebook",
"source": {
"type": "url",
"value": "https://docs.example.com/api"
}
}
```Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
No confirmed install command for Site yet — follow the setup steps linked from its listing page rather than a guessed package name.
{
"mcpServers": {
"pantheon-security-notebooklm-mcp-secure": {
"command": "npx",
"args": [
"-y",
"@pan-sec/notebooklm-mcp@latest"
]
}
}
}