qdrant-memory-mcp@0.3.5
VERIFIED· not startedPublisher claims: "Metadata-only stdio MCP distribution of the Qdrant Memory Runtime" 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: Verified 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
GITHUB_TOKENConfiguration, not credentials: GITHUB_EVENT_NAME, GITHUB_OUTPUT, GITHUB_REPOSITORY, GITHUB_SHA- Where it talks to
- no vendor host named in the code
- What the honeypot saw
- no credential files read · no network
- What we could not test
- server startup · the tool list · tool behavior
Connect it with a scoped credential, under the guard. It asks for GITHUB_TOKEN and talks to its vendor. Give the credential to the guard, not the server: the value never enters the server's environment and only travels to the host you bind. What the tools do with a real credential was not observed.
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-15 and scored it 88/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 2 scenarios · 0 deviationsStatic findings
result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.return subprocess.check_output(['git', '-C', str(root), *args], text=True, stderr=subprocess.DEVNULL).strip()Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.completed = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.pass # the child exited between the probe and the killFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell."""Initialize over raw stdio, then kill the launcher and its Runtime child.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.completed = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.process = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run([*launch, "--help"], env=env, capture_output=True, timeout=180)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.check_output(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run([".publisher/mcp-publisher", "publish"], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run([*launch, "--home", str(profile), "mcp"], input="", text=True, env=env, capture_output=True, timeout=30)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run([*launch, "--home", str(profile), "mcp"], input="", text=True, env=env, capture_output=True, timeout=30)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.raw = subprocess.check_output(["npm", "pack", "--json", "--ignore-scripts"], cwd=source, env=env, text=True, timeout=120)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run([sys.executable, "-m", "pip", "download", "--no-deps", "--only-binary=:all:", "--dest", str(artifacts), f"hermes-plugin-qdrant-memory=={version}"], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.if subprocess.run(['git', '-C', str(root), 'merge-base', '--is-ancestor', sha, main_ref], capture_output=True).returncode:Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run([node, './scripts/validate-host.mjs'],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.raw = subprocess.check_output(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["git", "clone", "--no-checkout", source["repository"], str(target)], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.raw = subprocess.check_output(["npm.cmd", "pack", "--json", "--ignore-scripts"], cwd=source, env=env, text=True, timeout=120)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["git", "-C", str(target), "checkout", "--detach", sha], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run([sys.executable, "-m", "build", "--wheel", "--outdir", str(artifacts), str(target)], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.process = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run([".publisher/mcp-publisher", "login", "github-oidc"], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.check_output(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run([*launch, "--home", str(profile), "mcp"], input="", text=True, env=env, capture_output=True, timeout=30)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
No advisories in OSV for qdrant-memory-mcp@0.3.5 as of 25 min ago. This is the package itself, not its dependencies.