sonar-mcp-server
1
Sonar MVP Server is an MCP server implementation for integrating with the SonarQube Cloud API using Golang. It supports local usage and Google Cloud Run deployment and is maintained by M.-Leander Reimer.
Sonar MVP Server
An MCP server implementation for the SonarQube Cloud API in Golang.
Build and Release
# to quickly build the latest snapshot
goreleaser build --snapshot --clean
goreleaser release --skip=publish --snapshot --clean
Usage Instructions
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
Deployment
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:343509396461-compute@developer.gserviceaccount.com \
--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
Maintainer
M.-Leander Reimer (@lreimer),
License
This software is provided under the MIT open source license, read the LICENSE
file for details.