Skip to main content
Glama
Atakan-Emre

QA-MCP: Test Standardization & Orchestration Server

by Atakan-Emre

testcase.lint

Analyzes test cases to calculate quality scores and provide improvement recommendations for better standardization.

Instructions

Test case'i analiz eder, kalite skoru ve iyileştirme önerileri döner

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
testcaseYesAnaliz edilecek test case
include_improvement_planNoÖncelikli iyileştirme planı dahil mi (default: true)
strict_modeNoDaha katı kurallar uygula (default: false)

Implementation Reference

  • Core handler function that executes the linting logic for a single test case. Parses input, runs LintEngine, computes score, identifies issues, and generates improvement suggestions.
    def lint_testcase(
        testcase: dict,
        include_improvement_plan: bool = True,
        strict_mode: bool = False,
    ) -> dict:
        """
        Lint a test case and return quality analysis.
    
        Args:
            testcase: Test case dictionary to analyze
            include_improvement_plan: Whether to include prioritized improvement plan
            strict_mode: If True, applies stricter validation rules
    
        Returns:
            Dictionary containing:
            - score: Quality score (0-100)
            - grade: Letter grade (A-F)
            - passed: Whether it meets minimum threshold
            - issues: List of found issues
            - suggestions: General improvement suggestions
            - improvement_plan: Prioritized actions (if requested)
        """
        # Initialize engine
        standard = TestCaseStandard.get_default()
        if strict_mode:
            standard.minimum_score = 75  # Higher threshold in strict mode
    
        engine = LintEngine(standard)
    
        # Parse test case
        try:
            tc = TestCase(**testcase)
        except Exception as e:
            return {
                "score": 0,
                "grade": "F",
                "passed": False,
                "issues": [
                    {
                        "severity": "error",
                        "field": "structure",
                        "rule": "valid_structure",
                        "message": f"Test case yapısı geçersiz: {str(e)}",
                        "suggestion": "Test case'in gerekli alanları içerdiğinden emin olun",
                    }
                ],
                "suggestions": ["Test case yapısını QA-MCP standardına göre düzeltin"],
                "improvement_plan": [],
                "error": str(e),
            }
    
        # Run lint
        result: LintResult = engine.lint(tc)
    
        # Build response
        response = {
            "score": result.score,
            "grade": result.grade,
            "passed": result.passed,
            "issues": [
                {
                    "severity": issue.severity.value,
                    "field": issue.field,
                    "rule": issue.rule,
                    "message": issue.message,
                    "suggestion": issue.suggestion,
                }
                for issue in result.issues
            ],
            "suggestions": result.suggestions,
        }
    
        # Add improvement plan if requested
        if include_improvement_plan:
            response["improvement_plan"] = engine.get_improvement_plan(result)
    
        # Add summary statistics
        response["summary"] = {
            "total_issues": len(result.issues),
            "errors": sum(1 for i in result.issues if i.severity.value == "error"),
            "warnings": sum(1 for i in result.issues if i.severity.value == "warning"),
            "info": sum(1 for i in result.issues if i.severity.value == "info"),
            "minimum_score": standard.minimum_score,
        }
    
        return response
  • Registers the 'testcase.lint' tool with the MCP server in the list_tools() function, specifying name, description, and input schema.
    Tool(
        name="testcase.lint",
        description="Test case'i analiz eder, kalite skoru ve iyileştirme önerileri döner",
        inputSchema={
            "type": "object",
            "properties": {
                "testcase": {
                    "type": "object",
                    "description": "Analiz edilecek test case",
                },
                "include_improvement_plan": {
                    "type": "boolean",
                    "description": "Öncelikli iyileştirme planı dahil mi (default: true)",
                },
                "strict_mode": {
                    "type": "boolean",
                    "description": "Daha katı kurallar uygula (default: false)",
                },
            },
            "required": ["testcase"],
        },
    ),
  • JSON Schema defining the input parameters for the 'testcase.lint' tool: required testcase object and optional flags for improvement plan and strict mode.
    inputSchema={
        "type": "object",
        "properties": {
            "testcase": {
                "type": "object",
                "description": "Analiz edilecek test case",
            },
            "include_improvement_plan": {
                "type": "boolean",
                "description": "Öncelikli iyileştirme planı dahil mi (default: true)",
            },
            "strict_mode": {
                "type": "boolean",
                "description": "Daha katı kurallar uygula (default: false)",
            },
        },
        "required": ["testcase"],
    },
  • Dispatch handler in the server's call_tool() function that invokes the lint_testcase implementation for 'testcase.lint' requests.
    elif name == "testcase.lint":
        result = lint_testcase(
            testcase=arguments["testcase"],
            include_improvement_plan=arguments.get("include_improvement_plan", True),
            strict_mode=arguments.get("strict_mode", False),
        )
        audit_log(name, arguments, f"Lint score: {result.get('score', 0)}")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Atakan-Emre/McpTestGenerator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server