Skip to main content

MCP server for autonomous linting and governance auditing

Project description

Auto Linter

Python 3.12+ License: MIT Coverage: 100% Test Count: 1500+ MCP Server AI Agent Ready

Autonomous code quality. Built for AI agents that code 24/7.

๐Ÿค– AI Agent Benefits

In AI Era, no one manually codes anymore. Your AI agent does the work.

Benefit Description
Autonomous Linting Agent runs lint check without human intervention
Self-Healing Code Agent auto-fixes issues automatically
Multi-Agent Collab 24/7 multi agents can coordinate via shared job registry
Continuous Quality Agent enforces quality gates 24/7
Context-Aware Agent understands architectural rules

Choose Your Path

I'm a... Start Here What I'll Do
AI Agent SKILL.md Autonomous linting, self-healing
Vibe Coder Quick Start Fast AI-assisted coding
Vibe Architect Architecture Architectural governance
Developer Setup for AI Agents Add features, fix bugs
Adapter Contributor Contributing: Add Adapter Integrate new linter tools
CLI Contributor Contributing: Add CLI Add new CLI commands

Why Use Auto Linter

Stop Wasting Hours on Manual Linting โ€” Your competitors are already using automated quality gates.

For Users

Benefit Description
Easy Config Works out-of-the-box with sensible defaults
Multi-Language Python, JavaScript, TypeScript in one tool
AI Ready MCP server for automated code review
Vibe Mode Fast AI-assisted iterations, quality gates
Governance Architectural rule enforcement (AES, Clean, Hexagonal, DDD)
CI-Ready SARIF, JUnit, JSON reports with exit codes
Auto-Fix Safe fixes applied automatically
Quality Trends Track code quality over time

For Contributors

Benefit Description
Well-Structured 5-domain architecture with clear boundaries
Comprehensive Tests 1000+ tests, 100% coverage
Governance Built-In Linting governance adapter prevents violations
Clear Paths Documented guides for adapters, CLI, MCP
Active Project Regular updates, responsive maintainer

Install

pip install auto-linter

Or with uv:

uv tool install auto-linter

Or zero-install:

uvx auto-lint check ./src/

Or one-liner installer (Linux/macOS):

curl -sSL https://raw.githubusercontent.com/rakaarwaky/auto-linter/main/install.sh | bash

Or for Windows (PowerShell):

Invoke-WebRequest -Uri https://raw.githubusercontent.com/rakaarwaky/auto-linter/main/install.ps1 | Invoke-Expression

Verify

auto-lint version
auto-lint setup doctor

Quick Start

# Lint your code
auto-lint check ./src/

# Auto-fix safe issues
auto-lint fix ./src/

# Security scan
auto-lint security ./src/

# Generate report
auto-lint report ./src/ --output-format json

Setup for AI Agents

Hermes Agent

pip install auto-linter
auto-lint setup hermes

This auto-detects DesktopCommander and configures Hermes automatically.

Claude Desktop / VS Code

auto-lint setup mcp-config --client claude

Copy the output to your MCP config file.

MCP Tools (5 tools)

The server registers 5 MCP tools:

Tool Description
execute_command Execute any CLI command
list_commands List all available CLI commands with descriptions
read_skill_context Read SKILL.md documentation sections
check_status Check status of running lint jobs
health_check Check DesktopCommander and transport health

Note: Job cancellation is a CLI command: auto-lint cancel <job_id>


Transport

Auto-linter connects to DesktopCommander for command execution. Supports 3 transport modes with auto-detection:

DESKTOP_COMMANDER_URL              Mode             Requires
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
/run/desktop-commander/socket      Unix Socket      DesktopCommander
http://host:port/execute           HTTP             DesktopCommander HTTP wrapper
auto (default)                     Auto-detect      tries socket -> http -> stdio

The default socket path is /run/desktop-commander/socket. Set DESKTOP_COMMANDER_URL to override.


CLI Commands

Core

Command Description
check <path> Run all linters, check governance score
--git-diff flag: only lint changed files
scan <path> Alias for check (CI-friendly)
fix <path> Apply safe fixes automatically
report <path> Generate quality report (text/json/sarif/junit)
ci <path> CI-optimized with exit codes

Scans

Command Description
security <path> Bandit vulnerability scanning
complexity <path> Cyclomatic complexity analysis
duplicates <path> Code duplication detection
trends <path> Quality trends over time
dependencies <path> Dependency vulnerability scan

Setup

Command Description
setup init Auto-configure for your system
setup hermes Auto-install into Hermes Agent
setup doctor Diagnose configuration issues
setup mcp-config Print MCP config for Claude/Hermes/VS Code

Dev

Command Description
diff <path1> <path2> Compare lint results between two versions
suggest <path> AI-powered fix suggestions (--ai flag)
config show|edit|reset View, edit, or reset configuration settings
export sarif|junit|json Export lint reports to file (-o output)
import <config.json> Import configurations from file
ignore <rule> Manage ignore rules (--remove to delete)
init Initialize a new Auto-Linter configuration
install-hook Install git pre-commit hook
uninstall-hook Remove git pre-commit hook

Maintenance

Command Description
cancel <job_id> Cancel a running job
stats <path> Statistics dashboard
clean Cleanup cache
update Update adapters
doctor Diagnose issues
version Show version
adapters List enabled linters

Other

Command Description
watch <path> Watch files and auto-lint on changes
batch <path1> <path2> Check multiple paths
plugins List discovered plugins
multi-project <paths...> Lint multiple projects, aggregate

Full list: auto-lint --help


Configuration

.env (optional)

# DesktopCommander transport (auto-detected if not set):
DESKTOP_COMMANDER_URL=/run/desktop-commander/socket

# For JS/TS linters:
PHANTOM_ROOT=$HOME/

Create with: auto-lint setup init

auto_linter.config.yaml

thresholds:
  score: 90.0
  complexity: 10
  max_file_lines: 500

adapters:
  - name: ruff
    status: enabled
    weight: 1.0
  - name: mypy
    status: enabled
    weight: 1.0

Architecture

5-domain structure:

src/
โ”œโ”€โ”€ agent/              # Lifecycle, orchestration, pipeline, DI container
โ”œโ”€โ”€ capabilities/       # Thinking logic โ€” analysis, formatting, governance
โ”œโ”€โ”€ infrastructure/     # Adapters โ€” ruff, mypy, eslint, transports
โ”œโ”€โ”€ surfaces/           # Interfaces โ€” CLI (Click), MCP (FastMCP)
โ””โ”€โ”€ taxonomy/           # Value objects, models, shared language

Dependency Rules

surfaces      โ†’ capabilities       OK
surfaces      โ†’ infrastructure     NO
capabilities  โ†’ infrastructure     NO (use taxonomy interfaces)
capabilities  โ†’ surfaces           NO
infrastructure โ†’ taxonomy          OK
agent         โ†’ everything         OK (wiring layer)

Contributing

How to Add an Adapter

  1. Create adapter in src/infrastructure/<tool>_adapter.py implementing ILinterAdapter
  2. Register in src/agent/dependency_injection_container.py
  3. Add tests in tests/infrastructure/test_<tool>_adapter.py
  4. Run: python3 -m pytest tests/ -q

See CONTRIBUTING.md for full details.

How to Add a CLI Command

  1. Choose module in src/surfaces/cli_*_commands.py based on command type
  2. Add command using Click decorators
  3. Register in src/surfaces/mcp_command_catalog.py
  4. Add tests

See CONTRIBUTING.md for full details.


License

MIT License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

auto_linter-1.6.3.tar.gz (85.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

auto_linter-1.6.3-py3-none-any.whl (98.4 kB view details)

Uploaded Python 3

File details

Details for the file auto_linter-1.6.3.tar.gz.

File metadata

  • Download URL: auto_linter-1.6.3.tar.gz
  • Upload date:
  • Size: 85.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for auto_linter-1.6.3.tar.gz
Algorithm Hash digest
SHA256 b7dd4e36b6db621b39d65c9802e1ae389591134a05d403a0a480c2909f593f93
MD5 201cdb1d7c56d5062c0e287be37fc875
BLAKE2b-256 9cded5ddbfd83a453b1db332b9cdbde5a6527b69ad4d9487fda69f57fb13f26c

See more details on using hashes here.

File details

Details for the file auto_linter-1.6.3-py3-none-any.whl.

File metadata

  • Download URL: auto_linter-1.6.3-py3-none-any.whl
  • Upload date:
  • Size: 98.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for auto_linter-1.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 eed8e899482b3a7ba1d444120a57a3c513271a715c5cadd237715f2aef2f3621
MD5 985da977709feff31f82f7f80951876f
BLAKE2b-256 c487484e52618bf2e7f3c784f7e9f6c00dd1f9cd5754aeec4d4ceb8981b9d1b1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page