testlink-mcp
testlink-mcp
Ein KI-freundlicher, sicherheitsorientierter Model-Context-Protocol-Server für TestLink 1.9.20. Er stellt normalisierte Discovery- und Analyse-Tools, begrenzte Cursor-Paginierung, strukturierte Ausgaben und Schreibvorgänge mit Vorschau vor der Übernahme über stdio bereit.
Dieses Repository ist eine saubere Implementierung auf Basis der öffentlichen XML-RPC-Schnittstelle von TestLink und des öffentlichen MCP-SDK. Es besteht keine Abhängigkeit von einem privaten TestLink-Paket oder einem privaten Quellbaum.
Highlights
Start ohne Anmeldedaten, sodass MCP-Clients alle Tools, Ressourcen und Prompts entdecken können.
Expliziter deterministischer Demo-Modus für Evaluierung und Onboarding.
structuredContent,outputSchema, Tool-Anmerkungen, Cursor-Paginierung und stabile Fehlercodes.Nur Metadaten zu Anhängen; Anhangsinhalte und Base64-Payloads werden entfernt.
Schreibvorgänge sind standardmäßig deaktiviert. Es gibt kein Lösch-Tool.
Jede Übernahme erfordert
confirm: true, eine nicht abgelaufene 10-Minuten-Vorschau und einen unveränderten Server-Snapshot.Nebenwirkungsbehaftete Aufrufe werden niemals automatisch wiederholt; Übernahmeversuche werden in einem geschwärzten Vorgangsprotokoll festgehalten.
Die Laufzeitumgebung blockiert nicht unterstützte/EOL-ungerade Node-Versionen und Sicherheits-Patch-Level unterhalb der festgelegten Mindestanforderung.
Related MCP server: TestRail MCP Server
Voraussetzungen
Node.js
^22.23.2 || ^24.18.1 || ^26.5.1TestLink 1.9.20 mit aktivierter XML-RPC-API
Die Entwicklungs- und Container-Basisversion ist Node 24.19.0 LTS. CI läuft zusätzlich mit Node 22.23.2 und 26.7.0.
Schnellstart
nvm use
npm ci
npm run build
TESTLINK_DEMO_MODE=true node dist/cli.jsZukünftiger npm-Aufruf nach der Veröffentlichung:
npx -y testlink-mcp@1.0.0MCP-Client-Konfiguration:
{
"mcpServers": {
"testlink": {
"command": "npx",
"args": ["-y", "testlink-mcp@1.0.0"],
"env": {
"TESTLINK_URL": "https://testlink.example.com/testlink",
"TESTLINK_DEV_KEY": "your-testlink-dev-key"
}
}
}
}Setzen Sie keine echten Anmeldedaten in versionierte Dateien. Kopieren Sie .env.example in eine ignorierte .env-Datei oder injizieren Sie Umgebungsvariablen über Ihren MCP-Client/Secret-Manager.
Tools
Workflow | Tool | Zweck |
Start |
| Prüft Konfiguration, Kompatibilität, Demo-Modus und Schreibrichtlinie |
Entdecken |
| Listet Projekte auf |
Entdecken |
| Listet Pläne in einem Projekt auf |
Entdecken |
| Listet Builds in einem Plan auf |
Entdecken |
| Geht eine Suite-Ebene weiter |
Analysieren |
| Durchsucht Fälle in einem begrenzten Projekt-/Suite-Bereich |
Analysieren |
| Ruft einen normalisierten Fall ab |
Analysieren |
| Ruft sichere Anhangsmetadaten ab |
Analysieren |
| Untersucht Anforderungs- und Planabdeckung |
Analysieren |
| Untersucht aktuelle Ausführungsnachweise |
Validieren |
| Findet unvollständige oder mehrdeutige Fallinhalte |
Vorschau |
| Vorschau für Erstellen/Aktualisieren und Planzuordnungen |
Übernehmen |
| Übernimmt eine unveränderte bestätigte Synchronisationsvorschau |
Vorschau |
| Vorschau für bestanden/fehlgeschlagen/blockiert-Meldungen |
Übernehmen |
| Übernimmt eine unveränderte bestätigte Ergebnisvorschau |
Alle Tools geben Folgendes zurück:
{
"ok": true,
"data": {},
"meta": {
"source": "testlink",
"requestId": "..."
}
}Fehler verwenden ok: false mit { code, message, retryable, details? }. Konsumenten sollten auf error.code verzweigen, nicht auf den Nachrichtentext.
Sicherer Schreibworkflow
Suchen Sie einen vorhandenen Fall und rufen Sie dessen aktuelle Version ab.
Validieren Sie den gewünschten Testfall.
Rufen Sie das entsprechende Vorschau-Tool auf.
Zeigen Sie
proposedChangesdem Benutzer und holen Sie eine ausdrückliche Bestätigung ein.Rufen Sie die Übernahme mit der Vorschau-ID und
confirm: trueinnerhalb von 10 Minuten auf.Wenn die Übernahme
CONFLICToderPREVIEW_EXPIREDzurückgibt, erstellen und prüfen Sie eine neue Vorschau.
Aktivieren Sie Schreibvorgänge nur in dem Serverprozess, der sie ausführen soll:
TESTLINK_WRITE_ENABLED=true npx -y testlink-mcp@1.0.0Der Standardprotokollpfad ist ~/.local/state/testlink-mcp/operations.jsonl. Sie können ihn mit TESTLINK_LEDGER_PATH überschreiben. Das Protokoll enthält Hashes und geschwärzte Ergebnisse, keine Entwicklerschlüssel.
Konfiguration
Variable | Standard | Bedeutung |
| nicht gesetzt | TestLink-Basis-URL oder vollständiger XML-RPC-Endpunkt |
| nicht gesetzt | Persönlicher TestLink-API-Schlüssel |
|
| Deterministische lokale Demodaten verwenden |
|
| Bestätigte Übernahme-Tools zulassen |
|
| Anforderungs-Timeout, 100–300000 ms |
|
| Maximale Antwortgröße |
| Benutzerstatusverzeichnis | Geschwärztes Vorgangsprotokoll |
| nicht gesetzt | Optionales zusätzliches CA-Bundle; TLS-Überprüfung bleibt aktiviert |
Der Demo-Modus ist explizit und hat Vorrang vor Remote-Konfiguration:
TESTLINK_DEMO_MODE=true TESTLINK_WRITE_ENABLED=true node dist/cli.jsEntwicklung
npm ci
npm run check
npm test
npm run eval
npm run build
npm audit --omit=dev --audit-level=high
npm pack --dry-runDer Offline-Toolauswahl-Eval prüft, dass häufige Benutzerabsichten eindeutig Such-, Validierungs-, Vorschau- und Übernahme-Tools auswählen. Er ist deterministisch und sendet keine Daten an ein externes Modell.
Docker
Das Image läuft als Nicht-Root-Benutzer und verwendet Node 24.19.0. Build ohne Pushen:
docker buildx build --platform linux/amd64,linux/arm64 --tag testlink-mcp:local --output type=oci,dest=testlink-mcp.oci.tar .Zukünftiger Imagename nach Freigabe: ghcr.io/easonlin/testlink-mcp:1.0.0.
Veröffentlichungsrichtlinie
Version 1.0.0 ist veröffentlichungsbereit, aber die Veröffentlichung bleibt eine ausdrückliche Aktion. Der geschützte Veröffentlichungsworkflow erfordert ein signiertes Versions-Tag, führt die vollständigen Test-/Eval-/Audit-/SBOM-/Paketprüfungen erneut aus, veröffentlicht das npm-Paket mit Herkunftsnachweis, veröffentlicht ein Multi-Architektur-GHCR-Image mit SBOM und Herkunftsnachweis, erstellt ein GitHub-Release und veröffentlicht anschließend den validierten MCP-Registry-Eintrag.
Ein separater geschützter Live-Smoke-Workflow prüft das installierte Paket gegen eine echte TestLink-1.9.20-Instanz mit reinen Leseaufrufen. Deren URL und Entwicklerschlüssel müssen als Umgebungsgeheimnisse gespeichert werden und werden niemals in Protokolle geschrieben.
Das Paketmanifest und server.json teilen sich den MCP-Namen io.github.easonlin/testlink-mcp. Die Registry-Validierung kann ohne Veröffentlichung ausgeführt werden:
mcp-publisher validate server.jsonÖffentliche Referenzen
Lizenz
MIT
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that allows interaction with TestRail's core entities (projects, cases, runs, results, datasets) through a standardized protocol compatible with MCP clients like Claude Desktop.2320MIT
- FlicenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that provides integration with TestRail, allowing AI assistants to interact with TestRail projects, test cases, test runs, and results.1,3341
- AlicenseBqualityCmaintenanceA security-focused Model Context Protocol server that enables controlled local tool execution through strict network firewalls, filesystem protections, and rate-limiting policies. It features a plugin-based architecture for progressive tool discovery and includes reference implementations for web searching and bug tracking.15MIT
- AlicenseBqualityAmaintenanceAI-native Model Context Protocol (MCP) server for TestRail. Lets Claude, Cursor, Windsurf, and other AI assistants browse projects, create and update test cases, kick off test runs, and record results through natural-language conversation — with strongly-typed tool schemas and per-project custom field validation that helps LLMs generate valid TestRail requests on the first try.2681730Apache 2.0
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
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/Eason0in/testlink-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server