QA-MCP: Test Standardization & Orchestration Server
QA-MCP is a test standardization and orchestration server that enables LLM clients to generate, analyze, normalize, and manage test cases with quality control and Xray/Jira integration.
Test Case Generation & Management: Generate standardized test cases from feature descriptions and acceptance criteria with configurable risk levels, boundary tests, and negative scenarios. Normalize test cases from various formats (Gherkin, Markdown, JSON, plain text) into QA-MCP standard format.
Quality Analysis & Linting: Analyze test case quality with lint scoring and improvement suggestions in single or batch mode, with configurable strict mode for quality gates.
Xray/Jira Integration: Convert test cases to Xray import-ready JSON format (Manual/Automated/Generic types) with support for custom field mappings, batch processing, and project key mapping. Access Xray mapping templates for field configuration.
Test Suite Orchestration: Compose targeted test suites (Smoke, Sanity, Regression, E2E) from test case collections with sprint association and duration-based filtering.
Coverage & Reporting: Generate coverage reports analyzing test coverage across modules and requirements.
Additional Features: Access predefined resources including test case standards, lint rules, Xray field mappings, and example test cases. Use pre-defined prompts for common QA tasks. Deploy securely via Docker with configurable settings including audit logging, write tool controls, and HTTP transport.
Enables standardized test case generation and export to Jira/Xray format, with planned read-only sync capabilities for test management and import/export of test cases in Xray-compatible JSON format.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@QA-MCP: Test Standardization & Orchestration Servergenerate test cases for user login with email and password"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
QA-MCP v2
The Model Context Protocol (MCP) server for deterministic, structured, and scalable Quality Assurance.
Version 2 — built on the mcp 2.x SDK, with typed structured results and an environment-driven setup that connects QA-MCP to your own Jira/Xray tenant. Upgrading from 1.x? See Migrating from 1.x.
🇬🇧 English
📖 Overview
QA-MCP bridges the gap between ad-hoc LLM prompts and structured software testing. It provides AI agents and MCP clients with a shared test case model, rigorous quality analysis, and powerful normalization utilities.
Say goodbye to inconsistent manual QA documents. QA-MCP ensures that whether you are generating test cases from raw feature descriptions, converting Gherkin syntax, or composing complete regression suites, your test artifacts remain standardized, reusable, and perfectly aligned across your engineering teams.
It works with zero configuration and never touches the network. Give it your Jira credentials and it additionally reads from — and, if you explicitly allow it, writes to — your own Xray project.
✨ Key Features
🚀 Standardized Generation: Automatically generate high-quality, structured test cases from feature descriptions and acceptance criteria.
🛠️ Smart Normalization: Seamlessly convert Gherkin, Markdown, JSON, and plain text into the canonical QA-MCP schema.
📈 Advanced Linting & Scoring: Evaluate test cases against a shared QA schema with detailed scores, issue tracking, and improvement guidance — including rules for hardcoded credentials and non-parameterized test data.
🔗 Xray Ready: Convert standardized test cases into Xray-compatible JSON payloads, and — once a tenant is configured — read and create real Xray tests. Uses Xray Cloud's GraphQL API and Server/DC's
/rest/ravenREST API, so test steps actually travel with the issue instead of being dropped by the Jira issue API.📦 Suite Composition: Compose Smoke, Sanity, Regression, E2E, Integration, and Performance suites, each with its own selection rules.
📊 Coverage Reporting: Track requirement, module, risk, and scenario coverage, and report which inputs were skipped rather than silently dropping them.
🧩 Modern MCP Surface: Typed
structuredContentresults whose schemas are generated from the result models, read-only tool annotations, display titles, resource templates, and argument completion.🏢 Enterprise Ready: Configure everything from the environment. Credentials are validated at startup, held as secrets, and never logged. Write access is a separate, explicit opt-in.
Related MCP server: qa-ai-agents
🚀 Quick Start
Install via PyPI
pip install qa-mcp
qa-mcp --versionInstall via uv
pip install uv
uv pip install qa-mcp
qa-mcp --versionRun via Docker
docker pull atakanemree/qa-mcp:latest
docker run -i --rm atakanemree/qa-mcp:latestCheck your setup
qa-mcp --check-configValidates the configuration, prints exactly which tools the deployment would expose, and exits non-zero when something is wrong.
🔌 Connecting an MCP Client
Configure your preferred MCP client (e.g., Claude Desktop) to use QA-MCP.
Standard Configuration:
{
"mcpServers": {
"qa-mcp": {
"command": "qa-mcp",
"args": []
}
}
}Docker Configuration:
{
"mcpServers": {
"qa-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "atakanemree/qa-mcp:latest"]
}
}
}With your own Jira/Xray tenant (a stdio MCP server does not inherit your shell environment, so credentials go in the client's env block):
{
"mcpServers": {
"qa-mcp": {
"command": "qa-mcp",
"env": {
"QA_MCP_XRAY_ENABLED": "true",
"QA_MCP_XRAY_BASE_URL": "https://your-tenant.atlassian.net",
"QA_MCP_XRAY_AUTH_MODE": "basic",
"QA_MCP_XRAY_EMAIL": "qa-automation@your-company.com",
"QA_MCP_XRAY_API_TOKEN": "<Jira API token>",
"QA_MCP_XRAY_CLIENT_ID": "<Xray API Key client id>",
"QA_MCP_XRAY_CLIENT_SECRET": "<Xray API Key client secret>",
"QA_MCP_XRAY_PROJECT_KEY": "QA"
}
}
}
}On Jira Cloud these are two different credentials: a Jira API token for issues, and an Xray API Key for test steps, which Xray keeps outside Jira. On Server/Data Center one personal access token covers both. QA-MCP refuses to create a test whose steps it cannot import rather than silently producing an empty one.
Full walkthrough: docs/ENTERPRISE-SETUP.md.
🛠️ Public MCP Surface
Tool names intentionally use underscores so strict MCP clients accept them. Every tool returns typed structured content validated against a published output schema.
Tools — always available
Tool | Purpose |
| Generate standardized test cases from feature text and acceptance criteria. |
| Analyze a single test case, returning a quality score, issues, and improvement steps. |
| Analyze a collection of test cases and return aggregate findings. |
| Normalize Gherkin, Markdown, JSON, or plain text into the QA-MCP schema. |
| Convert a single test case into an Xray-compatible JSON payload. |
| Convert multiple test cases into Xray-compatible bulk payloads. |
| Compose a Smoke, Sanity, Regression, E2E, Integration, or Performance suite. |
| Generate requirement, module, risk, and scenario coverage reports. |
| Get the suggested QA-MCP to Xray field mapping template. |
These nine are pure functions: nothing is persisted, no external system is contacted, and repeating a call changes nothing. They are annotated read-only so clients need not gate them.
Tools — published once a Jira/Xray tenant is configured
Tool | Requires | Purpose |
|
| Verify the credentials and report which account they belong to. |
|
| Fetch a single Xray test issue from Jira. |
|
| Search test issues by JQL, or list a project's tests. |
|
| Creates an Xray test issue in Jira. |
The first three are read-only. xray_create_test is the only tool that changes anything in Jira: it is absent unless writes are explicitly enabled, it is annotated non-read-only so clients prompt for approval, and the client re-checks the flag on every call.
Resources
URI | Purpose |
| Canonical QA-MCP test case standard. |
| Lint rules, penalties, and scoring logic. |
| Xray mapping reference documentation. |
| Example test cases; |
qa://examples/{quality} is a resource template — clients can complete the quality argument.
Prompts
Prompt | Purpose |
| Guide the LLM toward structured manual test creation. |
| Assist in selecting an optimal smoke suite from an existing pool. |
| Guide the generation of robust negative/edge-case scenarios. |
| Analyze existing test assets for coverage gaps. |
⚙️ Architecture & Configuration
Transport: standard input/output (
stdio).Offline by default: the nine analysis tools never open a socket. Jira/Xray connectivity is opt-in and validated at startup.
Configuration: entirely environment-driven — no config file to fork, no code to edit.
Most common settings:
Variable | Default | Description |
|
| Log level; logs go to stderr. |
|
| Log every tool call (argument names only, never values). |
|
| Score a test case needs to pass. |
|
| Rule ids your team does not enforce, as a JSON array. |
|
| Allow QA-MCP to contact Jira/Xray. |
| — | Jira base URL. |
|
|
|
| — | Jira API token or personal access token. |
| — | Xray Cloud API Key; required for test steps on Cloud. |
|
| Publish |
Full reference — including Jira Cloud vs Server/Data Center authentication, per-tenant custom field ids, and credential handling — in docs/ENTERPRISE-SETUP.md and .env.example.
🐳 Docker Deployment
The official image is available on Docker Hub: atakanemree/qa-mcp
# Verify the packaged CLI
docker run --rm atakanemree/qa-mcp:latest --version
# Run the MCP server in stdio mode
docker run -i --rm atakanemree/qa-mcp:latest
# With your own tenant configuration
docker run -i --rm --env-file .env atakanemree/qa-mcp:latest
# Docker Compose usage
docker compose up qa-mcp
docker compose --profile dev up qa-mcp-devPass tokens through --env-file or your orchestrator's secret mechanism — never bake them into an image.
🔄 Migrating from 1.x
Change | What to do |
Requires the mcp 2.x SDK |
|
Environment variables are namespaced ( | Nothing breaks — the unprefixed 1.x names ( |
Dotted tool aliases ( | Set |
| It now publishes a tool that writes to Jira, and is rejected at startup unless a tenant is configured. Leave it off unless you mean it. |
Library callers read | Tool results are now returned as structured content; read the result object directly. MCP clients are unaffected. |
Run qa-mcp --check-config after upgrading — it reports exactly what your configuration exposes.
📚 Documentation
USAGE.md: Detailed usage examples and request payloads.
docs/ENTERPRISE-SETUP.md: Connecting your own Jira/Xray tenant and quality bar.
docs/CI-CD.md: Jenkins pipeline and SonarQube analysis setup.
docs/MCP-2.x-MIGRATION.md: Record of the mcp 2.x SDK migration.
docs/PUBLISHING.md: Package and release publishing flow.
CONTRIBUTING.md: Contributor workflow and quality checks.
CHANGELOG.md: Release history.
🗺️ Roadmap
Done in v2: typed structured results on the mcp 2.x SDK, environment-driven configuration, read-only Jira/Xray integration, and a strictly gated write endpoint.
Next: richer Xray operations (test sets, test plans, execution results) and bulk import against a live tenant.
Later: additional QA system integrations beyond Xray, and optional network transports.
📄 License
Released under the MIT License. See LICENSE for details.
🇹🇷 Türkçe
📖 Genel Bakış
QA-MCP, gelişigüzel LLM promptları ile yapılandırılmış yazılım testi arasındaki boşluğu kapatır. AI ajanlarına ve MCP istemcilerine ortak bir test case modeli, titiz kalite analizi ve güçlü normalizasyon araçları sunar.
Tutarsız manuel QA dokümanlarına veda edin. İster ham feature açıklamasından test üretin, ister Gherkin dönüştürün, ister komple regresyon suite'i oluşturun — test varlıklarınız standart, tekrar kullanılabilir ve ekipler arasında hizalı kalır.
Hiçbir yapılandırma gerektirmeden çalışır ve ağa hiç çıkmaz. Jira kimlik bilgilerinizi verdiğinizde ayrıca kendi Xray projenizden okur; açıkça izin verirseniz oraya yazar.
✨ Temel Özellikler
🚀 Standart Üretim: Feature metinlerinden ve kabul kriterlerinden otomatik olarak yüksek kaliteli, yapılandırılmış test case'ler üretin.
🛠️ Akıllı Normalizasyon: Gherkin, Markdown, JSON ve düz metinleri standart QA-MCP şemasına sorunsuz dönüştürün.
📈 Gelişmiş Linting ve Skorlama: Test senaryolarını ortak kalite şemasına göre değerlendirin; hardcoded credential ve parametrik olmayan test verisi kuralları dahil detaylı skor, hata ve iyileştirme adımları alın.
🔗 Xray Entegrasyonu: Standart test case'leri Xray uyumlu JSON payload'larına dönüştürün; tenant bağlıysa gerçek Xray test'leri okuyup oluşturun. Xray Cloud'da GraphQL, Server/DC'de
/rest/ravenREST API'si kullanılır — böylece test adımları issue ile birlikte gider, Jira issue API'sinde olduğu gibi düşmez.📦 Suite Yönetimi: Smoke, Sanity, Regression, E2E, Integration ve Performance suitlerini, her biri kendi seçim kurallarıyla oluşturun.
📊 Kapsam Raporlama: Gereksinim, modül, risk ve senaryo kapsamını izleyin; standarda uymayan girdiler sessizce atılmaz, raporlanır.
🧩 Güncel MCP Yüzeyi: Şemaları sonuç modellerinden üretilen tipli
structuredContent, read-only tool annotation'ları, görünen adlar, resource template ve argüman tamamlama.🏢 Kurumsal Kullanıma Hazır: Her şey ortam değişkeniyle yapılandırılır. Kimlik bilgileri başlangıçta doğrulanır, sır olarak tutulur, hiçbir yere loglanmaz. Yazma erişimi ayrı ve bilinçli bir tercihtir.
🚀 Hızlı Başlangıç
PyPI üzerinden kurulum
pip install qa-mcp
qa-mcp --versionuv ile kurulum
pip install uv
uv pip install qa-mcp
qa-mcp --versionDocker ile çalıştırma
docker pull atakanemree/qa-mcp:latest
docker run -i --rm atakanemree/qa-mcp:latestKurulumu doğrulama
qa-mcp --check-configYapılandırmayı doğrular, hangi tool'ların yayınlanacağını yazdırır ve bir sorun varsa sıfırdan farklı kodla çıkar.
🔌 MCP İstemcisine Bağlanma
Tercih ettiğiniz MCP istemcisini (örn. Claude Desktop) QA-MCP kullanacak şekilde yapılandırın.
Standart yapılandırma:
{
"mcpServers": {
"qa-mcp": {
"command": "qa-mcp",
"args": []
}
}
}Kendi Jira/Xray tenant'ınızla:
{
"mcpServers": {
"qa-mcp": {
"command": "qa-mcp",
"env": {
"QA_MCP_XRAY_ENABLED": "true",
"QA_MCP_XRAY_BASE_URL": "https://sirketiniz.atlassian.net",
"QA_MCP_XRAY_AUTH_MODE": "basic",
"QA_MCP_XRAY_EMAIL": "qa-automation@sirketiniz.com",
"QA_MCP_XRAY_API_TOKEN": "<Jira API token>",
"QA_MCP_XRAY_CLIENT_ID": "<Xray API Key client id>",
"QA_MCP_XRAY_CLIENT_SECRET": "<Xray API Key client secret>",
"QA_MCP_XRAY_PROJECT_KEY": "QA"
}
}
}
}Jira Cloud'da bunlar iki ayrı kimliktir: issue'lar için Jira API token'ı, test adımları için Xray API Key. Xray, adımları Jira'nın dışında tutar. Server/Data Center'da tek bir personal access token ikisini de karşılar. QA-MCP, adımlarını aktaramayacağı bir test'i sessizce boş oluşturmak yerine reddeder.
stdio MCP sunucusu shell ortamınızı miras almaz; kimlik bilgileri istemcinin
env bloğuna yazılır.
Adım adım kurulum: docs/ENTERPRISE-SETUP.md.
🛠️ Public MCP Yüzeyi
Tool adları katı MCP istemcileriyle uyum için bilerek underscore (_) kullanır. Her tool, yayınlanmış bir çıktı şemasına karşı doğrulanmış tipli yapısal içerik döner.
Tool'lar — her zaman mevcut
Tool | Amaç |
| Feature metni ve kabul kriterlerinden standart test case üretir. |
| Tek bir test case'i analiz eder; kalite skoru, hatalar ve iyileştirme adımları döner. |
| Test case koleksiyonunu analiz eder ve toplu bulgular döner. |
| Gherkin, Markdown, JSON veya düz metni QA-MCP şemasına çevirir. |
| Tek test case'i Xray uyumlu JSON payload'ına dönüştürür. |
| Birden fazla test case'i toplu Xray payload'ına dönüştürür. |
| Smoke, Sanity, Regression, E2E, Integration veya Performance suite oluşturur. |
| Gereksinim, modül, risk ve senaryo kapsam raporları üretir. |
| Önerilen QA-MCP → Xray alan eşleme şablonunu döner. |
Bu dokuz tool saf fonksiyondur: hiçbir şey kalıcılaştırmaz, dış sisteme çıkmaz, tekrar çağrılması bir şey değiştirmez. Read-only işaretlidirler, istemciler onay sormak zorunda kalmaz.
Tool'lar — Jira/Xray tenant bağlandığında yayınlanır
Tool | Gereksinim | Amaç |
|
| Kimlik bilgilerini doğrular, hangi hesaba ait olduğunu bildirir. |
|
| Jira'dan tek bir Xray test issue'sunu getirir. |
|
| JQL ile test arar veya projedeki testleri listeler. |
|
| Jira'da Xray test issue'su oluşturur. |
İlk üçü salt okunurdur. Jira'da değişiklik yapan tek tool xray_create_test'tir: yazma açıkça etkinleştirilmedikçe hiç yayınlanmaz, read-only olmayan olarak işaretlidir (istemciler onay ister) ve istemci her çağrıda bayrağı yeniden kontrol eder.
Resource'lar (Kaynaklar)
URI | Amaç |
| Kanonik QA-MCP test case standardı. |
| Lint kuralları, cezalar ve puanlama mantığı. |
| Xray eşleme referans dokümantasyonu. |
| Örnek test case'ler; |
qa://examples/{quality} bir resource template'tir — istemciler quality argümanını tamamlayabilir.
Prompt'lar
Prompt | Amaç |
| LLM'i yapılandırılmış manuel test oluşturmaya yönlendirir. |
| Mevcut havuzdan optimal smoke suite seçmeye yardım eder. |
| Sağlam negatif/edge-case senaryo üretimini yönlendirir. |
| Mevcut test varlıklarını kapsam boşlukları için analiz eder. |
⚙️ Mimari ve Yapılandırma
Transport: standart girdi/çıktı (
stdio).Varsayılan olarak çevrimdışı: dokuz analiz tool'u hiç soket açmaz. Jira/Xray bağlantısı opsiyoneldir ve başlangıçta doğrulanır.
Yapılandırma: tamamen ortam değişkeni tabanlı — fork edilecek config dosyası, düzenlenecek kod yok.
En sık kullanılan ayarlar:
Değişken | Varsayılan | Açıklama |
|
| Log seviyesi; loglar stderr'e gider. |
|
| Her tool çağrısını loglar (yalnızca argüman adları, değerleri asla). |
|
| Test case'in geçmesi için gereken skor. |
|
| Ekibinizin uygulamadığı kural id'leri (JSON dizi). |
|
| Jira/Xray bağlantısına izin verir. |
| — | Jira temel adresi. |
|
|
|
| — | Jira API token veya personal access token. |
| — | Xray Cloud API Key; Cloud'da test adımları için gerekli. |
|
| Jira'ya yazan |
Tam referans — Jira Cloud ve Server/Data Center kimlik doğrulama farkları, tenant'a özel custom field id'leri ve kimlik bilgisi yönetimi dahil — docs/ENTERPRISE-SETUP.md ve .env.example dosyalarındadır.
🐳 Docker Dağıtımı
Resmî imaj Docker Hub'da: atakanemree/qa-mcp
# Paketlenmiş CLI'yı doğrula
docker run --rm atakanemree/qa-mcp:latest --version
# MCP server'ı stdio modunda çalıştır
docker run -i --rm atakanemree/qa-mcp:latest
# Kendi tenant yapılandırmanızla
docker run -i --rm --env-file .env atakanemree/qa-mcp:latest
# Docker Compose kullanımı
docker compose up qa-mcp
docker compose --profile dev up qa-mcp-devToken'ları --env-file ile veya orkestratörünüzün secret mekanizmasıyla geçirin — imaja gömmeyin.
🔄 1.x'ten Geçiş
Değişiklik | Ne yapmalı |
mcp 2.x SDK gerekir |
|
Ortam değişkenleri | Hiçbir şey kırılmaz — 1.x'teki öneksiz adlar ( |
Noktalı tool alias'ları ( | Eski bir istemci hâlâ çağırıyorsa |
| Jira'ya yazan bir tool yayınlar ve tenant yapılandırılmamışsa başlangıçta reddedilir. Bilinçli değilseniz kapalı bırakın. |
Kütüphane olarak | Tool sonuçları artık yapısal içerik olarak döner; sonuç nesnesini doğrudan okuyun. MCP istemcileri etkilenmez. |
Yükselttikten sonra qa-mcp --check-config çalıştırın — yapılandırmanızın tam olarak neyi yayınladığını bildirir.
📚 Dokümantasyon
USAGE.md: Detaylı kullanım örnekleri ve request payload'ları.
docs/ENTERPRISE-SETUP.md: Kendi Jira/Xray tenant'ınızı ve kalite eşiğinizi bağlama.
docs/CI-CD.md: Jenkins pipeline ve SonarQube analiz kurulumu.
docs/MCP-2.x-MIGRATION.md: mcp 2.x SDK geçişinin kaydı.
docs/PUBLISHING.md: Paket ve release yayın süreci.
CONTRIBUTING.md: Katkı akışı ve kalite kontrolleri.
CHANGELOG.md: Sürüm geçmişi.
🗺️ Yol Haritası
v2'de tamamlandı: mcp 2.x SDK üzerinde tipli yapısal sonuçlar, ortam değişkeni tabanlı yapılandırma, salt okunur Jira/Xray entegrasyonu ve sıkı kilitli bir yazma uç noktası.
Sırada: daha zengin Xray işlemleri (test set, test plan, koşum sonuçları) ve canlı tenant'a toplu import.
Daha sonra: Xray dışındaki QA sistemleri için entegrasyonlar ve opsiyonel ağ transport'ları.
📄 Lisans
MIT License ile yayınlanmıştır. Ayrıntılar için LICENSE dosyasına göz atabilirsiniz.
Available Tools
9 toolssuite_composeTest Suite OluşturBRead-onlyIdempotent
Test case listesinden Smoke/Sanity/Regression/E2E/Integration/Performance suite oluşturur.
| Name | Required | Description | Default |
|---|---|---|---|
| sprint | No | ||
| target | Yes | ||
| testcases | Yes | ||
| max_duration_minutes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| suite | Yes | Composed suite; null on error |
| errors | No | |
| excluded_count | No | |
| recommendations | No | |
| coverage_summary | No | |
| duration_warning | No | |
| selected_testcases | No | |
| selection_rationale | No | Why each test case was included or excluded |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds minimal context, only that it composes a suite from a list, without describing validation, output details, or any side effects. It is not contradictory, but does not enrich the behavioral picture.
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 redundant information. It efficiently conveys the core function without waste.
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 4 parameters, 2 of which are optional, and 0% schema coverage, the description is incomplete. It lacks details about the optional parameters, the expected structure of testcases, and any constraints or prerequisites. The existence of an output schema reduces the need to describe return values, but the parameter semantics and usage conditions remain underexplained.
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 description partially explains two of the four parameters: 'test case list' maps to testcases, and the enumerated suite types map to target. However, it completely omits sprint and max_duration_minutes. Since the schema has 0% description coverage, the tool description fails to compensate for these undocumented parameters, leaving them ambiguous.
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 verb (creates), the resource (suite), and the source (test case list), and enumerates the six suite types. It is distinct from siblings like testcase_generate or testcase_lint, which focus on generating or validating individual test cases.
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 explicit guidance is given on when to use this tool vs alternatives. The description only states what it does, without mentioning conditions, exclusions, or recommending it for specific scenarios. The distinction from siblings is implicit, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suite_coverage_reportKapsam RaporuBRead-onlyIdempotent
Test case koleksiyonu için gereksinim ve modül kapsam raporu üretir.
| Name | Required | Description | Default |
|---|---|---|---|
| modules | No | ||
| testcases | Yes | ||
| requirements | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| gaps | No | |
| module_coverage | No | |
| recommendations | No | |
| total_testcases | Yes | |
| module_test_count | No | |
| risk_distribution | No | |
| skipped_testcases | No | Inputs that did not conform and were left out |
| requirement_mapping | No | |
| requirement_coverage | No | |
| scenario_distribution | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds no further behavioral context (e.g., side effects, performance, or external dependencies), but it is consistent with the annotations, so this neutral addition warrants a middle score.
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 concise sentence, efficiently conveying the core purpose without unnecessary detail. It is well-structured and easy to parse.
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 description covers the basic purpose but omits any detail about the parameters, output format, or expected input structure. While an output schema exists, the lack of parameter context makes the tool only partially complete for an agent aiming to invoke it correctly.
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 description gives no explanation of the parameters (modules, testcases, requirements). With 0% schema description coverage, the description fails to compensate for the lack of parameter documentation, leaving the agent without enough context to correctly populate the arguments.
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 the tool's function: generating a requirement and module coverage report for a test case collection. It uses a specific verb ('üretir' – generates) and identifies the resource, making the purpose unambiguous and distinct from siblings.
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 explicit guidance on when to use this tool instead of alternatives. It does not mention conditions, trade-offs, or comparisons with sibling tools, leaving the agent to infer appropriate usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testcase_generateTest Case ÜretARead-onlyIdempotent
Feature açıklaması ve acceptance criteria'dan standart test case üretir.
| Name | Required | Description | Default |
|---|---|---|---|
| module | No | ||
| feature | Yes | ||
| risk_level | No | medium | |
| include_boundary | No | ||
| include_negative | No | ||
| acceptance_criteria | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| testcases | Yes | Generated standard test cases |
| suggestions | Yes | Additional testing suggestions |
| total_generated | Yes | Number of test cases generated |
| coverage_summary | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the description is not required to restate it. The description adds the 'standard' qualifier, implying normalized/consistent output, which is a modest addition beyond the annotations. No contradiction exists — 'generate' aligns with read-only generation.
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 declarative sentence with zero filler. The purpose is front-loaded and every word earns its place. It is efficient without being under-specified to the point of tautology.
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-value expectations, so that gap is handled. However, with six parameters and zero schema description coverage, the description leaves four parameters (module, risk_level, include_boundary, include_negative) undocumented. An agent would struggle to configure generation correctly without additional guidance.
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 0%, so the description must compensate, but it only implicitly references two of the six parameters (feature and acceptance_criteria). module, risk_level, include_boundary, and include_negative are entirely unexplained in both the schema and description, leaving the agent to guess their meaning and interaction.
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 ('üretir'/'generates'), a specific resource (standard test cases), and the source inputs (feature description + acceptance criteria). This clearly distinguishes it from the sibling tools, which are about linting, normalizing, converting to Xray, composing suites, or reporting coverage rather than generating.
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 'from feature description and acceptance criteria' implies the generation scenario, but the description never explicitly routes the agent — it does not state when to use this tool versus alternatives or when not to use it. No sibling is named and no exclusion condition is given, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testcase_lintTest Case Kalite AnaliziCRead-onlyIdempotent
Test case'i analiz eder, kalite skoru ve iyileştirme önerileri döner.
| Name | Required | Description | Default |
|---|---|---|---|
| testcase | Yes | ||
| strict_mode | No | ||
| include_improvement_plan | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| grade | Yes | |
| score | Yes | |
| issues | No | |
| passed | Yes | Met the minimum quality threshold |
| summary | No | |
| suggestions | No | |
| schema_valid | Yes | Conforms to the QA-MCP standard's schema constraints |
| schema_errors | No | |
| improvement_plan | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds no extra behavioral context beyond stating it analyzes and returns results, which is consistent with the annotations. It does not contradict them, but it also does not go beyond them.
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, clear sentence with no unnecessary words. It directly states the action and the output.
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?
While the output schema covers return details, the description does not provide essential context about the parameters or the distinction from the batch variant. Given the parameter count and lack of descriptions, the description alone is insufficient to use the tool correctly in all scenarios.
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?
There are no parameter descriptions in the schema (coverage 0%), and the description does not explain the purpose or effect of the three parameters (testcase, strict_mode, include_improvement_plan). The names give some hint but not enough for correct usage.
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 ('analiz eder' - analyzes) and identifies the resource (test case) and the outcome (quality score and improvement suggestions). It clearly distinguishes this from sibling tools like testcase_generate or testcase_normalize by its focus on analysis and scoring.
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 guidance on when to use this tool versus alternatives such as testcase_lint_batch or other sibling tools. There is no mention of single vs batch usage or any decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testcase_lint_batchToplu Kalite AnaliziARead-onlyIdempotent
Birden fazla test case'i toplu analiz eder ve toplu istatistik döner.
| Name | Required | Description | Default |
|---|---|---|---|
| testcases | Yes | ||
| strict_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| aggregate | Yes | |
| recommendations | No | |
| grade_distribution | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover read-only, non-destructive, and idempotent behavior. The description adds no extra behavioral context such as error handling, side effects, or rate limits. It is consistent with annotations but provides no additional transparency beyond them.
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, clear sentence that is appropriately concise for the tool's function. It conveys the essential purpose without unnecessary verbosity, making it easy to parse.
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 an output schema, the description omits crucial context about input parameter formats, the behavior of strict_mode, and the nature of the returned statistics. It also does not mention the batch vs. single-use distinction, leaving the tool's context incomplete for an agent.
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 description only vaguely acknowledges the 'testcases' parameter through the phrase 'multiple test cases' but does not explain the structure of array items or the meaning of 'strict_mode'. Since the schema has no field descriptions, this lack of detail leaves parameter semantics largely unexplained.
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 that the tool analyzes multiple test cases in batch and returns aggregate statistics, which distinguishes it from the singular testcase_lint sibling. The verb 'analyzes' and the object 'multiple test cases' precisely convey the tool's function.
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 implies usage for batch analysis of multiple test cases, but it does not explicitly mention when to use this tool instead of alternatives like testcase_lint. The guidance is implied rather than explicit, so it falls short of clearly directing the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testcase_normalizeTest Case NormalleştirCRead-onlyIdempotent
Markdown, Gherkin, JSON veya düz metni QA-MCP standardına çevirir.
| Name | Required | Description | Default |
|---|---|---|---|
| input_data | Yes | ||
| source_format | No | auto |
Output Schema
| Name | Required | Description |
|---|---|---|
| testcase | Yes | Test case raised to the standard; null when it could not be parsed |
| warnings | Yes | Fields that were padded or changed |
| transformations | Yes | Transformations applied |
| source_format_detected | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior; the description adds no extra behavioral context but is consistent with those hints.
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, concise sentence with no redundant information, front-loading the primary action.
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 description provides the core conversion purpose and implies the return of a normalized test case, but lacks parameter explanations; however, the presence of an output schema likely covers the return structure.
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 has no descriptions for either parameter, and the description does not explain what input_data or source_format mean or how the enum values behave, leaving the agent to infer.
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 the tool converts Markdown, Gherkin, JSON, or plain text into the QA-MCP standard, using a specific verb and resource. It is distinct from sibling tools like testcase_to_xray, though it does not explicitly name 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?
No guidance is provided on when to use this tool versus alternatives like testcase_lint or testcase_to_xray, nor any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testcase_to_xrayXray Formatına DönüştürARead-onlyIdempotent
Standart test case'i Xray import formatına dönüştürür.
project_key ve custom_field_mappings verilmezse yapılandırılmış tenant
değerleri kullanılır.
| Name | Required | Description | Default |
|---|---|---|---|
| testcase | Yes | ||
| test_type | No | ||
| project_key | No | ||
| custom_field_mappings | No | ||
| include_custom_fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| warnings | No | |
| xray_payload | Yes | Import-ready Xray JSON |
| field_mapping_report | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, non-destructive, idempotent behavior; the description adds a meaningful behavioral detail about using configured tenant values as defaults, but does not elaborate other side effects or output characteristics.
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?
Two concise sentences with the main purpose front-loaded and no extraneous information. Every sentence 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?
Describes the core conversion and one fallback behavior, but misses enough parameter detail and does not clarify single vs batch usage. With five parameters and a nested object, the description is only barely adequate.
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 has no parameter descriptions, and only project_key and custom_field_mappings are mentioned (their fallback behavior). The required testcase object, test_type, and include_custom_fields are left unexplained, so schema-description coverage remains well below 50%.
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 clearly that it converts a standard test case into Xray import format. The verb and target format are explicit, and the singular scope is evident from the name and the testcase parameter, distinguishing it from the batch 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?
Provides limited usage guidance by explaining fallback to tenant-configured values when project_key and custom_field_mappings are omitted, but does not explicitly contrast with sibling tools like testcase_to_xray_batch or testcase_generate, so when-to-use guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testcase_to_xray_batchToplu Xray DönüşümüARead-onlyIdempotent
Birden fazla test case'i toplu olarak Xray formatına dönüştürür.
| Name | Required | Description | Default |
|---|---|---|---|
| test_type | No | ||
| testcases | Yes | ||
| project_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | Yes | |
| warnings | No | |
| xray_payloads | No | |
| import_payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds the conversion action but does not disclose output details or any side effects beyond what annotations imply. This is adequate given the annotation coverage.
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 zero wasted words. It conveys the core purpose immediately and is appropriately sized.
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?
With three parameters and zero schema descriptions, the description is severely incomplete. It does not explain the input format, the meaning of test_type or project_key, or any details about the conversion process. The output schema exists, but the agent still lacks essential input guidance.
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 0%, and the description does not explain any of the three parameters (testcases, test_type, project_key). An agent has no guidance on what these fields mean or how to populate them.
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 the action (converts), the resource (multiple test cases), and the target format (Xray). It explicitly says 'multiple' and 'bulk', distinguishing it from the singular sibling testcase_to_xray.
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 implicitly signals it is for batch operations by saying 'Birden fazla test case'i' (multiple test cases). This gives clear context for when to use it, though it does not explicitly name the alternative for single conversions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xray_get_mapping_templateXray Alan Eşleme ŞablonuARead-onlyIdempotent
Xray alan eşleme şablonunu döner.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | Yes | |
| xray_specific | Yes | |
| standard_mappings | Yes | |
| custom_field_suggestions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnly and idempotent annotations and indicates a simple retrieval with no side effects, but it adds no behavioral context beyond what the annotations already declare.
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, front-loaded with the action and object, and contains no filler or redundant information.
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 zero-parameter, read-only retrieval tool with an output schema, the description is sufficiently complete. It does not explain how the mapping template relates to the conversion sibling tools, but that is not required for the simple act of retrieving 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?
The tool has zero parameters, so there is no parameter behavior to document. The input schema fully covers the empty parameter set, and no additional parameter explanation is needed.
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 is a single, specific statement: 'Returns the Xray field mapping template.' It clearly identifies the action and the resource, and it is distinct enough from sibling tools that generate, lint, normalize, or convert test cases.
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 gives no guidance on when to use this tool versus related tools such as testcase_to_xray or testcase_to_xray_batch. An agent has to infer from the name that this template is likely a prerequisite for conversion.
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.
18 tool updates
v2.1.1- Added
suite_compose - Added
suite_coverage_report - Removed
suite.compose - Removed
suite.coverage_report - Added
testcase_generate - Added
testcase_lint - Added
testcase_lint_batch - Added
testcase_normalize - Added
testcase_to_xray - Added
testcase_to_xray_batch - Removed
testcase.generate - Removed
testcase.lint - Removed
testcase.lint_batch - Removed
testcase.normalize - Removed
testcase.to_xray - Removed
testcase.to_xray_batch - Added
xray_get_mapping_template - Removed
xray.get_mapping_template
9 tool updates
v1.0.0- First observed
suite.compose - First observed
suite.coverage_report - First observed
testcase.generate - First observed
testcase.lint - First observed
testcase.lint_batch - First observed
testcase.normalize - First observed
testcase.to_xray - First observed
testcase.to_xray_batch - First observed
xray.get_mapping_template
TDQS
Scored across 9 tools
Each tool has a distinct purpose: generation, linting (single vs batch), normalization, Xray conversion (single vs batch), template retrieval, suite composition, and coverage reporting. No overlapping functionality.
All tools follow a consistent lowercase verb_noun pattern (e.g., testcase_generate, testcase_lint_batch, suite_compose). The _batch suffix is uniform, and naming is clear and predictable.
With 9 tools, the set is well-scoped for a test standardization and orchestration server. It covers generation, linting, conversion, template access, and suite/coverage operations without excessive fragmentation or redundancy.
The surface covers the core workflow: generate, validate, normalize, convert, compose, and report. Missing update/delete operations are not critical for the stated purpose, but a small gap exists in not having a tool to modify or manage existing test cases directly.
Maintenance
Related MCP Connectors
Manage test suites, run tests, view results, and automate QA workflows via AI with testRigor.
Writes adversarial test suites for AI-built code. Your agent's test engineer.
Test the voice agents you run: scored transcripts, pass/fail verdicts, latency and WER metrics.
Direct access to Cypress tests results and accessibility reports in your AI workflow.
Related MCP Servers
- FlicenseAqualityDmaintenanceGenerates structured, comprehensive test cases from user stories, API specs, or raw text, with automatic Excel export and Playwright automation code generation.61-
- FlicenseNot gradedqualityDmaintenanceEnables automated QA testing by running a pipeline of AI agents that generate test scenarios, architect test layers, write Playwright tests, and review code, all grounded in feature requirements and API contracts.-
- AlicenseNot gradedqualityBmaintenanceEnables generation of test cases, edge cases, and test matrices for software testing, integrated with MCP protocol and EU AI Act compliance.3 npmMIT
- FlicenseNot gradedqualityBmaintenanceProvides MCP tools that give LLM agents a full QA engineer workflow: scanning projects, generating deterministic test suites, executing them across browser/API/mobile, diagnosing failures, and proposing fixes that require human approval.-