{"name":"io.github.sassyconsultingllc/sassymcp","slug":"sassyconsultingllc-sassymcp","title":"SassyMCP","description":"One MCP server that replaces 75+ — 274 tools in a single exe, smart-loaded.","url":"https://mcp.market/server/sassyconsultingllc-sassymcp","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":37,"stars":4,"forks":3,"downloads_week":248,"last_push_at":"2026-09-19T02:52:51.000Z","license":"NOASSERTION"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/sassyconsultingllc/SassyMCP","website":"https://sassyconsultingllc.com/store","version":"1.15.1","remotes":[],"packages":[{"registryType":"pypi","identifier":"sassymcp","version":"1.15.1","transport":{"type":"stdio"}},{"registryType":"mcpb","identifier":"https://github.com/sassyconsultingllc/SassyMCP/releases/download/v1.15.1/sassymcp-v1.15.1.mcpb","fileSha256":"06366a120d696ab893fe15814c14f02a13fcdcf2db9775034ab3affecbe62780","transport":{"type":"stdio"}}],"tools":[{"name":"_safe_call","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_adb_app_info","description":"Get detailed info about an installed Android app.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_adb_devices","description":"List connected Android devices.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_adb_install","description":"Install APK on Android device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_adb_logcat","description":"Get Android logcat output.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_adb_packages","description":"List installed packages.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_adb_pull","description":"Pull file from Android to local.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_adb_push","description":"Push file from local to Android.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_adb_screencap","description":"Capture Android screen to local PNG.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_adb_shell","description":"Run shell command on Android device.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_adb_wifi_connect","description":"Connect to Android device over WiFi.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_android_logcat","description":"Read Android logcat.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_audit_clear","description":"Rotate the audit log to a timestamped archive.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_audit_false_positives","description":"Show recent shell-interceptor pattern matches (blocks + bypasses).","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_audit_log","description":"Read recent audit log entries.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_audit_search","description":"Search audit log for a keyword.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_batch","description":"Run many SassyMCP tools concurrently in one call.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_bt_android","description":"List Bluetooth devices from Android.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_bt_devices","description":"List paired Bluetooth devices.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_bt_scan","description":"List all Bluetooth devices.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_clipboard_from_android","description":"Get Android clipboard to the host.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_clipboard_get","description":"Get the system clipboard text.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_clipboard_set","description":"Set the system clipboard text.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_clipboard_to_android","description":"Send the host clipboard to Android via base64 encoding.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_close_window","description":"Close a window by title. Graceful unless force=True (kills the process).","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_combo_codebase_grep","description":"Ranked codebase search with context windows — one call replaces sassy_search_files + N x sassy_read_file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_combo_phone_observe","description":"Phone state + UI tree + (optional) low-res screenshot in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_combo_pr_review","description":"Fetch PR metadata, diff, comments, and CI check status in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_coordination_board","description":"One-call coordination snapshot for the Sassy Brain cockpit view.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_copy","description":"Copy a file or directory tree.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_crosslink_broadcast","description":"Broadcast a message to ALL known channels.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_crosslink_recv","description":"Read messages from the crosslink queue. Marks them as read for this session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_crosslink_register","description":"Register a session. session_id auto-generated if empty. name/platform for identification.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_crosslink_send","description":"Send a message to the crosslink queue.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_crosslink_start","description":"Start the Crosslink HTTP API for LAN-accessible cross-device messaging.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_crosslink_status","description":"Check crosslink status: server running, sessions, message counts, channels.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_crosslink_stop","description":"Stop the Crosslink HTTP API server.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_edit_block","description":"Surgical file edit: find old_text and replace with new_text.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_edit_multi","description":"Apply multiple edits to a file in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_eventlog","description":"Read the system log. Windows: log_name = System/Application/Security (Get-WinEvent). macOS: unified log (`log show`). Linux: journald (`journalctl`). level: error/warning/information. source: provider / process / subsystem name. log_name is Windows-only; ignored elsewhere.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_eventlog_search","description":"Search the system log for a keyword across hosts (Get-WinEvent / `log show` predicate / `journalctl -g`).","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_file_info","description":"Get detailed file/directory metadata.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_focus_window","description":"Bring a window to the foreground by title substring.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_add_issue_comment","description":"Add a comment to an issue.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_create_branch","description":"Create a new branch.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_create_file","description":"Create a NEW file. Use push_files or update_file for existing files.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_create_issue","description":"Create issue. labels/assignees: comma-separated.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_create_pr","description":"Create a pull request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_create_pr_review","description":"Create PR review. event: APPROVE, REQUEST_CHANGES, COMMENT.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_create_repo","description":"Create a new GitHub repository.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_delete_file","description":"Delete a file from a repository.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_fork_repo","description":"Fork a repository.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_commit","description":"Get details for a specific commit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_file_contents","description":"Get file or directory contents. Returns decoded content + SHA.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_issue","description":"Get issue details.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_latest_release","description":"Get latest release.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_me","description":"Get the authenticated GitHub user's profile.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_pr","description":"Get PR details.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_release_by_tag","description":"Get release by tag name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_tag","description":"Get details for a specific tag.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_team_members","description":"List members of a team.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_teams","description":"List teams for an organization.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_get_tree","description":"Get a Git tree. recursive=True for full listing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_list_branches","description":"List branches in a repository.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_list_commits","description":"List commits on a branch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_list_issues","description":"List issues.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_list_prs","description":"List pull requests.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_list_releases","description":"List releases.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_list_starred","description":"List starred repos. Empty username = authenticated user.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_list_tags","description":"List tags in a repository.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_merge_pr","description":"Merge a PR. merge_method: merge, squash, rebase.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_pr_files","description":"Get files changed in a PR.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_pr_review_comments","description":"Get review comments on a PR.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_pr_reviews","description":"Get reviews on a PR.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_pr_status","description":"Get combined status checks for a PR.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_push_files","description":"Push multiple files atomically via Git Data API. PREFERRED for all ops. files: JSON array of {\"path\": \"...\", \"content\": \"...\"} objects.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_search_issues","description":"Search issues and PRs across GitHub.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_search_repos","description":"Search GitHub repositories.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_star_repo","description":"Star a repository.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_unstar_repo","description":"Unstar a repository.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_gh_update_file","description":"Update EXISTING file. Auto-fetches blob SHA if not provided.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_update_issue","description":"Update an issue.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_update_pr","description":"Update a PR.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_update_pr_branch","description":"Update PR branch with latest from base.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_gh_update_repo","description":"Update repo settings. settings: JSON e.g. {\"visibility\":\"public\"}","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_launch_app","description":"Launch an application by name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_launch_exe","description":"Launch an executable directly by path.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_list_dir","description":"List directory contents. [FILE]/[DIR] prefixes. depth controls recursion.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_mkdir","description":"Create a directory (and any missing parents).","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_move","description":"Move or rename a file/directory.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_peer_announce","description":"Announce/refresh this agent as a live peer in the coordination mesh.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_peer_delegate","description":"Hand a specific task to ONE peer (targeted handoff).","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_peer_list","description":"List peers in the coordination mesh, newest heartbeat first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_read_file","description":"Read file contents with line-based pagination.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_read_multiple","description":"Read multiple files at once. paths = JSON array of file paths.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_resize_window","description":"Move and/or resize a window by title.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_safe_delete","description":"Move a file or directory to a _DELETE_ staging folder for review.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sassy_search_files","description":"Search for files by name or content.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_snap_window","description":"Snap a window to a screen edge (like Win+Arrow).","write_action":false,"price_micros":0,"input_schema":null},{"name":"sassy_write_file","description":"Write or append to a file. mode: rewrite | append.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":77,"grade":"B","scanned_at":"2026-09-19T21:08:36.161Z","report":{"scannerVersion":"0.1.8","scannedAt":"2026-09-19T21:08:36.136Z","components":{"code":{"score":15,"max":25,"notes":["77 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"sassymcp-1.15.1/sassymcp/modules/persona.py: …for linting, pytest for testing - Never eval() on external input **JavaScript/TypeSc…"},{"id":"exec.shell-true","severity":"medium","component":"code","title":"subprocess with shell=True","evidence":"sassymcp-1.15.1/sassymcp/modules/session.py: … subprocess spawner. Argv-list form (no shell=True) # is the safe-by-default option — no s…"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"sassymcp","version":"1.15.1","found":true,"weeklyDownloads":248,"license":"Proprietary","dependencyCount":25,"publishedAt":"2026-09-14T22:59:46.068176Z"}],"repo":{"found":true,"owner":"sassyconsultingllc","repo":"SassyMCP","archived":false,"pushedAt":"2026-09-19T02:52:51Z","stars":4,"forks":3,"openIssues":3,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/226345833?v=4","ownerCreatedAt":"2025-08-13T15:22:32Z","license":"NOASSERTION"},"icon":{"url":"https://sassyconsultingllc.com/favicon.ico","source":"registry","width":48,"height":48},"presence":{"stars":4,"forks":3,"downloadsWeek":248,"license":"NOASSERTION","lastPushAt":"2026-09-19T02:52:51.000Z","score":37}}}},"grade_history":[{"kind":"restore","fromGrade":"C","toGrade":"B","reason":"score 77: eval / new Function used; subprocess with shell=True","createdAt":"2026-09-19T21:08:36.898Z"}],"reviews":[]}