NotebookLM MCP Server
October 15, 2026
Table of contents
The useapi.net Gemini Notebook MCP server lets an AI assistant such as Claude Code, Cursor or VS Code Copilot use Gemini Notebook (formerly NotebookLM) on your own Google accounts. It is a hosted Model Context Protocol server with 56 tools: create notebooks, add web pages, YouTube videos, files, Google Drive files and Google Play Books ebooks as sources, ask questions answered with citations, and generate every Studio output, from Audio Overviews and Video Overviews to slide decks, infographics, quizzes and mind maps. Each tool calls the Gemini Notebook API, so the same rules and limits apply. Nothing needs to be installed or hosted.
Endpoint and authorization
https://api.useapi.net/v1/gemini-notebook/mcp
- Transport: Streamable HTTP.
- Authorization: your useapi.net API token in the
Authorization: Bearer …header, see Setup useapi.net. - You need at least one Google account added with Setup Gemini Notebook. Adding and removing accounts is not available over MCP: use POST /accounts or the setup page.
Setup
Replace YOUR_API_TOKEN with your useapi.net API token.
Claude Code
claude mcp add --transport http useapi-gemini-notebook https://api.useapi.net/v1/gemini-notebook/mcp --header "Authorization: Bearer YOUR_API_TOKEN"
Cursor
In ~/.cursor/mcp.json:
{
"mcpServers": {
"useapi-gemini-notebook": {
"url": "https://api.useapi.net/v1/gemini-notebook/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
VS Code
In .vscode/mcp.json:
{
"servers": {
"useapi-gemini-notebook": {
"type": "http",
"url": "https://api.useapi.net/v1/gemini-notebook/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Windsurf and other clients
Any client that supports remote MCP servers over HTTP with custom headers works. The usual JSON shape:
{
"mcpServers": {
"useapi-gemini-notebook": {
"serverUrl": "https://api.useapi.net/v1/gemini-notebook/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Some clients name the address field url instead of serverUrl.
Test it with curl
curl -s https://api.useapi.net/v1/gemini-notebook/mcp \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'
curl -s https://api.useapi.net/v1/gemini-notebook/mcp \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
The first call answers with the server’s name useapi-gemini-notebook and its instructions for the assistant, the second with the 56 tools.
Tools
Notebooks, sources, notes and artifacts are named by the ids the tools return, and each id carries its account. Tools that work on an account take email, which can be left out when the API token has one account.
Accounts
| Tool | What it does | Main parameters |
|---|---|---|
notebook_list_accounts | Lists your accounts with health, maxJobs, running jobs and last known usage. | Â |
notebook_get_account | Reads one account live: plan, limits, the 5-hour and weekly usage, and the estimated cost of each Studio action. | email |
notebook_update_account | Sets maxJobs and the output language of Studio artifacts. | email, maxJobs, outputLanguage |
Notebooks and collections
| Tool | What it does | Main parameters |
|---|---|---|
notebook_list_notebooks | Lists the notebooks of one account or of all of them. | email |
notebook_get_notebook | Reads a notebook with its sources and artifacts, and whether each source is ready. | notebook |
notebook_create_notebook | Creates an empty notebook. | email, title |
notebook_rename_notebook | Renames a notebook. | notebook, title |
notebook_delete_notebook | Deletes a notebook with everything in it. | notebook |
notebook_copy_notebook | Copies a notebook with its sources. | notebook, title |
notebook_get_guide | Returns Google’s summary of the notebook, with suggested questions and reports. | notebook |
notebook_list_collections | Lists the collections (folders of notebooks). | email |
notebook_create_collection | Creates a collection. | name, emoji, email |
notebook_update_collection | Renames a collection, or adds and removes notebooks. | collection, name, emoji, addNotebooks, removeNotebooks |
notebook_delete_collection | Deletes a collection. Its notebooks stay. | collection |
Sources
| Tool | What it does | Main parameters |
|---|---|---|
notebook_add_sources | Adds web pages, YouTube videos, pasted text, Google Drive files and Google Play Books ebooks in one call. | notebook, urls, text, title, drive, books |
notebook_upload_source | Adds a file (PDF, Word, PowerPoint, EPUB, Markdown, text, CSV, audio, video or image) from a public https URL of up to 50 MB, or sent as contentBase64. | notebook, url or contentBase64, name, mimeType |
notebook_get_source | Reads a source with Google’s summary and key topics, and with content: true its full text. | source, content |
notebook_rename_source | Renames a source. | source, title |
notebook_delete_source | Removes a source. | source |
notebook_sync_source | Re-imports a Google Drive source after its file changed. | source |
notebook_search_sources | Finds the passages that match a query, best first. | notebook, query, sources, limit |
notebook_append_to_source | Adds text to the end of a source. | source, text, title |
notebook_copy_sources | Copies sources to another notebook of the same account. | sources, notebook |
notebook_list_play_books | Lists the account’s Google Play Books library and which books can be added. | email |
Chat, notes, labels and sharing
| Tool | What it does | Main parameters |
|---|---|---|
notebook_ask | Asks a question answered from the sources with numbered citations. Pass conversation to ask a follow-up. | notebook, question, conversation, sources |
notebook_get_chat | Reads a conversation. | notebook, conversation |
notebook_delete_chat | Deletes a conversation. | notebook, conversation |
notebook_set_chat_settings | Sets the chat goal (default, learning guide or a custom persona) and answer length. | notebook, goal, persona, length |
notebook_list_notes, notebook_get_note, notebook_create_note, notebook_update_note, notebook_delete_note | Manage notes. notebook_create_note with conversation saves a whole chat as a note. | notebook, note, title, content, conversation |
notebook_note_to_source | Turns a note into a source. | note |
notebook_create_mindmap_note | Makes a mind map of the sources as a note, in one call. | notebook, sources, language, instructions |
notebook_list_labels, notebook_create_labels, notebook_update_label, notebook_delete_label | Group sources with labels, named or assigned by Google by topic (auto). | notebook, label, auto, name, emoji, addSources, removeSources |
notebook_get_sharing, notebook_set_sharing | Read and change who can open a notebook, its link, copies and view level. | notebook, people, link, allowCopies, viewLevel |
Studio and research
| Tool | What it does | Main parameters |
|---|---|---|
notebook_generate_artifact | Generates an Audio Overview, Video Overview, report, interactive report, data table, quiz, flashcards, infographic, slide deck or mind map. Without notebook it runs one-shot from urls or text. | type, notebook, sources, urls, text, and the type’s options: format, length, style, language, instructions, quantity, difficulty, orientation, detail |
notebook_get_job | Reads a job, and with wait: true waits for it to finish. | jobid, wait |
notebook_list_jobs | Lists each account’s running jobs and last known usage. |  |
notebook_cancel_job | Stops tracking a job and frees its slot. Google may still finish the artifact, and its usage is spent either way. | jobid |
notebook_list_artifacts | Lists a notebook’s artifacts. | notebook |
notebook_get_artifact | Reads an artifact: files with download URLs, a report’s text, the JSON of a quiz, flashcards, mind map or table, slide texts, and an interactive report’s suggested items. | artifact |
notebook_rename_artifact, notebook_delete_artifact | Rename or delete an artifact. Deleting a suggested item dismisses it. | artifact, title |
notebook_retry_artifact | Generates a failed artifact again. | artifact |
notebook_revise_slide | Changes one slide of a slide deck with a prompt. | artifact, slide, prompt |
notebook_generate_suggested_item | Generates an item an interactive report suggests, as suggested or with its own options. | artifact and the type’s options |
notebook_export_artifact | Exports a report to Google Docs or a table to Google Sheets and returns its URL. | artifact, destination, title |
notebook_copy_artifacts | Copies finished artifacts to another notebook. | artifacts, notebook |
notebook_research | Lets Google find sources: fast (Discover) or deep (Deep Research with a report), on the web or the account’s Google Drive. | notebook, query, type, source |
notebook_import_research | Adds the sources a research job found, and the Deep Research report. | jobid, urls, report |
The options of each Studio type are listed on POST /artifacts. The full input schema of every tool comes from tools/list.
Long-running work
MCP clients usually give up on a tool call after about a minute, so a tool waits up to about 50 seconds:
- A quiz, flashcards or a mind map usually finishes in that time, and the tool returns the result.
- An Audio Overview, a Video Overview, a slide deck or research takes longer. The tool then returns the
jobid, andnotebook_get_jobwithwait: truepicks it up. Ask the assistant to keep checking until it is done. notebook_askanswers in about 5 to 40 seconds.
Clients that ask for progress notifications get one about every 10 seconds while a tool waits.
Files come back as download URLs. Fetch them with the same Authorization header. An infographic, and the first slide of a slide deck, also come back as an image the assistant can see.
Example prompts
- “Create a notebook from these three articles and make me a 10-minute deep-dive podcast about them.”
- “Upload this PDF and ask the notebook which risks it lists, with citations.”
- “Make a quiz of 10 easy questions from my Apollo notebook, then flashcards on the same topic.”
- “Make a portrait infographic in sketch-note style from the notebook, and show it to me.”
- “Run Deep Research on solid-state batteries in my Batteries notebook and import the sources and the report.”
- “Make an interactive report for a 12-year-old, then generate the slide deck it suggests.”
- “Export the briefing report to Google Docs and give me the link.”
Limits and notes
- The tools use your Google accounts and the same rules as the REST API, such as
maxJobsfor Studio and research jobs. Studio output counts against the account’s Google usage, see Usage limits. - Custom connectors on claude.ai need OAuth sign-in, which this server does not support yet. Use Claude Code or another client that can send an
Authorizationheader. - A client may send up to 20 JSON-RPC requests in one batch.
- If the client sends an
MCP-Protocol-Versionheader, it must be one of the supported versions:2025-06-18,2025-03-26or2024-11-05. - Every tool call shows in your usage stats (
bot=gemini-notebook) as modelmcp, with the tool name as its status, orfailed.