MCP, MCP server
mnemiq
Text-to-SQL you can tune to your database. /NEM-ik/ — the "m" is silent, as in mnemonic.
Compatibility: Not stated.
Grade C
One Medium finding. Read the report before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
PERMISSION_SHELL_UNDECLARED
Why this grade
- PERMISSION_SHELL_UNDECLARED Medium
Runs shell commands that the manifest or description does not mention.
scripts/rerun_local_judge.sh, line 178
rev = subprocess.run(["git","rev-parse","--short","HEAD"], capture_output=True, text=True).stdout.strip()
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
requests shell access. No manifest field names shell or command execution. can delete files.
PERMISSION_SHELL_UNDECLARED PERMISSION_DELETE_FILES
scripts/rerun_local_judge.sh, line 178
rev = subprocess.run(["git","rev-parse","--short","HEAD"], capture_output=True, text=True).stdout.strip()
scripts/rerun_local_judge.sh, line 179
dirty = bool(subprocess.run(["git","status","--porcelain"], capture_output=True, text=True).stdout.strip())
scripts/run_spider.py, line 79
os.remove(args.results)
Show more
scripts/run_spider.py, line 82
os.remove(meta)
scripts/seed_demo.py, line 103
os.remove(DB_PATH)
src/mnemiq/eval/bird_runner.py, line 295
done = subprocess.run( # noqa: S603 -- fixed argv, no shell
src/mnemiq/eval/bird_runner.py, line 318
done = subprocess.run( # noqa: S603 -- fixed argv, no shell
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
scripts/rerun_local_judge.sh, line 24
# `-w %{http_code}` because `curl -sS` without `-f` exits 0 on a 404 and hands back the error page,
scripts/rerun_local_judge.sh, line 26
MODELS_RAW="$(curl -sS --max-time 10 -H "Authorization: Bearer ${MNEMIQ_VERIFY_API_KEY:-EMPTY}" \
scripts/rerun_local_judge.sh, line 45
# Best-effort. Captured as RAW TEXT and parsed defensively below -- `curl -sS` without `-f` exits 0
Show more
scripts/rerun_local_judge.sh, line 48
VERSION_BODY="$(curl -sS --max-time 10 -w '\n%{http_code}' "${BASE%/}/../version" 2>/dev/null || echo '')"
scripts/rerun_local_judge.sh, line 165
# the status a reader cannot tell it from `{"version": "0.9.0.1"}` -- `curl -sS` without `-f` exits
scripts/rerun_local_judge.sh, line 263
with urllib.request.urlopen(os.environ["JUDGE_MODELS_URL"], timeout=10) as r:
scripts/run_native_slm.py, line 360
with urllib.request.urlopen(req, timeout=timeout) as r:
src/mnemiq/cli.py, line 81
help="the extensions to fetch (default: all mnemiq loads -- vss, fts, "
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
scripts/repo-guard.sh, line 25
# .env), the check fails closed without it under --staged, and the two CI modes -- --all and
scripts/repo-guard.sh, line 69
# Resolve the blocklist: environment first (CI), then the gitignored .env.
scripts/repo-guard.sh, line 70
if [ -z "${REPO_GUARD_NAME_PATTERNS:-}" ] && [ -f .env ]; then
Show more
scripts/repo-guard.sh, line 71
REPO_GUARD_NAME_PATTERNS="$(grep '^REPO_GUARD_NAME_PATTERNS=' .env | head -1 | cut -d= -f2- \
scripts/repo-guard.sh, line 82
# inferred them from whether `.env` existed, which is wrong in the documented direction:
scripts/repo-guard.sh, line 83
# `.env.example` says "Copy to .env", so a contributor who follows the setup has one,
scripts/repo-guard.sh, line 87
# gets by copying .env.example, and what the check skips on
scripts/repo-guard.sh, line 114
echo "Set it in .env (gitignored) or the environment. Two valid values:"
scripts/run_minidev_pg.py, line 66
"llm_api_key": os.getenv("MNEMIQ_ENRICH_API_KEY", settings.llm_api_key),
scripts/run_verify_replay.py, line 214
key = os.getenv("MNEMIQ_VERIFY_API_KEY") or settings.llm_api_key
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. the file cap was reached before every file was read.
OBFUSCATION_FILE_OVER_READ_CAP OBFUSCATION_FILE_CAP_REACHED
uv.lock, line 1
version = 1
tests/test_plan_query.py, line 1
import logging
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 4f4f4e81e619. requests shell access. No manifest field names shell or command execution. can delete files. 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. the file cap was reached before every file was read.
Date and source
Date checked:
github.com
Commit graded: 4f4f4e81e61913a95d927b7c393cddeb48041a64
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.