QA-MCP: Test Standardization & Orchestration Server
🇬🇧 English | 🇹🇷 Türkçe
🇬🇧 English
An MCP server that enables LLM clients to perform standardized test case generation, quality control, Xray format conversion, and test suite composition.
🎯 Problem
Common issues in enterprise QA:
- Inconsistent test case formats: Different people write in different formats → not reusable
- No standard in Xray/Jira: Missing fields, unclear datasets, ambiguous steps
- Smoke/Regression distinction depends on individuals: Sprint-based planning is difficult
- When writing tests with LLM, same suggestions return or critical negative scenarios are missed
✨ Solution
QA-MCP provides:
- ✅ Single test standard: Everyone produces/improves with the same template
- ✅ Quality gate: Lint score + missing field detection
- ✅ Xray compatible output: Importable JSON
- ✅ Test suite/plan composition: Smoke/Regression/E2E suggestions + tagging
- ✅ Secure container deployment: Runnable from Docker Hub
📦 Installation
With pip
pip install qa-mcp
From source
git clone https://github.com/Atakan-Emre/McpTestGenerator.git
cd McpTestGenerator
pip install -e .
With Docker
docker pull atakanemree/qa-mcp:latest
docker run -i atakanemree/qa-mcp:latest
🚀 Usage
MCP Client Connection
Cursor / Claude Desktop
Add to your mcp.json or claude_desktop_config.json:
{
"mcpServers": {
"qa-mcp": {
"command": "qa-mcp",
"args": []
}
}
}
With Docker
{
"mcpServers": {
"qa-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "atakanemree/qa-mcp:1.0.0"]
}
}
}
🔧 Tools
| Tool | Description |
|---|---|
testcase.generate | Generate standardized test cases from feature & acceptance criteria |
testcase.lint | Analyze test case quality, return score and improvement suggestions |
testcase.normalize | Convert Gherkin/Markdown → Standard format |
testcase.to_xray | Export to Xray/Jira import format |
suite.compose | Create Smoke/Regression/E2E test suites |
suite.coverage_report | Generate test coverage analysis |
📚 Resources
| URI | Description |
|---|---|
qa://standards/testcase/v1 | Test case standard |
qa://checklists/lint-rules/v1 | Lint rules |
qa://mappings/xray/v1 | Xray field mapping |
qa://examples/good/* | Good test case examples |
qa://examples/bad/* | Bad test case examples |
💬 Prompts
| Prompt | Description |
|---|---|
create-manual-test | Create Xray Manual Test |
select-smoke-tests | Smoke test selection |
generate-negative-scenarios | Generate negative scenarios |
review-test-coverage | Test coverage analysis |
🐳 Docker
# Pull image
docker pull atakanemree/qa-mcp:latest
# Run (stdio mode - default, most secure)
docker run -i --rm atakanemree/qa-mcp:1.0.0
# With environment variables
docker run -i --rm \
-e LOG_LEVEL=debug \
-e ENABLE_WRITE_TOOLS=false \
atakanemree/qa-mcp:1.0.0
🔒 Security
| Variable | Default | Description |
|---|---|---|
ENABLE_WRITE_TOOLS | false | Enables Jira/Xray write tools |
LOG_LEVEL | info | Log level (debug, info, warning, error) |
AUDIT_LOG_ENABLED | true | Enables audit logging |
HTTP_ENABLED | false | Enables HTTP transport |
HTTP_PORT | 8080 | HTTP port |
🗺️ Roadmap
- v1.0 - MVP: generate, lint, to_xray, compose
- v1.1 - Policy/guardrails, audit logs
- v1.2 - Jira/Xray sync (read-only)
- v2.0 - HTTP transport, OAuth
🇹🇷 Türkçe
LLM istemcilerinin bağlanıp standart test case üretme, kalite kontrol, Xray formatına çevirme ve test set kompozisyonu yapabildiği bir MCP sunucusu.
🎯 Problem
Kurumsal QA'da tipik sorunlar:
- Test case formatı dağınık: Farklı kişiler farklı biçimde yazar → tekrar kullanılamaz
- Xray/Jira'da standard yok: Alanlar eksik, dataset belirsiz, adımlar muğlak
- Smoke/Regression ayrımı kişiye bağlı: Sprint bazlı planlama zor
- LLM ile test yazdırınca aynı öneriler dönüyor veya kritik negatif senaryolar kaçıyor
✨ Çözüm
QA-MCP şunları sağlar:
- ✅ Tek test standardı: Herkes aynı şablonla üretir/iyileştirir
- ✅ Kalite kapısı (quality gate): Lint skoru + eksik alan tespiti
- ✅ Xray uyumlu çıktı: Import edilebilir JSON
- ✅ Test set/plan kompozisyonu: Smoke/Regression/E2E önerisi + etiketleme
- ✅ Güvenli container dağıtımı: Docker Hub'dan çalıştırılabilir
📦 Kurulum
pip ile
pip install qa-mcp
Kaynak koddan
git clone https://github.com/Atakan-Emre/McpTestGenerator.git
cd McpTestGenerator
pip install -e .
Docker ile
docker pull atakanemree/qa-mcp:latest
docker run -i atakanemree/qa-mcp:latest
🚀 Kullanım
MCP İstemcisi ile Bağlantı
Cursor / Claude Desktop
mcp.json veya claude_desktop_config.json dosyasına ekleyin:
{
"mcpServers": {
"qa-mcp": {
"command": "qa-mcp",
"args": []
}
}
}
Docker ile
{
"mcpServers": {
"qa-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "atakanemree/qa-mcp:1.0.0"]
}
}
}
🔧 Tools
| Tool | Açıklama |
|---|---|
testcase.generate | Feature ve acceptance criteria'dan standart test case üretir |
testcase.lint | Test case kalitesini analiz eder, skor ve öneriler döner |
testcase.normalize | Gherkin/Markdown → Standart format dönüşümü |
testcase.to_xray | Xray/Jira import formatına çevirir |
suite.compose | Smoke/Regression/E2E test suite oluşturur |
suite.coverage_report | Test kapsam analizi raporu üretir |
📚 Resources
| URI | Açıklama |
|---|---|
qa://standards/testcase/v1 | Test case standardı |
qa://checklists/lint-rules/v1 | Lint kuralları |
qa://mappings/xray/v1 | Xray alan eşlemesi |
qa://examples/good/* | İyi test case örnekleri |
qa://examples/bad/* | Kötü test case örnekleri |
💬 Prompts
| Prompt | Açıklama |
|---|---|
create-manual-test | Xray Manual Test oluşturma |
select-smoke-tests | Smoke test seçimi |
generate-negative-scenarios | Negatif senaryo üretimi |
review-test-coverage | Test kapsam analizi |
🐳 Docker
# Image çekme
docker pull atakanemree/qa-mcp:latest
# Çalıştırma (stdio mode - varsayılan, en güvenli)
docker run -i --rm atakanemree/qa-mcp:1.0.0
# Environment variables ile
docker run -i --rm \
-e LOG_LEVEL=debug \
-e ENABLE_WRITE_TOOLS=false \
atakanemree/qa-mcp:1.0.0
🔒 Güvenlik
| Değişken | Varsayılan | Açıklama |
|---|---|---|
ENABLE_WRITE_TOOLS | false | Jira/Xray yazma tool'larını etkinleştirir |
LOG_LEVEL | info | Log seviyesi (debug, info, warning, error) |
AUDIT_LOG_ENABLED | true | Audit log'u etkinleştirir |
HTTP_ENABLED | false | HTTP transport'u etkinleştirir |
HTTP_PORT | 8080 | HTTP port |
🗺️ Yol Haritası
- v1.0 - MVP: generate, lint, to_xray, compose
- v1.1 - Policy/guardrails, audit logs
- v1.2 - Jira/Xray sync (read-only)
- v2.0 - HTTP transport, OAuth
📄 License / Lisans
MIT License - Copyright (c) 2024-2026 Atakan Emre
🤝 Contributing / Katkıda Bulunma
- Fork the repository / Fork yapın
- Create feature branch / Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Commit your changes / Commit yapın (
git commit -m 'Add amazing feature') - Push to branch / Push yapın (
git push origin feature/amazing-feature) - Open a Pull Request / Pull Request açın
👤 Developer / Geliştirici
Atakan Emre
- GitHub: @Atakan-Emre
- Repository: McpTestGenerator
