An MCP server implementation for the SonarQube Cloud API in Golang.
# to quickly build the latest snapshot
goreleaser build --snapshot --clean
goreleaser release --skip=publish --snapshot --clean
If you want to use the tool locally, e.g. with Claude Desktop, use the following configuration for the MCP server.
{
"mcpServers": {
"sonar": {
"command": "/Users/mario-leander.reimer/Applications/sonar-mcp-server",
"args": ["-t", "stdio"],
"env": {
"SONAR_TOKEN": "<<INSERT TOKEN HERE>>"
}
}
}
}
Alternatively, you can use the MCP introspector for easy local development:
# as stdio binary
npx @modelcontextprotocol/inspector go run main.go
# as SSE server using
go run main.go --transport sse
npx @modelcontextprotocol/inspector npx mcp-remote@next http://localhost:8080/sse
npx @modelcontextprotocol/inspector
Currently using manual Google Cloud Run deployment. Can either be deployed directly from source or using the Docker image built on Github.
# create a new secret for the SONAR_TOKEN
gcloud services enable secretmanager.googleapis.com
print $SONAR_TOKEN | gcloud secrets create sonar-token --data-file=-
# next deploy the local build from source to Cloud Run
gcloud services enable run.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com
gcloud secrets add-iam-policy-binding sonar-token \
--member=serviceAccount:[email protected] \
--role=roles/secretmanager.secretAccessor
gcloud run deploy sonar-mcp-server --source=. \
--region=europe-north1 \
--port=8080 --allow-unauthenticated \
--set-secrets=SONAR_TOKEN=sonar-token:latest \
--set-env-vars=BASE_URL=https://sonar-mcp-server-343509396461.europe-north1.run.app
gcloud run services delete sonar-mcp-server --async --region=europe-north1
M.-Leander Reimer (@lreimer), [email protected]
This software is provided under the MIT open source license, read the LICENSE
file for details.