Skip to main content
Glama

Complexipy MCP Server

A Model Context Protocol (MCP) server that wraps complexipy to provide cognitive complexity analysis for Python codebases. This server uses the complexipy Python API for accurate and robust analysis.

Features

  • Directory Scanning: Recursively analyze all .py files in a directory and filter by complexity threshold.

  • File Scanning: Analyze a single Python file.

  • Data Processing: Uses pandas for efficient data filtering and sorting.

  • Clean Output: Returns JSON formatted results (list of objects).

  • No Emojis: Pure data output suitable for machine consumption.

  • Stdio Transport: Uses standard input/output for communication, making it compatible with most MCP clients.

Related MCP server: codescan-mcp

Installation & Usage

Quick Start

You can run the server directly using uvx (no installation required):

uvx complexipy-mcp

Configuration for Claude Desktop

Add the following configuration to your MCP client settings (e.g., claude_desktop_config.json):

{
  "mcpServers": {
    "complexipy": {
      "command": "uvx",
      "args": [
        "complexipy-mcp"
      ]
    }
  }
}

Local Development

  1. Clone the repository.

  2. Install dependencies:

    uv sync
  3. Run the server locally:

    uv run complexipy-mcp

Local Configuration for Claude Desktop

If you are developing locally, point the configuration to your local setup:

{
  "mcpServers": {
    "complexipy": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/complexipy-mcp",
        "run",
        "complexipy-mcp"
      ]
    }
  }
}

Tools

scan_directory

Scans a directory for files exceeding a cognitive complexity threshold.

  • Arguments:

    • directory_path (string): Absolute path to the directory to scan.

    • threshold (integer): Complexity limit (default: 15).

  • Returns: JSON string containing a list of files that exceed the threshold.

    [
      {
        "file_path": "/abs/path/to/file.py",
        "complexity": 25,
        "functions": [
          {
            "name": "function_name",
            "complexity": 10,
            "line_start": 5,
            "line_end": 15
          }
        ],
        "status": "exceeds_threshold"
      }
    ]

scan_file

Scans a single file for cognitive complexity.

  • Arguments:

    • file_path (string): Absolute path to the file.

    • threshold (integer): Complexity limit (default: 15).

  • Returns: JSON string containing the result if it exceeds the threshold.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    C
    maintenance
    Enables comprehensive security vulnerability scanning and code quality analysis for Python applications. Provides detailed reports with scoring, actionable suggestions, and comparison tracking specifically designed for backend developers working with frameworks like Django, Flask, and FastAPI.
    5
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Scans codebases for TODOs, FIXMEs, code complexity, file stats, and dependencies, generating a health report with a letter grade. Zero configuration required.
    8 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides comprehensive code quality analysis with quantitative metrics, historical trends, and refactoring risk prediction for C#, Python, and TypeScript codebases.
    5
    5 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides deep structural analysis of Python source code via AST, including function signatures, call graphs, cyclomatic complexity, code smells, dead code detection, and protocol conformance.
    20
    MIT