ruff-mcp-server
Provides tools for linting, formatting, and auto-fixing Python code using the Ruff linter.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ruff-mcp-serverlint the file src/main.py"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ruff MCP Server
An MCP (Model Context Protocol) server providing comprehensive Ruff linting, formatting, and code analysis tools with advanced logging capabilities.## Usage
Installation
# Install from source (recommended for development)
pip install -e .
# Or install directly
pip install .Running the MCP Server
After installation, you can start the server using any of these methods:
# Method 1: Use the installed command (recommended)
ruff-mcp-server
# Method 2: Run as Python module
python -m ruff_mcp_server
# Method 3: Use convenience script
./scripts/run_server.sh
# Method 4: Run directly from source
python src/ruff_mcp_server/main.pyCommand Line Options
# Disable online documentation fetching (use static docs only)
ruff-mcp-server --no-online-docs
# Configure logging
ruff-mcp-server --log-level DEBUG # Set log level
ruff-mcp-server --log-file /path/to/logfile.log # Log to file
ruff-mcp-server --no-console-log # Disable console logging
# Combined example: Debug mode with file logging
ruff-mcp-server --log-level DEBUG --log-file ./logs/ruff-mcp-debug.log
# Show help
ruff-mcp-server --helpMCP Client Configuration
The server uses stdio communication (not HTTP ports). Configure your MCP client with:
{
"servers": {
"ruff-mcp-server": {
"command": "ruff-mcp-server",
"args": ["--log-level", "INFO"]
}
}
}Server Status: When running, you'll see:
============================================================
🚀 RUFF MCP SERVER
============================================================
📡 Communication: Standard I/O (stdin/stdout)
🔗 Protocol: Model Context Protocol (MCP)
📚 Online Docs: Enabled
🛑 Shutdown: Press Ctrl+C for graceful shutdown
============================================================See docs/MCP_CONFIGURATION.md for detailed configuration examples and troubleshooting.
Configuration Philosophy
The Ruff MCP server follows a stateless, agent-driven configuration approach:
No Server-Side Config: The server doesn't store default Ruff configurations
Agent Provides Context: The AI agent passes configuration with each request
Auto-Discovery: When no config is specified, Ruff automatically finds
pyproject.tomlorruff.tomlin the projectFlexible Overrides: Agents can override specific settings (rules, line length) per request
Example: Agent-Driven Configuration
{
"name": "ruff_check",
"arguments": {
"path": "src/",
"config_path": "pyproject.toml", // Use project's config
"select": ["F", "E4", "W"], // Focus on specific rule categories
"ignore": ["E203", "W503"] // Ignore specific rules
}
}This approach ensures the server respects the agent's workspace context and project-specific requirements.
Testing the Server
Test scripts are provided to verify the server works correctly:
# Test basic server functionality
python test_server.py
# Test logging system
python test_logging.pyLogging & Monitoring
The Ruff MCP Server includes comprehensive logging capabilities for debugging, monitoring, and performance analysis.
Quick Logging Setup
# Basic logging to console (default)
ruff-mcp-server
# Debug mode with file logging
ruff-mcp-server --log-level DEBUG --log-file ./logs/ruff-mcp-debug.log
# Production mode - warnings and errors only
ruff-mcp-server --log-level WARNING --log-file /var/log/ruff-mcp.log --no-console-logLog Categories
Server Operations: Startup, shutdown, tool management
Tool Execution: Individual tool performance and results
Ruff Commands: Command execution with timing
Documentation: Online documentation fetching and caching
Performance: Automatic execution time tracking
Detailed Logging Guide
See docs/LOGGING.md for comprehensive logging documentation including:
Log levels and categories
Performance monitoring
Production monitoring setup
Debug techniques
Log analysis examples
Using with MCP Clients
The server implements the Model Context Protocol and can be used with any MCP-compatible AI coding assistant. Configure your client to connect to this server and you'll have access to the following tools:
ruff_check - Lint Python files and get detailed violation reports
ruff_format - Format Python code or check formatting
ruff_fix - Automatically fix linting violations where possible
Example Tool Usage
Linting a file
{
"name": "ruff_check",
"arguments": {
"path": "my_script.py",
"format": "json"
}
}Formatting code
{
"name": "ruff_format",
"arguments": {
"path": "my_script.py",
"check_only": false
}
}Auto-fixing violations
{
"name": "ruff_fix",
"arguments": {
"path": "my_script.py",
"unsafe": false
}
}
```rver that provides Ruff linting and code analysis tools for AI coding assistants.
## Features
- 🔧 **Ruff Integration**: Run linting and formatting through MCP tools
- 📊 **Code Analysis**: Detailed code quality reports and suggestions
- � **Inline Documentation**: Get immediate explanations and fix suggestions for violations
- �🛠️ **Configurable**: Support for custom Ruff configurations
- 🚀 **Fast**: Leverages Ruff's speed for real-time analysis
## Tools Provided
### `ruff_check`
Run Ruff linting on files or directories
- **Parameters**: `path` (file or directory), `config_path` (optional)
- **Returns**: Linting results with violations and suggestions
### `ruff_format`
Format Python code using Ruff
- **Parameters**: `path` (file or directory), `check_only` (optional)
- **Returns**: Formatted code or formatting diff
### `ruff_fix`
Auto-fix linting violations where possible
- **Parameters**: `path` (file or directory), `unsafe` (optional)
- **Returns**: Applied fixes and remaining violations
## Installation
```bash
# Clone the repository
git clone <repository-url>
cd ruff-mcp-server
# Install dependencies
pip install -e .
# Or install with development dependencies
pip install -e ".[dev]"Related MCP server: Code Analysis MCP Server
Usage
Running the MCP Server
# Start the server
ruff-mcp-server
# Or run with custom configuration
ruff-mcp-server --config /path/to/ruff.tomlConnecting to AI Clients
Add this server to your MCP client configuration:
{
"mcpServers": {
"ruff": {
"command": "ruff-mcp-server",
"args": []
}
}
}Configuration
You can customize Ruff behavior by providing a configuration file:
ruff-mcp-server --config pyproject.toml
# or
ruff-mcp-server --config ruff.tomlSee ruff.toml.example for a sample configuration file.
Development
Setup Development Environment
# Clone the repository
git clone <repository-url>
cd ruff-mcp-server
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install in development mode
pip install -e ".[dev]"Running Tests
# Test the MCP server
python test_server.py
# Check code quality
ruff check .
ruff format .Extending Rule Documentation
The server includes inline documentation for common Ruff rules in the get_rule_documentation() function in main.py. To add documentation for additional rules:
Find the rule code (e.g., "E401", "F401")
Add an entry to the
rule_docsdictionary with a helpful explanationFocus on providing actionable fix suggestions rather than just describing the problem
Example:
"E401": "Combine multiple imports on separate lines. Use 'import os, sys' → 'import os\\nimport sys'"Features
✅ Fast and Reliable: Built on Ruff's lightning-fast Python linter and formatter
✅ MCP Compatible: Works with any Model Context Protocol client
✅ Rich Output: Beautifully formatted violation reports with emojis and inline documentation
✅ Inline Help: Provides immediate explanations and fix suggestions for each violation
✅ Configurable: Supports all Ruff configuration options
✅ Error Handling: Robust error handling with helpful error messages
✅ Multiple Formats: Supports JSON, text, GitHub, GitLab, JUnit, and SARIF output formats
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/drewsonne/ruff-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server