Quality Transformation Coach Assistent MCP server
This MCP server acts as a quality transformation coach assistant, providing tools for code analysis, defect tracking, CI/CD insights, and quality maturity guidance.
Analyze code quality, test coverage, test patterns, and flaky tests
Track defect trends, hotspots, and root cause categories from GitHub issues
Assess CI/CD pipeline health and summarize test results from workflow runs
Check quality gates and perform CI/CD readiness scans
Run TMMi/ISO 25010 maturity assessments
Generate prioritized quality improvement recommendations
Look up quality framework knowledge (ISO 25010, TMMi, test patterns, quality gates)
Produce comprehensive Markdown quality reports
Works via OpenCode MCP chat or a direct Python API
Provides tools for analyzing GitHub repositories, issues, pull requests, and GitHub Actions CI/CD pipelines to assess code quality, test coverage, defect trends, and quality gates.
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 |
| Scan een repo voor code kwaliteits-metrieken (complexity, duplication, smells) |
| Analyseer test coverage en identificeer gaps |
| Herken test patterns (unit/integration/e2e) en anti-patterns |
| Detecteer flaky tests op basis van CI-logs |
Issue & Defect Analyse
Tool | Beschrijving |
| Analyseer issue-trends (aanwas, resolutietijd, severity) |
| Identificeer modules met hoogste defect-dichtheid |
| Categoriseer bugs per oorzaak (code, design, requirements, security) |
CI/CD
Tool | Beschrijving |
| Analyseer CI/CD pipeline gezondheid (success rate, doorlooptijd) |
| Agregeer test results vanuit CI runs |
| Voer een CI/CD Readiness Scan uit (103 vragen, 5 domeinen) |
| Controleer of kwaliteits gates behaald zijn |
Kennis & Maturity
Tool | Beschrijving |
| Voer een TMMi/ISO 25010 maturity scan uit |
| Geef context-gevoelige verbeteradviezen |
| Raadpleeg kennisbank voor kwaliteitsmodellen |
| 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-4096Gebruik
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/ -vProjectstructuur
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.yamlLicentie
Onderdeel van Cerios TechLab.
Available Tools
15 toolsanalyze_code_qualityAnalyze Code QualityB
Scan a repository for code quality metrics (complexity, duplication, smells).
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | Git branch to analyze (default: main) | main |
| repo_path | Yes | Local filesystem path to the repository |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| run_ids | No | Optional list of workflow run IDs to analyze | |
| github_ref | Yes | GitHub 'owner/repo' reference |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo_path | Yes | Local filesystem path to the repository |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | No | Optional dict mapping question text to 'ja'/'nee'. If None, returns the full question set for manual assessment. | |
| project | Yes | Project name |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 90) | |
| github_ref | Yes | GitHub 'owner/repo' reference |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo_path | Yes | Local filesystem path to the repository |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional specific topic within the framework | |
| framework | Yes | Framework name ('iso25010' or 'tmmi') |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Reporting period (e.g., 'last-30-days', 'Q3-2026') | last-30-days |
| project | Yes | Project name | |
| coverage_pct | No | Optional test coverage percentage | |
| maturity_scores | No | Optional maturity scores by area | |
| cicd_success_rate | No | Optional CI/CD pipeline success rate |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scores | No | Optional dict mapping assessment areas to scores (1-5) | |
| project | Yes | Project name |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 30) | |
| github_ref | Yes | GitHub 'owner/repo' reference |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| gate_id | No | Quality gate to check (default: 'pull_request') | pull_request |
| metrics | No | Optional dict of metric values to check against gate criteria | |
| github_ref | Yes | GitHub 'owner/repo' reference |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| github_ref | Yes | GitHub 'owner/repo' reference |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Optional additional context (team size, domain, etc.) | |
| maturity_scores | Yes | Dict mapping maturity areas to scores (1-5) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| github_ref | Yes | GitHub 'owner/repo' reference |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | GitHub Actions workflow run ID | |
| github_ref | Yes | GitHub 'owner/repo' reference |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 tool update
v1.0.0- Added
cicd_readiness_scan
14 tool updates
v0.1.0- First observed
analyze_code_quality - First observed
analyze_flaky_tests - First observed
analyze_test_coverage - First observed
defect_trend_analysis - First observed
detect_test_patterns - First observed
framework_lookup - First observed
generate_quality_report - First observed
maturity_assessment - First observed
pipeline_health - First observed
quality_gate_check - First observed
quality_hotspot_detection - First observed
quality_recommendations - First observed
root_cause_categories - First observed
test_result_summary
TDQS
Scored across 15 tools
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.
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.
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.
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
Related MCP Connectors
Triage failing GitHub Actions jobs and see what self-heal repaired, in natural language.
Agentic testing: HyperExecute jobs, test failure triage, SmartUI visual diffs, a11y audits
Direct access to Cypress tests results and accessibility reports in your AI workflow.
Discover software problems, analyze evidence, and create implementation-ready Build plans.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables intelligent analysis of regression test failures and automatic discovery of solutions in JIRA. Analyzes test logs using AI-driven algorithms and matches errors with relevant JIRA issues through natural language interactions.-
- FlicenseNot gradedqualityDmaintenanceAutomates Java Maven testing workflows with decision table-based test generation, security vulnerability scanning, JaCoCo coverage analysis, and Git automation.-
- FlicenseBqualityDmaintenanceProvides tools to analyze test failures, cluster similar failures, and detect flaky tests from input or log files, helping QA teams debug and triage issues.3-
- AlicenseAqualityCmaintenanceProvides tools to analyze and debug GitHub Actions CI failures, including summarizing failures, detecting flaky tests, and suggesting fixes.105 npm1ISC