SonarQube MCP Server

by SonarSourceio.github.SonarSource/sonarqube-mcp-serverv1.30.0

Analyze code quality and security with SonarQube Server or Cloud directly in AI assistants.

  • Runs on your machine

Version checks

Not run yet – package checks are being switched on. It runs from a package on your machine, so instead of uptime we will start each new version in our sandbox.

How we check

Run it on your machine

Add to ~/.config/zed/settings.json:

{
  "context_servers": {
    "sonarqube-mcp-server": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "docker.io/sonarsource/sonarqube-mcp"],
      "env": { "SONARQUBE_TOKEN": "YOUR_SONARQUBE_TOKEN" }
    }
  }
}

Replace YOUR_SONARQUBE_TOKEN with your own value.

For agents: the install prompt

Every step above as one Markdown text, for an assistant installing it for you.

# Install the MCP server SonarQube MCP Server (`io.github.SonarSource/sonarqube-mcp-server`)

Its page: https://plug.directory/servers/io.github.SonarSource/sonarqube-mcp-server

It runs on the person's machine and needs Docker installed.

Ask the person for `YOUR_SONARQUBE_TOKEN` and put it in place of the placeholder; never invent a value.

Use the section for the person's client.

## Claude Desktop, Cursor, Devin Desktop, Cline, LM Studio, Gemini CLI, mcp-client-cli, oterm, TUUI, BoltAI, AnythingLLM, Augment Code, Bob Shell, ECA, Kiro, Kiro CLI

Merge into the place for the person's client:

- Claude Desktop: claude_desktop_config.json (Settings › Developer › Edit Config)
- Cursor: ~/.cursor/mcp.json
- Devin Desktop: ~/.config/devin/mcp_config.json
- Cline: cline_mcp_settings.json (MCP Servers › Configure › Configure MCP Servers)
- LM Studio: mcp.json (Program › Install › Edit mcp.json)
- Gemini CLI: ~/.gemini/settings.json
- mcp-client-cli: ~/.llm/config.json
- oterm: config.json in oterm's data folder (~/Library/Application Support/oterm on macOS, ~/.local/share/oterm on Linux, %APPDATA%\oterm on Windows)
- TUUI: resources/assets/config/mcp.json in the installed app
- BoltAI: ~/.boltai/mcp.json
- AnythingLLM: anythingllm_mcp_servers.json in the AnythingLLM storage plugins directory
- Augment Code: Augment Settings Panel – MCP section – Import from JSON (VS Code extension)
- Bob Shell: ~/.bob/settings/mcp.json (global) or .bob/mcp.json (project)
- ECA: ~/.config/eca/config.json (global) or .eca/config.json in the project
- Kiro: ~/.kiro/settings/mcp.json (user) or .kiro/settings/mcp.json (workspace)
- Kiro CLI: ~/.kiro/settings/mcp.json (user) or .kiro/settings/mcp.json (workspace)

```json
{
  "mcpServers": {
    "sonarqube-mcp-server": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "docker.io/sonarsource/sonarqube-mcp"],
      "env": { "SONARQUBE_TOKEN": "YOUR_SONARQUBE_TOKEN" }
    }
  }
}
```

## Claude Code

Run in a terminal:

```sh
claude mcp add --env SONARQUBE_TOKEN=YOUR_SONARQUBE_TOKEN --transport stdio sonarqube-mcp-server -- docker run -i --rm -e SONARQUBE_TOKEN docker.io/sonarsource/sonarqube-mcp
```

## VS Code

Merge into .vscode/mcp.json:

```json
{
  "servers": {
    "sonarqube-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "docker.io/sonarsource/sonarqube-mcp"],
      "env": { "SONARQUBE_TOKEN": "YOUR_SONARQUBE_TOKEN" }
    }
  }
}
```

## Zed

Merge into ~/.config/zed/settings.json:

```json
{
  "context_servers": {
    "sonarqube-mcp-server": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "docker.io/sonarsource/sonarqube-mcp"],
      "env": { "SONARQUBE_TOKEN": "YOUR_SONARQUBE_TOKEN" }
    }
  }
}
```

## Continue

Merge into ~/.continue/config.yaml:

```yaml
mcpServers:
  - name: "sonarqube-mcp-server"
    type: stdio
    command: "docker"
    args:
      - "run"
      - "-i"
      - "--rm"
      - "-e"
      - "SONARQUBE_TOKEN"
      - "docker.io/sonarsource/sonarqube-mcp"
    env:
      "SONARQUBE_TOKEN": "YOUR_SONARQUBE_TOKEN"
```

## Goose

Merge into ~/.config/goose/config.yaml:

```yaml
extensions:
  "sonarqube-mcp-server":
    type: stdio
    name: "sonarqube-mcp-server"
    enabled: true
    cmd: "docker"
    args: ["run", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "docker.io/sonarsource/sonarqube-mcp"]
    env_keys: []
    envs: { "SONARQUBE_TOKEN": "YOUR_SONARQUBE_TOKEN" }
    timeout: 300
```

## Codex

Run in a terminal:

```sh
codex mcp add sonarqube-mcp-server --env SONARQUBE_TOKEN=YOUR_SONARQUBE_TOKEN -- docker run -i --rm -e SONARQUBE_TOKEN docker.io/sonarsource/sonarqube-mcp
```

## Agenvoy

Merge into ~/.config/agenvoy/mcp.json:

```json
{
  "servers": {
    "sonarqube-mcp-server": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "docker.io/sonarsource/sonarqube-mcp"],
      "env": { "SONARQUBE_TOKEN": "YOUR_SONARQUBE_TOKEN" }
    }
  }
}
```

## Amp

Merge into ~/.config/amp/settings.json (user) or .amp/settings.json (workspace):

```json
{
  "amp.mcpServers": {
    "sonarqube-mcp-server": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "docker.io/sonarsource/sonarqube-mcp"],
      "env": { "SONARQUBE_TOKEN": "YOUR_SONARQUBE_TOKEN" }
    }
  }
}
```

Then restart the client, or reload its MCP servers, and ask it to list the server's tools to confirm it started.

From the publisher's entry in the Official MCP Registry (the registry entry)and from GitHub MCP Registry, Docker Hub, Docker MCP Catalog, Docker MCP Registry. We have not checked this server yet. Report a problem