Skip to main content
Glama
Cerios-TechLab

Quality Transformation Coach Assistent MCP server

Quality Transformation Coach MCP Server

Een MCP-server die als assistent dient voor software quality transformation — bedoeld voor zowel de quality transformation coach (overzicht, advisering, maturity assessments) als het development/test team (hands-on kwaliteitsanalyse, testondersteuning, CI/CD-inzichten).

Functionaliteiten

De server biedt 15 tools verdeeld over 4 categorieën:

Code Analyse

Tool

Beschrijving

analyze_code_quality

Scan een repo voor code kwaliteits-metrieken (complexity, duplication, smells)

analyze_test_coverage

Analyseer test coverage en identificeer gaps

detect_test_patterns

Herken test patterns (unit/integration/e2e) en anti-patterns

analyze_flaky_tests

Detecteer flaky tests op basis van CI-logs

Issue & Defect Analyse

Tool

Beschrijving

defect_trend_analysis

Analyseer issue-trends (aanwas, resolutietijd, severity)

quality_hotspot_detection

Identificeer modules met hoogste defect-dichtheid

root_cause_categories

Categoriseer bugs per oorzaak (code, design, requirements, security)

CI/CD

Tool

Beschrijving

pipeline_health

Analyseer CI/CD pipeline gezondheid (success rate, doorlooptijd)

test_result_summary

Agregeer test results vanuit CI runs

cicd_readiness_scan

Voer een CI/CD Readiness Scan uit (103 vragen, 5 domeinen)

quality_gate_check

Controleer of kwaliteits gates behaald zijn

Kennis & Maturity

Tool

Beschrijving

maturity_assessment

Voer een TMMi/ISO 25010 maturity scan uit

quality_recommendations

Geef context-gevoelige verbeteradviezen

framework_lookup

Raadpleeg kennisbank voor kwaliteitsmodellen

generate_quality_report

Genereer een compleet kwaliteitsrapport in Markdown

Related MCP server: Java Testing Agent

Installatie

Vereisten

  • Python 3.11+

  • GitHub Personal Access Token (voor issue/PR data)

Lokale installatie

git clone git@github.com:Cerios-TechLab/quality-transformation-coach-assistent.git
cd quality-transformation-coach-assistent
python3.11 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Configuratie

Kopieer config.example.yaml naar config.yaml en pas aan:

github:
  token_env: GITHUB_TOKEN
  default_org: "Cerios-TechLab"

cicd:
  provider: github_actions

coverage:
  source: local
  format: cobertura

projects:
  - name: "cerios-clinic"
    repo: "/srv/cerios-clinic"
    github: "Steavy/cerios-clinic"

OpenCode integratie

Voeg toe aan ~/.config/opencode/opencode.json onder mcp:

"quality-coach": {
  "type": "local",
  "command": [
    "/opt/quality-coach-mcp/.venv/bin/python",
    "-m",
    "quality_coach_mcp.server"
  ],
  "cwd": "/opt/quality-coach-mcp",
  "enabled": true
}

Herstart OpenCode na wijzigingen:

systemctl restart opencode-serve-4096

Gebruik

Via OpenCode chat

De tools zijn beschikbaar als MCP-tools in elke OpenCode-sessie. Voorbeelden:

  • "Wat is de test coverage van /srv/cerios-clinic?"

  • "Geef een maturity assessment voor project X met scores {'test_planning': 3, 'test_design': 2}"

  • "Genereer een quality report voor gateway met een periode van 30 dagen"

  • "Wat zegt ISO 25010 over Maintainability?"

  • "Check de quality gate pull_request voor Steavy/cerios-clinic"

Directe Python API

from quality_coach_mcp.tools.code_analysis import CodeAnalysisTools
from quality_coach_mcp.config import load_config

config = load_config()
tools = CodeAnalysisTools(config)

import asyncio
result = asyncio.run(tools.analyze_code_quality("/srv/cerios-clinic"))
print(result)

Kennisbank

De server bevat een embedded kennisbank met:

  • ISO 25010 — 8 kwaliteitskenmerken met sub-characteristics

  • TMMi — 5 maturity levels met assessment areas

  • Test Patterns — Herkenbare patronen en anti-patterns

  • Quality Gates — Standaard criteria voor PR, release, sprint

  • Recommendations — Context-gevoelige verbeteradviezen

Kennisbank-bestanden staan in src/quality_coach_mcp/knowledge/ als YAML.

Development

Tests draaien

pip install -e ".[dev]"
pytest tests/ -v

Projectstructuur

src/quality_coach_mcp/
├── server.py              # FastMCP server entry point (15 tools)
├── config.py              # Config loading
├── models/types.py        # Pydantic data models
├── tools/
│   ├── code_analysis.py   # Code kwaliteitsanalyse
│   ├── issue_analysis.py  # Issue & defect analyse
│   ├── cicd_tools.py      # CI/CD pipeline tools
│   └── knowledge_tools.py # Kennis & maturity tools
├── adapters/
│   ├── github_adapter.py  # GitHub API wrapper
│   └── cicd_adapter.py    # CI/CD resultaten parser
└── knowledge/
    ├── iso25010.yaml
    ├── tmmi.yaml
    ├── test_patterns.yaml
    ├── quality_gates.yaml
    └── recommendations.yaml

Licentie

Onderdeel van Cerios TechLab.

Available Tools

15 tools
analyze_code_qualityAnalyze Code QualityB

Scan a repository for code quality metrics (complexity, duplication, smells).

ParametersJSON Schema
NameRequiredDescriptionDefault
branchNoGit branch to analyze (default: main)main
repo_pathYesLocal filesystem path to the repository

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must carry behavioral disclosure. 'Scan' hints at a read-only operation, but the description does not state that the tool does not modify the repository, how it treats branches, or any operational constraints. This is a meaningful gap for a tool with no annotation safety profile.

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?

A single front-loaded sentence that immediately states the action and scope, with no filler, tautology, or redundant restatement of the title.

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?

The schema and output schema cover parameters and return shape, and the tool is simple enough that a basic call can be made. However, the lack of usage routing and behavioral disclosure among a large sibling group leaves the overall context incomplete.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (repo_path, branch) are already documented with clear descriptions and a default. The tool description adds no parameter-level meaning, so the baseline of 3 applies.

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 uses a specific verb ('Scan a repository') and names concrete metrics (complexity, duplication, smells), making the tool's purpose clear. However, it does not explicitly differentiate from closely related siblings like quality_hotspot_detection or quality_recommendations, so it falls short of full sibling distinction.

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?

Usage is implied: an agent would call this when it needs repository-level code quality metrics. There is no explicit 'use when' guidance, no exclusions, and no routing to siblings such as quality_hotspot_detection for more targeted analysis.

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

analyze_flaky_testsAnalyze Flaky TestsC

Detect flaky tests from CI run data.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idsNoOptional list of workflow run IDs to analyze
github_refYesGitHub 'owner/repo' reference

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that flaky tests are detected from CI run data, without mentioning how detection works, whether GitHub API access is needed, what input requirements exist beyond the schema, or any limitations.

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 sentence with no filler or redundant phrasing. It is concise and immediately states the core action, though it is minimal enough that some behavioral and usage context is missing.

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?

The tool has only two parameters, one required, and an output schema exists, so the core invocation contract is fairly complete. However, the description is thin on selection guidance and behavior, which is notable given the large set of closely related sibling tools.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the schema already explains github_ref and run_ids. The description adds only a weak connection to 'CI run data' and does not enrich parameter meaning further.

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 identifies the specific verb 'Detect' and resource 'flaky tests' from 'CI run data', which distinguishes it from related sibling tools that address coverage, quality, or test patterns. It is not merely restating the title, though it stays close to the tool's name.

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 when-to-use or when-not-to-use guidance is provided. The description implies use for flaky-test detection but does not differentiate this from related siblings like detect_test_patterns or test_result_summary, leaving the selection decision to inference.

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

analyze_test_coverageAnalyze Test CoverageB

Analyze test coverage by comparing test files against source files.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesLocal filesystem path to the repository

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/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 on its own. It only mentions the comparison approach, not whether the operation is read-only, if it requires a valid git repo, what happens when files are missing, or whether analysis is computationally intensive. This is a meaningful gap for an analysis tool.

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?

A single sentence with no filler. The core action and method are front-loaded, and every word contributes meaning. Ideal for an agent to parse quickly.

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?

The presence of an output schema covers return values, and the single parameter is well documented. However, the lack of usage guidance, behavioral transparency, or prerequisites makes the definition only minimally complete for an agent deciding whether and how to invoke it.

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

Parameters3/5

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

Schema coverage is 100%; the repo_path parameter is already described clearly as the local filesystem path to the repository. The tool description adds the notion of comparing test files against source files within that path, which is helpful but largely implied. This aligns with the baseline of 3 for high schema coverage.

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 states a specific verb ('Analyze') and resource ('test coverage') and clarifies the method ('by comparing test files against source files'). This clearly distinguishes it from sibling tools like detect_test_patterns or analyze_flaky_tests, which address different concerns.

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 is given on when to choose this tool over alternatives such as test_result_summary or quality_hotspot_detection. The context is only implied by the name and title; the agent receives no explicit selection criteria or exclusions.

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

cicd_readiness_scanCicd Readiness ScanC

Run a CI/CD Readiness Scan assessment with 103 questions across 5 domains.

ParametersJSON Schema
NameRequiredDescriptionDefault
answersNoOptional dict mapping question text to 'ja'/'nee'. If None, returns the full question set for manual assessment.
projectYesProject name

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it discloses only scope counts. It does not explain the two-phase usage model (omitting answers to get the question set vs. submitting answers), whether the scan is read-only, or what non-obvious side effects occur.

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?

A single front-loaded sentence with no wasted words. It is efficient and appropriately brief, though the brevity comes at the cost of leaving usage and behavioral detail unaddressed.

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?

An output schema exists, so return values need not be explained, and 100% schema coverage handles parameters. However, with no annotations and no usage or side-effect guidance, the definition is only minimally adequate for an agent deciding when and how to invoke it.

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

Parameters3/5

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

Schema description coverage is 100%, so the 'answers' and 'project' semantics are already documented in the schema, and this is the baseline case. The description echoes the domain/question scope but adds nothing about parameter format or accepted values beyond the schema (e.g., 'ja'/'nee' mapping is schema-only).

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?

States a specific verb and resource ('Run a CI/CD Readiness Scan assessment') and adds scope detail (103 questions, 5 domains). This clearly identifies the tool as an assessment/scan, but it does not differentiate itself from siblings like maturity_assessment or quality_gate_check that also read as assessments.

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 when-to-use guidance, no prerequisites, and does not name or contrast any alternative among the many assessment siblings. An agent cannot infer from the text alone when this scan is preferable to maturity_assessment.

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

defect_trend_analysisDefect Trend AnalysisB

Analyze issue trends (volume, resolution time, severity) for a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to look back (default: 90)
github_refYesGitHub 'owner/repo' reference

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states that the tool analyzes trends, but does not disclose whether it is read-only, whether it requires special permissions, how it aggregates historical data, or what computational behavior to expect. The description is minimal and not informative about side effects or operational traits.

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?

The description is a single, efficient sentence with no filler. The core verb and object are front-loaded, and the parenthetical adds useful specificity without bloat.

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?

Given the low complexity, full schema coverage, and presence of an output schema, the description does not need to detail return values. However, it lacks usage guidance and behavioral disclosure, and the short description leaves the tool's exact scope and limitations under-specified. It is adequate but has clear gaps.

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

Parameters3/5

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

Schema coverage is 100% for both parameters, so the schema already documents github_ref and days. The description mentions 'volume, resolution time, severity' but does not map these to schema parameters or add extra meaning beyond the schema. Baseline 3 is appropriate since the schema does the heavy lifting.

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 a specific action ('Analyze') and resource ('issue trends') for a repository, and lists concrete dimensions: volume, resolution time, severity. It does not explicitly distinguish itself from siblings like root_cause_categories or analyze_code_quality, but the term 'trends' implies temporal analysis, which differentiates it sufficiently.

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 is given about when to use this tool versus the many sibling tools. There is no mention of prerequisites, exclusions, or selection criteria. An agent would have to infer that defect_trend_analysis is appropriate for time-series defect metrics.

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

detect_test_patternsDetect Test PatternsC

Detect test patterns and anti-patterns in a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesLocal filesystem path to the repository

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral disclosure. It only restates a detecting action and does not say whether the repository is modified, how the scan is scoped, or what kind of output is produced. This leaves safety and side-effect assumptions entirely implicit.

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 one short sentence and places the core action first. It is concise without filler, though it is minimal enough that it does not add much beyond the title.

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?

The tool is simple: one documented parameter and an output schema, so the description need not explain return values. However, given many sibling analysis tools, the lack of any qualifier about which patterns or anti-patterns are detected or when this tool is relevant leaves the description only minimally complete.

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

Parameters3/5

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

Schema description coverage is 100%, and the single repo_path parameter is already documented in the schema. The description adds no extra parameter context, but the baseline of 3 is appropriate since the schema carries the meaning.

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 identifies a clear action ('Detect') and resource ('test patterns and anti-patterns' in a repository), so an agent knows what the tool operates on. It does not explicitly contrast with siblings like analyze_test_coverage or analyze_flaky_tests, so it stops short of a fully differentiating definition.

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?

There is no statement about when to prefer this tool over sibling analyzers, nor any exclusions or prerequisites. The context is only implied by the tool's name and generic phrase 'in a repository'.

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

framework_lookupFramework LookupA

Look up information about a quality framework (ISO 25010, TMMi).

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoOptional specific topic within the framework
frameworkYesFramework name ('iso25010' or 'tmmi')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the burden of conveying behavior; 'look up' signals a read-only operation, which is helpful. It does not mention error handling, what happens when an unsupported framework is passed, or whether topic is required or optional beyond the schema.

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?

A single, front-loaded sentence with no filler. Every word contributes to identifying the resource and scope.

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?

For a simple lookup tool with an output schema and fully described parameters, the description is mostly sufficient. The main gaps are the lack of usage guidance and behavioral caveats, but the schema and output schema compensate for parameter and return-value details.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the description only restates the framework examples already present in the schema. It adds no new meaning about the topic parameter or accepted value formats.

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 names a specific action ('look up') and resource ('quality framework') with concrete examples (ISO 25010, TMMi), making the tool's intent clear. It does not explicitly contrast itself with sibling tools, so it stops short of full differentiation.

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?

Use is implied: an agent would choose this when asked for information about ISO 25010 or TMMi. However, there is no explicit guidance about when not to use it or how it relates to similar sibling tools like maturity_assessment or quality_recommendations.

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

generate_quality_reportGenerate Quality ReportC

Generate a comprehensive Markdown quality report.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoReporting period (e.g., 'last-30-days', 'Q3-2026')last-30-days
projectYesProject name
coverage_pctNoOptional test coverage percentage
maturity_scoresNoOptional maturity scores by area
cicd_success_rateNoOptional CI/CD pipeline success rate

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states that the output is a Markdown report; it does not say whether the tool reads external data, whether it has side effects, what inputs drive the report, or what the report contains beyond 'quality'.

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, focused sentence with no filler or repetition. It is concise and front-loaded, though the brevity comes at the cost of missing important usage and behavioral details.

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?

Despite having full schema coverage and an output schema, the description is too thin to fully orient an agent among many similar analysis tools. It does not clarify what distinguishes a 'quality report' from the outputs of sibling tools, what data is required, or what reporting period semantics are expected.

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

Parameters3/5

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

The input schema already documents all five parameters with descriptions and defaults, so schema coverage is 100%. The tool description adds no parameter-specific meaning, which is acceptable but does not go beyond the structured information.

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 states a clear verb and resource: it generates a Markdown quality report. However, it does not differentiate this from sibling tools like maturity_assessment or quality_recommendations, so an agent may struggle to know which tool is the right one for a given task.

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?

There is no guidance about when to use this tool versus any of the 13 siblings. The description does not mention prerequisites, typical scenarios, or exclusions, leaving the agent to infer the tool's purpose from the name and schema alone.

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

maturity_assessmentMaturity AssessmentC

Run a TMMi maturity assessment for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
scoresNoOptional dict mapping assessment areas to scores (1-5)
projectYesProject name

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says an assessment is run; it does not state whether the operation is read-only, whether it consumes the optional 'scores' input, what data it accesses, or whether it produces side effects. The presence of an output schema covers the return shape but not broader behavior.

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, front-loaded sentence with no wasted words. It is concise and easy to parse, though it is terse to the point of omitting useful context.

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?

Given the low parameter count, 100% schema coverage, and existing output schema, the description is minimally adequate for invoking the tool. However, it lacks any explanation of TMMi context, how the optional scores are used, or when this assessment is appropriate, so it is not fully complete for an AI agent without external domain knowledge.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 'project' and 'scores'. The description adds no additional parameter meaning; 'TMMi maturity assessment' only weakly implies why 'scores' might be provided. Baseline 3 is appropriate because the schema does the heavy lifting.

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 states a specific action ('Run a TMMi maturity assessment') and a resource ('a project'), making the tool's core function clear. It also distinguishes this tool from sibling analysis tools focused on coverage, defects, and code quality, though it does not explicitly name any alternatives.

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?

There is no guidance on when to use this tool versus alternatives such as analyze_code_quality or generate_quality_report. The description does not provide context, prerequisites, or exclusions, leaving the agent to infer appropriate usage solely from the tool name.

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

pipeline_healthPipeline HealthA

Analyze CI/CD pipeline health (success rate, duration trends).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to look back (default: 30)
github_refYesGitHub 'owner/repo' reference

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It only says 'Analyze' and lists two metrics; it does not disclose whether this is a read-only aggregation, what data source is queried, whether authorization is needed, or how results are structured. The output schema exists but the description itself adds little behavioral context.

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?

A single sentence with no filler: the primary action and analytical focus are front-loaded in a compact parenthetical. Every word earns its place.

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?

The schema covers both parameters and an output schema exists, so the basic call shape is complete. However, the lack of usage guidance and behavioral disclosure leaves the description only minimally viable for an agent deciding when and how to invoke it.

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

Parameters3/5

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

Schema description coverage is 100%, so both github_ref and days are already documented structurally. The description does not add extra parameter semantics beyond the tool's focus, which is acceptable per baseline 3.

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 uses a specific verb and resource: 'Analyze CI/CD pipeline health' with the parenthetical scope 'success rate, duration trends'. This clearly distinguishes it from sibling tools like analyze_test_coverage and analyze_code_quality, which focus on other aspects of quality.

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 parenthetical implies the tool is for pipeline success-rate and duration analysis, but there is no explicit statement about when to prefer it over alternatives or when not to use it. Usage context is implied rather than stated.

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

quality_gate_checkQuality Gate CheckC

Check if quality gates are met for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
gate_idNoQuality gate to check (default: 'pull_request')pull_request
metricsNoOptional dict of metric values to check against gate criteria
github_refYesGitHub 'owner/repo' reference

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It only says 'Check if quality gates are met' and does not state whether the operation is read-only, whether it triggers pipeline checks, how metrics are used in the evaluation, or what side effects might occur.

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 sentence with no wasted words and front-loads the action. However, it borders on restating the tool name and sacrifices useful context for brevity, so it is conciseness without substantial added value.

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 no annotations and several closely related siblings, one vague sentence is not enough. The description does not explain how metrics interact with gate criteria, when the default pull_request gate applies, or how this check differs from code quality analysis. The output schema may cover return shape but not usage context.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter already has a meaningful description and default value, so the baseline is 3. The prose description adds no additional semantic detail about gate_id, metrics, or github_ref beyond what the schema already provides.

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 uses a verb ('Check') and a resource ('quality gates') to state the tool's core function. However, it does not distinguish this from closely related siblings like analyze_code_quality or quality_recommendations, and 'quality gates' is left somewhat abstract.

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?

There is no guidance about when to use this tool versus analyze_code_quality, quality_hotspot_detection, or other siblings. The intended usage must be inferred from the tool name and schema; no explicit when-to-use or when-not-to-use context is provided.

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

quality_hotspot_detectionQuality Hotspot DetectionB

Identify files with the highest defect density (hotspots).

ParametersJSON Schema
NameRequiredDescriptionDefault
github_refYesGitHub 'owner/repo' reference

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only restates the core purpose and does not communicate any behavioral traits such as read-only status, computational approach, prerequisites, or limitations. An agent has no sense of what side effects or guarantees to expect.

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?

The description is a single, focused sentence with no superfluous content. It is front-loaded with the core action and resource, making it easy for an agent to parse quickly.

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

Completeness4/5

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

The tool is simple: one required, fully documented parameter and an output schema is present, so return-value details need not be in the description. The main gap is the lack of usage guidance, but the invocation surface itself is adequately covered for a straightforward analysis tool.

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

Parameters3/5

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

The input schema already provides 100% coverage for the single parameter github_ref, so the description does not need to add parameter details. It adds no extra semantic meaning beyond the schema, which aligns with the baseline score of 3.

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 uses a specific verb ('Identify') and a clear resource ('files with the highest defect density'), immediately conveying the tool's unique purpose. It distinguishes itself from siblings like analyze_code_quality or defect_trend_analysis by focusing specifically on defect-dense hotspot files.

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 is given about when to use this tool versus alternatives such as analyze_code_quality or defect_trend_analysis. The description provides no context, exclusions, or decision criteria for an agent to select this tool over its siblings.

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

quality_recommendationsQuality RecommendationsC

Generate prioritised quality improvement recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoOptional additional context (team size, domain, etc.)
maturity_scoresYesDict mapping maturity areas to scores (1-5)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Generate' and does not mention whether the tool has side effects, whether it depends on certain inputs, how prioritisation works, or what kind of output the agent should expect.

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, front-loaded sentence with no wasted words. It could be slightly more informative while remaining concise, but it is appropriate in size for the amount of purpose it conveys.

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 presence of an output schema and well-documented parameters, the description does not need to explain return values. However, it lacks usage context, alternative routing, and behavioral details, which leaves an agent uncertain about when to choose this tool over closely related siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are adequately documented in the schema itself. The description adds no parameter-specific meaning beyond the schema, but the baseline of 3 is appropriate because the schema already covers the parameter semantics.

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 uses a specific verb ('Generate') and a clear object ('prioritised quality improvement recommendations'), which conveys the core purpose. However, it does not explicitly differentiate from the sibling generate_quality_report, since both could be interpreted as producing quality-related outputs.

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?

There is no guidance about when to use this tool versus alternatives like generate_quality_report or maturity_assessment. The intended context, such as 'use after a maturity assessment to get next steps', is only implied by the tool name and parameters.

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

root_cause_categoriesRoot Cause CategoriesB

Categorise closed bugs by root cause (code, design, requirements, security).

ParametersJSON Schema
NameRequiredDescriptionDefault
github_refYesGitHub 'owner/repo' reference

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The word 'Categorise' is ambiguous: it could mean classifying bugs into buckets in a report, or potentially writing categories back to bug records. The description does not clarify whether the operation is read-only, whether it modifies data, or what permissions are required.

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?

The description is a single sentence with no filler. It front-loads the action and resource, and the parenthetical categories add useful specificity without bloat.

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

Completeness4/5

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

For a low-complexity tool with one well-documented parameter and an output schema, the description is largely sufficient for invocation. The main gaps are usage guidance and explicit read-only behavior, but these are partially covered by the tool's analytical nature and the presence of an output schema.

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

Parameters3/5

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

Schema description coverage is 100%: the single `github_ref` parameter is already documented as a GitHub 'owner/repo' reference. The tool description adds no additional parameter meaning, which is acceptable given the schema already fully covers it.

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 names a specific verb ('Categorise'), a specific resource ('closed bugs'), and the exact dimensions ('code, design, requirements, security'). This is clear and distinguishes it from the sibling analysis tools in topic, though it does not explicitly contrast with any sibling.

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?

Usage is implied: an agent can infer this tool is for root-cause categorization of closed bugs. However, the description does not state when to prefer it over related tools like defect_trend_analysis or quality_hotspot_detection, nor does it provide any exclusions or alternatives.

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

test_result_summaryTest Result SummaryA

Get test results summary for a specific CI workflow run.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesGitHub Actions workflow run ID
github_refYesGitHub 'owner/repo' reference

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral disclosure burden. The verb 'Get' indicates a read-only retrieval and avoids implying side effects, but it adds no detail about what the summary includes, how results are aggregated, or any operational caveats.

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?

The description is one concise, front-loaded sentence with no redundant wording. Every word earns its place, and the core action and scope are immediately legible.

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?

For a simple two-parameter getter with a full input schema and an output schema, the basic contract is clear. However, without any usage-direction or behavioral caveats, the description is not fully complete for an agent selecting among a large set of sibling tools.

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

Parameters3/5

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

The input schema already provides 100% parameter coverage with clear descriptions for run_id and github_ref. The description only restates the context 'specific CI workflow run' and contributes no additional parameter meaning beyond the schema.

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 states a specific verb ('Get'), a precise resource ('test results summary'), and a clear scope ('specific CI workflow run'). This clearly separates it from sibling tools that are analysis-oriented, such as analyze_test_coverage or detect_test_patterns.

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 phrase 'for a specific CI workflow run' implies the intended use case and matches the required parameters. However, it does not explicitly mention when to prefer this tool over the many analysis-focused siblings, nor does it state any exclusions or alternative tool recommendations.

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. 1 tool updatev1.0.0
    • Addedcicd_readiness_scan
  2. 14 tool updatesv0.1.0
    • First observedanalyze_code_quality
    • First observedanalyze_flaky_tests
    • First observedanalyze_test_coverage
    • First observeddefect_trend_analysis
    • First observeddetect_test_patterns
    • First observedframework_lookup
    • First observedgenerate_quality_report
    • First observedmaturity_assessment
    • First observedpipeline_health
    • First observedquality_gate_check
    • First observedquality_hotspot_detection
    • First observedquality_recommendations
    • First observedroot_cause_categories
    • First observedtest_result_summary

TDQS

B3.3/5.0

Scored across 15 tools

Disambiguation4/5

Tools are mostly distinct: code quality vs test coverage vs flaky tests vs pipeline health target different concerns. Some overlap exists between defect_trend_analysis/quality_hotspot_detection (both defect analysis) and test_result_summary/analyze_test_coverage, but descriptions differentiate them adequately.

Naming Consistency3/5

Mixed conventions: some use verb_noun (analyze_code_quality, detect_test_patterns, generate_quality_report), while others use noun_noun (defect_trend_analysis, pipeline_health, maturity_assessment) or verb_noun-less forms (root_cause_categories, framework_lookup). Readable but not a predictable pattern.

Tool Count4/5

15 tools is within a reasonable range for a quality assessment server covering code, tests, defects, CI/CD, and reporting. Slightly on the heavy side but each tool maps to a distinct quality analysis area.

Completeness4/5

Covers a broad quality lifecycle: assessments (CI/CD readiness, TMMi), code/test/defect analysis, pipeline health, recommendations, and reporting. Minor gaps might include project setup or configuration tools, but core workflows appear complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers