Skip to content

Validation Examples

This guide provides practical examples of using the MCP Standards Server validation features.

Basic Validation

Command Line Validation

# Validate a single file
mcp-standards validate src/app.py --standard python-best-practices

# Validate entire directory
mcp-standards validate src/ --recursive

# Validate with specific standards
mcp-standards validate . --standards security,performance

Python API Validation

from src.core.standards import StandardsEngine

# Initialize engine
engine = StandardsEngine()

# Validate code
results = engine.validate_file(
    "src/app.py",
    standards=["python-async-patterns", "security-best-practices"]
)

# Process results
for violation in results.violations:
    print(f"{violation.file}:{violation.line} - {violation.message}")

Custom Validation Rules

Define Custom Rule

# validators/custom_validator.py
from src.analyzers.base import BaseAnalyzer

class CustomValidator(BaseAnalyzer):
    def analyze(self, code: str) -> list:
        violations = []

        # Check for specific patterns
        if "TODO" in code:
            violations.append({
                "rule": "no-todos",
                "message": "Remove TODO comments before committing",
                "severity": "warning"
            })

        return violations

Register Custom Validator

# standards/custom-standard.yaml
standard:
  id: "custom-checks"
  name: "Custom Project Checks"

validators:
  - class: "validators.custom_validator.CustomValidator"
    rules:
      - id: "no-todos"
        enabled: true

Validation Workflows

Pre-commit Hook

#!/bin/bash
# .git/hooks/pre-commit

# Run validation before commit
mcp-standards validate --staged-only

if [ $? -ne 0 ]; then
    echo "Validation failed. Please fix issues before committing."
    exit 1
fi

CI/CD Integration

# .github/workflows/validate.yml
name: Standards Validation

on: [push, pull_request]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run MCP Standards Validation
        run: |
          pip install mcp-standards-server
          mcp-standards validate . --format json > validation-results.json
      - name: Upload results
        uses: actions/upload-artifact@v4
        with:
          name: validation-results
          path: validation-results.json

Advanced Examples

Context-Aware Validation

# Validate with project context
context = {
    "project_type": "web",
    "framework": "django",
    "python_version": "3.11"
}

results = engine.validate_with_context("src/", context)

Batch Validation

# Validate multiple projects
projects = ["project1/", "project2/", "project3/"]

for project in projects:
    results = engine.validate_directory(project)
    report = engine.generate_report(results)

    with open(f"{project}/validation-report.html", "w") as f:
        f.write(report)

Validation Output Formats

JSON Format

{
  "summary": {
    "total_files": 10,
    "files_with_violations": 3,
    "total_violations": 15
  },
  "violations": [...]
}

SARIF Format

For GitHub Code Scanning integration.

HTML Report

Interactive report with filtering and sorting.