loading…
Search for a command to run...
loading…
A Model Context Protocol (MCP) server for interacting with SonarQube code quality platform.
A Model Context Protocol (MCP) server for interacting with SonarQube code quality platform.
PyPI version Python 3.11+ License: MIT Coverage
A Model Context Protocol (MCP) server for interacting with SonarQube code quality platform.
# Using pip
pip install sonar-mcp
# Using uv (recommended)
uv pip install sonar-mcp
Add to your Claude Code MCP settings:
{
"mcpServers": {
"sonar-mcp": {
"command": "sonar-mcp",
"env": {
"SONAR_TOKEN": "your-sonarqube-token",
"SONAR_URL": "https://sonarqube.example.com"
}
}
}
}
The server uses a dispatch pattern (similar to GitLab MCP) with just 3 meta-tools:
# Discover available tools by category
sonar_list_categories()
sonar_list_categories(category="issue") # Filter to specific category
# Get parameter schema for a tool
sonar_get_tool_schema(tool_name="sonar_list_issues")
# Execute any tool by name
sonar_execute_tool(tool_name="sonar_list_projects")
sonar_execute_tool(tool_name="sonar_list_issues", arguments={"project": "my-project"})
For Claude Code and other MCP clients that use stdio transport:
sonar-mcp
# or
python -m sonar_mcp
For web-based clients or remote access:
# Start server on default port 8000
sonar-mcp --transport streamable-http
# Custom host and port
sonar-mcp --transport streamable-http --host 0.0.0.0 --port 3000
# Using environment variables
SONAR_MCP_TRANSPORT=streamable-http SONAR_MCP_PORT=3000 sonar-mcp
For clients that support SSE transport:
sonar-mcp --transport sse --port 8000
| Option | Description | Default |
|---|---|---|
--transport |
Transport protocol: stdio, sse, streamable-http |
stdio |
--host |
Host address for HTTP transports | 127.0.0.1 |
--port |
Port for HTTP transports | 8000 |
--version |
Show version and exit | - |
| Variable | Description | Required |
|---|---|---|
SONAR_TOKEN |
SonarQube API token | Yes |
SONAR_URL |
SonarQube server URL | Yes |
SONAR_MCP_TRANSPORT |
Default transport mode | No |
SONAR_MCP_HOST |
Default host for HTTP | No |
SONAR_MCP_PORT |
Default port for HTTP | No |
These 3 tools provide access to all SonarQube functionality:
| Tool | Description |
|---|---|
sonar_list_categories |
Discover available tools by category |
sonar_get_tool_schema |
Get parameter schema for a specific tool |
sonar_execute_tool |
Execute any tool by name with arguments |
Instance management for SonarQube server connections:
sonar_list_instances - List all configured instancessonar_manage_instance - Create, update, delete instancessonar_select_instance - Set the active instancesonar_test_connection - Test instance connectivityProject operations:
sonar_list_projects - List all accessible projectssonar_get_project - Get project details and metricssonar_detect_project - Auto-detect project from current directoryIssue management:
sonar_list_issues - List issues with filtering (severity, type, status)sonar_get_issue - Get detailed issue informationsonar_transition_issue - Change issue status (resolve, falsepositive, etc.)sonar_add_comment - Add a comment to an issuesonar_bulk_transition - Bulk transition multiple issuesQuality gate operations:
sonar_get_quality_gate - Get quality gate status (OK/ERROR)sonar_check_goals - Validate against quality goalsMetrics retrieval:
sonar_get_metrics - Get project metricssonar_get_coverage - Get coverage percentagesonar_get_file_coverage - Get file-level coverage detailsRule information:
sonar_get_rule - Get rule details and remediation guidanceAsync task management:
sonar_get_task - Get task statussonar_list_tasks - List background taskssonar_cancel_task - Cancel a running taskBrowseable URI-based access to SonarQube data:
| URI Pattern | Description |
|---|---|
sonarqube://projects |
List all projects |
sonarqube://projects/{key} |
Get project details |
sonarqube://projects/{key}/issues |
Get project issues |
sonarqube://projects/{key}/issues/{severity} |
Get issues by severity |
sonarqube://projects/{key}/metrics |
Get project metrics |
sonarqube://projects/{key}/quality-gate |
Get quality gate status |
Reusable prompt templates for code quality workflows:
| Prompt | Description |
|---|---|
code_review |
Review code issues and suggest fixes |
fix_issues |
Generate fix recommendations for issues |
quality_report |
Generate quality report for a project |
quality_goals |
Check project against quality goals |
security_audit |
Perform security vulnerability audit |
vulnerability_fix |
Generate fixes for security vulnerabilities |
# Clone the repository
git clone https://github.com/wadew/sonar-mcp.git
cd sonar-mcp
# Create virtual environment
uv venv
source .venv/bin/activate
# Install dependencies
uv pip install -e ".[dev]"
# Run all tests with coverage
pytest tests/ -v --cov=src/sonar_mcp --cov-report=term-missing
# Run with coverage enforcement (80% minimum)
pytest tests/ -v --cov=src/sonar_mcp --cov-fail-under=80
# Check linting
ruff check src/ tests/
# Format code
ruff format src/ tests/
# Type checking
mypy src/
MIT License - see LICENSE for details.
See CONTRIBUTING.md for detailed guidelines.
Выполни в терминале:
claude mcp add sonar-mcp -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.