mcp-sever-demo-star@0.1.0
CAUTION· not startedPublisher claims: "Add your description here" 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 python.org, pydantic.dev, palletsprojects.com, example.org, rfc-editor.org, python-hyper.org, httpbin.org, domain.tld, icom.museum, haxx.se, other.com, jetbrains.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-09 and scored it 75/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: Access to sensitive file paths; Access to sensitive file paths; Access to sensitive file paths. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 2 scenarios · 0 deviationsStatic findings
help="Location of the .env file, defaults to .env file in current working directory.")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# Locate the .env fileFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.path = os.path.join(cwd, '.env')Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.@argument('dotenv_path', nargs='?', type=str, default='.env',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.If the .env path given doesn't exist, fails instead of risking creatingFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Get the value of a given key from the given .env.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.self.dotenv_path or ".env",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Adds or Updates a key/value to the given .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.print("cannot find .env file")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Return a path for the ${pwd}/.env file.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.an orphan .env somewhere in the filesystemFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# Load the .env fileFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."""This script is used to set, get or unset values from a .env file."""Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."""Get the correct npx command for the current platform."""Fix: Pin versions and sources; vendor anything fetched at install time.logger.error("python-dotenv is not installed. Cannot load .env file.")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# Get the correct npx commandFix: Pin versions and sources; vendor anything fetched at install time."npx not found. Please ensure Node.js and npm are properly installed " "and added to your system PATH."Fix: Pin versions and sources; vendor anything fetched at install time.process = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Path does not point to a directory [type=path_not_directory, input_value='file.txt', input_type=str]Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.https://jo%40email.com:a%20secret@müller.de:1234/pa%20th?search=ab#anchorlinkFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.assert url == "https://jo%40email.com:a%[email protected]"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.help="Load environment variables from a .env file",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.logger.error(f"Failed to load .env file: {e}")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."npx not found. Please ensure Node.js and npm are properly installed "Fix: Pin versions and sources; vendor anything fetched at install time.subprocess.run([cmd, "--version"], check=True, capture_output=True, shell=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.return "npx" # On Unix-like systems, just use npxFix: Pin versions and sources; vendor anything fetched at install time.# Load from .env file if specifiedFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.url = httpx.URL("HTTPS://jo%40email.com:a%20secret@müller.de:1234/pa%20th?search=ab#anchorlink")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.signal.SIGTERM, # Unix signal 15. Sent by `kill <pid>`.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.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 mcp-sever-demo-star@0.1.0 as of 5d ago. This is the package itself, not its dependencies.
What would make this Verified
5 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim pypi: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- 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.
- npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
- Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.