MCP, MCP server
Notebooklm Mcp
Automate Google NotebookLM at scale.
Compatibility: Not stated.
Grade C
One Medium finding. Read the findings before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit ef0b5203df25.
INSTALL_LIFECYCLE_HOOK
Why this grade
- INSTALL_LIFECYCLE_HOOK Medium
A package install hook (preinstall, install, postinstall or prepare) runs a script.
package.json, line 31
prepare
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
src/accounts/account-manager.ts, line 305
await fs.rm(accountDir, { recursive: true, force: true });
src/accounts/account-manager.ts, line 552
await fs.unlink(currentAccountPath);
src/accounts/account-manager.ts, line 789
await fs.rm(mainProfileDir, { recursive: true, force: true });
Show more
src/accounts/account-manager.ts, line 843
await fs.rm(accountProfileDir, { recursive: true, force: true });
src/auth/auth-manager.ts, line 1114
await fs.unlink(path.join(CONFIG.browserStateDir, file));
src/auth/auth-manager.ts, line 1128
await fs.rm(chromeProfileDir, { recursive: true, force: true });
src/auth/auth-manager.ts, line 1149
await fs.unlink(this.stateFilePath);
src/auth/auth-manager.ts, line 1155
await fs.unlink(this.sessionFilePath);
Install and update
Concern
runs a script at install time.
INSTALL_LIFECYCLE_HOOK
package.json, line 31
prepare
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
scripts/check-skill-sync.mjs, line 54
const res = await fetch(url, {
scripts/check-skill-sync.mjs, line 88
const res = await fetch(url, {
scripts/doctor.mjs, line 112
const response = await fetch(url, {
Show more
scripts/sync-version.mjs, line 50
// to fetch (or use the matching cache) for that exact version.
skills/notebooklm/scripts/nblm.sh, line 30
curl -fsS -X "$method" "$BASE$path" -H 'Content-Type: application/json' -d "$body"
skills/notebooklm/scripts/nblm.sh, line 32
curl -fsS -X "$method" "$BASE$path"
skills/notebooklm/scripts/nblm.sh, line 37
if ! curl -fsS "$BASE/health" >/dev/null 2>&1; then
skills/notebooklm/scripts/nblm.sh, line 48
curl -fsS "$BASE/health" || { echo "unreachable at $BASE" >&2; exit 3; }
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
scripts/check-skill-sync.mjs, line 39
const token = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
scripts/doctor.mjs, line 116
...(process.env.NOTEBOOKLM_API_KEY
scripts/doctor.mjs, line 117
? { Authorization: `Bearer ${process.env.NOTEBOOKLM_API_KEY.trim()}` }
Show more
src/config.ts, line 294
loginPassword: process.env.LOGIN_PASSWORD || config.loginPassword,
src/stdio-http-proxy.ts, line 51
const HTTP_API_TOKEN = process.env.NOTEBOOKLM_API_KEY?.trim() || '';
src/accounts/crypto.ts, line 30
const envKey = process.env.NBLM_ENCRYPTION_KEY;
src/auth/auth-manager.ts, line 568
log.info(' 💡 Check if email is correct in .env');
src/auth/auth-manager.ts, line 574
log.info(' 💡 Check if password is correct in .env');
.dockerignore, line 16
.env
.env.example, line 2
# Copy to .env and adjust only what you need.
CHANGELOG.md, line 1102
- `.env.example` documenting the project's config knobs
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Note
a file was over the read cap and was not fully read.
OBFUSCATION_FILE_OVER_READ_CAP
package-lock.json, line 1
{
src/tools/index.ts, line 1
/**
website/package-lock.json, line 1
{
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit ef0b5203df25. can delete files. runs a script at install time. can reach a host that is not written as a fixed address. reads a credential or environment file. a file was over the read cap and was not fully read.
Date and source
Date checked:
github.com
Commit graded: ef0b5203df2533db89d08b5cf816de84b3a10c2b
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.