fittest-mcp@0.1.0
CAUTION· not startedPublisher claims: "Enables MCP clients to submit molecular structures and get a verdict on whether machine-learned interatomic potentials can be trusted or DFT should be called, with trust scores, recommended models or blends, per-atom uncertainty, and written explanations. Also exposes swarm status, member reputations, and usage statistics." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Not started: dependency install failed; the server itself was not observed.- Tested
- the dependency install step · every file read, file written and host contacted by what ran
- Not tested
- server startup · the tool list · tool behavior
What this means for the label: Caution here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
- It will ask for
- no credential variables read in the code
- Where it talks to
- no vendor host named in the codeAlso figshare.com, pytorch.org, nvidia.com, astral.sh, azure.com — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- server startup · the tool list · tool behavior
Connect it under the guard. Not started: dependency install failed; the server itself was not observed. The code names no credential variable; the guard pins the network to what the honeypot saw and logs every call.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; not started: dependency install failed; the server itself was not observed) on 2026-11-11 and scored it 68/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Privileged sudo command; Latin word with Cyrillic or Greek look-alike letters (homoglyph); Pipe-to-shell pattern. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 2 scenarios · 0 deviationsStatic findings
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq g++ python3.12-devFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.import subprocess print(subprocess.run(r'''for f in /content/logs/evc_*.log; do echo "== $f"; grep -E "^\[(static|evolved|noselect)|exit|Error|Traceback|RUN_DONE" $f | tail -8; done; ls /content/fittest/results/evolution_c/cache/*.result.js…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.ΔAUROCFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.print(subprocess.run(r"sed -n '1,7p;40,140p' /content/logs/install.log | cut -c1-200", shell=True, capture_output=True, text=True).stdout)Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.command -v uv >/dev/null || { echo "installing uv"; curl -LsSf https://astral.sh/uv/install.sh | sh; }Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.rm -f /tmp/ts_$ID.tgz /tmp/untar_$ID.pyFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.print(subprocess.run(r"sed -n '1,7p;40,140p' /content/logs/install.log | cut -c1-200", shell=True, capture_output=True, text=True).stdout)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(c, shell=True, capture_output=True, text=True, timeout=t); print(r.stdout[-3000:], r.stderr[-2000:])Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.…l.log | cut -c1-200", shell=True, capture_output=True, text=True).stdout) print(subprocess.run("curl -sIL -A 'Mozilla/5.0' https://figshare.com/ndownloader/files/36035789 | gr…Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out."href": "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap"},Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Geist:[email protected]&family=Geist+Mono:wght@400;500&display=swap">Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.rm -rf /content/envs/orbFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.…ir -p /content/fittest && cd /content/fittest && tar xzf /content/ts_$ID.tgz && rm /content/ts_$ID.tgz && echo SYNC_OK', shell=True, capture_output=True, text=True)…Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell."geist": {"family": "Geist", "href": "https://fonts.googleapis.com/css2?family=Geist:[email protected]&display=swap"},Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."href": "https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500&display=swap"}},Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.KEY=${KEY:-$HOME/.ssh/id_rsa}Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.echo "import subprocess; print(subprocess.run('cd /content/fittest && tar czf /content/f_$ID.tgz $REL && echo PACK_OK', shell=True, capture_output=True, text=True))" > /tmp/pack_$ID.pyFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.sudo apt-get update -qqFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.import subprocess print(subprocess.run(r'''for f in /content/logs/evc_*.log; do echo "== $f"; grep -E "^\[(static|evolv…Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.command -v uv >/dev/null || { echo "installing uv"; curl -LsSf https://astral.sh/uv/install.sh | sh; export PATH="$HOME/.local/bin:$PATH"; }Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.command -v uv >/dev/null || { echo "installing uv"; curl -LsSf https://astral.sh/uv/install.sh | sh; export PATH="$HOME/.local/bin:$PATH"; }Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.…tgz 2>&1 | grep -i -E "error|fail" | head -3 || true echo "import subprocess; r=subprocess.run('mkdir -p /content/fittest && cd /content/fittest && tar xzf /content/ts_$ID.tgz…Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.print(subprocess.run("free -g; which uv; python -c 'import torch;print(torch.__version__, torch.version.cuda)'",shell=True,capture_output=True,text=True).stdout)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run([CHROME, "--headless=new", "--disable-gpu", "--hide-scrollbars", "--window-size=1920,1080",Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.print(subprocess.run(["nvidia-smi","--query-gpu=name,memory.total,driver_version","--format=csv,noheader"],capture_output=True,text=True).stdout.strip() or "NO GPU")Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.running.append((s, subprocess.Popen(cmd, stdout=log, stderr=subprocess.STDOUT, env=env,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.out = subprocess.run(cmd, capture_output=True, text=True, timeout=1800)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.running.append((s, subprocess.Popen(cmd, stdout=log, stderr=subprocess.STDOUT, env=env,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.print(subprocess.run(["nvidia-smi"],capture_output=True,text=True).stdout.split("\n")[2])Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.command -v uv >/dev/null || { echo "installing uv"; curl -LsSf https://astral.sh/uv/install.sh | sh; }Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
12 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- Unclaimed publisher≈ +8 on the totalClaim pavel-tk: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Destructive file system command detected≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- URL with embedded credentials≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- References a credential file in the home directory≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.