An MCP server that provides tools for fetching SonarCloud issues related to pull requests.
Example prompt:
Fetch the list of OPEN or ACCEPTED issues from sonarcloud for this PR, which are assigned to __me__, fix them and push the changes to this PR.
Emphasis on the __me__ part, which is a special value in the sonarcloud API to reference the current user (token owner). You can stick this in your .claude/tools folder as sonarcloud-issues.md to have a shortcut which requests claude code to fetch and fix issues from SonarCloud.
- Fetch issues from SonarCloud for specific pull requests
- Filter by organization, project, and PR number
- Supports authentication via API token
- Returns formatted issue data with severity, type, and location information
Follow the instructions in the SonarCloud documentation to generate a SonarCloud API token.
# Build the Docker image npm run docker:build # Or build directly docker build -t sonarcloud-mcp .npm ci npm run buildRun via docker:
docker run -i --rm \ -e SONARCLOUD_TOKEN=your_token_here \ -e SONARCLOUD_ORGANISATION=your_organisation_here \ -e SONARCLOUD_PROJECT_KEY=your_project_key_here \ sonarcloud-mcpExport the required environment variables and run the server:
export SONARCLOUD_TOKEN=your_token_here export SONARCLOUD_ORGANISATION=your_organisation_here export SONARCLOUD_PROJECT_KEY=your_project_key_here npm startSONARCLOUD_TOKEN: Your SonarCloud API token (required)jSONARCLOUD_ORGANISATION: Your SonarCloud organization key (optional, can be passed as a parameter)SONARCLOUD_PROJECT_KEY: Your SonarCloud project key (optional, can be passed as a parameter)
Add to your claude_desktop_config.json or claude.json:
{ "mcpServers": { "sonarcloud": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "SONARCLOUD_TOKEN", "-e", "SONARCLOUD_ORGANISATION", "-e", "SONARCLOUD_PROJECT_KEY", "sonarcloud-mcp" ], "env": { "SONARCLOUD_TOKEN": "<your token here>", "SONARCLOUD_ORGANISATION": "<your organisation here>", "SONARCLOUD_PROJECT_KEY": "<your project key here>" } } } }Add to your claude_desktop_config.json or claude.json:
{ "mcpServers": { "sonarcloud-mcp": { "command": "node", "args": [ "/path/to/sonarcloud_mcp/dist/index.js" ], "env": { "SONARCLOUD_TOKEN": "<your token here>", "SONARCLOUD_ORGANISATION": "<your organisation here>", "SONARCLOUD_PROJECT_KEY": "<your project key here>" } } } }fetch_sonarcloud_issues: Fetches SonarCloud issues for a specific pull request.