pyscn
io.github.ludo-technologies/pyscn · 1.1k stars · Go · MIT
MCP server Python code analysis for AI agents: complexity, dead code, clones, coupling, and a health score.
Install
The repo has no one-line install. Follow its README.
Published as
- PyPI
pyscn-mcpstdio
From the server's entry in the official MCP Registry.
Configuration
| Name | Set as | What it is |
|---|---|---|
PYSCN_CONFIGOptional | Env var | Path to a .pyscn.toml configuration file. Defaults to the usual config discovery (.pyscn.toml, then pyproject.toml) starting from the analyzed directory. |
Files
English | 日本語 | 简体中文 | Français
Code quality analysis for Python in the age of AI coding.
Building with Cursor, Claude, or ChatGPT? pyscn keeps AI-generated code maintainable with structural analysis.
Quick Start
# Run analysis without installation uvx pyscn@latest analyze . # or pipx run pyscn analyze .
Demo
Features
One command scores your whole codebase (0-100 with an A-F grade) and generates an HTML report that shows what to fix first.
pyscn looks at your code from five angles:
- 🧹 Dead code - unreachable code you can safely delete
- 📋 Duplicate code - copy-pasted and structurally similar code worth merging (Type 1-4 clone detection)
- 🌀 Complexity - functions and executable class suites that are hard to read and test (cyclomatic and cognitive complexity)
- 🔥 Module and directory hotspots - per-file quality and per-directory complexity rollups for prioritizing refactors
- 🏗️ Architecture - circular imports, layer rule violations (clean / layered / hexagonal / MVC presets), and auto-detected module communities that reveal how your code is actually structured
- 🧩 Class design - classes that do too much or depend on too much (CBO coupling, LCOM4 cohesion)
100,000+ lines/sec • Built with Go + tree-sitter
Other Languages
pyscn is the Python analyzer of polyscan. For JavaScript, TypeScript, Go, Rust and C++, run:
npx polyscan analyze .
Same five angles, same 0-100 score, one HTML report.
Polyscan for GitHub
Polyscan App files a weekly audit report as a GitHub Issue. Free for public repositories.
AI Agent Integration
pyscn ships Agent Skills that teach AI coding agents when and how to run each analysis: health checks, refactoring, architecture review, and CI-friendly reports.
Agent Skills (Recommended)
uvx add-skills ludo-technologies/pyscn
This installs the Skills into your project. They work with Claude Code, Cursor, Codex, Gemini CLI, and many other agents (add --agent cursor etc. to target one, --global for all projects).
Then just ask your agent:
-
"Analyze the code quality of the app/ directory"
-
"Find duplicate code and help me refactor it"
-
"Show me complex code and help me simplify it"
MCP Server (Optional)
For tighter integration, the bundled pyscn-mcp server exposes the same analyses as MCP tools to Claude Code, Cursor, ChatGPT, and other MCP clients.
Claude Code plugin (sets up the MCP server and the Skills together):
claude plugin marketplace add ludo-technologies/pyscn claude plugin install pyscn-mcp@pyscn-marketplace
Manual setup for Claude Code:
claude mcp add pyscn-mcp uvx -- pyscn-mcp
Cursor / Claude Desktop: add to your MCP settings (~/.config/claude-desktop/config.json or Cursor settings):
{
"mcpServers": {
"pyscn-mcp": {
"command": "uvx",
"args": ["pyscn-mcp"],
"env": {
"PYSCN_CONFIG": "/path/to/.pyscn.toml"
}
}
}
}
Dive deeper in mcp/README.md for setup walkthroughs and docs/MCP_INTEGRATION.md for architecture details.
Installation
# Install with pipx (recommended) pipx install pyscn # Or with uv uv tool install pyscn
macOS Intel (x86_64): PyPI wheels are built for Apple Silicon only (the Intel wheel was dropped in v1.5.1), so
uvx,pipx,uv, andpipcannot install pyscn on Intel Macs. Usebrew install pyscnorgo install github.com/ludo-technologies/pyscn/cmd/pyscn@latestinstead.
Alternative installation methods
Build from source
git clone https://github.com/ludo-technologies/pyscn.git cd pyscn make build
Go install
go install github.com/ludo-technologies/pyscn/cmd/pyscn@latest
Common Commands
pyscn analyze
Run comprehensive analysis with HTML report
pyscn analyze . # All analyses with HTML report pyscn analyze --json . # Generate JSON report pyscn analyze --json --output - . | jq # JSON report on stdout pyscn analyze --json --html --no-open . # JSON and HTML reports from one run pyscn analyze --select complexity . # Only complexity analysis pyscn analyze --select deps . # Only dependency analysis pyscn analyze --select complexity,deps,deadcode . # Multiple analyses pyscn analyze --skip-communities . # Skip module community detection
pyscn check
Fast CI-friendly quality gate
pyscn check . # Quick pass/fail check pyscn check --max-complexity 15 . # Custom thresholds pyscn check --max-cycles 0 . # Only allow 0 cycle dependency pyscn check --select deps . # Check only for circular dependencies pyscn check --select di . # Detect DI anti-patterns (opt-in) pyscn check --allow-circular-deps . # Allow circular dependencies (warning only)
pyscn init
Create configuration file
pyscn init # Generate .pyscn.toml
💡 Run
pyscn --helporpyscn <command> --helpfor complete options
Configuration
Create a .pyscn.toml file or add [tool.pyscn] to your pyproject.toml:
# .pyscn.toml [complexity] max_complexity = 15 [dead_code] min_severity = "warning" [output] directory = "reports"
⚙️ Run
pyscn initto generate a full configuration file with all available options
Documentation
📖 pyscn documentation site — installation, rule catalog, CLI reference, configuration, output specification
For contributors: Development Guide • Architecture • Testing
Enterprise Support
For commercial support, custom integrations, or consulting services, contact us at contact@ludo-tech.org
License
MIT License — see LICENSE
Built with ❤️ using Go and tree-sitter
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 1.1k
- License
- MIT
- Language
- Go
- Last push
- 2026-10-10
- Forks
- 72
- MCP Registry
- io.github.ludo-technologies/pyscn
- Homepage
- docs.codescan.dev
- Topics
- architecture-analysis, clone-detection, code-complexity, dependency-analysis, python, static-analysis, dead-code-detection
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k
