CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
sonarsource avatar

Sonarqube Mcp Server

sonarsource/sonarqube-mcp-server
571authSTDIOregistry active
Summary

Connects Claude to SonarQube Cloud or self-hosted Server instances for code quality and security analysis. You get access to project metrics, issue tracking, and quality gate status through the standard SonarQube REST APIs. The server can also analyze code snippets directly within the agent context, which is handy when you want real-time feedback on code you're drafting without pushing to a repository. Setup uses Docker by default and requires a SonarQube token for authentication. Reach for this when you want Claude to check quality gates, fetch technical debt metrics, or scan code against your organization's SonarQube rules during development conversations.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
inference shell
inference shell
create and run specialised agents in minutes
build now →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
inference shell
inference shell
create and run specialised agents in minutes
build now →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →

SonarQube MCP Server

Build Quality Gate Status

The SonarQube MCP Server is a Model Context Protocol (MCP) server that enables seamless integration with SonarQube Server or Cloud for code quality and security. It also supports the analysis of code snippet directly within the agent context.

Quick setup

Security best practices

🔒 Important: Your SonarQube token is a sensitive credential. Follow these security practices:

When using CLI commands:

  • Avoid hardcoding tokens in command-line arguments – they get saved in shell history
  • Use environment variables – set tokens in environment variables before running commands

When using configuration files:

  • Never commit tokens to version control
  • Use environment variable substitution in config files when possible

🚀 Generate your configuration

The fastest way to get started is the SonarQube MCP Server Configuration Generator – an interactive tool that produces a ready-to-use configuration for your preferred AI agent client.

Manual setup

If you prefer to configure things yourself, the simplest method is to use our container image at sonarsource/sonarqube-mcp. Use sonarsource/sonarqube-mcp for automatic updates (with --pull=always), or pin to a version tag (e.g., sonarsource/sonarqube-mcp:1.19.0.2785) for reproducible deployments. Read below if you want to build it locally.

Note: While the examples below use docker, any OCI-compatible container runtime works (e.g., Podman, nerdctl). Simply replace docker with your preferred tool.

Antigravity

SonarQube MCP Server is available in the Antigravity MCP Store. Follow these instructions:

  1. Open the Agent Side Panel
  2. Click the three dots (...) at the top right and select MCP Servers
  3. Search for SonarQube and select Install
  4. Provide the required SonarQube User token. You can also provide your organization key for SonarQube Cloud or the SonarQube URL if connecting to SonarQube Server.

For SonarQube Cloud US, set the URL to https://sonarqube.us.

Alternatively, you can manually configure the server via mcp_config.json:

  • To connect with SonarQube Cloud:

In the Agent Side Panel, click the three dots (...) -> MCP Store -> Manage MCP Servers -> View raw config, and add the following:

{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": ["run", "--init", "--pull=always", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_ORG", "sonarsource/sonarqube-mcp"],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_TOKEN>",
        "SONARQUBE_ORG": "<YOUR_ORG>"
      }
    }
  }
}

For SonarQube Cloud US, manually add "SONARQUBE_URL": "https://sonarqube.us" to the env section and "-e", "SONARQUBE_URL" to the args array.

  • To connect with SonarQube Server:
{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": ["run", "--init", "--pull=always", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_URL", "sonarsource/sonarqube-mcp"],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_USER_TOKEN>",
        "SONARQUBE_URL": "<YOUR_SERVER_URL>"
      }
    }
  }
}
Claude Code
  • To connect with SonarQube Cloud:
claude mcp add sonarqube \
  --env SONARQUBE_TOKEN=$SONAR_TOKEN \
  --env SONARQUBE_ORG=$SONAR_ORG \
  -- docker run --init --pull=always -i --rm -e SONARQUBE_TOKEN -e SONARQUBE_ORG sonarsource/sonarqube-mcp

For SonarQube Cloud US, add --env SONARQUBE_URL=https://sonarqube.us to the command.

  • To connect with SonarQube Server:
claude mcp add sonarqube \
  --env SONARQUBE_TOKEN=$SONAR_USER_TOKEN \
  --env SONARQUBE_URL=$SONAR_URL \
  -- docker run --init --pull=always -i --rm -e SONARQUBE_TOKEN -e SONARQUBE_URL sonarsource/sonarqube-mcp
Codex CLI

Manually edit the configuration file at ~/.codex/config.toml and add the following configuration:

  • To connect with SonarQube Cloud:
[mcp_servers.sonarqube]
command = "docker"
args = ["run", "--init", "--pull=always", "--rm", "-i", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_ORG", "sonarsource/sonarqube-mcp"]
env = { "SONARQUBE_TOKEN" = "<YOUR_USER_TOKEN>", "SONARQUBE_ORG" = "<YOUR_ORG>" }

For SonarQube Cloud US, add "SONARQUBE_URL" = "https://sonarqube.us" to the env section and "-e", "SONARQUBE_URL" to the args array.

  • To connect with SonarQube Server:
[mcp_servers.sonarqube]
command = "docker"
args = ["run", "--init", "--pull=always", "--rm", "-i", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_URL", "sonarsource/sonarqube-mcp"]
env = { "SONARQUBE_TOKEN" = "<YOUR_TOKEN>", "SONARQUBE_URL" = "<YOUR_SERVER_URL>" }
Cursor
  • To connect with SonarQube Cloud:

Install for SonarQube Cloud

For SonarQube Cloud US, manually add "SONARQUBE_URL": "https://sonarqube.us" to the env section in your MCP configuration after installation.

  • To connect with SonarQube Server:

Install for SonarQube Server

Gemini CLI

Note: The Gemini CLI extension has moved to the sonarqube-agent-plugins repository. Please install it from there going forward.

You can install our MCP server extension by using the following command:

gemini extensions install https://github.com/SonarSource/sonarqube-agent-plugins

You will need to set the required environment variables before starting Gemini:

Environment Variables Required:

  • For SonarQube Cloud:

    • SONARQUBE_TOKEN - Your SonarQube Cloud token
    • SONARQUBE_ORG - Your organization key
    • SONARQUBE_URL - (Optional) Set to https://sonarqube.us for SonarQube Cloud US
  • For SonarQube Server:

    • SONARQUBE_TOKEN - Your SonarQube Server USER token
    • SONARQUBE_URL - Your SonarQube Server URL

Once installed, the extension will be installed under <home>/.gemini/extensions/sonarqube/gemini-extension.json.

GitHub Copilot CLI

After starting Copilot CLI, run the following command to add the SonarQube MCP server:

/mcp add

You will have to provide different information about the MCP server, you can use tab to navigate between fields.

  • To connect with SonarQube Cloud:
Server Name: sonarqube
Server Type: Local (Press 1)
Command: docker
Arguments: run, --init, --pull=always, --rm, -i, -e, SONARQUBE_TOKEN, -e, SONARQUBE_ORG, sonarsource/sonarqube-mcp
Environment Variables: SONARQUBE_TOKEN=<YOUR_TOKEN>,SONARQUBE_ORG=<YOUR_ORG>
Tools: *

For SonarQube Cloud US, add -e, SONARQUBE_URL to Arguments and SONARQUBE_URL=https://sonarqube.us to Environment Variables.

  • To connect with SonarQube Server:
Server Name: sonarqube
Server Type: Local (Press 1)
Command: docker
Arguments: run, --init, --pull=always, --rm, -i, -e, SONARQUBE_TOKEN, -e, SONARQUBE_URL, sonarsource/sonarqube-mcp
Environment Variables: SONARQUBE_TOKEN=<YOUR_USER_TOKEN>,SONARQUBE_URL=<YOUR_SERVER_URL>
Tools: *

The configuration file is located at ~/.copilot/mcp-config.json.

GitHub Copilot coding agent

GitHub Copilot coding agent can leverage the SonarQube MCP server directly in your CI/CD.

To add the secrets to your Copilot environment, follow the Copilot documentation. Only secrets with names prefixed with COPILOT_MCP_ will be available to your MCP configuration.

In your GitHub repository, navigate under Settings -> Copilot -> Coding agent, and add the following configuration in the MCP configuration section:

  • To connect with SonarQube Cloud:
{
  "mcpServers": {
    "sonarqube": {
      "type": "local",
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "--rm",
        "-i",
        "-e",
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_ORG",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "COPILOT_MCP_SONARQUBE_TOKEN",
        "SONARQUBE_ORG": "COPILOT_MCP_SONARQUBE_ORG"
      },
      "tools": ["*"]
    }
  }
}

For SonarQube Cloud US, add "-e", "SONARQUBE_URL" to the args array and "SONARQUBE_URL": "COPILOT_MCP_SONARQUBE_URL" to the env section, then set the secret COPILOT_MCP_SONARQUBE_URL=https://sonarqube.us.

  • To connect with SonarQube Server:
{
  "mcpServers": {
    "sonarqube": {
      "type": "local",
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "--rm",
        "-i",
        "-e",
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_URL",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "COPILOT_MCP_SONARQUBE_USER_TOKEN",
        "SONARQUBE_URL": "COPILOT_MCP_SONARQUBE_URL"
      },
      "tools": ["*"]
    }
  }
}
Kiro

Create a .kiro/settings/mcp.json file in your workspace directory (or edit if it already exists), add the following configuration:

  • To connect with SonarQube Cloud:
{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "-i",
        "--rm",
        "-e", 
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_ORG",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_TOKEN>",
        "SONARQUBE_ORG": "<YOUR_ORG>"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

For SonarQube Cloud US, add "-e", "SONARQUBE_URL" to the args array and "SONARQUBE_URL": "https://sonarqube.us" to the env section.

  • To connect with SonarQube Server:
{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "-i",
        "--rm",
        "-e", 
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_URL",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_USER_TOKEN>",
        "SONARQUBE_URL": "<YOUR_SERVER_URL>"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
VS Code

You can use the following buttons to simplify the installation process within VS Code.

Install for SonarQube Cloud

For SonarQube Cloud US, manually add "SONARQUBE_URL": "https://sonarqube.us" to the env section in your MCP configuration after installation.

Install for SonarQube Server

Windsurf

SonarQube MCP Server is available as a Windsurf plugin. Follow these instructions:

  1. Open Windsurf Settings > Cascade > MCP Servers and select Open MCP Marketplace
  2. Search for sonarqube on the Cascade MCP Marketplace
  3. Choose the SonarQube MCP Server and select Install
  4. Add the required SonarQube User token. Then add the organization key if you want to connect with SonarQube Cloud, or the SonarQube URL if you want to connect to SonarQube Server or Community Build.

For SonarQube Cloud US, set the URL to https://sonarqube.us.

Zed

Navigate to the Extensions view in Zed and search for SonarQube MCP Server. When installing the extension, you will be prompted to provide the necessary environment variables:

  • When using SonarQube Cloud:
{
  "sonarqube_token": "YOUR_SONARQUBE_TOKEN",
  "sonarqube_org": "SONARQUBE_ORGANIZATION_KEY",
  "docker_path": "DOCKER_PATH"
}

For SonarQube Cloud US, add "sonarqube_url": "https://sonarqube.us" to the configuration.

  • When using SonarQube Server:
{
  "sonarqube_token": "YOUR_SONARQUBE_USER_TOKEN",
  "sonarqube_url": "YOUR_SONARQUBE_SERVER_URL",
  "docker_path": "DOCKER_PATH"
}

The docker_path is the path to a docker executable. Examples:

Linux/macOS: /usr/bin/docker or /usr/local/bin/docker

Windows: C:\Program Files\Docker\Docker\resources\bin\docker.exe

💡 Tip: We recommend pulling the latest image regularly or before reporting issues to ensure you have the most up-to-date features and fixes.

Manual installation

You can manually install the SonarQube MCP server by copying the following snippet in the MCP servers configuration file:

  • To connect with SonarQube Cloud:
{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_ORG",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_ORG": "<org>"
    }
  }
}
  • To connect with SonarQube Server:
{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_URL",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}

Integration with SonarQube for IDE

The SonarQube MCP Server can integrate with SonarQube for IDE to further enhance your development workflow, providing better code analysis and insights directly within your IDE.

Configuration

When using SonarQube for IDE, the SONARQUBE_IDE_PORT environment variable should be set with the correct port number. SonarQube for VS Code includes a Quick Install button, which automatically sets the correct port configuration.

For example, with SonarQube Cloud:

{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_ORG",
      "-e",
      "SONARQUBE_IDE_PORT",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_ORG": "<org>",
      "SONARQUBE_IDE_PORT": "<64120-64130>"
    }
  }
}

When running the MCP server in a container on Linux, the container cannot access the SonarQube for IDE embedded server running on localhost. To allow the container to connect to the SonarQube for IDE server, add the --network=host option to your container run command.

Configuration

Depending on your environment, you should provide specific environment variables.

Base

You should add the following variable when running the MCP Server:

Environment variableDescription
STORAGE_PATHMandatory absolute path to a writable directory where SonarQube MCP Server will store its files (e.g., for creation, updates, and persistence), it is automatically provided when using the container image
SONARQUBE_PROJECT_KEYOptional default project key. When set, all tools that require a project key will use this value automatically — the projectKey parameter is removed from their schema entirely. Useful when working on a single project.
SONARQUBE_IDE_PORTOptional port number between 64120 and 64130 used to connect SonarQube MCP Server with SonarQube for IDE.
SONARQUBE_DEBUG_ENABLEDWhen set to true, enables debug logging. Debug logs are written to both the log file and STDERR. Useful for troubleshooting connectivity or configuration issues. Default: false.
SONARQUBE_LOG_TO_FILE_DISABLEDWhen set to true, disables writing logs to disk entirely. No log files will be created under STORAGE_PATH/logs/. Useful in containerized or ephemeral environments where file logging is undesirable. Default: false.

Workspace Mount (Reducing Context Bloat)

By default, analysis tool analyze_code_snippet requires the agent to pass the full file content as a fileContent argument. For large files or when analyzing many files in a session, this significantly increases context window usage and cost.

Solution: mount your project directory into the container at /app/mcp-workspace. When this mount is detected, the server reads files directly from disk using the project-relative filePath argument — file content never passes through the agent context.

{
  "args": [
    "run", "-i", "--rm", "--init", "--pull=always",
    "-e", "SONARQUBE_TOKEN",
    "-e", "SONARQUBE_ORG",
    "-v", "/path/to/your/project:/app/mcp-workspace",
    "sonarsource/sonarqube-mcp"
  ]
}

When the mount is active:

  • run_advanced_code_analysis becomes available if your organization is entitled to it
  • analyze_code_snippet: filePath is required and fileContent is not used — the server resolves the file the same way

Selective Tool Enablement

By default, only important toolsets are enabled to reduce context overhead. You can enable additional toolsets as needed.

Environment variableDescription
SONARQUBE_TOOLSETSComma-separated list of toolsets to enable. When set, only these toolsets will be available. If not set, default important toolsets are enabled (analysis, ide, issues, projects, quality-gates, rules, duplications, measures, security-hotspots, dependency-risks, coverage, cag). Note: The projects toolset is always enabled as it's required to find project keys for other operations. Vortex context tools (deprecated name: Context Augmentation/CAG) and Vortex analysis tools (deprecated name: Advanced Analysis/A3S) are only available in stdio mode and share a single combined organization entitlement — an org must be entitled to both to use either. On SonarQube Server, stdio lists Vortex context and run_advanced_code_analysis when both the CAG and A3S hubs are entitled. Prefer the unified vortex toolset key. The deprecated cag and analysis keys still work; a startup warning and a deprecation note in the server instructions are emitted when they are used without vortex. In Streamable HTTP mode, clients can send a SONARQUBE_TOOLSETS HTTP header to narrow this further per-request, but cannot enable toolsets beyond what the server was launched with (see Streamable HTTP transport below).
SONARQUBE_READ_ONLYWhen set to true, enables read-only mode which disables all write operations (changing issue status for example). This filter is cumulative with SONARQUBE_TOOLSETS if both are set. Default: false. In Streamable HTTP mode, clients can send a SONARQUBE_READ_ONLY HTTP header to further restrict individual requests to read-only, but cannot lift a server-level read-only restriction (see Streamable HTTP transport below).
Available Toolsets
ToolsetKeyDescription
AnalysisanalysisCode analysis tools (local analysis via analyze_code_snippet, deprecated in favor of analyze_file_list/Vortex analysis)
IDEideSonarQube for IDE bridge tools (file analysis, automatic analysis toggle) — currently also included in analysis
IssuesissuesSearch and manage SonarQube issues
Security Hotspotssecurity-hotspotsSearch and review Security Hotspots
ProjectsprojectsBrowse and search SonarQube projects
Quality Gatesquality-gatesAccess quality gates and their status
RulesrulesBrowse and search SonarQube rules
SourcessourcesAccess source code and SCM information
DuplicationsduplicationsFind code duplications across projects
MeasuresmeasuresRetrieve metrics and measures (includes both measures and metrics tools)
LanguageslanguagesList supported programming languages
PortfoliosportfoliosManage portfolios and enterprises (Cloud and Server)
SystemsystemSystem administration tools (Server only)
WebhookswebhooksManage webhooks
Dependency Risksdependency-risksAnalyze dependency risks and security issues (SCA)
CoveragecoverageTest coverage analysis and improvement tools
Vortex ContextcagVortex context tools — stdio only. Deprecated in favor of vortex (old name: Context Augmentation/CAG)
VortexvortexUnified, recommended toolset surfacing both Vortex context and Vortex analysis tools under one name (stdio only; Cloud needs combined org entitlement; Server needs both hubs entitled)
Agentic Readinessagentic-readinessAgentic Readiness Assessment tools (SonarQube Cloud, requires org entitlement)
Examples

Enable analysis, issues, and quality gates toolsets (using Docker with SonarQube Cloud):

docker run --init --pull=always -i --rm \
  -e SONARQUBE_TOKEN="<token>" \
  -e SONARQUBE_ORG="<org>" \
  -e SONARQUBE_TOOLSETS="analysis,issues,quality-gates" \
  sonarsource/sonarqube-mcp

Note: The projects toolset is always enabled automatically, so you don't need to include it in SONARQUBE_TOOLSETS.

Enable read-only mode (using Docker with SonarQube Cloud):

docker run --init --pull=always -i --rm \
  -e SONARQUBE_TOKEN="<token>" \
  -e SONARQUBE_ORG="<org>" \
  -e SONARQUBE_READ_ONLY="true" \
  sonarsource/sonarqube-mcp
SonarQube Cloud

To enable full functionality, the following environment variables must be set before starting the server:

Environment variableDescriptionRequired
SONARQUBE_TOKENYour SonarQube Cloud tokenYes
SONARQUBE_ORGYour SonarQube Cloud organization keyYes
SONARQUBE_URLCustom SonarQube Cloud URL (defaults to https://sonarcloud.io). Use this for SonarQube Cloud US: https://sonarqube.usNo

Examples:

  • SonarQube Cloud: Only SONARQUBE_TOKEN and SONARQUBE_ORG are needed
  • SonarQube Cloud US: Set SONARQUBE_TOKEN, SONARQUBE_ORG, and SONARQUBE_URL=https://sonarqube.us
SonarQube Server
Environment variableDescriptionRequired
SONARQUBE_TOKENYour SonarQube Server USER tokenYes
SONARQUBE_URLYour SonarQube Server URLYes

⚠️ Connection to SonarQube Server requires a token of type USER and will not function properly if project tokens or global tokens are used.

💡 Configuration Tip (stdio mode): The presence of SONARQUBE_ORG determines whether you're connecting to SonarQube Cloud or Server. If SONARQUBE_ORG is set, SonarQube Cloud is used; otherwise, SonarQube Server is used.

Transport Modes

The MCP specification defines two transport mechanisms: Stdio and Streamable HTTP. The SonarQube MCP Server supports both:

MCP transportServer modeTypical use
StdioDefault (no SONARQUBE_TRANSPORT)Local MCP clients that launch the server as a subprocess (Cursor, Claude Code, VS Code, etc.)
Streamable HTTPSONARQUBE_TRANSPORT=http or httpsRemote or multi-user deployments; clients connect to /mcp over HTTP(S) (e.g. Windsurf with a self-hosted server URL)

Note: Streamable HTTP is the current MCP network transport. The older SSE-only HTTP transport from earlier MCP versions is deprecated and not supported.

1. Stdio (Default - Recommended for Local Development)

The recommended mode for local development and single-user setups, used by most MCP clients.

Example - Docker with SonarQube Cloud:

{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": ["run", "--init", "--pull=always", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_ORG", "sonarsource/sonarqube-mcp"],
      "env": {
        "SONARQUBE_TOKEN": "<your-token>",
        "SONARQUBE_ORG": "<your-org>"
      }
    }
  }
}
2. HTTP (Streamable HTTP)

Unencrypted Streamable HTTP transport. Use HTTPS instead for multi-user deployments.

⚠️ Not Recommended: Use Stdio for local development or HTTPS (Streamable HTTP) for multi-user production deployments.

Environment variableDescriptionDefault
SONARQUBE_TRANSPORTSet to http to enable Streamable HTTP transportNot set (stdio)
SONARQUBE_HTTP_PORTPort number (1024-65535)8080
SONARQUBE_HTTP_HOSTHost to bind (defaults to localhost for security)127.0.0.1
SONARQUBE_HTTP_ALLOWED_ORIGINSComma-separated browser origins allowed for CORS (e.g. https://my-app.example.com)Not set
SONARQUBE_MCP_IN_CONTAINERSet to true when running inside a container. The official Docker image sets this automatically; set it yourself when using other OCI runtimes (Podman, Kubernetes, Nomad, etc.).false

Note: In Streamable HTTP mode (HTTP or HTTPS), the server is stateless — each client request must include an Authorization: Bearer <token> header carrying the user's own SonarQube token. For SonarQube Cloud, the organization is resolved as follows:

  • If SONARQUBE_ORG is set at server startup, all requests are routed to that organization. Clients must not send a SONARQUBE_ORG header — doing so will result in an error.
  • If SONARQUBE_ORG is not set at server startup, each client must supply a SONARQUBE_ORG header on every request. Clients can also narrow the visible tools per-request by supplying SONARQUBE_TOOLSETS and/or SONARQUBE_READ_ONLY headers; these apply additional filtering on top of the server-level configuration — they can only reduce the scope, never expand it. No session state is maintained between requests.

Deprecated: The SONARQUBE_TOKEN request header is still accepted for backward compatibility but will be removed in a future version. Migrate to Authorization: Bearer <token>.

3. HTTPS (Streamable HTTP over TLS) (Recommended for Multi-User Production Deployments)

Secure Streamable HTTP transport with TLS encryption. Requires SSL certificates.

✅ Recommended for Production: Use HTTPS when deploying the MCP server for multiple users over Streamable HTTP. The server binds to 127.0.0.1 (localhost) by default for security.

Environment variableDescriptionDefault
SONARQUBE_TRANSPORTSet to https to enable Streamable HTTP transport over TLSNot set (stdio)
SONARQUBE_HTTP_PORTPort number (typically 8443 for HTTPS)8080
SONARQUBE_HTTP_HOSTHost to bind (defaults to localhost for security)127.0.0.1
SONARQUBE_HTTP_ALLOWED_ORIGINSComma-separated browser origins allowed for CORS (e.g. https://my-app.example.com)Not set
SONARQUBE_MCP_IN_CONTAINERSet to true when running inside a container. The official Docker image sets this automatically; set it yourself when using other OCI runtimes (Podman, Kubernetes, Nomad, etc.).false

SSL Certificate Configuration (Optional):

Environment variableDescriptionDefault
SONARQUBE_HTTPS_KEYSTORE_PATHPath to keystore file (.p12 or .jks)/etc/ssl/mcp/keystore.p12
SONARQUBE_HTTPS_KEYSTORE_PASSWORDKeystore passwordsonarlint
SONARQUBE_HTTPS_KEYSTORE_TYPEKeystore type (PKCS12 or JKS)PKCS12

Example - Docker with SonarQube Cloud:

Note: When running in a container, set SONARQUBE_HTTP_HOST=0.0.0.0 so the container listens on all interfaces and the runtime's port mapping works, and set SONARQUBE_MCP_IN_CONTAINER=true to tell the server it is inside a container. The official Docker image sets the latter automatically; set it yourself when using other OCI runtimes (Podman, Kubernetes, Nomad, etc.). The host-side port flag controls who can reach the server from outside the container. SONARQUBE_HTTP_HOST=0.0.0.0 only controls where the server listens inside the container — browser CORS still allows localhost origins by default.

For a server running locally on your machine (accessible only from localhost):

docker run --init --pull=always -p 127.0.0.1:8443:8443 \
  -v $(pwd)/keystore.p12:/etc/ssl/mcp/keystore.p12:ro \
  -e SONARQUBE_TRANSPORT=https \
  -e SONARQUBE_HTTP_HOST=0.0.0.0 \
  -e SONARQUBE_HTTP_PORT=8443 \
  -e SONARQUBE_TOKEN="<init-token>" \
  -e SONARQUBE_ORG="<your-org>" \
  sonarsource/sonarqube-mcp

For a server accessible from the network (remote deployments):

docker run --init --pull=always -p 8443:8443 \
  -v $(pwd)/keystore.p12:/etc/ssl/mcp/keystore.p12:ro \
  -e SONARQUBE_TRANSPORT=https \
  -e SONARQUBE_HTTP_HOST=0.0.0.0 \
  -e SONARQUBE_HTTP_PORT=8443 \
  -e SONARQUBE_TOKEN="<init-token>" \
  -e SONARQUBE_ORG="<your-org>" \
  sonarsource/sonarqube-mcp

Client Configuration (SonarQube Cloud):

{
  "mcpServers": {
    "sonarqube-https": {
      "url": "https://your-server:8443/mcp",
      "headers": {
        "Authorization": "Bearer <your-token>",
        "SONARQUBE_ORG": "<your-org>",
        "SONARQUBE_TOOLSETS": "issues,quality-gates",
        "SONARQUBE_READ_ONLY": "true"
      }
    }
  }
}

Client Configuration (SonarQube Server):

{
  "mcpServers": {
    "sonarqube-https": {
      "url": "https://your-server:8443/mcp",
      "headers": {
        "Authorization": "Bearer <your-token>",
        "SONARQUBE_TOOLSETS": "issues,quality-gates",
        "SONARQUBE_READ_ONLY": "true"
      }
    }
  }
}

Note: SONARQUBE_TOOLSETS and SONARQUBE_READ_ONLY are optional per-request headers that narrow the server-level tool set for that specific request. They can only reduce scope — they cannot enable toolsets or lift restrictions beyond what the server was launched with.

Note: For local development, use Stdio transport instead (the default). HTTPS Streamable HTTP is intended for multi-user production deployments with proper SSL certificates.

Service Endpoints

When running in Streamable HTTP mode (http or https), the server exposes a few unauthenticated service endpoints in addition to the MCP endpoint at /mcp. These are intended for service-to-service use (monitoring, orchestration, client compatibility checks) and do not require an Authorization header.

EndpointMethodDescriptionExample response
/healthGETLiveness probe. Returns 200 OK with an empty body once the server is accepting requests.(empty body)
/infoGETReturns the MCP server version as JSON. Useful for verifying the deployed server version.{"version":"1.16.0"}

These endpoints are not available when running with the Stdio transport.

Custom Certificates

If your SonarQube Server uses a self-signed certificate or a certificate from a private Certificate Authority (CA), you can add custom certificates to the container that will automatically be installed.

Configuration
Using Volume Mount

Mount a directory containing your certificates when running the container:

docker run --init --pull=always -i --rm \
  -v /path/to/your/certificates/:/usr/local/share/ca-certificates/:ro \
  -e SONARQUBE_TOKEN="<token>" \
  -e SONARQUBE_URL="<url>" \
  sonarsource/sonarqube-mcp
Supported Certificate Formats

The container supports the following certificate formats:

  • .crt files (PEM or DER encoded)
  • .pem files (PEM encoded)
MCP Configuration with Certificates

When using custom certificates, you can modify your MCP configuration to mount the certificates:

{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-v",
      "/path/to/your/certificates/:/usr/local/share/ca-certificates/:ro",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_URL",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}

Note: Running the server from a JAR instead of the container? The volume mount above installs certificates into the container's OS trust store, which the server also reads. If you cannot use the OS trust store — notably on Windows, where it is not consulted — point the JVM at a Java truststore holding the CA certificate: -Djavax.net.ssl.trustStore=/path/to/truststore.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=<passphrase>. It is added on top of the default trusted certificates.

Proxy

The SonarQube MCP Server supports HTTP and SOCKS5 proxies through standard Java proxy system properties.

Configuration
HTTP/HTTPS Proxy

You can configure proxy settings using Java system properties. These can be set as environment variables or passed as JVM arguments.

Common Proxy Properties:

PropertyDescriptionExample
http.proxyHostHTTP proxy hostnameproxy.example.com
http.proxyPortHTTP proxy port8080
https.proxyHostHTTPS proxy hostnameproxy.example.com
https.proxyPortHTTPS proxy port8443
http.nonProxyHostsHosts that bypass the proxy (pipe-separated)localhost|127.0.0.1|*.internal.com

HTTP/HTTPS Proxy Authentication:

PropertyDescriptionExample
http.proxyUserHTTP proxy usernamemyuser
http.proxyPasswordHTTP proxy passwordmypassword
https.proxyUserHTTPS proxy usernamemyuser
https.proxyPasswordHTTPS proxy passwordmypassword
SOCKS5 Proxy

SOCKS5 proxies are supported.

PropertyDescriptionDefaultExample
socksProxyHostSOCKS5 proxy hostname—localhost
socksProxyPortSOCKS5 proxy port10801080
java.net.socks.usernameSOCKS5 username (if auth required)—myuser
java.net.socks.passwordSOCKS5 password (if auth required)—mypassword

Client Certificate (Mutual TLS)

If your SonarQube Server requires clients to present a certificate during the TLS handshake (mutual TLS), you can provide a PKCS12 keystore by mounting it into the container and passing its location via JAVA_OPTS.

Configuration
Using a PKCS12 keystore

Mount your .p12 or .pfx file into the container and set the JAVA_OPTS environment variable with the keystore properties:

docker run --init --pull=always -i --rm \
  -v /path/to/client.p12:/etc/ssl/mcp/client.p12:ro \
  -e JAVA_OPTS="-Djavax.net.ssl.keyStore=/etc/ssl/mcp/client.p12 -Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStorePassword=<passphrase>" \
  -e SONARQUBE_TOKEN="<token>" \
  -e SONARQUBE_URL="<url>" \
  sonarsource/sonarqube-mcp

Note: The certificate file must be readable by the container process. Check and fix permissions if needed:

ls -la /path/to/client.p12       # look for -rw-r--r-- (644) or wider
chmod 644 /path/to/client.p12    # grant read access to the container user

Omit -Djavax.net.ssl.keyStorePassword if the keystore has no passphrase. Note that the passphrase used here would be visible through docker inspect or process list.

MCP Configuration with a Client Certificate
{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run", "--init", "--pull=always", "-i", "--rm",
      "-v", "/path/to/client.p12:/etc/ssl/mcp/client.p12:ro",
      "-e", "JAVA_OPTS",
      "-e", "SONARQUBE_TOKEN",
      "-e", "SONARQUBE_URL",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "JAVA_OPTS": "-Djavax.net.ssl.keyStore=/etc/ssl/mcp/client.p12 -Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStorePassword=<passphrase>",
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}
Using a PKCS12 keystore with a standalone JAR

When running the server from a JAR, pass the keystore properties as JVM arguments before -jar:

java \
  -Djavax.net.ssl.keyStore=/path/to/client.p12 \
  -Djavax.net.ssl.keyStoreType=PKCS12 \
  -Djavax.net.ssl.keyStorePassword=<passphrase> \
  -jar <path_to_sonarqube_mcp_server_jar>

Omit -Djavax.net.ssl.keyStorePassword if the keystore has no passphrase.

MCP Configuration with a Client Certificate (JAR)
{
  "sonarqube": {
    "command": "java",
    "args": [
      "-Djavax.net.ssl.keyStore=/path/to/client.p12",
      "-Djavax.net.ssl.keyStoreType=PKCS12",
      "-Djavax.net.ssl.keyStorePassword=<passphrase>",
      "-jar",
      "<path_to_sonarqube_mcp_server_jar>"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}

Note: PEM certificate and key files (separate .crt/.key files) must be converted to PKCS12 format first. Use openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 to convert them.

Tools

Analysis

  • analyze_code_snippet - Analyze file content with SonarQube analyzers to identify code quality and security issues. Always analyzes the complete file content for accuracy. Optionally filter results to a specific code snippet.

    Deprecated: analyze_code_snippet will be removed in a future release. Connect SonarQube for IDE to use analyze_file_list, or enable Vortex analysis for your organization to use run_advanced_code_analysis (see below).

    Usage:

    • With workspace mounted (recommended): pass filePath (project-relative) — the server reads the file directly, keeping file content out of the agent context window
    • Without workspace mount: pass complete fileContent for full file analysis (reports all issues)
    • Add optional codeSnippet to filter results - only issues within the snippet will be reported (snippet location auto-detected)

    Parameters:

    • projectKey - The SonarQube project key - Required String (Ignored when SONARQUBE_PROJECT_KEY is defined)
    • filePath - Project-relative path of the file to analyze (e.g., src/main/java/MyClass.java). Used when the workspace is mounted at /app/mcp-workspace - String
    • fileContent - Complete file content as a string. Required when workspace is not mounted - String
    • codeSnippet - Code snippet to filter issues (must match content in fileContent) - String
    • language - Language of the code (e.g., 'java', 'python', 'js', 'ts', 'tsx', 'jsx') - String
    • scope - Scope of the file: MAIN or TEST (default: MAIN) - String

    Supported Languages: Java, Kotlin, Python, Ruby, Go, JavaScript (js, jsx), TypeScript (ts, tsx), JSP, PHP, XML, HTML, CSS, CloudFormation, Kubernetes, Terraform, Azure Resource Manager, Ansible, Docker, Secrets detection

When integration with SonarQube for IDE is enabled: (these two tools are tagged under both the analysis and ide toolsets)

  • analyze_file_list - Analyze files in the current working directory using SonarQube for IDE. This tool connects to a running SonarQube for IDE instance to perform code quality analysis on a list of files.

    • file_absolute_paths - List of absolute file paths to analyze - Required String[]
  • toggle_automatic_analysis - Enable or disable SonarQube for IDE automatic analysis. When enabled, SonarQube for IDE will automatically analyze files as they are modified in the working directory. When disabled, automatic analysis is turned off.

    • enabled - Enable or disable the automatic analysis - Required Boolean

On SonarQube Server, stdio lists Vortex context tools and run_advanced_code_analysis when both the CAG and A3S hubs are entitled.

When Vortex analysis is enabled:

Requires having the workspace mounted at /app/mcp-workspace

  • run_advanced_code_analysis - Run Vortex analysis on a single file. Organization is inferred from MCP configuration (SonarQube Server uses the nil UUID placeholder).
    • projectKey - The key of the project - Required String (Ignored when SONARQUBE_PROJECT_KEY is defined)
    • branch - Branch name used to retrieve the latest analysis context - Required String
    • filePath - Project-relative path of the file to analyze (e.g., src/main/java/MyClass.java). - Required String
    • fileScope - Defines in which scope the file originates from: 'MAIN' or 'TEST' (default: MAIN) - String

Coverage

  • search_files_by_coverage - Search for files in a project sorted by coverage (ascending - worst coverage first). This tool helps identify files that need test coverage improvements.

    • projectKey - The project key to search in - Required String (Ignored when SONARQUBE_PROJECT_KEY is defined)
    • branch - Optional branch name for branch-based analysis. Use list_branches to discover valid names - String
    • pullRequest - Optional pull request key/ID. Use list_pull_requests to discover valid keys - String
    • maxCoverage - Maximum coverage threshold (0-100). Only return files with coverage <= this value - Number
    • pageIndex - Page index (1-based, default: 1) - Number
    • pageSize - Page size (default: 100, max: 500) - Number
  • get_file_coverage_details - Get line-by-line coverage information for a specific file, including which exact lines are uncovered and which have partially covered branches. This tool helps identify precisely where to add test coverage. Use after identifying files with low coverage via search_files_by_coverage.

    • key - File key (e.g. my_project:src/foo/Bar.java) - Required String
    • branch - Optional branch name for branch-based analysis. Use list_branches to discover valid names - String
    • pullRequest - Optional pull request key/ID. Use list_pull_requests to discover valid keys - String
    • from - First line to analyze (1-based, default: 1) - Number
    • to - Last line to analyze (inclusive). If not specified, all lines are returned - Number

Dependency Risks

Note: Dependency risks are only available when connecting to SonarQube Server 2025.4 Enterprise or higher with SonarQube Advanced Security enabled.

  • search_dependency_risks - Search for software composition analysis issues (dependency risks) of a SonarQube project, paired with releases that appear in the analyzed project, application, or portfolio.
    • projectKey - Project key - Required String (Ignored when SONARQUBE_PROJECT_KEY is defined)
    • branch - Optional branch name for branch-based analysis. Use list_branches to discover valid names - String
    • pullRequest - Optional pull request key/ID. Use list_pull_requests to discover valid keys - String
    • pageIndex - Optional page index (1-based, default: 1) - Integer
    • pageSize - Optional page size. Must be greater than 0 and less than or equal to 500 (default: 100) - Integer

Enterprises

Note: Enterprises are only available when connecting to SonarQube Cloud.

  • list_enterprises - List the enterprises available in SonarQube Cloud that you have access to. Use this tool to discover enterprise IDs that can be used with other tools.
    • enterpriseKey - Optional enterprise key to filter results - String

Issues

  • change_sonar_issue_status - Change the status of a SonarQube issue to "accept", "falsepositive" or to "reopen" an issue.

    • key - Issue key - Required String
    • status - New issue's status - Required Enum {"accept", "falsepositive", "reopen"}
    • comment - Optional comment explaining the status change - String
  • search_sonar_issues_in_projects - Search for SonarQube issues in my organization's projects.

    • projectKeys - Optional list of SonarQube project keys - String[]
    • branch - Optional branch name for branch-based analysis. Use list_branches to discover valid names - String
    • pullRequest - Optional pull request key/ID. Use list_pull_requests to discover valid keys - String
    • severities - Optional list of severities to filter by. Possible values: INFO, LOW, MEDIUM, HIGH, BLOCKER - String[]
    • impactSoftwareQualities - Optional list of software qualities to filter by. Possible values: MAINTAINABILITY, RELIABILITY, SECURITY - String[]
    • issueStatuses - Optional list of issue statuses to filter by. Possible values: OPEN, CONFIRMED, FALSE_POSITIVE, ACCEPTED, FIXED, IN_SANDBOX - String[]
    • tags - Optional list of issue tags to filter by. Tags are lowercase - String[]
    • inNewCodePeriod - Only return issues in the new code period. Requires exactly one entry across projectKeys and files - Boolean
    • issueKey - Optional issue key to fetch a specific issue - String
    • pageIndex - Optional 1-based page index (default: 1) - Integer
    • pageSize - Optional page size. Must be greater than 0 and less than or equal to 500 (default: 100) - Integer

Security Hotspots

  • search_security_hotspots - Search for Security Hotspots in a SonarQube project.

    • projectKey - Project or application key - Required String (Ignored when SONARQUBE_PROJECT_KEY is defined)
    • hotspotKeys - Comma-separated list of specific Security Hotspot keys to retrieve - String[]
    • branch - Optional branch name for branch-based analysis. Use list_branches to discover valid names - String
    • pullRequest - Optional pull request key/ID. Use list_pull_requests to discover valid keys - String
    • files - Optional list of file paths to filter - String[]
    • status - Optional status filter: TO_REVIEW, REVIEWED - String
    • resolution - Optional resolution filter: FIXED, SAFE, ACKNOWLEDGED - String
    • sinceLeakPeriod - Filter hotspots created since the leak period (new code) - Boolean
    • onlyMine - Show only hotspots assigned to me - Boolean
    • pageIndex - Optional 1-based page index (default: 1) - Integer
    • pageSize - Optional page size. Must be greater than 0 and less than or equal to 500 (default: 100) - Integer
  • show_security_hotspot - Get detailed information about a specific Security Hotspot, including rule details, code context, flows, and comments.

    • hotspotKey - Security Hotspot key - Required String
  • change_security_hotspot_status - Review a Security Hotspot by changing its status. When marking as REVIEWED, you must specify a resolution (FIXED, SAFE, or ACKNOWLEDGED).

    • hotspotKey - Security Hotspot key - Required String
    • status - New status - Required Enum {"TO_REVIEW", "REVIEWED"}
    • resolution - Resolution when status is REVIEWED - Enum {"FIXED", "SAFE", "ACKNOWLEDGED"}
    • comment - Optional review comment - String

Languages

  • list_languages - List all programming languages supported in this SonarQube instance.
    • q - Optional pattern to match language keys/names against - String

Measures


View the full README on GitHub

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
inference shell
inference shell
create and run specialised agents in minutes
build now →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →

Configuration

SONARQUBE_TOKEN*secret

Your SonarQube USER token

SONARQUBE_ORGsecret

Your SonarQube Cloud organization key (if using SonarQube Cloud)

SONARQUBE_URLsecret

Your SonarQube Server URL (if using SonarQube Server)

Categories
Developer ToolsSecurity & Pentesting
Registryactive
Packagedocker.io/mcp/sonarqube:latest
TransportSTDIO
AuthRequired
UpdatedMay 12, 2026
View on GitHub

Related Developer Tools MCP Servers

View all →
ooo0ooo avatar
Lean LSP

ooo0ooo/lean-lsp-mcp

Provides agentic access to Lean through LSP, including diagnostics, goals, hover info, and multiple search tools.
379
jerhadf avatar
Linear

jerhadf/linear-mcp-server

A server that integrates Linear&#x27;s project management system with the Model Context Protocol (MCP) to allow LLMs to interact with Linear.
344
nanbingxyz avatar
Filesystem

nanbingxyz/mcpsvr

Provides an MCP endpoint to enforce directory-level access controls via interactive parameters.
300
estruyf avatar
Vscode Demo Time

estruyf/vscode-demo-time

Enables AI assistants to interact with Demo Time and helps build presentations and demos.
243
jonrad avatar
LSP

jonrad/lsp-mcp

Provides LSP capabilities to AI agents, delivering language-aware context from the codebase.
182
tumf avatar
Shell

tumf/mcp-shell-server

Provides secure, whitelisted remote command execution with stdin support and full execution feedback.
174