Content
# SonarQube MCP Server
This is a FastMCP server that provides a bridge to interact with SonarQube APIs. The server offers various tools to monitor and analyze code quality using SonarQube.
## Features
### 1. Health Check
- Endpoint: `sonar_health_check`
- Checks the status of your SonarQube server
- Returns the current health status and connection information
### 2. Token Validation
- Endpoint: `get_token_info`
- Validates the SonarQube authentication token
- Returns authentication status and associated user information
### 3. Project Issues
- Endpoint: `get_project_issues`
- Fetches unresolved issues for a specific project
- Returns detailed information about:
- Bugs
- Code smells
- Vulnerabilities
- Issue severity and status
- File location and line numbers
### 4. Project Listing
- Endpoint: `list_projects`
- Lists all accessible SonarQube projects
- Provides project keys, names, and visibility settings
### 5. Project Metrics
- Endpoint: `get_project_metrics`
- Retrieves key quality metrics for a project including:
- Bug count
- Vulnerability count
- Code smell count
- Code coverage
- Duplicated lines density
- Reliability rating
- Security rating
- Maintainability rating (SQALE)
## Configuration
The server uses the following environment variables:
```env
SONARQUBE_URL=http://localhost:9000 # Default SonarQube server URL
SONARQUBE_TOKEN= # Your SonarQube authentication token
PROJECT_KEY=default_project # Default project key for operations
```
## Requirements
Check the `requirements.txt` file for all dependencies. The main requirements include:
- FastMCP
- Requests
## Usage
1. Set up your environment variables
2. Install the requirements
3. Run the server using Python
The server will start and provide MCP-compliant endpoints for interacting with your SonarQube instance.
## Docker Usage
### Security Notice
For security reasons, sensitive environment variables like `SONARQUBE_TOKEN` and `PROJECT_KEY` should not be stored in the Dockerfile. Instead, they should be passed at runtime using environment variables or environment files.
### Building the Image
To build the Docker image:
```bash
docker build -t sonarqube-mcp .
```
### 💡 How to Integrate This Tool with VS Code and Make It Smarter
- Open your VS Code Settings

- In the search bar, type mcp

- Click on “Edit in settings.json”
- Under the mcp section, add the following configuration:
### Adding it in MCP server config
```bash
"sonarqubemcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--init",
"-e",
"SONARQUBE_URL",
"-e",
"SONARQUBE_TOKEN",
"-e",
"PROJECT_KEY",
"dhanushhypervisor/sonarqube_mcp_server"
],
"env": {
"SONARQUBE_URL": "<server_url>",
"SONARQUBE_TOKEN" : "<server_token>",
"PROJECT_KEY": "<project_name>",
}
}
```
### Environment Variables
When running the container, configure these required environment variables:
- `SONARQUBE_URL`: URL of your SonarQube server
- `SONARQUBE_TOKEN`: Your SonarQube authentication token
- `PROJECT_KEY`: The default project key to analyze
The server runs on Python 3.10 and uses the `uv` package manager for dependency management and execution.
## Error Handling
The server includes comprehensive error handling for:
- Connection issues
- Authentication failures
- Permission problems
- Invalid project keys
- General API errors
Each endpoint returns detailed error messages to help diagnose issues.
Connection Info
You Might Also Like
MarkItDown MCP
Python tool for converting files and office documents to Markdown.
Sequential Thinking
Model Context Protocol Servers
Everything
Model Context Protocol Servers
SmartDB_MCP
Universal database MCP server connecting to MySQL, PostgreSQL, SQL Server,...
awesome-context-engineering
A curated list of awesome open-source libraries for context engineering...
aks-mcp
A Model Context Protocol (MCP) server that enables AI assistants to interact...