BeClaude

pyscn-mcp

New
967Community RegistryGeneralby Ludo Technologies

Python code quality analysis with complexity, dead code, clone detection, and coupling metrics

Community PluginView Source

Overview

<div align="center">

<picture> <source media="(prefers-color-scheme: dark)" srcset="assets/logo.svg"> <source media="(prefers-color-scheme: light)" srcset="assets/logo-light.svg"> <img alt="pyscn" src="assets/logo-light.svg" width="320"> </picture>

A code quality analyzer for Python vibe coders.

Building with Cursor, Claude, or ChatGPT? pyscn performs structural analysis to keep your codebase maintainable.

![Article](https://dev.to/daisukeyoda/pyscn-the-code-quality-analyzer-for-vibe-coders-18hk) ![PyPI](https://pypi.org/project/pyscn/) ![Downloads](https://pypi.org/project/pyscn/) ![Go](https://go.dev/) ![License](LICENSE)

Working with JavaScript/TypeScript? Check out [jscan](https://github.com/ludo-technologies/jscan)

</div>

Quick Start

bash
# Run analysis without installation
uvx pyscn@latest analyze .
# or
pipx run pyscn analyze .

Demo

https://github.com/user-attachments/assets/71d7a126-9c5e-4254-99f4-f2cdedd526ad

Features

  • ā€¢šŸ” CFG-based dead code detection – Find unreachable code after exhaustive if-elif-else chains
  • ā€¢šŸ“‹ Multi-algorithm clone detection (Type 1-4) – Identify refactoring opportunities with LSH acceleration
  • ā€¢šŸ”— Coupling metrics (CBO) – Track architecture quality and module dependencies
  • ā€¢šŸ“Š Cyclomatic complexity analysis – Spot functions that need breaking down

100,000+ lines/sec • Built with Go + tree-sitter

MCP Integration

Run pyscn analyses straight from AI coding assistants via the Model Context Protocol (MCP). The bundled pyscn-mcp server exposes the same tools used in the CLI to Claude Code, Cursor, ChatGPT, and other MCP clients.

MCP Use Cases

You can interact with pyscn with your AI coding tools:

  1. "Analyze the code quality of the app/ directory"
  1. "Find duplicate code and help me refactor it"
  1. "Show me complex code and help me simplify it"

Claude Code Setup

Option 1: Install via Plugin Marketplace (Recommended)

bash
claude plugin marketplace add ludo-technologies/pyscn
claude plugin install pyscn-mcp@pyscn-marketplace

Option 2: Manual MCP Setup

bash
claude mcp add pyscn-mcp uvx -- pyscn-mcp

Cursor / Claude Desktop Setup

Add to your MCP settings (~/.config/claude-desktop/config.json or Cursor settings):

json
{
  "mcpServers": {
    "pyscn-mcp": {
      "command": "uvx",
      "args": ["pyscn-mcp"],
      "env": {
        "PYSCN_CONFIG": "/path/to/.pyscn.toml"
      }
    }
  }
}

The instructions like "Analyze the code quality" trigger pyscn via MCP.

Dive deeper in mcp/README.md for setup walkthroughs and docs/MCP_INTEGRATION.md for architecture details.

Installation

bash
# Install with pipx (recommended)
pipx install pyscn

# Or with uv
uv tool install pyscn

<details> <summary>Alternative installation methods</summary>

Build from source

bash
git clone https://github.com/ludo-technologies/pyscn.git
cd pyscn
make build

Go install

bash
go install github.com/ludo-technologies/pyscn/cmd/pyscn@latest

</details>

Common Commands

pyscn analyze

Run comprehensive analysis with HTML report

bash
pyscn analyze .                              # All analyses with HTML report
pyscn analyze --json .                       # Generate JSON report
pyscn analyze --select complexity .          # Only complexity analysis
pyscn analyze --select deps .                # Only dependency analysis
pyscn analyze --select complexity,deps,deadcode . # Multiple analyses

pyscn check

Fast CI-friendly quality gate

bash
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 --allow-circular-deps .   # Allow circular dependencies (warning only)

pyscn init

Create configuration file

bash
pyscn init                         # Generate .pyscn.toml

šŸ’” Run pyscn --help or pyscn <command> --help for complete options

Configuration

Create a .pyscn.toml file or add [tool.pyscn] to your pyproject.toml:

toml
# .pyscn.toml
[complexity]
max_complexity = 15

[dead_code]
min_severity = "warning"

[output]
directory = "reports"

āš™ļø Run pyscn init to generate a full configuration file with all available options

Pyscn Bot (GitHub App)

Pyscn Bot monitors your Python code quality automatically.

Features

  • •PR Code Review - Automatic code review on every pull request
  • •Weekly Code Audit - Scans your entire repository and creates issues for architectural problems

Documentation

šŸ“– [pyscn documentation site](https://ludo-technologies.github.io/pyscn/) — installation, rule catalog, CLI reference, configuration, output specification

For contributors: [Development Guide](docs/DEVELOPMENT.md) • [Architecture](docs/ARCHITECTURE.md) • [Testing](docs/TESTING.md)

Enterprise Support

For commercial support, custom integrations, or consulting services, contact us at [email protected]

License

MIT License — see LICENSE


Built with ā¤ļø using Go and tree-sitter

Install & Usage

1
Create the skills directory
mkdir -p .claude/skills
2
Download the skill file
mkdir -p .claude/skills && curl -o .claude/skills/pyscn-mcp.md https://raw.githubusercontent.com/ludo-technologies/pyscn/main/SKILL.md
3
Invoke in Claude Code
/pyscn-mcp
View source on GitHub
mcppython

Frequently Asked Questions

What is pyscn-mcp?

Python code quality analysis with complexity, dead code, clone detection, and coupling metrics

How to install pyscn-mcp?

To install pyscn-mcp, create the .claude/skills directory in your project, then run the curl command to download the skill file. Once installed, invoke it in Claude Code with /pyscn-mcp.

What is pyscn-mcp best for?

pyscn-mcp is a community categorized under General. It is designed for: mcp, python. Created by Ludo Technologies.