MCP, MCP server
Obsidian Mcp Server
Read, write, search, and surgically edit Obsidian vault notes, tags, and frontmatter via MCP.
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 1f0b662214fc, unchanged since the check below.
SECRETS_PATH_CREDENTIAL
Why this grade
- SECRETS_PATH_CREDENTIAL Medium
Mentions a credential store path (~/.ssh, id_rsa, .npmrc, .aws/credentials, credentials.json, .netrc).
scripts/devcheck.ts, line 695
':(glob)**/.npmrc',
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
Note
requests shell access. The manifest names this permission.
PERMISSION_SHELL_DECLARED
scripts/devcheck.ts, line 156
* Executes a shell command using child_process.spawn and returns a structured result.
Install and update
Concern
dependencies are not pinned.
INSTALL_UNPINNED
package.json, line 92
@cyanheads/mcp-ts-core
Network
Concern
can reach a host that is not written as a fixed address. can reach registry.npmjs.org. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
framework-skills/add-service/SKILL.md, line 147
const response = await fetch(`${this.baseUrl}/items/${id}`, { signal: ctx.signal });
framework-skills/add-tool/SKILL.md, line 661
const articles = await fetch(input.pmids);
framework-skills/add-tool/SKILL.md, line 692
async fetch(pmids: string[], ctx: Context) {
Show more
framework-skills/add-tool/SKILL.md, line 712
return { articles: await ncbi.fetch(input.pmids, ctx) }; // throws bubble unchanged
framework-skills/api-context/SKILL.md, line 633
const response = await fetch(url, { signal: ctx.signal });
framework-skills/api-context/SKILL.md, line 679
const items = await fetch(input.ids);
framework-skills/api-context/SKILL.md, line 719
const items = await fetch(input.ids);
framework-skills/api-context/SKILL.md, line 849
const items = await fetch(input.limit);
Dockerfile, line 168
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 CMD bun -e "fetch('http://localhost:'+(process.env.MCP_HTTP_PORT??'3010')+'/healthz').then((r)=>process.exit(
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
framework-skills/api-workers/SKILL.md, line 197
const apiKey = process.env.MY_API_KEY; // undefined in Workers
framework-skills/api-workers/SKILL.md, line 201
return ServerConfigSchema.parse({ apiKey: process.env.MY_API_KEY });
scripts/devcheck.ts, line 695
':(glob)**/.npmrc',
Show more
framework-skills/api-workers/SKILL.md, line 258
const r2Env = { ...env, STORAGE_PROVIDER_TYPE: 'cloudflare-r2' };
framework-skills/setup/SKILL.md, line 37
.env.example # Copy to .env and fill in
scripts/devcheck.ts, line 687
// `.env.d/`).
scripts/devcheck.ts, line 693
':(glob)**/*.env*',
scripts/devcheck.ts, line 694
':(glob)**/*.env*/**',
scripts/devcheck.ts, line 696
':(glob)**/.netrc',
scripts/devcheck.ts, line 697
':(glob)**/credentials.json',
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 1f0b662214fc. requests shell access. The manifest names this permission. dependencies are not pinned. can reach a host that is not written as a fixed address. can reach registry.npmjs.org. The description does not name that host. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 1f0b662214fc34a1db0773f00f02d2c282ade622
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.