MCP, MCP server
Distill Kura
A long-term memory for agents that is distilled, not accumulated. Recall works by meaning, writing is gated by evidence, and one server can hold several separate memories — one per agent mode — so switching mode switches what the agent remembers.
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.
NETWORK_HOST_FROM_INPUT
Why this grade
- NETWORK_HOST_FROM_INPUT Medium
A file takes a URL or endpoint as input and has no fixed host list.
distill_kura/mcp.py, line 106
with urllib.request.urlopen(req, timeout=timeout) as r:
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
distill_kura/bench.py, line 87
p = subprocess.run(command, shell=True, input=text, capture_output=True,
distill_kura/cli.py, line 814
os.remove(draft)
distill_kura/tend.py, line 181
self.proc: subprocess.Popen | None = None
Show more
distill_kura/tend.py, line 220
self.proc = subprocess.Popen(self._cmd(track), stdout=out, stderr=subprocess.STDOUT, text=True)
distill_kura/trail.py, line 206
os.remove(p)
distill_kura/weave.py, line 829
os.remove(os.path.join(bdir, old))
distill_kura/distill/pending.py, line 108
os.remove(path)
distill_kura/distill/pipeline.py, line 1147
os.remove(p)
distill_kura/distill/sources.py, line 364
p = subprocess.run(["zstd", "-dc", path], capture_output=True, timeout=300)
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Serious
accepts a host from input, with no fixed list in this file.
NETWORK_HOST_FROM_INPUT
distill_kura/mcp.py, line 106
with urllib.request.urlopen(req, timeout=timeout) as r:
distill_kura/payforward.py, line 125
with urllib.request.urlopen(req, timeout=timeout) as r:
distill_kura/thinker.py, line 122
with urllib.request.urlopen(req, timeout=timeout or self.timeout) as r:
Show more
distill_kura/thinker.py, line 189
urllib.request.urlopen(req, timeout=5).read()
dsh-plugin/lib/index.js, line 132
const res = await fetch(cfg.url + path, {
scripts/demo-clean-room.sh, line 21
if curl -sf "http://127.0.0.1:18099/v1/models" >/dev/null 2>&1; then
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_DOTENV
.gitignore, line 17
/kura.local.toml
.gitignore, line 18
.env
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 3a02c04e5155. can delete files. accepts a host from input, with no fixed list in this file. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 3a02c04e5155cd66d49cfd95d11b09239499c97d
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.