karate-graph-mcp
🚀 Karate Feature Graph Analyzer
Ein leistungsstarkes MCP-Tool (Model Context Protocol) zur Analyse von Karate-Framework-Feature-Dateien und zur Generierung interaktiver Abhängigkeitsgraphen.
📋 Inhaltsverzeichnis
Related MCP server: GID MCP Server
✨ Funktionen
Kernfähigkeiten
🔍 Feature-Datei-Parsing - Parsen von Karate-Feature-Dateien mit Gherkin-Syntax
🎯 Abhängigkeitsanalyse - Extrahieren und Analysieren von Abhängigkeiten (Workflows, APIs, Seiten, DB)
📊 Interaktive Visualisierung - Generierung ansprechender HTML-Graphen mit Legende
🎫 Jira-Integration - Extrahieren und Nachverfolgen von Jira-Tags (@PROJ-123)
🔄 Auswirkungsanalyse - Identifizierung betroffener Testfälle bei Änderungen an Komponenten
📈 Multi-Projekt-Unterstützung - Verwalten und Analysieren mehrerer Projekte
💾 Export/Import - Exportieren von Graphen in JSON/GraphML-Formate
⚡ Leistungsoptimiert - Schnelle Analyse durch Caching und Indizes
Visualisierungsfunktionen
🎨 Farbcodierte Knoten nach Typ (Test, Workflow, API, Seite, Datenbank)
🔍 Interaktive Tooltips mit Metadaten (Dateipfad, Zeilennummern, Jira-Tags)
🖱️ Klicken zum Hervorheben von Verbindungen und Abhängigkeiten
📊 Legende in der oberen rechten Ecke zur Erläuterung von Farben und Formen
🔄 Physik-Simulation für automatisches Layout
🎯 Auswirkungsansicht zur Hervorhebung geänderter Komponenten und betroffener Tests
🚀 Schnellstart
1. Abhängigkeiten installieren
pip install -e .
pip install pyvis # For visualization2. Demo ausführen
# Set UTF-8 encoding (Windows)
$env:PYTHONIOENCODING="utf-8"
# Run large project demo
python test_large_project.py3. Ergebnisse anzeigen
cd output
start ecommerce-platform_full.html📦 Installation
Voraussetzungen
Python 3.8 oder höher
pip Paketmanager
Installation aus dem Quellcode
# Clone repository
git clone <repository-url>
cd karate-feature-graph-analyzer
# Install dependencies
pip install -e .
# Install visualization library
pip install pyvis
# Verify installation
pytest tests/ -vAbhängigkeiten
Kernabhängigkeiten (automatisch installiert):
networkx- Graph-Operationenhypothesis- Eigenschaftsbasiertes Testenpydantic- Datenvalidierung
Optionale Abhängigkeiten:
pyvis- Interaktive Visualisierungen
💻 Verwendung
Grundlegende Verwendung
from karate_graph_analyzer.mcp_interface.mcp_tool import KarateGraphAnalyzerTool
# Initialize tool
tool = KarateGraphAnalyzerTool()
# Register project
tool.register_project(
name="my-project",
root_path="/path/to/karate/project",
feature_file_patterns=["**/*.feature"]
)
# Analyze project
analysis = tool.analyze_project("my-project")
print(f"Found {analysis['statistics']['total_nodes']} nodes")
# Query dependencies
deps = tool.query_dependencies("tc_0001", transitive=True)
print(f"Found {deps['count']} dependencies")
# Impact analysis
impact = tool.impact_analysis("api_0001")
print(f"Affected: {impact['total_count']} test cases")
# Export graph
export = tool.export_graph("my-project", format="json")
with open("graph.json", "w") as f:
f.write(export['data'])Visualisierung
from karate_graph_analyzer.visualization.graph_visualizer import GraphVisualizer
# Get graph
graph = tool.graphs["my-project"]
# Create visualizer
visualizer = GraphVisualizer(graph)
# Render full graph
visualizer.render("output/graph.html", height="900px")
# Render impact view
visualizer.render_impact_view(
changed_component_id="api_0001",
affected_test_case_ids=["tc_0001", "tc_0002"],
output_path="output/impact.html"
)Befehlszeile (via Skript)
# Analyze large project
python test_large_project.py
# Output will be in output/ directory:
# - ecommerce-platform_full.html (full graph)
# - ecommerce-platform_impact.html (impact view)
# - ecommerce-platform_graph.json (graph data)
# - LARGE_PROJECT_ANALYSIS_REPORT.md (detailed report)📁 Projektstruktur
karate-feature-graph-analyzer/
├── src/karate_graph_analyzer/
│ ├── models.py # Data models
│ ├── parser/ # Feature file parsing
│ │ └── feature_parser.py
│ ├── graph/ # Graph construction
│ │ └── graph_builder.py
│ ├── analyzer/ # Dependency analysis
│ │ └── dependency_analyzer.py
│ ├── mcp_interface/ # MCP protocol
│ │ └── mcp_tool.py
│ ├── storage/ # Project registry
│ │ └── project_registry.py
│ ├── cache/ # AST caching
│ │ └── cache_manager.py
│ ├── visualization/ # Graph visualization
│ │ └── graph_visualizer.py
│ └── logging_config.py # Logging setup
│
├── tests/
│ ├── unit/ # 306 unit tests
│ ├── integration/ # Integration tests
│ └── fixtures/ # Test data
│
├── output/ # Generated files
│ ├── ecommerce-platform_full.html
│ ├── ecommerce-platform_impact.html
│ ├── ecommerce-platform_graph.json
│ ├── LARGE_PROJECT_ANALYSIS_REPORT.md
│ └── README.md
│
├── test_project_demo/ # Small demo project
├── test_project_large/ # Large demo project (e-commerce)
├── examples/ # Usage examples
├── docs/ # Documentation
│ ├── API.md
│ └── jira_tag_extraction.md
│
├── test_large_project.py # Demo script
├── pyproject.toml # Project config
├── pytest.ini # Test config
└── README.md # This file📚 Dokumentation
Kerndokumentation
API-Dokumentation - Vollständige API-Referenz für alle MCP-Funktionen
Jira-Tag-Extraktion - Wie Jira-Tags extrahiert werden
Analysebericht - Detaillierte Analyse des Demoprojekts
Ausgabe-Leitfaden - Verwendung der generierten Visualisierungen
Spezifikationen
Anforderungen - Funktionale Anforderungen
Design - Architektur und Design
Aufgaben - Implementierungsaufgaben
🎯 Beispiele
Beispiel 1: Demoprojekt analysieren
# Run demo
python test_large_project.py
# View results
cd output
start ecommerce-platform_full.htmlWas Sie sehen werden:
84 Knoten (73 Testfälle, 6 Workflows, 3 Seiten, 1 API, 1 DB)
26 Kanten (Abhängigkeiten)
Interaktiver Graph mit Legende
Farbcodierung nach Typ
Hover-Tooltips mit Metadaten
Beispiel 2: Auswirkungsanalyse
# Find what tests are affected by API change
impact = tool.impact_analysis("api_0001")
print(f"Changed: {impact['changed_component']}")
print(f"Affected: {impact['total_count']} test cases")
for tc in impact['affected_test_cases']:
print(f" - {tc['name']} (depth: {tc['depth']})")
if tc['jira_tags']:
print(f" Jira: {', '.join(tc['jira_tags'])}")Ausgabe:
Changed: api_0001
Affected: 14 test cases
- Successful login (depth: 1)
Jira: @AUTH-101
- Get user profile (depth: 1)
Jira: @USER-101
...Beispiel 3: Gemeinsame Komponenten finden
# Find reusable components across projects
common = tool.find_common_components(["project1", "project2"])
for comp in common['components']:
print(f"{comp['component_type']}: {comp['identifier']}")
print(f" Used in {comp['usage_count']} projects")
print(f" Projects: {', '.join(comp['projects'])}")🧪 Testen
Alle Tests ausführen
# Run all tests
pytest tests/ -v
# Run specific test suite
pytest tests/unit/ -v
pytest tests/integration/ -v
# Run with coverage
pytest tests/ --cov=src/karate_graph_analyzer --cov-report=htmlTeststatistiken
Gesamtzahl der Tests: 306
Bestanden: 306 (100%)
Fehlgeschlagen: 0
Übersprungen: 1
Abdeckung: Umfassend
Testkategorien
Unit-Tests (tests/unit/) - Testen einzelner Komponenten
Integrationstests (tests/integration/) - Testen von Komponenteninteraktionen
Eigenschaftstests (optional) - Eigenschaftsbasiertes Testen mit Hypothesis
🎨 Visualisierungsleitfaden
Die Legende verstehen
Wenn Sie eine Visualisierungs-HTML-Datei öffnen, finden Sie in der oberen rechten Ecke die Legende:
📊 Legend
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🟢 Test Case - Scenario hoặc test
🔵 Workflow - Reusable workflow
🟠 API - API endpoint
🟣 Page - Page object
🔴 Database - Database operation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 Tip: Hover để xem chi tiết
🖱️ Click để highlight connections
🔍 Scroll để zoom in/outInteraktive Funktionen
Hover - Bewegen Sie die Maus über einen Knoten, um ein Tooltip zu sehen mit:
Knotenname
Knotentyp
Dateipfad
Zeilennummer
Jira-Tags
Klicken - Klicken Sie auf einen Knoten, um Folgendes hervorzuheben:
Den ausgewählten Knoten
Alle verbundenen Knoten
Alle verbindenden Kanten
Zoomen - Scrollen Sie mit dem Mausrad zum Vergrößern/Verkleinern
Verschieben - Ziehen Sie den Hintergrund, um sich zu bewegen
Neupositionieren - Ziehen Sie Knoten, um das Layout neu anzuordnen
🔧 Konfiguration
Parser-Konfiguration
from karate_graph_analyzer.models import ParserConfig
config = ParserConfig(
jira_tag_patterns=[
r'@[A-Z]+-\d+', # @PROJ-123
r'@[a-z]+-\d+', # @proj-123
r'@[A-Z]+_\d+', # @PROJ_123
],
workflow_directories=['workflows', 'common'],
page_object_directories=['pages', 'page-objects'],
variable_patterns=[r'\$\{(\w+)\}'],
api_extraction_rules={
'extract_from_variables': True,
'extract_from_strings': True,
}
)
# Use custom config
tool.register_project(
name="my-project",
root_path="/path/to/project",
parser_config=config
)📊 Wichtige Kennzahlen
Leistung
Analysezeit: < 1 Sekunde für 4 Dateien
Abfragezeit: < 10ms für Abhängigkeitsabfragen
Auswirkungsanalyse: < 50ms für 6 betroffene Tests
Exportzeit: < 100ms für 9 Knoten
Visualisierung: < 1 Sekunde zum Rendern
Skalierbarkeit
Getestet mit: 84 Knoten, 26 Kanten
Unterstützt: 1000+ Knoten (geschätzt)
Speicher: Effizient durch Caching
Speicherung: JSON-Format, ~500 Bytes pro Knoten
🤝 Mitwirken
Beiträge sind willkommen! Bitte befolgen Sie diese Richtlinien:
Forken Sie das Repository
Erstellen Sie einen Feature-Branch (
git checkout -b feature/amazing-feature)Commiten Sie Ihre Änderungen (
git commit -m 'Add amazing feature')Pushen Sie auf den Branch (
git push origin feature/amazing-feature)Öffnen Sie einen Pull Request
Entwicklungseinrichtung
# Clone your fork
git clone <your-fork-url>
cd karate-feature-graph-analyzer
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run linter
flake8 src/
# Format code
black src/📝 Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die LICENSE-Datei für Details.
🙏 Danksagungen
Karate Framework - Für das großartige BDD-Testframework
NetworkX - Für Graph-Operationen
Pyvis - Für interaktive Visualisierungen
Hypothesis - Für eigenschaftsbasiertes Testen
📞 Support
Dokumentation
Beispiele
Probleme
Falls Sie auf Probleme stoßen:
Überprüfen Sie die Dokumentation
Überprüfen Sie die Beispiele
Öffnen Sie ein Issue auf GitHub
🎉 Schnelle Links
📖 API-Dokumentation - Vollständige API-Referenz
📊 Analysebericht - Detaillierte Analyse
🎨 Visualisierungen - Generierte Graphen
🧪 Tests - Test-Suite
📝 Spezifikationen - Anforderungen & Design
Erstellt mit ❤️ unter Verwendung von Spec-Driven Development
Status: ✅ Produktionsbereit Version: 1.0.0 Zuletzt aktualisiert: 30. April 2026
🚀 Viel Spaß beim Analysieren!
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceAnalyzes codebases to generate dependency graphs and architectural insights across multiple programming languages, helping developers understand code structure and validate against architectural rules.66119MIT
- AlicenseAqualityDmaintenanceEnables AI to analyze, query, and manage a graph-based representation of software architecture for impact analysis, dependency tracking, and design.20121AGPL 3.0
- FlicenseNot gradedqualityAmaintenanceEnables querying a Neo4j-based code graph for Python projects, providing tools for code structure, call graph, and test coverage analysis.1
- AlicenseNot gradedqualityDmaintenanceAnalyzes GitHub and local repositories to automatically generate visual architectural diagrams such as dependency graphs, class diagrams, and data flow diagrams.2MIT
Related MCP Connectors
Generate SBOMs, scan vulnerabilities, and analyze dependencies from local projects or Git repos.
AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).
IaC attack-path auditor: finds internet-to-crown-jewel chains in Terraform/CFN/K8s.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/duyngo91/karate-graph-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server