MCP, MCP server
Notion Mcp Server
Give your AI read/write access to Notion with one token and one command.
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 7ea718929327.
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 11
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
scripts/build-mcpb.mjs, line 27
fs.rmSync(stage, { recursive: true, force: true });
Install and update
Concern
runs a script at install time.
INSTALL_LIFECYCLE_HOOK
package.json, line 11
prepare
Network
Note
can reach localhost.
NETWORK_LOCALHOST
Dockerfile, line 57
# CMD node -e "fetch('http://127.0.0.1:'+(process.env.PORT||3000)+'/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
docs/http-transport.md, line 50
test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:'+(process.env.PORT||3000)+'/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
benchmarks/describe-all.mjs, line 10
env: { ...process.env, NOTION_TOKEN: process.env.NOTION_TOKEN || "ntn_dummy" },
benchmarks/make-fixture.mjs, line 19
if (!process.env.NOTION_TOKEN) {
benchmarks/output-cost.mjs, line 22
const TOKEN = process.env.NOTION_TOKEN;
Show more
scripts/e2e.mjs, line 26
if (!process.env.NOTION_TOKEN) { console.error("NOTION_TOKEN missing"); process.exit(2); }
src/services/auth.ts, line 20
const t = process.env.NOTION_TOKEN;
benchmarks/make-fixture.mjs, line 10
// node --env-file=../.env make-fixture.mjs <parent-page-id>
benchmarks/make-fixture.mjs, line 16
console.error("usage: node --env-file=../.env make-fixture.mjs <parent-page-id>");
benchmarks/make-fixture.mjs, line 20
console.error("NOTION_TOKEN is not set (pass --env-file=../.env)");
benchmarks/output-cost.mjs, line 12
// Usage, from benchmarks/ with a real token in ../.env:
benchmarks/output-cost.mjs, line 13
// node --env-file=../.env output-cost.mjs /path/to/out.json
benchmarks/output-cost.mjs, line 19
console.error("usage: node --env-file=../.env output-cost.mjs <out.json>");
benchmarks/output-cost.mjs, line 24
console.error("NOTION_TOKEN is not set (pass --env-file=../.env)");
scripts/e2e.mjs, line 13
// `npm run e2e` loads NOTION_TOKEN and NOTION_PAGE_ID from ./.env (gitignored);
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
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 7ea718929327. can delete files. runs a script at install time. can reach localhost. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 7ea7189293274bdbb31efc4ab5ea51e10a86c9ab
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.