notebooklm-py-diet-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NOTEBOOKLM_HOME | No | Path to the directory storing NotebookLM account profiles. Defaults to ~/.notebooklm-work if not set. | ~/.notebooklm-work |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_notebooks_toolA | List all NotebookLM notebooks. Returns a dictionary with notebook titles and IDs. |
| create_notebookA | Create a new NotebookLM notebook. Args: title: Title for the new notebook Returns: Dictionary with notebook ID and title |
| list_sourcesB | List all sources in a notebook. Args: notebook_id: ID of the notebook Returns: Dictionary with source count and source details |
| add_sourcesA | Add multiple sources to a notebook in a single call. Each source is a dictionary with a "type" and "value" field. Supported types: "url", "text", "file". Text sources also require a "title" field. Args: notebook_id: ID of the notebook sources: JSON array of sources, e.g. [{"type": "url", "value": "https://example.com"}, {"type": "text", "value": "Content here", "title": "My Notes"}, {"type": "file", "value": "/path/to/document.pdf"}] wait: Whether to wait for processing to complete Returns: Dictionary with results for each source |
| ask_questionA | Ask a question to a NotebookLM notebook and get an AI-generated answer. Args: notebook_id: ID of the notebook to query question: The question to ask source_ids: Comma-separated source IDs to restrict the query (optional) conversation_id: Continue an existing conversation thread (optional) persona: Set chat persona before asking (optional). Use a descriptive role like "tutor", "analyst", "concise summariser". Cleared if empty. response_length: Set response length before asking (optional). One of: short, medium, long. Cleared if empty. Returns: Dictionary with the answer and citation information |
| generate_and_downloadA | Generate an artifact and download it in a single call. Supports: report, audio, slide_deck, quiz, infographic. Args: notebook_id: ID of the notebook artifact_type: One of: report, audio, slide_deck, quiz, infographic output_path: Path where to save the downloaded file. Use the correct extension: .pdf (report, slide_deck, infographic), .wav (audio), .json/.md/.html (quiz, based on quiz_output_format) instructions: Custom instructions for generation (optional). For slide decks, pass a design template here to control visual style. audio_format: Audio format: deep-dive, brief, critique, debate audio_length: Audio length: short, medium, long quiz_quantity: Quiz quantity: few, standard, more quiz_difficulty: Quiz difficulty: easy, medium, hard quiz_output_format: Quiz download format: json, markdown, html Returns: Dictionary with generation and download status |
| list_artifactsA | List artifacts in a notebook, optionally filtered by type. Args: notebook_id: ID of the notebook artifact_type: Filter by type (audio, video, report, quiz, flashcards, slide_deck, infographic, data_table, mind_map). Leave empty for all types. Returns: Dictionary with the list of artifacts |
| export_artifactA | Export an artifact to a file in the requested format. Uses the appropriate export method based on the artifact type. Args: notebook_id: ID of the notebook artifact_id: ID of the artifact to export output_path: Path where to save the exported file export_format: Desired format (pdf, csv, json, etc.). Leave empty for default. Returns: Dictionary with export status |
| research_and_importB | Research a topic and import the results as notebook sources in a single call. Starts a research task, polls until completion, and automatically imports the top results. Args: notebook_id: ID of the notebook query: Research query source: Where to search: "web" or "drive" max_results: Maximum number of results to import Returns: Dictionary with research results and import status |
| get_account_infoA | Show the current NotebookLM account and available profiles. Returns: Dictionary with current account, config path, available profiles, and instructions for switching or adding accounts. |
| switch_accountA | Switch the active NotebookLM account to a different Google profile. The change takes effect immediately and is persisted across server restarts. Use get_account_info to see available profiles. Args: profile: Profile name to switch to (e.g. 'work', 'personal', 'design', or any custom name matching ~/.notebooklm-) Returns: Dictionary confirming the switch with the new profile details. |
| create_profileA | Create a new NotebookLM account profile and launch the Google login. This opens a browser window for the user to sign into their Google account. Once authentication is complete, the profile is ready to use via switch_account. Args: profile: Name for the new profile (e.g. 'work', 'design', 'testing'). Will be stored at ~/.notebooklm-. Returns: Dictionary with the profile status and next steps. |
| pdf_to_pngA | Convert a PDF file to individual PNG images (one per page). Useful for making slide deck pages visible to LLMs for review or editing. Args: pdf_path: Path to the source PDF file output_directory: Directory to write PNGs into. Defaults to a folder beside the PDF named _pages/ dpi: Render resolution (default 200 -- good balance of quality and size) Returns: Dictionary with output directory, list of page image paths, and page count |
| png_to_pdfA | Combine PNG images into a single PDF document. Provide either a list of image paths or a directory containing PNGs. When using a directory, images are sorted alphabetically (the naming convention from pdf_to_png -- page_001.png, page_002.png, etc. -- preserves correct order automatically). Args: image_paths: Comma-separated image file paths, or a JSON array of paths image_directory: Directory of PNG files to combine (alternative to image_paths) output_path: Path for the output PDF. Defaults to /combined.pdf Returns: Dictionary with the output PDF path and page count |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze_notebook_sources | Generate a prompt for analyzing notebook sources. Args: notebook_id: ID of the notebook to analyze focus_area: What to focus on in the analysis Returns: Formatted prompt for analysis |
| research_topic_workflow | Generate a prompt for researching a topic using NotebookLM. Args: topic: Topic to research depth: Level of depth (quick, standard, comprehensive) Returns: Formatted workflow prompt |
| generate_styled_slides | Generate a slide deck using a bundled design template. Reads the selected template from templates/slide_styles.md and provides complete instructions for generating and downloading a styled slide deck. Args: notebook_id: ID of the notebook to generate slides from style: Design template to use: corporate, educational, or creative output_path: Where to save the downloaded PDF Returns: Formatted prompt with the template and tool call instructions |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/earlyprototype/notebooklm-py-diet-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server