NLM Expert Research MCP — Frontier
A private, single-owner remote MCP that exposes a read-oriented NotebookLM research surface: grounded research, notebook/source discovery, evidence retrieval and comparison, plus auth and health diagnostics.
Grounded research —
researchqueries exactly one notebook and returns a source-locked evidence capsule (claims, citations, conflicts, gaps, quality status), tunable viamode(AUTO/INSTANT/STANDARD/DEEP/VERIFY/ULTRA/FORENSIC),freshness, andinternet_policy(LOCKED/AUTO/VERIFY/AUGMENT/ULTRA).Notebook discovery —
list_notebooksenumerates live notebooks with an explicit count and flagscatalog_stalewhen live discovery fails;notebook_resolveresolves by title, alias, ID or URL (cache never authoritative).Source scope —
list_sourcesreturns authoritative remote source IDs/titles via the RPC-only metadata path; note source-title scoping is prompt-scoped, not a strict transport-level filter.Catalog refresh —
notebook_refreshforces a live refresh and detects created, renamed, deleted and newly added items.Evidence reuse —
get_evidenceretrieves a single evidence item by ID from a prior research session.Cross-notebook comparison —
compare_notebookscompares two notebooks while preserving provenance per notebook; never invoked implicitly.Auth bootstrap —
setup_authopens a visible Chrome window for secure Google login (force=trueif cookies look valid but Google redirects to sign-in).Diagnostics —
healthchecks Frontier, persistent NotebookLM auth and upstream transport readiness without exposing credentials;doctorruns local runtime/adapter/registry/stdio-safe MCP checks.Boundaries — one authorized owner, read-oriented, notebook/source bodies returned only to the authenticated caller and never persisted or logged, and fail-closed on upstream RPC/UI drift;
VERIFYis source-grounded model evaluation, not deterministic proof.
Integrates with Google NotebookLM, allowing users to treat each notebook as a closed corpus, preserve evidence provenance, and retrieve compact evidence capsules. Provides tools for research, notebook resolution and refresh, evidence retrieval, and comparing notebooks.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NLM Expert Research MCP — Frontiercompare evidence on aspirin vs clopidogrel across my notebooks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NotebookLM Expert Research MCP for Perplexity
Independent remote MCP for one authorized owner. It exposes a compact, read-oriented NotebookLM surface over authenticated Streamable HTTP and keeps its browser/auth profile, metadata, token, runtime and service separate from the Claude Desktop product.
Product boundary
PRODUCT_MODE=PRIVATE_SINGLE_OWNEROne authorized Google identity and one owner-controlled remote MCP client.
No multi-user/SaaS account model.
Notebook/source bodies are returned only to the authenticated caller and are not persisted or logged.
The NotebookLM adapter is an explicit
HIGH_EXTERNAL_UI_DEPENDENCY; v1 prefers the upstream internal RPC path and fails closed when its contract or UI fallback drifts.
Related MCP server: OneClickLM
Local verification
npm.cmd install
npm.cmd run certify:localThe automated suite uses TEST_ONLY_FAKE_ADAPTER only under NODE_ENV=test. These checks certify server behavior, isolation and MCP protocol mechanics; they are not evidence of live NotebookLM authentication or research.
Staging runtime
Copy .env.example to a root-readable staging environment file, generate a unique random token of at least 32 characters, and keep the service bound to 127.0.0.1. Use the artifacts in deployment/ for the dedicated Unix user, systemd service and nginx HTTPS reverse proxy.
The one-time legitimate Google ceremony uses the loopback-only noVNC scripts documented in docs/AUTH_BOOTSTRAP.md. Its auth command is:
sudo -u nlm-perplexity-stage /opt/nlm-expert-research-mcp-perplexity-staging/deployment/auth-bootstrap-staging.shIt must run only through a secure interactive display method described in docs/AUTH_BOOTSTRAP.md. Never paste passwords, 2FA codes or cookies into chat.
Tool policy
nlm_consultar: ordinary targeted question.nlm_investigarSTANDARD: bounded synthesis.nlm_investigarDEEP: bounded primary plus counter-evidence/gap pass when the measured remaining budget permits it.nlm_verificar_respuesta: NotebookLM source-grounded model evaluation, not deterministic proof.Source title scoping in v1 is disclosed as prompt-scoped, not a strict transport-level source filter.
See docs/OPERATIONS.md, docs/AUTH_BOOTSTRAP.md, docs/UI_DRIFT_RUNBOOK.md, and docs/PERPLEXITY_ACCEPTANCE.md.
Available Tools
10 toolscompare_notebooksC
Explicitly compare two notebooks while preserving provenance by notebook. Never invoked implicitly.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| notebook_a | Yes | ||
| notebook_b | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses two behavioral traits: provenance preservation and explicit invocation requirement. However, it does not mention side effects, cost, data scope, or whether it is read-only, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences with no filler. Every word contributes meaning, and the key points are front-loaded. It earns a top score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three required parameters and no output schema, the description is too sparse. It does not explain what the comparison returns, how provenance is represented, or any constraints on inputs. The agent would have to guess at invocation expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the three undocumented parameters. It does not explain what 'query', 'notebook_a', or 'notebook_b' should contain or how they interact. The parameter names are self-explanatory but lack necessary semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Explicitly compare two notebooks') and adds a distinctive detail ('preserving provenance by notebook') that helps differentiate it from siblings. It is specific about the resource and operation, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Never invoked implicitly' gives a weak usage hint, but there is no explicit guidance on when to use this tool versus alternatives like 'research' or 'get_evidence'. No when-not-to-use scenarios or prerequisite conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doctorB
Run local diagnostics for runtime, adapter, registry and stdio-safe MCP operation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool runs diagnostics but does not disclose whether it is read-only, any side effects, or what output is returned. 'stdio-safe MCP operation' suggests a safety property but is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It earns every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter diagnostic tool with no output schema or annotations, the description gives the scope of checks but does not explain the result format or how to interpret the diagnostic output. This is a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description is not required to explain them. The description does not add parameter-related details, but the 0-param baseline is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Run') and resource ('diagnostics') and lists the covered areas (runtime, adapter, registry, stdio-safe MCP operation), distinguishing it from notebook-focused sibling tools. However, 'local diagnostics' could be more explicit about what the tool actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided for when to use this tool versus alternatives. There is no mention of prerequisites, use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evidenceA
Retrieve one evidence item by evidence ID from a previous research session.
| Name | Required | Description | Default |
|---|---|---|---|
| evidence_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Retrieve' indicates a read-only operation, but the description does not disclose other behavioral traits such as error handling, return format, or authorization requirements. It is average for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that begins with the action verb and efficiently conveys the tool's purpose, resource, and key parameter. Every word earns its place, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter, the description covers the core purpose and parameter semantics. The phrase 'from a previous research session' provides useful context for when the tool is applicable. While return value is not explicitly described, 'retrieve' implies the item is returned, making the description adequate for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter, evidence_id, with no description. The description mentions 'by evidence ID,' which maps the parameter's purpose but essentially restates the field name. It does not add details about formats, constraints, or how to obtain the ID, so it only partially compensates for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Retrieve' and clearly identifies the resource as 'one evidence item' with a selection criterion (evidence ID). It also places the action in the context of 'a previous research session,' which distinguishes it from sibling tools like 'research' or 'compare_notebooks.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It merely notes the context 'from a previous research session,' but does not explain when this tool is preferred over siblings or mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
healthA
Check Frontier, persistent NotebookLM authentication, and upstream transport readiness without exposing credentials.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds a key behavioral safeguard ('without exposing credentials') but does not disclose whether the operation is read-only, error behavior, or response format. This is some value beyond the name but not rich context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately states the purpose and a key constraint. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple health-check tool with zero parameters and no output schema, the description sufficiently identifies what is checked. It lacks return-value details but is adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides complete coverage. The description adds no parameter details, but none are needed. Baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Check' and identifies three distinct resources: Frontier, persistent NotebookLM authentication, and upstream transport readiness. This clearly differentiates it from sibling tools like 'doctor' or 'setup_auth'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on what the tool checks, implying it should be used for verifying these components. However, it does not explicitly mention alternatives or when not to use it, though sibling tools exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notebooksA
List the authenticated account’s live NotebookLM notebooks. Use this when the user asks what expert notebooks are available; the result includes an explicit count and cached results are marked catalog_stale when live discovery is unavailable.
| Name | Required | Description | Default |
|---|---|---|---|
| freshness | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that results are live, include an explicit count, and that cached results are marked catalog_stale when live discovery is unavailable. This adds valuable behavioral context beyond a simple 'list'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded purpose, and no waste. The first sentence states what it does; the second adds usage and behavioral nuance efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers purpose, usage, and a key behavioral detail. The missing parameter explanation is a gap but doesn't undermine overall completeness for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one optional enum parameter (freshness: auto/force) with zero description coverage, and the tool description does not explain these values. The agent knows the options but not their semantics, so the description provides no value here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: listing the authenticated account's live NotebookLM notebooks. It specifies the scope (expert notebooks) and distinguishes it from siblings like list_sources by focusing on notebooks rather than sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when the user asks what expert notebooks are available,' providing clear usage context. It doesn't mention alternatives or exclusions, but the guidance is specific enough for a straightforward listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesA
List authoritative remote source IDs and titles for one NotebookLM notebook using the RPC-only metadata path. Use before discussing corpus scope or freshness.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It adds context by noting the 'RPC-only metadata path' and that the data is 'authoritative remote,' which suggests a specific access mechanism and data source. However, it does not disclose potential limitations, authentication requirements, or error behavior, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose and followed by a brief usage hint. Every word earns its place; there is no redundancy or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), and the description covers its core function, output content (source IDs and titles), and usage timing. However, it omits parameter format, authentication prerequisites, and error scenarios, which are relevant for a complete picture, though not critical for a simple read-only list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required string parameter 'notebook' with no description and 0% schema coverage. The description says 'for one NotebookLM notebook,' which clarifies that the parameter refers to a notebook, but it does not explain that the value should be a notebook ID or how to obtain it. This is minimal additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('List') and resource ('authoritative remote source IDs and titles for one NotebookLM notebook'). This is unambiguous and distinguishes it from sibling tools like list_notebooks, which list notebooks rather than sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: 'Use before discussing corpus scope or freshness.' This tells the agent when to invoke the tool, but it does not mention alternatives or when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_refreshB
Force refresh of live notebooks and sources, detecting created, renamed, deleted and newly added items.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses that the tool 'force refreshes' and 'detects' changes, but it does not explain the operational consequences: whether it writes to the notebook, requires permissions, is destructive, or has side effects. The term 'force' implies a non-trivial behavior that is left unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the primary action ('Force refresh') and packs the change-detection behavior into a concise clause. There is no wasted or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description should provide more context about the operation's inputs, outputs, and side effects. It does not explain terms like 'live notebooks' or 'sources', what happens when notebook_id is omitted, or what the return value looks like. This leaves a meaningful gap for a one-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter (notebook_id) with zero description coverage, and the tool description does not mention it at all. The description provides no meaning for what notebook_id should be or how it affects the refresh (e.g., filtering to a specific notebook vs. all notebooks).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Force refresh' and identifies the resources ('live notebooks and sources') plus the action's scope (detecting created, renamed, deleted, newly added items). This clearly differentiates it from sibling tools like compare_notebooks or doctor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly suggests this tool is for refreshing live notebooks and sources, but it does not explicitly state when to choose it over alternatives, mention prerequisites, or provide exclusions. There is no reference to sibling tools or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_resolveA
Resolve a notebook by title, alias, ID or URL. Cache misses trigger a live refresh; cache is never authoritative.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook | Yes | ||
| freshness | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose a key behavioral trait: cache misses trigger a live refresh, and the cache is never authoritative. However, it omits other behaviors such as error handling and return format, so it is not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and add a valuable behavioral note. Every word earns its place, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and cache behavior, but misses a clear differentiation from the sibling tool 'notebook_refresh'. It also does not describe the return value or error semantics, leaving the context slightly incomplete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates by explaining the 'notebook' parameter can be a title, alias, ID, or URL. It also hints at the 'freshness' parameter through the cache behavior discussion, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to resolve a notebook by title, alias, ID, or URL. This is a specific verb+resource combination that distinguishes it from siblings like 'notebook_refresh' and 'compare_notebooks'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need to resolve a notebook identifier) but provides no explicit guidance on when to use this tool versus alternatives like 'notebook_refresh'. The caching note gives some context but does not clarify the distinction further.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
researchA
Research a question against exactly one NotebookLM notebook. Returns a compact source-locked evidence capsule with claims, citations, conflicts, gaps and quality status. Use this for substantive notebook questions.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| query | Yes | ||
| notebook | Yes | ||
| freshness | No | ||
| internet_policy | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adds behavioral context beyond the schema by describing the return format (claims, citations, conflicts, gaps, quality status) and the 'source-locked' and 'exactly one notebook' constraints. It does not mention side effects or auth, but this is a read-only research tool and the description is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two sentences that are front-loaded with the action and resource. The first sentence states purpose and outcome, the second gives usage guidance. There is no redundant or fluff content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description explains the return structure well. It also scopes the tool to exactly one notebook and gives a usage hint. However, it does not explain the meaning of the three enum-constrained optional parameters, which is a notable gap given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only implicitly covers the required parameters 'query' and 'notebook' by stating the tool researches a question against a notebook. The optional parameters 'mode', 'freshness', and 'internet_policy' are not explained at all, leaving the agent to interpret enums without guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Research' with the resource 'question against exactly one NotebookLM notebook', and explicitly describes the output as a 'source-locked evidence capsule with claims, citations, conflicts, gaps and quality status'. It also distinguishes from sibling tools by emphasizing 'exactly one' notebook, which contrasts with compare_notebooks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage cue: 'Use this for substantive notebook questions.' It gives context but does not explicitly name alternatives or exclusion criteria, so it falls short of a 5 but is clearly above having no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_authA
Open a visible Chrome window for secure Google login. Set force=true when cookies look valid locally but Google redirects to sign-in.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that a visible Chrome window is opened, implying user interaction. However, it doesn't mention what happens after login, whether the process completes automatically, or any side effects beyond opening the window. Some behavioral transparency is present, but gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences. The first states the primary purpose, the second provides conditional usage for the parameter. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the essential purpose and parameter behavior. It doesn't specify return values or failure modes, but these may not be critical for an authentication tool. The description is sufficiently complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does so by explaining the 'force' parameter with a specific condition, giving it semantic meaning beyond the bare boolean type. The description effectively documents the parameter's purpose and appropriate usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Open a visible Chrome window') and its purpose ('secure Google login'). It distinguishes itself from sibling tools which are all research/notebook related, making it obvious this is an authentication tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance for when to set force=true: 'when cookies look valid locally but Google redirects to sign-in.' This gives clear conditional usage for the parameter. It doesn't explicitly discuss when to use this tool versus alternatives, but the sibling tools are unrelated, so the intended use is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- Added
health - Added
list_notebooks - Added
list_sources - Added
setup_auth
6 tool updates
v0.1.0- First observed
compare_notebooks - First observed
doctor - First observed
get_evidence - First observed
notebook_refresh - First observed
notebook_resolve - First observed
research
TDQS
Scored across 10 tools
Tools have mostly distinct purposes: setup_auth is for login, health for status, doctor for local diagnostics, research for single-notebook queries, compare_notebooks for two-notebook comparisons, and so on. Some potential confusion exists between list_notebooks and notebook_resolve (listing vs resolving one) and doctor vs health, but descriptions clarify the boundaries well.
Naming follows a mostly verb_noun pattern (list_notebooks, get_evidence, compare_notebooks) but deviates with single-word names (doctor, health, research) and reversed object_verb forms (notebook_resolve, notebook_refresh). This mixed convention is readable but not fully consistent.
10 tools is well-scoped for an expert research MCP, covering authentication, diagnostics, health, notebook discovery, source listing, research, evidence retrieval, and comparison. Each tool earns its place without redundancy or bloat.
The surface covers the full research lifecycle: setup auth, check health, list/resolve/refresh notebooks, list sources, run research, retrieve evidence, and compare notebooks. Minor gaps include lack of a tool to browse all evidence from a session or a single tool to search across multiple notebooks, but these are not core to the stated purpose.
Maintenance
Related MCP Connectors
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Related MCP Servers
- AlicenseAqualityFmaintenanceAn enhanced MCP server that enables users to interact with NotebookLM while ensuring strict source fidelity and citation accuracy through client-side prompt structuring. It guides Claude to transform user queries into structured prompts that prevent the addition of external knowledge during document analysis.1645MIT
- AlicenseAqualityDmaintenanceA robust MCP server for NotebookLM that provides auto-healing authentication, zero-config setup, and tools to list, query, create notebooks, and manage sources.62MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables Claude to interact with Google NotebookLM via browser automation, allowing management of notebooks, adding sources, and querying information.71,742 npmMIT
- AlicenseNot gradedqualityCmaintenanceMCP server for querying Google NotebookLM notebooks, enabling AI assistants to list notebooks, read sources, and ask questions about them.MIT