Sassymcp MCP Server

sassymcp PyPI v1.13.0

Published by an unidentified publisher — no publish provenance and no public repository, so the publisher could not be verified and the source cannot be independently located.

Trust grade
F
59/100
Last scanned
Trust
F · 59/100
Adoption risk for you: the threat score, then adjusted down for blast radius, publisher verification and how much the scan could see. Deterministic; every point is auditable.
Capability
Critical
Blast radius if it went rogue — what the server’s tools could reach. Independent of trust.
Coverage
Source
How much the scan could actually inspect. Shallow coverage is stated, never hidden.
F Why this grade threat 74 − adoption risk = 59/100

The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.

1. Threat score — 100 − 26.5 = 74. What the published surface and source actually contain:

PointsWhat was foundCategory
−22 Hardcoded AWS access key id in server code MTC-SRC-008 exfiltration
−2.1 Package has no source repository MTC-SUP-011 supply-chain
−1.2 Excessive ALL-CAPS emphasis in metadata MTC-INJ-CAPS injection
−1.2 Conditional behavior directive MTC-INJ-SEQ-2 injection

2. Client adoption risk — 74 − 15 = 59. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:

PointsAdoption-risk factor
−10 capability blast radius (critical) — client exposure if the model is manipulated
−5 publisher verification (unlocatable) — no provenance and no public repository to inspect
inspection depth (source) — how much of the target the scan could see

Grade capped: 1 confirmed high finding → grade capped at C. A hard gate overrides the point total — no amount of clean surface buys back a confirmed catastrophe.

Capability observations and info notes are shown under Findings but never scored. Open any row's finding below for the file, line and evidence behind a deduction.

Findings 42

critical Completed toxic-flow trifecta across toolsMTC-FLOW-002

This server (without client built-ins) exposes a complete data-exfiltration chain: sassy_combo_pr_review → sassy_gh_get_file_contents → sassy_adb_shell. Untrusted input is ingested, private data is read, and it can be sent to an external sink via the agent composing the tools (→). Static analysis proves the primitive exists, not that a specific run will occur.

Fix: Remove one leg of the trifecta: isolate untrusted-input tools from secret-reading tools and from egress tools, or require human approval between them.

Location: flow sassy_combo_pr_review → sassy_gh_get_file_contents → sassy_adb_shell

high Reads a sensitive credential path or dumps the environment (sassymcp/modules/_security.py)MTC-SRC-006

In the server's implementation (`sassymcp/modules/_security.py:638`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: ~/.ssh

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/modules/_security.py

high Reads a sensitive credential path or dumps the environment (sassymcp/modules/fileops.py)MTC-SRC-006

In the server's implementation (`sassymcp/modules/fileops.py:212`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: ~/.ssh

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/modules/fileops.py

high Reads a sensitive credential path or dumps the environment (sassymcp/modules/linux.py)MTC-SRC-006

In the server's implementation (`sassymcp/modules/linux.py:13`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: ~/.ssh

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/modules/linux.py

high Reads a sensitive credential path or dumps the environment (sassymcp/overlay/mesh.py)MTC-SRC-006

In the server's implementation (`sassymcp/overlay/mesh.py:42`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: dict(os.environ)

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/overlay/mesh.py

high Reads a sensitive credential path or dumps the environment (tools/verify_audit_fixes.py)MTC-SRC-006

In the server's implementation (`tools/verify_audit_fixes.py:186`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: id_rsa

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server tools/verify_audit_fixes.py

high Hardcoded AWS access key id in server code (tools/verify_audit_fixes.py)MTC-SRC-008

A live-looking AWS access key id is hardcoded in `tools/verify_audit_fixes.py:329`. Secrets in source ship to everyone who installs the package and are a direct credential leak.

Evidence: AWS access key id: AKIA…(redacted)

Fix: Remove the secret, rotate it, and load credentials from the environment or a secret store.

Location: server tools/verify_audit_fixes.py

high Tool "sassy_adb_shell" exposes command/code executionMTC-CAP-001

Tool "sassy_adb_shell" appears to run shell commands or evaluate code (keyword "shell"). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.

Fix: Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.

Location: tool sassy_adb_shell

high Tool "sassy_launch_app" exposes command/code executionMTC-CAP-001

Tool "sassy_launch_app" appears to run shell commands or evaluate code (keyword "exec"). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.

Fix: Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.

Location: tool sassy_launch_app

high Tool "sassy_audit_false_positives" exposes command/code executionMTC-CAP-001

Tool "sassy_audit_false_positives" appears to run shell commands or evaluate code (keyword "shell"). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.

Fix: Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.

Location: tool sassy_audit_false_positives

high Tool "sassy_linux_exec" exposes command/code executionMTC-CAP-001

Tool "sassy_linux_exec" appears to run shell commands or evaluate code (keyword "exec"). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.

Fix: Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.

Location: tool sassy_linux_exec

high Dynamic code execution in server code (sassymcp/modules/persona.py)MTC-SRC-001

In the server's implementation (`sassymcp/modules/persona.py:140`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: eval(

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/modules/persona.py

high Shell/command execution in server code (sassymcp-vscode/src/cockpitData.ts)MTC-SRC-002

In the server's implementation (`sassymcp-vscode/src/cockpitData.ts:10`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp-vscode/src/cockpitData.ts

high Shell/command execution in server code (sassymcp-vscode/src/hermes.ts)MTC-SRC-002

In the server's implementation (`sassymcp-vscode/src/hermes.ts:8`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp-vscode/src/hermes.ts

high Shell/command execution in server code (sassymcp-vscode/src/installer.ts)MTC-SRC-002

In the server's implementation (`sassymcp-vscode/src/installer.ts:12`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp-vscode/src/installer.ts

high Shell/command execution in server code (sassymcp-vscode/src/setupWizard.ts)MTC-SRC-002

In the server's implementation (`sassymcp-vscode/src/setupWizard.ts:14`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp-vscode/src/setupWizard.ts

high Shell/command execution in server code (sassymcp/_jobctl.py)MTC-SRC-002

In the server's implementation (`sassymcp/_jobctl.py:49`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: exec (

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/_jobctl.py

high Shell/command execution in server code (sassymcp/_phone_status.py)MTC-SRC-002

In the server's implementation (`sassymcp/_phone_status.py:31`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: subprocess.run(

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/_phone_status.py

high Shell/command execution in server code (sassymcp/_platform.py)MTC-SRC-002

In the server's implementation (`sassymcp/_platform.py:30`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: subprocess.run(

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/_platform.py

high Shell/command execution in server code (sassymcp/auth.py)MTC-SRC-002

In the server's implementation (`sassymcp/auth.py:102`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: subprocess.run(

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/auth.py

high Shell/command execution in server code (sassymcp/desktop/bridge.py)MTC-SRC-002

In the server's implementation (`sassymcp/desktop/bridge.py:112`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: subprocess.Popen(

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/desktop/bridge.py

high Shell/command execution in server code (sassymcp/modules/app_launcher.py)MTC-SRC-002

In the server's implementation (`sassymcp/modules/app_launcher.py:479`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: subprocess.Popen(

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/modules/app_launcher.py

medium Tool "sassy_write_file" can modify the filesystemMTC-CAP-002

Tool "sassy_write_file" can write, overwrite or delete files (keyword "write_file"). Verify it is scoped to a safe directory.

Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.

Location: tool sassy_write_file

medium Tool "sassy_move" can modify the filesystemMTC-CAP-002

Tool "sassy_move" can write, overwrite or delete files (keyword "overwrite"). Verify it is scoped to a safe directory.

Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.

Location: tool sassy_move

medium Tool "sassy_copy" can modify the filesystemMTC-CAP-002

Tool "sassy_copy" can write, overwrite or delete files (keyword "overwrite"). Verify it is scoped to a safe directory.

Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.

Location: tool sassy_copy

medium Tool "sassy_gh_create_file" can modify the filesystemMTC-CAP-002

Tool "sassy_gh_create_file" can write, overwrite or delete files (keyword "create_file"). Verify it is scoped to a safe directory.

Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.

Location: tool sassy_gh_create_file

medium Tool "sassy_gh_delete_file" can modify the filesystemMTC-CAP-002

Tool "sassy_gh_delete_file" can write, overwrite or delete files (keyword "delete_file"). Verify it is scoped to a safe directory.

Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.

Location: tool sassy_gh_delete_file

medium Dynamic module load from a non-literal (sassymcp/modules/setup_wizard.py)MTC-SRC-005

In the server's implementation (`sassymcp/modules/setup_wizard.py:836`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: __import__(

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/modules/setup_wizard.py

medium Dynamic module load from a non-literal (sassymcp/server.py)MTC-SRC-005

In the server's implementation (`sassymcp/server.py:285`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: __import__(

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server sassymcp/server.py

medium Dynamic module load from a non-literal (tools/verify_audit_fixes.py)MTC-SRC-005

In the server's implementation (`tools/verify_audit_fixes.py:467`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: __import__(

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server tools/verify_audit_fixes.py

low Mutating tool "sassy_adb_shell" declares no destructiveHintMTC-CAP-005

Tool "sassy_adb_shell" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool sassy_adb_shell

low Mutating tool "sassy_launch_app" declares no destructiveHintMTC-CAP-005

Tool "sassy_launch_app" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool sassy_launch_app

low Mutating tool "sassy_audit_false_positives" declares no destructiveHintMTC-CAP-005

Tool "sassy_audit_false_positives" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool sassy_audit_false_positives

low Mutating tool "sassy_write_file" declares no destructiveHintMTC-CAP-005

Tool "sassy_write_file" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool sassy_write_file

low Mutating tool "sassy_move" declares no destructiveHintMTC-CAP-005

Tool "sassy_move" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool sassy_move

low Mutating tool "sassy_copy" declares no destructiveHintMTC-CAP-005

Tool "sassy_copy" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool sassy_copy

low Mutating tool "sassy_gh_create_file" declares no destructiveHintMTC-CAP-005

Tool "sassy_gh_create_file" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool sassy_gh_create_file

low Mutating tool "sassy_gh_delete_file" declares no destructiveHintMTC-CAP-005

Tool "sassy_gh_delete_file" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool sassy_gh_delete_file

low Mutating tool "sassy_linux_exec" declares no destructiveHintMTC-CAP-005

Tool "sassy_linux_exec" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool sassy_linux_exec

low Excessive ALL-CAPS emphasis in metadataMTC-INJ-CAPS

A run of shouted words is a common way to give injected instructions false authority.

Evidence: Send a key event. Common keycodes: KEYCODE_HOME, KEYCODE_BACK, KEYCODE_ENTER, KEYCODE_VOLUME_UP, KEYCODE_VOLUME_

Location: tool sassy_phone_key · description

low Conditional behavior directiveMTC-INJ-SEQ-2

Conditional behavior directive detected in the description of tool "sassy_phone_pause". Instruction-like content in tool metadata is executed by the model, not the human, and is the primary tool-poisoning vector.

Evidence: When use

Fix: Tool descriptions should describe behavior, not instruct the assistant. Treat imperative / secrecy / sequencing language in metadata as hostile.

Location: tool sassy_phone_pause · description

low Package has no source repositoryMTC-SUP-011

"sassymcp" declares no repository URL, so its published artifact cannot be compared against reviewable source.

Fix: Prefer packages that link to public, reviewable source.

Location: package sassymcp

Toxic flows 1

Cross-tool combinations that form a data-exfiltration primitive (untrusted input → sensitive source → external sink).

What this scan could not see

Versions

Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.

VersionScoreFindingsEngineScanned
v1.13.0 latest F 59/100 42 1.7.0 2026-07-23

Embed this score

Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.

MCP Trust Score: F · 59/100
Markdown (GitHub README)
[![MCP Trust Score](https://mcptrustchecker.com/registry/sassymcp/badge.svg)](https://mcptrustchecker.com/registry/sassymcp)
HTML
<a href="https://mcptrustchecker.com/registry/sassymcp"><img src="https://mcptrustchecker.com/registry/sassymcp/badge.svg" alt="MCP Trust Score" height="20"></a>
Prefer shields.io styling? Point it at https://mcptrustchecker.com/registry/sassymcp/badge.json via https://img.shields.io/endpoint?url=…

Verify this score yourself

The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.

npx mcptrustchecker scan sassymcp --online --registry pypi

Use the free API → How scoring works

More in Developer Tools