Skip to main content
Glama

sonarqube-api-mcp

Docker-free SonarQube MCP server for read-only access to the SonarQube Web API.

Run it with:

npx sonarqube-api-mcp

Requirements

  • Node.js 20+

  • SonarQube token with permission to browse the target project

  • No Docker

This package uses the public SonarQube Web API only. It does not use private SonarQube UI GraphQL endpoints.

It is designed for coding-agent workflows like:

  • "fix all new code issues"

  • "fix all overall code issues"

  • "fix issues for this SonarQube project name"

The server stays read-only: it fetches SonarQube issues, source context, rule details, and quality data so the calling agent can edit the checked-out repository.

Related MCP server: sonarqube-mcp

Configuration

Configure the server entirely through environment variables in mcp.json.

Variable

Required

Description

SONAR_HOST_URL

Yes

SonarQube base URL. Trailing slashes are normalized.

SONAR_TOKEN

Yes

SonarQube token. Sent as Basic Auth using Authorization: Basic base64("${SONAR_TOKEN}:").

SONAR_PROJECT_KEY

No

Default project key used by project-scoped tools when projectKey and projectName are omitted.

Startup fails clearly when SONAR_HOST_URL or SONAR_TOKEN is missing.

Published package usage

{
  "mcpServers": {
    "sonarqube": {
      "command": "npx",
      "args": ["-y", "sonarqube-api-mcp"],
      "env": {
        "SONAR_HOST_URL": "https://sonarqube.yourcompany.com",
        "SONAR_TOKEN": "YOUR_SONAR_TOKEN",
        "SONAR_PROJECT_KEY": "hvmb-app"
      }
    }
  }
}

Local package development

Build first:

npm install
npm run build

Then point your MCP client at the compiled entrypoint:

{
  "mcpServers": {
    "sonarqube-local": {
      "command": "node",
      "args": ["/absolute/path/to/sonarqube-api-mcp/dist/index.js"],
      "env": {
        "SONAR_HOST_URL": "https://sonarqube.yourcompany.com",
        "SONAR_TOKEN": "YOUR_SONAR_TOKEN",
        "SONAR_PROJECT_KEY": "hvmb-app"
      }
    }
  }
}

Default project key

Set SONAR_PROJECT_KEY once and omit projectKey from project-scoped tool calls.

{
  "mcpServers": {
    "sonarqube": {
      "command": "npx",
      "args": ["-y", "sonarqube-api-mcp"],
      "env": {
        "SONAR_HOST_URL": "https://sonarqube.yourcompany.com",
        "SONAR_TOKEN": "YOUR_SONAR_TOKEN",
        "SONAR_PROJECT_KEY": "hvmb-app"
      }
    }
  }
}

Example tool input:

{
  "resolved": false,
  "severities": ["BLOCKER", "CRITICAL"]
}

Per-tool project override

Every project-scoped tool accepts projectKey or projectName, which override SONAR_PROJECT_KEY for that call.

{
  "projectKey": "another-project",
  "branch": "main",
  "metricKeys": ["coverage", "bugs", "vulnerabilities"]
}

If your infrastructure creates a SonarQube project per branch, pass the SonarQube project name directly:

{
  "projectName": "repo-name-feature-branch",
  "scope": "new_code"
}

If a name matches multiple projects, the tool returns candidates and asks the caller to retry with projectKey.

Tools

search_sonar_projects

Searches /api/projects/search to find project keys by SonarQube project name or key.

Inputs:

  • query optional string

  • pageSize optional number, defaults to 100

get_sonar_fix_plan

Gets unresolved issues grouped by file for agentic fixing workflows.

Use this for prompts like "fix all new code issues" or "fix all overall code issues".

Inputs:

  • projectKey optional, falls back to SONAR_PROJECT_KEY

  • projectName optional, resolved through /api/projects/search

  • scope optional, new_code or overall, defaults to new_code

  • branch optional

  • pullRequest optional

  • severities optional string array

  • statuses optional string array

  • types optional string array

  • impactSeverities optional string array for newer SonarQube versions

  • impactSoftwareQualities optional string array for newer SonarQube versions

  • pageSize optional number, defaults to 100

  • maxIssues optional number, defaults to 200

  • includeSource optional boolean, defaults to true

  • includeRules optional boolean, defaults to false

  • contextLines optional number, defaults to 5

Example for new code:

{
  "projectName": "hvmb-app-feature-branch",
  "scope": "new_code",
  "includeSource": true,
  "includeRules": true
}

Example for overall code:

{
  "projectKey": "hvmb-app",
  "scope": "overall",
  "maxIssues": 500
}

Returns clean JSON with:

  • resolved project identity

  • issue count and truncation flag

  • optional rule details keyed by rule key

  • files sorted by issue count

  • issues per file

  • merged source ranges around affected lines

get_sonar_issue_context

Gets one issue plus surrounding source lines and optional rule details.

Inputs:

  • issueKey required

  • branch optional

  • pullRequest optional

  • contextLines optional number, defaults to 5

  • includeRule optional boolean, defaults to true

search_sonar_issues

Searches /api/issues/search and handles pagination.

Inputs:

  • projectKey optional, falls back to SONAR_PROJECT_KEY

  • projectName optional, resolved through /api/projects/search

  • branch optional

  • pullRequest optional

  • severities optional string array

  • statuses optional string array

  • types optional string array

  • impactSeverities optional string array for newer SonarQube versions

  • impactSoftwareQualities optional string array for newer SonarQube versions

  • inNewCodePeriod optional boolean

  • resolved optional boolean, defaults to false

  • pageSize optional number, defaults to 100

Returns clean JSON with issue key, rule, severity, type, message, component, filePath, line, textRange, effort, status, and tags.

get_quality_gate_status

Calls /api/qualitygates/project_status.

Inputs:

  • projectKey optional, falls back to SONAR_PROJECT_KEY

  • projectName optional, resolved through /api/projects/search

  • branch optional

  • pullRequest optional

get_rule_details

Calls /api/rules/show.

Inputs:

  • ruleKey required

get_component_measures

Calls /api/measures/component.

Inputs:

  • projectKey optional, falls back to SONAR_PROJECT_KEY

  • projectName optional, resolved through /api/projects/search

  • metricKeys required string array

  • branch optional

  • pullRequest optional

get_sonar_sources

Calls /api/sources/lines.

Inputs:

  • component required

  • from optional number

  • to optional number

  • branch optional

  • pullRequest optional

Errors

SonarQube API errors are wrapped as JSON strings containing:

  • endpoint

  • status

  • message

HTML error pages are never returned directly.

Development

npm install
npm run build

prepublishOnly runs the build before publishing.

Available Tools

8 tools
get_component_measuresGet component measuresC

Get read-only SonarQube component measures for metric keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyNo
projectNameNo
branchNo
pullRequestNo
metricKeysYes

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior but only states 'read-only'. It omits details about authentication, rate limits, or side effects, which is insufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While the description is only one sentence, it is overly sparse and fails to include critical information, sacrificing completeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description is grossly incomplete. It lacks any context on parameter usage, return values, or operational constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the description does not explain any parameters (e.g., projectKey, metricKeys). This leaves the agent without necessary guidance on how to fill in the fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets SonarQube component measures for metric keys, using a specific verb and resource that distinguishes it from sibling tools like get_quality_gate_status or search_sonar_issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as search_sonar_projects or get_rule_details, leaving the agent to infer context without explicit direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quality_gate_statusGet quality gate statusC

Get read-only SonarQube quality gate status for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyNo
projectNameNo
branchNo
pullRequestNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits but only mentions 'read-only'. Missing effects of invalid inputs, rate limits, or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise and front-loaded, but given the lack of parameter guidance it feels under-specified rather than efficiently concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 optional parameters and no output schema, the description fails to explain how to construct a query or interpret results, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no information about any of the 4 parameters, leaving their meaning and usage entirely ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool retrieves read-only SonarQube quality gate status for a project. Uses specific verb and resource, differentiating it from sibling tools that focus on measures, rules, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies read-only usage but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites such as required project key.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rule_detailsGet rule detailsC

Get read-only SonarQube rule details.

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleKeyYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. Only states 'read-only' which is already implied by the verb. Missing details on error handling, rate limits, authentication, or what happens with invalid ruleKey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence is concise but too minimal. It lacks necessary details to be truly helpful. Structure is front-loaded but insufficient for the information content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not explain the return value or differentiate from sibling tools effectively. Given the simplicity (1 param, no output schema), it could be complete with minimal addition but falls short.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description provides no information about the 'ruleKey' parameter. The parameter's purpose (e.g., format or examples) is absent, leaving the agent to infer from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Get', resource 'rule details', and specifies 'read-only' to indicate safe operation. The tool's purpose is distinct from sibling tools like search_sonar_issues or get_component_measures.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for read-only rule details but provides no explicit guidance on when to use this tool versus alternatives like search_sonar_issues or get_component_measures. No when-not-to-use or prerequisite information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sonar_fix_planGet SonarQube fix planA

Return unresolved SonarQube issues grouped by file with optional source context for fixing new-code or overall-code issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyNo
projectNameNo
branchNo
pullRequestNo
scopeNonew_code
severitiesNo
statusesNo
typesNo
impactSeveritiesNo
impactSoftwareQualitiesNo
pageSizeNo
maxIssuesNo
includeSourceNo
includeRulesNo
contextLinesNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states what the tool returns. It does not disclose any behavioral traits like authorization needs, rate limits, or side effects, which is insufficient for a tool with 15 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence conveys the core action and scope, but it is dense and could be split for readability. Still efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description gives only a high-level shape (grouped by file, optional source context). It lacks details on response structure and parameter explanations, leaving many gaps for a tool with 15 parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage and 15 parameters, but the description does not explain any parameter meaning or behavior. Parameters like impactSeverities, impactSoftwareQualities, and contextLines remain ambiguous without schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns unresolved SonarQure issues grouped by file with optional source context for two scopes (new-code or overall-code). This differentiates it from siblings like search_sonar_issues or get_sonar_issue_context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a fix plan aggregated by file is needed, but does not explicitly exclude cases or mention alternatives. It is clear enough given sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sonar_issue_contextGet issue contextB

Get one SonarQube issue with source lines around the affected range.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYes
branchNo
pullRequestNo
contextLinesNo
includeRuleNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only indicates a read operation ('Get'). It omits details like authentication requirements, error handling for invalid keys, or any side effects, which is insufficient for a tool with no other behavioral documentation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, 14-word sentence that efficiently conveys the core function. It is front-loaded with the verb and resource. However, it could be slightly more informative without becoming verbose, e.g., mentioning the optional parameters briefly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, no output schema, and no annotations, the description is incomplete. It does not explain how contextLines affects output, what includeRule does, or how branch/pullRequest filter results. The return format is also unmentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so parameters are undocumented in the schema itself. The description adds minimal value by hinting at context lines ('source lines around the affected range'), but does not explain the roles of branch, pullRequest, or includeRule, leaving them underspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a single SonarQube issue with surrounding source lines, using specific verb 'Get' and resource 'one SonarQube issue'. It effectively distinguishes from sibling tools like search_sonar_issues (multiple issues) or get_sonar_sources (raw source without issue context).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a specific issue with context lines but does not explicitly state when to use this over siblings. No exclusions or alternatives are provided, leaving the agent to infer based on the tool's purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sonar_sourcesGet source linesA

Get read-only SonarQube source lines for a component.

ParametersJSON Schema
NameRequiredDescriptionDefault
componentYes
fromNo
toNo
branchNo
pullRequestNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions 'read-only,' indicating non-destructive behavior. However, with no annotations, it lacks detail on permissions, output format, or edge cases (e.g., empty results).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundant text, front-loaded with the essential action. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, no output schema, and no annotations, the description is too brief. It omits details on return value, optional vs required parameters, and usage constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has zero description coverage (0%), so description must compensate. It fails to explain the meaning of 'component,' 'from,' 'to,' 'branch,' or 'pullRequest,' offering little beyond the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get read-only SonarQube source lines for a component,' specifying verb, resource, and context. It distinguishes from sibling tools by focusing on source lines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage when source lines are needed but provides no explicit guidance on when to use this tool versus alternatives (e.g., searching for source, fetching measures). No exclusions or context are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_sonar_issuesSearch SonarQube issuesC

Search read-only SonarQube issues through /api/issues/search.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyNo
projectNameNo
branchNo
pullRequestNo
severitiesNo
statusesNo
typesNo
impactSeveritiesNo
impactSoftwareQualitiesNo
inNewCodePeriodNo
resolvedNo
pageSizeNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states the tool is 'read-only', which is a key behavioral trait. However, no annotations are provided, so the description carries the full burden. It fails to disclose other behaviors such as pagination behavior (the schema has pageSize with default 100, but not described), error handling, or rate limits. This is insufficient transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but at the expense of necessary detail. It is front-loaded with the action and resource, but the lack of structure and additional information makes it less effective. For 12 parameters, more detail is needed while remaining concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 12 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain the return format, sorting options, or any constraints like required permissions. An agent has insufficient context to use this tool reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the input schema provides no descriptions for any of the 12 parameters. The description also offers no explanation of parameters like projectKey, severities, or logic for filtering. Without any semantic help, an agent cannot correctly invoke this tool with proper parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'search' and resource 'SonarQube issues', and notes it's read-only against a specific API endpoint. This adequately explains the tool's basic function. However, it does not differentiate from sibling tools like 'get_sonar_fix_plan' or 'search_sonar_projects', but the name itself is sufficiently specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't mention cases where another tool like 'get_sonar_issue_context' might be more appropriate. With no usage notes or exclusions, an agent lacks context for correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_sonar_projectsSearch SonarQube projectsB

Find SonarQube project keys by project name or key.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
pageSizeNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist; description lacks behavioral details such as pagination via pageSize, read-only nature, or what happens with empty queries. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no redundant information. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without annotations or output schema, description should cover pagination and result interpretation. It only covers query purpose, leaving pageSize and output undefined.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. Description adds meaning for query (by name or key) but ignores pageSize, which has default and max. Incomplete parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool finds SonarQube project keys by name or key, using specific verb and resource. It distinguishes from sibling tools like search_sonar_issues which targets issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like get_quality_gate_status or get_component_measures. Lacks context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.2.0
    • First observedget_component_measures
    • First observedget_quality_gate_status
    • First observedget_rule_details
    • First observedget_sonar_fix_plan
    • First observedget_sonar_issue_context
    • First observedget_sonar_sources
    • First observedsearch_sonar_issues
    • First observedsearch_sonar_projects

TDQS

B3.2/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct aspect of SonarQube (measures, quality gate, rules, issues, sources, projects) with no overlapping purposes. An agent can clearly differentiate between them.

Naming Consistency3/5

Tools mostly follow a verb_noun pattern, but there is inconsistency in the use of the 'sonar' prefix: some include it (get_sonar_fix_plan) while others do not (get_component_measures). This mixed style reduces clarity.

Tool Count5/5

Eight tools is well-scoped for a SonarQube API server, covering the core read operations without being excessive or insufficient.

Completeness4/5

The tool surface covers essential read-only operations (measures, quality gate, rules, issues, sources, projects). Minor gaps like a dedicated list_rules tool are present, but agents can work around using search_sonar_issues.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    A read-only MCP server that provides AI assistants with structured access to SonarQube projects, issues, metrics, and rules. It enables safe analysis of code quality and security findings through a set of validated, safety-first tools.
    6
    -
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server for SonarQube that enables LLM agents to discover projects, analyze code quality metrics, check Quality Gate status, search issues with filters, and rank projects by worst-performing metrics. It provides read-only, safe access to SonarQube instances with structured outputs and error handling.
    5
    51 PyPI
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    A Python MCP server for SonarQube, enabling AI agents to query projects, issues, quality gates, coverage, and security hotspots.
    13
    MIT