genxevo-selenium
GenXEvo AI Automation Agent — Python Selenium
Ein MCP-Server, der einem KI-Coding-Agenten zuverlässige Augen und Hände für Python + Selenium-UI-Automatisierungstechnik gibt — deterministische Fähigkeiten, strukturierte Beweise, erzwungene Sicherheitsgrenzen und überprüfbare Ergebnisse.
Das Problem
Fragen Sie ein beliebiges Sprachmodell, einen fehlschlagenden Selenium-Test zu reparieren, und es wird einen selbstbewussten, plausiblen, falschen XPath produzieren.
Es muss. Es kann die Seite nicht sehen, es kann die Testausgabe nicht sehen, und es kann normalerweise nicht einmal die tatsächliche Form des Projekts sehen — mit welchem Interpreter die Suite läuft, welcher Runner sie einsammelt, wo die Page Objects tatsächlich leben. Es füllt die Lücke mit Sprachgewandtheit.
GenXEvo existiert, um die Lücke zu schließen, damit das Modell etwas Wahres zum Nachdenken hat.
Related MCP server: UI Debugger MCP
Das Prinzip
Beweis vor Veränderung. Beweis vor Erfolg.
Der Agent erfindet nie einen Locator; er beobachtet einen. Er erklärt nie einen Fix; er beweist einen mit einem Lauf, der per Kennung mit dem Fehler korreliert ist, den er zu reparieren behauptet. Jede Fähigkeit liefert Beweise mit einer expliziten Vertrauensstufe zurück, jede Schlussfolgerung trägt die Signale, die sie erzeugt haben, und jedes Ergebnis sagt in einem maschinenlesbaren Feld, ob es erfolgreich war — denn ein Agent, der Erfolg nicht von Misserfolg unterscheiden kann, wird selbstbewusst eine Reparatur melden, die er nie verifiziert hat, und dieses Ergebnis ist schlimmer, als gar nicht zu helfen.
Was das ist und was nicht
Ist | Eine MCP-Fähigkeitsebene um den UI-Automatisierungstechnik-Workflow, den Sie bereits ausführen |
Ist nicht | Ein Test-Framework, ein Selenium-Wrapper, ein Ersatz für pytest oder eine eigene KI |
In diesem Server steckt kein Modell. Das KI-Modell denkt nach. GenXEvo ist deterministisch: Es liest, was tatsächlich auf der Festplatte liegt, und steuert später einen echten Browser und führt echte Tests aus und liefert strukturierte Fakten zurück. Wenn es etwas nicht weiß, sagt es das, mit einer Vertrauensstufe.
Status — ehrlich
Dies ist Phase 1A: das Fundament und genau zwei wirklich funktionierende Fähigkeiten.
Gebaut und getestet | Ergebnisvertrag, Fehlervokabular, Beweismodell, Framing nicht vertrauenswürdiger Inhalte, Konfiguration, Pfad-Eindämmung, Geheimnis-Schwärzung, Testauswahl-Validierung, Laufmodell, Fähigkeitskatalog, Fähigkeits-Invoker, MCP-Adapter |
Funktionierende MCP-Tools |
|
Entworfen, katalogisiert, NICHT aufrufbar | 15 weitere Fähigkeiten, jede mit ihrer Lieferphase veröffentlicht |
Nicht gebaut | Browsersteuerung, Testausführung, Reparatur, Verifikation |
In diesem Repository gibt es keine Stubs. Eine geplante Fähigkeit ist in genxevo_agent_status sichtbar, damit ein Agent um sie herum planen kann, und ist nicht als Tool registriert, damit ein Agent sie nie aufrufen kann. Eine Fake-Implementierung ist schlimmer als eine ehrliche Abwesenheit, weil sie dem Agenten etwas Falsches beibringt.
Siehe docs/roadmap.md für das, was jede Phase liefert, und ihre Exit-Kriterien.
Schnellstart
Voraussetzungen
Python 3.11, 3.12 oder 3.13
Ein Python-Automatisierungsprojekt, an dem der Agent arbeiten soll
Die 3.11-Untergrenze ist eine technische Entscheidung, keine modische:
tomllibwurde in 3.11 in die Standardbibliothek aufgenommen, und es ist das, was die Projekterkennungpyproject.tomlohne einen Drittanbieter-Parser im Kern parsen lässt. Auf 3.10 wäre dafürtomlierforderlich. Siehe ADR-001.
Installieren
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -e .Stellen Sie sicher, dass es startet — beachten Sie, dass das Banner auf stderr geht, weil stdout zum MCP-Transport gehört:
genxevo-selenium-agent --versionMit einem MCP-Client verbinden
Kopieren Sie .mcp.json.example und zeigen Sie mit --workspace auf Ihr Automatisierungsprojekt:
{
"mcpServers": {
"genxevo-selenium": {
"command": "C:\\path\\to\\your\\.venv\\Scripts\\python.exe",
"args": [
"-m", "genxevo_selenium_agent",
"--workspace", "C:\\path\\to\\your\\automation-project"
]
}
}
}Den Interpreter explizit zu benennen ist die zuverlässige Form auf jeder Plattform: Ein Konsolenskript lebt in einer virtuellen Umgebung, und ein MCP-Client erbt Ihre aktivierte Shell nicht.
Vollständige Anweisungen für Claude Code, VS Code und PyCharm: docs/installation.md.
Konfigurieren (optional)
Eine fehlende Konfigurationsdatei ist kein Fehler — die Standardwerte sind die sichere Konfiguration. Wenn Sie etwas ändern möchten, legen Sie genxevo.config.toml im Workspace-Root ab:
version = 1
[execution]
enabled = false # test execution is off until you turn it on
require_selection = true # never run the whole suite by accident
[security]
redact_secrets = trueJede Einstellung, ihr Standardwert und ihre Begründung: docs/configuration.md.
Architektur
AI MODEL (all reasoning lives here)
│ MCP · JSON-RPC over stdio
▼
┌──────────────────────────────────────────────────────────┐
│ genxevo_selenium_agent.mcp_server THIN ADAPTER │
│ tool names · descriptions · annotations · stderr logging │
│ every tool function holds no logic │
└──────────────────────────────────────────────────────────┘
│
┌──────────────────────────────────────────────────────────┐
│ genxevo_selenium_agent.core THE PRODUCT │
│ standard library + one typing-only shim, and nothing else │
│ │
│ capabilities runtime · invoker · catalog · 2 built │
│ discovery manifests · runners · venvs · page objects │
│ security paths · redaction · selection · globs │
│ contracts ToolResult · AgentError · Evidence │
│ runs RunId · RunOutcome · FileRunRegistry │
└──────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
real project real browser (1C) real test runs (1D)Schichtenregel: Verhalten lebt nie im Adapter. Eine Tool-Funktion kann nicht über einen MCP-Client unit-getestet werden, also darf nichts, was falsch sein könnte, in einem leben.
Der Ergebnisvertrag
Jede Fähigkeit gibt dieselbe Hülle zurück, und ein Agent verzweigt auf status, nie auf Prosa:
{
"contractVersion": "1.0",
"status": "partialSuccess", // one of nine values — see below
"operation": "project.discover",
"summary": "…one sentence for a human…",
"data": { }, // shape documented per capability
"warnings": [ { "code": "…", "message": "…", "detail": "…" } ],
"error": null, // present whenever status is not succeeding
"evidence": [ { "id": "…", "kind": "…", "trust": "trusted|untrusted", … } ],
"nextActions": [ { "tool": "…", "reason": "…" } ],
"durationMs": 41,
"startedAt": "2026-08-22T09:15:00Z",
"safeToRetry": true
}Die neun Status: success · partialSuccess · failure · validationError ·
configurationError · blocked · timeout · cancelled · skipped
Jeder ist eine eigene Entscheidung, die ein Agent treffen muss. Nichts anderes steht auf der Liste.
Da die Tools mit einem TypedDict annotiert sind, wird dieser gesamte Vertrag — einschließlich des status-Enums — in tools/list als outputSchema jedes Tools veröffentlicht. Ein Agent lernt, wie man ein Ergebnis liest, bevor er irgendetwas aufruft.
Invarianten werden im Code erzwungen, nicht durch Konvention: Ein erfolgreicher Status trägt nie einen Fehler, ein fehlgeschlagener immer, status wird abgeleitet aus der Kategorie des Fehlers, sodass die beiden nicht widersprechen können, und ein partialSuccess kann nicht konstruiert werden ohne eine Warnung, die ihn erklärt.
Sicherheitshaltung
GenXEvo liest nicht vertrauenswürdige Inhalte, übergibt sie einem Sprachmodell und wird diesem Modell später Datei-Schreib- und Code-Ausführungsfähigkeiten geben. Die Designannahme ist, dass das Modell irgendwann überredet wird, etwas zu verlangen, das es nicht haben sollte, und dass der Server, nicht das Modell, sich weigert.
Kontrolle | Was sie tut |
Explizite Workspace-Roots | Nie abgeleitet. Nicht konfiguriert bedeutet verweigern, mit dem Abhilfemittel |
Pfad-Eindämmung | Strukturell ablehnen → kanonisieren → dann eindämmen → Deny-Liste → Absicht. Fähigkeiten nehmen einen |
Symlink-Auflösung |
|
Deny-Liste | Python-bewusst: |
Geheimnis-Schwärzung | Erkennung von Schlüsselnamen und Wertformen, einschließlich Python-Quellcode-Zuweisungen wie |
Es wird nie Projektcode ausgeführt |
|
Framing nicht vertrauenswürdiger Inhalte | Ausbruchssicher — ein Payload kann keines der Trennzeichen fälschen |
Auswahl-Validierung | Eine Auswahl, die mit |
Sichere Standardwerte | Ausführung aus, Schwärzung an, Auswahl erforderlich |
Alles begrenzt | Timeouts, kooperative Abbrüche, Scan-Grenzen, Reparaturzyklus-Obergrenze |
Lauf-Korrelation | Veraltete Artefakte können nicht als Beweis für einen Fix gelesen werden |
Fehlerhygiene | Kein Traceback erreicht je den Agenten; Ablehnungen spiegeln nie den absoluten Workspace-Pfad wider |
Restrisiken sind dokumentiert, nicht versteckt — siehe SECURITY.md und
docs/security.md. Framing verhindert keine Beeinflussung, Testausführung ist von Natur aus beliebiger Code, stdio-MCP hat keine Authentifizierung, und Schwärzung ist heuristisch.
Die GenXEvo-Familie
Dies ist das zweite Produkt in einer Familie unabhängiger Agenten. Jeder ist separat klonbar und installierbar; was sie teilen, ist ein Vertrag, kein Build.
Selenium | Playwright | |
C# | geplant | |
Python | dieses Repository | geplant |
Java · JavaScript · TypeScript | geplant | geplant |
Was über Sprachen hinweg portiert wird, ist die JSON-Form, das Neun-Status-Vokabular, die Fehlercodes, das Laufkennungsformat, das Beweismodell und die Sicherheitsklassen. Ein Agent, der einen GenXEvo-Server gelernt hat, sollte den nächsten beim ersten Kontakt erkennen.
Was nicht geteilt wird, ist die Implementierung. Dieses Produkt ist von Natur aus Python-nativ: TypedDict-Ausgabeschemas, tomllib-Konfiguration, dataclasses statt eines Serialisierungs-Frameworks, kooperative Abbrüche über asyncio.to_thread und ein Erkennungsmodell, das um pyproject.toml, pyvenv.cfg und die eigenen Sammelregeln von pytest herum gebaut ist.
Dokumentation
Dokument | Inhalt |
Pakete, Schichten, Domänenmodell, Vertrag, Nachweise, Läufe, Nebenläufigkeit | |
Claude Code, VS Code, PyCharm; die Interpreter-Falle | |
Jede Einstellung, Standardwert und Begründung; Rangfolge; Validierung | |
Vollständiger Vertrag — 2 im Detail implementiert, 15 geplant mit ihren Garantien | |
Der Engineering-Kreislauf, Regeln für Agenten, ein durchgearbeitetes Beispiel, Anti-Patterns | |
Bedrohungsmodell, Kontrollen mit Begründung, Restrisiken | |
Architektur-Entscheidungsprotokolle, jeweils verknüpft mit dem Fehler, der sie motiviert hat | |
Phasen 1A–3 mit Exit-Kriterien und was außerhalb des Umfangs liegt | |
Konkrete Fehlermodi und deren Behebungen | |
Wie man mit dem Agenten spricht, mit vollständigen ausgearbeiteten Prompts | |
Funktionierende Konfigurationsdateien |
Entwicklung
pip install -e ".[dev]"
ruff check . # lint
ruff format --check . # format
mypy # strict type checking
pytest # the full suiteDer Standard, festgehalten in CONTRIBUTING.md: jede Sicherheitskontrolle wird mit Tests ausgeliefert, die den Angriff bestätigen, nicht nur den Happy Path, und genxevo_selenium_agent.core importiert die Standardbibliothek und genau einen Typisierungs-Shim — erzwungen durch einen Test, der jedes Modul mit ast parst, nicht durch Konvention. Die einzige Ausnahme ist typing_extensions, und ADR-002 erklärt, warum die Alternative ein Server ist, der auf Python 3.11 nicht startet.
Autor
Rajeshkumar Muthu — Senior QA Automation Agentic AI Engineer.
Lizenziert unter der MIT-Lizenz.
This server cannot be installed
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
- AlicenseAqualityBmaintenanceEnables AI assistants to write and debug integration tests by providing live access to DOM structure and executing code directly in test environments.55410MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to autonomously debug UIs by delegating high-level stories to a small agent that drives browsers or desktop apps and reports structured pass/fail findings with evidence.1492MIT
- AlicenseBqualityCmaintenanceEnables AI agents to control a browser with self-healing locators that automatically recover when selectors change, allowing reliable web automation through natural language.7MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to autonomously interact with and test web applications in a real browser, providing DOM/Accessibility tree extraction, runtime telemetry, screenshot capture, and Markdown test reports.1MIT
Related MCP Connectors
Browser-backed QA with evidence and fix-ready reports for coding agents.
Proves AI-generated Python does what you asked: lint, types, security, sandbox run, exact fixes.
AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.
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/genxevo/genxevo-ai-automation-agent-python-selenium'
If you have feedback or need assistance with the MCP directory API, please join our Discord server