MCP, MCP server
Ynab Mcp Server
YNAB MCP connector for budgets, transactions, categories, scheduled transactions, accounts, months, payees, and budget review workflows.
Compatibility: Not stated.
Grade D
Two or more Medium findings, or a High finding. Only try it in a sandbox.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 02426c476c40.
SECRETS_PATH_CREDENTIAL OBFUSCATION_ENCODED_BLOB OBFUSCATION_MINIFIED_PAYLOAD
Why this grade
- SECRETS_PATH_CREDENTIAL Medium
Mentions a credential store path (~/.ssh, id_rsa, .npmrc, .aws/credentials, credentials.json, .netrc).
.gitignore, line 11
credentials.json - OBFUSCATION_ENCODED_BLOB Medium
Contains a long base64 shaped string in a file that should be readable.
index.js, line 1
#!/usr/bin/env node - OBFUSCATION_MINIFIED_PAYLOAD Medium
Contains a very long line with almost no spaces in a script or style file.
index.js, line 1
#!/usr/bin/env node
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 134
fs.rmSync(outputPath, { force: true });
.github/scripts/linear_release.py, line 31
result = subprocess.run(args, cwd=cwd, env=env, text=True, capture_output=True, timeout=timeout)
.github/scripts/test_linear_release.py, line 102
return subprocess.check_output(["git", *args], cwd=checkout, text=True).strip()
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
worker/src/connector-origin.js, line 48
async fetch(request, env, ctx) {
worker/src/connector-origin.js, line 86
return provider.fetch(request, requestEnv, ctx);
worker/src/credential-store-core.js, line 62
fetch(request) {
Show more
worker/src/index.js, line 41
async fetch(request, env, ctx) {
worker/src/index.js, line 42
const response = await oauthRouter.fetch(request, env, ctx);
worker/src/mcp-session-isolation.js, line 27
async fetch(request, env, ctx) {
worker/src/mcp-session-isolation.js, line 28
if (request.method === "OPTIONS") return handler.fetch(request, env, ctx);
worker/src/mcp-session-isolation.js, line 43
return handler.fetch(request, { ...env, MCP_OBJECT: scopedMcpNamespace(env.MCP_OBJECT, scopeHash) }, ctx);
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
scripts/check-release-consistency.mjs, line 54
process.env.YNAB_API_TOKEN = "
.gitignore, line 11
credentials.json
.gitignore, line 8
.env
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Concern
contains an encoded blob in a file that should be readable. contains a minified payload.
OBFUSCATION_ENCODED_BLOB OBFUSCATION_MINIFIED_PAYLOAD
index.js, line 1
#!/usr/bin/env node
worker/src/brand-assets-png.js, line 9
"iVBORw0KGgoAAAANSUhEUgAAAMQAAABOCAMAAABIU0nnAAACi1BMVEVMaXGNjZOOjpKNjZORkZGOjpONjZKOjpONjZKNjZKOjpOMjJOOjpOOjpOMjJWOjpOOjpONjZeQkJCNjZKOjo6OjpKNjZKPj5KOjpORkZGOjpKNjZKOjpKJiZOPj4+
worker/src/connector-icon-assets.js, line 1
// Generated by scripts/generate-worker-icon-assets.mjs.
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 02426c476c40. can delete files. can reach a host that is not written as a fixed address. reads a credential or environment file. contains an encoded blob in a file that should be readable. contains a minified payload.
Date and source
Date checked:
github.com
Commit graded: 02426c476c40731c902d60758536e60518457873
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.