## Configuration
> **NotebookLM MCP Structured v1.0.0** - Enhanced MCP server with client-side prompt structuring for source fidelity.
**No config files needed!** The server works out of the box with sensible defaults.
---
## Structured Prompts (Key Feature)
This fork automatically structures your questions before sending them to NotebookLM. **No configuration required** - structuring is always active.
### What Gets Structured
- **Source fidelity constraints**: Responses use ONLY uploaded documents
- **Citation requirements**: Every claim includes source attribution
- **Missing info handling**: Explicit `[NOT FOUND IN DOCUMENTS]` declarations
- **Question type detection**: Automatic structure based on question type
### Question Types (Auto-Detected)
| Type | Trigger Words | Output Structure |
|------|--------------|------------------|
| Comparison | "compare", "vs", "difference" | Elements, Similarities, Differences, Synthesis |
| List | "list", "identify", "which" | Numbered items with descriptions and sources |
| Analysis | "analyze", "examine", "evaluate" | Subject, Observations, Evidence, Conclusions |
| Explanation | "explain", "why", "how" | Concept, Answer, Examples, Related info |
| Extraction | (default) | Data points with quotes and sources |
### Customizing Structuring Guidelines
The guidelines are embedded in `src/tools/definitions/ask-question.ts`. To customize:
1. Edit the file
2. Run `npm run build`
3. Restart Claude Desktop
⚠️ **Critical**: Never use decorative lines (`===` or `---`) in prompts - they cause NotebookLM timeouts.
### Configuration Priority (highest to lowest):
1. **Tool Parameters** - Claude passes settings like `browser_options` at runtime
2. **Environment Variables** - Optional overrides for advanced users
3. **Hardcoded Defaults** - Sensible defaults that work for most users
---
## Tool Parameters (Runtime Configuration)
Claude can control browser behavior via the `browser_options` parameter in tools like `ask_question`, `setup_auth`, and `re_auth`:
```typescript
browser_options: {
show: boolean, // Show browser window (overrides headless)
headless: boolean, // Run in headless mode (default: true)
timeout_ms: number, // Browser timeout in ms (default: 30000)
stealth: {
enabled: boolean, // Master switch (default: true)
random_delays: boolean, // Random delays between actions (default: true)
human_typing: boolean, // Human-like typing (default: true)
mouse_movements: boolean, // Realistic mouse movements (default: true)
typing_wpm_min: number, // Min typing speed (default: 160)
typing_wpm_max: number, // Max typing speed (default: 240)
delay_min_ms: number, // Min delay between actions (default: 100)
delay_max_ms: number, // Max delay between actions (default: 400)
},
viewport: {
width: number, // Viewport width (default: 1024)
height: number, // Viewport height (default: 768)
}
}
```
**Example usage:**
- "Research this and show me the browser" → Sets `show: true`
- "Use slow typing for this query" → Adjusts typing WPM via stealth settings
---
## Environment Variables (Optional)
For advanced users who want to set global defaults:
- Auth
- `AUTO_LOGIN_ENABLED` — `true|false` (default `false`)
- `LOGIN_EMAIL`, `LOGIN_PASSWORD` — for auto‑login if enabled
- `AUTO_LOGIN_TIMEOUT_MS` (default `120000`)
- Stealth / Human-like behavior
- `STEALTH_ENABLED` — `true|false` (default `true`) — Master switch for all stealth features
- `STEALTH_RANDOM_DELAYS` — `true|false` (default `true`)
- `STEALTH_HUMAN_TYPING` — `true|false` (default `true`)
- `STEALTH_MOUSE_MOVEMENTS` — `true|false` (default `true`)
- Typing speed (human‑like)
- `TYPING_WPM_MIN` (default 160), `TYPING_WPM_MAX` (default 240)
- Delays (human‑like)
- `MIN_DELAY_MS` (default 100), `MAX_DELAY_MS` (default 400)
- Browser
- `HEADLESS` (default `true`), `BROWSER_TIMEOUT` (ms, default `30000`)
- Sessions
- `MAX_SESSIONS` (default 10), `SESSION_TIMEOUT` (s, default 900)
- Multi‑instance profile strategy
- `NOTEBOOK_PROFILE_STRATEGY` — `auto|single|isolated` (default `auto`)
- `NOTEBOOK_CLONE_PROFILE` — clone base profile into isolated dir (default `false`)
- Cleanup (to prevent disk bloat)
- `NOTEBOOK_CLEANUP_ON_STARTUP` (default `true`)
- `NOTEBOOK_CLEANUP_ON_SHUTDOWN` (default `true`)
- `NOTEBOOK_INSTANCE_TTL_HOURS` (default `72`)
- `NOTEBOOK_INSTANCE_MAX_COUNT` (default `20`)
- Library metadata (optional hints)
- `NOTEBOOK_DESCRIPTION`, `NOTEBOOK_TOPICS`, `NOTEBOOK_CONTENT_TYPES`, `NOTEBOOK_USE_CASES`
- `NOTEBOOK_URL` — optional; leave empty and manage notebooks via the library
---
## Storage Paths
The server uses platform-specific paths via [env-paths](https://github.com/sindresorhus/env-paths)
- **Linux**: `~/.local/share/notebooklm-mcp/`
- **macOS**: `~/Library/Application Support/notebooklm-mcp/`
- **Windows**: `%LOCALAPPDATA%\notebooklm-mcp\`
**What's stored:**
- `chrome_profile/` - Persistent Chrome browser profile with login session
- `browser_state/` - Browser context state and cookies
- `library.json` - Your notebook library with metadata
- `chrome_profile_instances/` - Isolated Chrome profiles for concurrent sessions
**No config.json file** - Configuration is purely via environment variables or tool parameters!