Pyobfus MCP logo

Pyobfus MCP

Protects Python projects with pyobfus, checks obfuscation risks, verifies builds, and restores names in obfuscated tracebacks.

Install Pyobfus MCP

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "pyobfus-mcp": {
      "command": "uvx",
      "args": [
        "pyobfus-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

pyobfus-mcp connects AI-assisted development workflows to the pyobfus Python obfuscator through tools for scanning, configuration, protection, delivery checks, and traceback restoration. Its end-to-end protection flow selects a framework-aware preset, obfuscates a project, then byte-compiles and import-smoke-tests the result in isolated subprocesses. Use it when shipping Python code requires an obfuscated artifact plus verification evidence, or when developers need to diagnose failures without exposing original source. The server also supports tier recommendations, preset inspection, and guidance for starting a five-day Pro trial.

Use cases

  • Protect a Python project before shipping
  • Scan framework code for obfuscation risks
  • Generate a framework-aware pyobfus configuration
  • Restore original names in a production traceback
  • Check a wheel for source and mapping leaks

Key features

  • End-to-end obfuscation with compile and import verification
  • Framework-aware risk scanning and preset selection
  • Private mapping-based traceback restoration
  • Read-only directory and wheel delivery checks
  • Community and Pro tier recommendations
  • Preset inspection and trial guidance

Tools9

What Pyobfus MCP lets your agent do. Expand a tool for its parameters.

Verified live~1.2k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

11/11 checks healthy over the last 55d

What it can do

From the 9 tools this server returned when we ran it.

Runs commands · 2Handles credentials · 1Makes network requests · 2Read-only tools · 7
Network at startup2 connections
Files written at startup10

Observed 2026-10-25 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 5d ago via OSV.dev · pyobfus-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars11Stargazers on the source repository.
Last commit2d agoMost recent push to the default branch.
Tools exposed9Callable tools this server registers over MCP.

How Pyobfus MCP works

What pyobfus-mcp does

pyobfus-mcp exposes the pyobfus Python obfuscator as MCP tools for AI-assisted development workflows. It works with Python projects and packages, helping an agent inspect compatibility risks, create configuration, run protection, review delivery artifacts, and recover original identifiers from obfuscated stack traces.

The central workflow is protect_project. It scans the project, chooses a framework-aware preset, performs obfuscation, and validates the generated output by compiling bytecode and running import smoke tests in isolated subprocesses. The result includes a verification status and writes the de-obfuscation mapping beside the output rather than placing it in the shipped artifact.

How it works

check_obfuscation_risks looks for constructs that commonly complicate obfuscation, including eval and exec, dynamic attribute access, framework reflection, and unsafe model loading. It reports severity counts, identifies supported frameworks such as FastAPI, Django, Flask, Pydantic, Click, SQLAlchemy, and ML tooling, and suggests a preset. It can inspect dependency declarations in requirements*.txt or pyproject.toml; public PyPI checks occur only when explicitly enabled.

Configuration generation uses the detected framework to produce a pyobfus.yaml. By default, the generated YAML is returned without changing the project, while write=true persists it. Project configuration is respected during risk scans unless the caller requests the legacy config-free behavior.

Obfuscation mappings remain separate from the protected output. unmap_stack_trace accepts plain-text trace data and a mapping file created by pyobfus, allowing obfuscated identifiers to be translated back for debugging. check_delivery inspects a directory or wheel without importing or executing files, hashes files during its read-only review, and checks for mappings, private keys, original source files, incomplete Python output, and skipped Pro options.

Tools and capabilities

  • protect_project builds and verifies an obfuscated Python project.
  • check_obfuscation_risks finds compatibility risks and optionally checks declared package names against PyPI.
  • generate_pyobfus_config creates framework-aware YAML configuration.
  • unmap_stack_trace restores identifiers using a private mapping file.
  • check_delivery reviews a directory or wheel before release.
  • list_presets and explain_preset expose available presets and their behavior, including exclusions, parameter-name preservation, and docstring handling.
  • recommend_tier compares Community and Pro options using a preflight scan and sensitive-string heuristic.
  • start_pro_trial returns instructions for the five-day trial without starting it automatically.

Limitations and notes

The server supports workflows built around pyobfus for Python 3.9 through 3.15. Community output remains ordinary Python and does not require pyobfus at runtime; commercial Pro features include additional protection and distribution controls.

Verification by protect_project covers byte compilation and import smoke tests, not the application's complete test suite. Run project-specific tests against the protected output before shipping. Delivery inspection is also bounded: it provides checks and warnings rather than proving an artifact is secure.

Dependency verification is opt-in and is the only described risk-scan behavior that contacts public PyPI. Keep mapping files private, because they enable restoration of original names. A new build should be paired with its newly generated mapping. Starting a Pro trial is deliberately not performed by the MCP tool; the developer must run the returned shell command.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Pyobfus MCP

pyobfus-mcp is an MCP server that connects AI-assisted development workflows to the pyobfus Python obfuscator. Its main tools scan projects for obfuscation risks, generate configuration, protect and verify builds, inspect delivery artifacts, restore names in stack traces, and explain available presets and Community or Pro options.

Call protect_project with the project details to scan risks, select a framework-aware preset, obfuscate the project, and verify the output. Verification byte-compiles the result and runs import smoke tests in isolated subprocesses, while a private de-obfuscation mapping is written alongside the output.

Yes, use unmap_stack_trace with the plain-text traceback and a mapping.json file produced by pyobfus. The tool reverses obfuscated identifiers so a production error can be investigated without placing the original source in the shipped artifact.

It checks a wheel or output directory for specific delivery problems, including mapping files, private keys, original source files, incomplete Python output, and skipped Pro options. The review is read-only and does not import or execute files, so it is a delivery check rather than a complete security proof.

Only when verify_dependencies_online=true. In that mode, check_obfuscation_risks compares declared dependencies from requirements files or pyproject.toml with public PyPI to flag potentially hallucinated package names. The option is disabled by default, and scans make no outbound network calls unless it is enabled.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewPyobfus MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/pyobfus-mcp?style=directory)](https://allmcps.com/mcp/pyobfus-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/pyobfus-mcp"><img src="https://allmcps.com/api/badge/pyobfus-mcp?style=directory" alt="Pyobfus MCP on AllMCPs" /></a>