Skills/PyPI/proton-safe-mcp

proton-safe-mcp@2.3.2

VERIFIED· not started

Publisher claims: "Client-agnostic Proton Mail MCP server with safe reads, bounded attachment text extraction, and explicitly confirmed drafts" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry PyPI (MCP server)Publisher fbossiere · publishing for 77 daysInstalls 455Last detonated 35 min ago
$claude mcp add proton-safe-mcp -- uvx proton-safe-mcp
WatchReport an issue

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
PROTON_BRIDGE_PASSWORDConfiguration, not credentials: CODEX_HOME, DISPLAY, PROTON_BRIDGE_ALIASES, PROTON_BRIDGE_USER, PROTON_MCP_STATE_DIR, WAYLAND_DISPLAY
Where it talks to
no vendor host named in the codeAlso proton.me, chatgpt.com, microsoft.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 with a scoped credential, under the guard, and read the third-party hosts first. The code names proton.me, chatgpt.com, microsoft.com as well as its own vendor. The guard injects PROTON_BRIDGE_PASSWORD only into requests to the host you bind (and its subdomains) and refuses the rest.

$vet-skills run --net declared -- uvx proton-safe-mcp

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 80/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 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
0.1sprocessdependency install exit 1 ·
0.1sclaimednot started: dependency install failed (exit 1); the server itself was not observed
0.1sprocessscript backend runs setup only
0.2sprocessno install scripts to re-run

Static findings

MEDIUM
Python subprocess execution detectedsrc/proton_safe_mcp/onboarding/runtime.py:157 · Python subprocess execution detectedprocess = subprocess.Popen( # noqa: S603 - fixed argv, no shellFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
CRITICAL
Prompting user to enter sensitive credentialssrc/proton_safe_mcp/onboarding/messages.py:589 · Prompting user to enter sensitive credentials — social engineering"Enter the password generated by Bridge.",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST03
LOW
Prompt injectiondocs/openai-plugin.md:347 · Prompt injection — known jailbreak technique reference · informational: not an instruction fileTunnel permissions belong to the OpenAI Platform organization, while ChatGPT Developer mode is aFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST01
MEDIUM
File permission modification commandpackaging/build_deb.sh:82 · File permission modification command — agent changes file ownership/permissionschmod 0755 "$STAGE/DEBIAN/postinst" "$STAGE/DEBIAN/postrm"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
LOW
Prompt injectiondocs/openai-plugin.md:341 · Prompt injection — known jailbreak technique reference · informational: not an instruction file1. Enable Developer mode under **Settings → Security and login**.Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST01
MEDIUM
Python subprocess execution detectedpackaging/make_sbom.py:44 · Python subprocess execution detectedreturn subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
LOW
Prompt injectiondocs/openai-plugin.md:402 · Prompt injection — known jailbreak technique reference · informational: not an instruction file4. verify Developer mode and tunnel-use permission for the ChatGPT account;Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST01
MEDIUM
Python subprocess execution detectedsrc/proton_safe_mcp/onboarding/clients/base.py:65 · Python subprocess execution detectedcompleted = subprocess.run( # noqa: S603 - fixed argv, no shell, boundedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File permission modification commandpackaging/build_deb.sh:83 · File permission modification command — agent changes file ownership/permissionsfind "$STAGE/opt" -type d -exec chmod 0755 {} +Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
LOW
Refusal suppressionCHANGELOG.md:312 · Refusal suppression — attempting to prevent safety responses · informational: not an instruction fileso a draft is never refused over it after the user already confirmed one.Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
LOW
Context shift attemptdocs/openai-plugin.md:341 · Context shift attempt — trying to change operational mode · informational: not an instruction file1. Enable Developer mode under **Settings → Security and login**.Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
LOW
Authorization escalation languagedocs/openai-plugin.md:402 · Authorization escalation language · informational: not an instruction file4. verify Developer mode and tunnel-use permission for the ChatGPT account;Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
LOW
Authorization escalation languagedocs/openai-plugin.md:341 · Authorization escalation language · informational: not an instruction file1. Enable Developer mode under **Settings → Security and login**.Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
LOW
Authorization escalation languagedocs/openai-plugin.md:347 · Authorization escalation language · informational: not an instruction fileTunnel permissions belong to the OpenAI Platform organization, while ChatGPT Developer mode is aFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01

Cost to the agent

Instructions loaded
≈69 tok
1 file · 81 in bundle
Tool list per prompt
≈0 tok
0 tools · 0 per tool
Handshake
no reply
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 0

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 proton-safe-mcp@2.3.2 as of 12 min ago. This is the package itself, not its dependencies.