// MCP-Tester v1.9.0

MCP-Tester

License: MIT Platforms: Windows, macOS, Linux
Jeden MCP-Server gegen die aktuelle Spec 2026-07-28 prüfen — Skripte, Inspektor, HTTP- und OAuth-Checks, Tasks, Skills und Apps, alles im Terminal.
MCP-Tester Screenshot

Was MCP-Tester auszeichnet.

Jeden MCP-Server testen

Mit einem Befehl zu jedem stdio-, Streamable-HTTP- oder SSE-Server verbinden. Für schnelle Checks keine Konfigurationsdatei nötig.

Inspektor & Quality Score

Prüft Protokollversion, Tool-Definitionen, Icons, Cache-Angaben und Best Practices — ein Score mit konkreten Hinweisen, nutzbar als CI-Gate und als README-Badge.

Automatisierte Test-Skripte

Lesbare .mcp-Skripte mit Variablen und Assertions für Tools, Tasks, Elicitation, Notifications, Skills und Apps — Exit-Code und JSON für CI.

Auf Stand der Spec 2026-07-28

Regelmäßig an die neueste MCP-Spezifikation angepasst; zeigt veraltete Features früh. Was zu welchem Datum geprüft wird, ist dokumentiert.

Vor der Freigabe prüfen

Sehen, was ein fremder Server dem Modell mitgibt: Skills, Oberflächen mit externen Domains und Berechtigungen, Anmeldewege.

Ein Server auf einen Blick

docs schreibt Tools, Parameter, Annotations, Prompts, Resources und instructions eines Servers als Markdown — zum Lesen, für ein LLM oder mit --check als CI-Gate.

OAuth & Auth-Extensions

Geschützte Server testen: OAuth 2.1 mit PKCE, Client Credentials, Enterprise-Login per ID-JAG, Bearer-Token. auth-check zeigt die angebotenen Flows.

HTTP-Konformität

http-check prüft einen Streamable-HTTP-Endpunkt: Pflicht-Header, Fehlercodes, Origin-Prüfung, keine Sessions.

Tasks, Skills & MCP Apps

Die offiziellen Extensions: lang laufende Aufrufe als Task starten und abbrechen, veröffentlichte Skills verifizieren, interaktive Oberflächen prüfen.

Referenz-Server & Go-Pakete

mcp-test-server führt das Protokoll vor, inklusive OAuth; pkg/mcptasks und pkg/mcpskills rüsten Tasks und Skills auf go-sdk-Servern nach.

Profilverwaltung

Mehrere Server in mcp-tester.yml verwalten — mit einem Flag zwischen lokalem Build, Staging und Produktion wechseln.

MCP-Tester ist ein Kommandozeilen-Tool für alle, die MCP-Server bauen oder einsetzen. Es verbindet sich mit jedem MCP-Server – lokal oder remote – und prüft ihn so, wie ein Client ihn sieht: gegen die aktuelle Spezifikation 2026-07-28.

Kein GUI, kein Browser-Plugin. Eine einzige Binary, die das MCP-Protokoll spricht.

Warum MCP-Tester?

Fast täglich erscheinen neue Hosts, Harnesses und Modelle, und die MCP-Spezifikation entwickelt sich laufend weiter. Ein Server, der sie nicht genau einhält, läuft dann oft „plötzlich“ nicht mehr sauber: Aufrufe scheitern bei strikteren Clients, Fehlermeldungen helfen dem Modell nicht weiter, oder es verbrennt unnötig Tokens mit Wiederholungen.

  • Tests schreiben statt klicken. Unit-Tests prüfen die Handler, nicht den Protokollvertrag. .mcp-Testskripte prüfen den Server als Blackbox über den echten Transport – als Gate in CI und Taskfile.
  • Früh wissen, was die nächste Spec verlangt. MCP-Tester wird regelmäßig an die neueste Spezifikation angepasst und zeigt auch veraltete Features wie alte Protokollversionen oder entfernte Methoden. Gerade bei neuen Features wie der Autorisierung lohnt frühes Testen – Fehler dort können gefährlich und teuer werden.
  • Fremde Server vor der Freigabe prüfen. Auch bei Closed-Source-Servern zeigen docs, inspect, skills --verify, apps, auth-check und http-check, was ein Server kann, welche Anweisungen er dem Modell mitgibt, welche Berechtigungen und externen Domains seine Oberflächen verlangen, wie man sich anmeldet und wie sauber er umgesetzt ist – eine Entscheidungshilfe, bevor ein „echtes“ LLM ihn nutzt.
  • Findet auch Fehler im SDK. Weil von außen gegen die Spezifikation geprüft wird, fallen auch Fehler in SDKs auf – bei der Anpassung an 2026-07-28 etwa im offiziellen Go-SDK.

Installation

Binary herunterladen (keine Laufzeitumgebung nötig): die Binary für deine Plattform aus dem Download-Bereich in den PATH legen.

Über Go:

go install github.com/hmsoft0815/mlc_mcptester/cmd/mcp-tester@latest

Über curl (Linux/macOS) – installiert nach ~/.local/bin, ohne sudo:

curl -sSL https://raw.githubusercontent.com/hmsoft0815/mlc_mcptester/main/scripts/install.sh | bash

Für Coding-Agents: mcp-tester agent-skill install bringt Claude Code, Gemini CLI, OpenCode und Codex bei, den Tester zu nutzen – welcher Befehl wofür, wie man .mcp-Skripte schreibt, was in CI zählt. Die Skill-Datei landet im Benutzerverzeichnis des jeweiligen Harness und passt immer zur installierten Version.

Quick Start: Jeden MCP-Server in 60 Sekunden testen

# Server-Profil hinzufügen (hier: offizieller MCP-Everything-Server via npx)
mcp-tester profile add my-server -c "npx -y @modelcontextprotocol/server-everything"

# Server analysieren: Protokoll, Fähigkeiten, Quality Score
mcp-tester inspect -p my-server

# Tools auflisten und eines aufrufen
mcp-tester list -p my-server
mcp-tester call echo -p my-server --args '{"message": "hallo"}'

-c startet einen lokalen stdio-Server, -u verbindet sich mit einem Remote-Server über Streamable HTTP (oder das alte SSE).

Server-Inspektion

inspect prüft Protokollversion, Tool-Definitionen (Namen, Schemas, Titel, Annotations, x-mcp-header), Icons, Cache-Angaben, Extensions und Best Practices und liefert einen Quality Score mit konkreten Hinweisen. Protokollfehler – etwa ein tools/list, das trotz angekündigter Fähigkeit scheitert – beenden den Lauf mit Exit 1.

mcp-tester inspect -p my-server
mcp-tester inspect -u https://mein-server.example.com/mcp --min-score 90   # als CI-Gate
mcp-tester inspect -p my-server --badge docs/mcpcheck.svg                  # Status-Badge fürs README

Muss der Score 100 sein? Nein. Er beruht auf unseren Erfahrungen und muss nicht automatisch eine Änderung auslösen – eine hilfreiche Einschätzung ist er trotzdem. Protokollfehler und FAIL-Meldungen dagegen sind Verstöße gegen MUST-Regeln der Spezifikation.

Fremden Server in zwei Minuten einschätzen

docs liest über das Protokoll alles aus, was ein Server anbietet, und schreibt es als eine Markdown-Datei: Tools mit Parametern und Ergebnisfeldern, Annotations wie readOnlyHint und destructiveHint, Prompts, Resources und die instructions, die der Server dem Modell mitgibt. Das funktioniert mit jedem Server, unabhängig von Sprache und SDK, auch ohne Quellcode.

mcp-tester docs -u https://fremder-server.example/mcp > server.md
mcp-tester inspect -u https://fremder-server.example/mcp

server.md lässt sich in Ruhe lesen oder direkt einem LLM geben: „Was kann dieser Server, welche Tools schreiben oder löschen etwas, wo fehlen Beschreibungen?“ Für eigene Server dient dieselbe Datei als Referenz im Repository; docs --check schlägt in CI fehl, sobald sie nicht mehr zum Server passt.

Automatisierte Test-Skripte

.mcp-Skripte mit einer einfachen, lesbaren Grammatik – für Regressionstests und CI:

# Beispiel: ein Bildgenerator mit dem Tool generate_image
call_tool generate_image prompt:"a red flower"
set_var size $.size
assert_equals $size "512x512"

expect_error call_tool generate_image prompt:""
assert_tool_error
mcp-tester test --script tests/szenario.mcp -p local

Skripte decken Tools, Tasks, Completion, Elicitation, Sampling, Roots, Notifications, Skills und MCP Apps ab. Ein fehlgeschlagener Befehl beendet den Lauf mit Exit 1; --format json liefert eine maschinenlesbare Zusammenfassung. Jedes Ergebnis wird gegen das outputSchema des Tools geprüft – so streng wie das offizielle TypeScript-SDK.

Neu in 1.9: Markdown-Referenz eines Servers

Befehl / Feature Wofür
docs -o docs/mcp-tools.md Schreibt Tools, Prompts, Resources und instructions als Markdown: Parametertabellen in der Reihenfolge des Servers, Ergebnisfelder, Annotations – gelesen über das Protokoll, für jeden Server unabhängig von Sprache und SDK
docs --check docs/mcp-tools.md CI-Gate: Exit 1, sobald die Datei nicht mehr zum Server passt
inspect Nennt Parameter ohne Beschreibung – für das Modell ein Ratespiel

Neu in 1.8: Tasks-Extension prüfen

Befehl / Feature Wofür
tasks Prüft einen Server gegen die Tasks-Extension: Fehlercodes ohne Tool-Aufruf; mit --tool den ganzen Lebenslauf eines Tasks (Statusübergänge, Rückfragen, Abbruch, notifications/tasks)
tasks --other-bearer Eine zweite Identität darf fremde Tasks weder lesen noch beantworten noch abbrechen
inspect Prüft die Fehlercodes der Tasks-Extension mit; MUST-Verstöße kosten jetzt immer Punkte, der Bonus für readOnlyHint gleicht nur noch Qualitätsabzüge aus – manche Scores sinken
Gegenprobe mit TypeScript Der Tester wird zusätzlich gegen einen Server auf dem TypeScript-SDK v2 und gegen den offiziellen Tasks-Client geprüft

Neu in 1.7: weniger Rauschen bei Output-Schemata

Befehl / Feature Wofür
Output-Schema-Hinweise Tools ohne Output-Schema stehen in einer Zeile statt je einer; --hints-per-tool zeigt sie wieder einzeln
inspect --text-only Tools, die bewusst nur Text liefern (Markdown, Quelltext), brauchen kein Output-Schema: kein Hinweis, kein Abzug, offen als INFO ausgewiesen; auch im Profil (text_only:)

Neu in 1.6: Status-Badge, Agent-Skill, Cache-Prüfung

Befehl / Feature Wofür
inspect --badge, --badge-json Status-Badge fürs README: mcpcheck │ spec 2026-07-28 · 95/100 – rot bei Protokollfehlern, als SVG ohne externen Dienst oder als shields.io-Endpoint
agent-skill install Skill-Datei für Claude Code, Gemini CLI, OpenCode und Codex, im Benutzerverzeichnis des jeweiligen Harness
install.sh Installiert nach ~/.local/bin, ohne sudo
inspect --read-resources 1.6.1: Cache-Angaben nach Spec – warnt, wenn nutzerbezogene Inhalte mit Zugangsdaten als public markiert sind und über gemeinsame Caches bei anderen Nutzern landen können
INFO-Meldungen 1.6.1: Hinweise ohne Einfluss auf den Score, etwa zu ttlMs: 0 oder zu veralteten Features (Logging, Sampling, Roots), die ein Server noch nutzt

Neu in 1.4 und 1.5: auf dem Stand der Spezifikation 2026-07-28

Befehl / Feature Wofür
http-check Streamable-HTTP-Endpunkt gegen die Transportregeln prüfen: Pflicht-Header, Fehlercodes, Origin, Sessions
--oauth, --bearer, -H Geschützte Server testen – vollständiger OAuth-2.1-Ablauf mit PKCE, auch ohne Browser für CI
call --task, call_task Tasks-Extension: lang laufende Aufrufe starten, pollen, abbrechen, Eingaben nachreichen
skills --verify Skills-Extension: veröffentlichte Skills auflisten und gegen Manifest, Digests und Frontmatter prüfen
elicit_response, sample_response Multi Round-Trip: Server, die nach Eingaben fragen, in Skripten testen
listen, wait_notification Notifications über subscriptions/listen
complete Argument-Vervollständigung (completion/complete)
auth-check 1.5: zeigt, wie ein Server geschützt ist und welche OAuth-Flows er anbietet; prüft die Metadaten
--oauth-client-credentials, --oauth-enterprise 1.5: Auth-Extensions – Maschine-zu-Maschine und Enterprise-Login per ID-JAG
apps, verify_apps 1.5: MCP Apps – interaktive Oberflächen, externe Domains und angeforderte Berechtigungen vor der Freigabe prüfen

Was MCP-Tester zu welchem Datum prüft, steht in der Spec-Abdeckung.

Geschützte Server

# Wie ist der Server geschützt, welche Anmeldewege bietet er an?
mcp-tester auth-check -u https://example.com/mcp

# Token, OAuth im Browser, Maschine-zu-Maschine, Enterprise-Login
mcp-tester list -u https://example.com/mcp --bearer "$TOKEN"
mcp-tester inspect -u https://example.com/mcp --oauth
mcp-tester list -u https://example.com/mcp --oauth-client-credentials --oauth-client-id svc --oauth-client-secret "$SECRET"
mcp-tester list -u https://example.com/mcp --oauth-enterprise --idp-issuer https://idp.example \
  --idp-client-id app --id-token "$ID_TOKEN" --oauth-client-id app

Transport-Unterstützung

Transport Flag Einsatz
stdio -c "Befehl" Lokale Prozesse, Binaries
Streamable HTTP -u "https://…/mcp" Remote-Server, aktueller Standard
SSE (veraltet) -u "https://…/sse" Ältere Remote-Server

Fehler gefunden – was tun?

Gegen die aktuelle Spezifikation testen und die Meldungen ernst nehmen. Die Ausgabe nennt Methode, Feld, Fehlercode und die verletzte Regel. Moderne LLMs wie Claude oder Gemini machen daraus in der Regel schnell konkrete Vorschläge zur Behebung – einfach die Ausgabe (gern mit --format json) mitgeben.

Referenz-Server

Die Release-Archive auf GitHub enthalten zusätzlich mcp-test-server – eine Referenzimplementierung, die die Möglichkeiten des Protokolls vorführt: Tools mit Output-Schemas, Resources, Prompts, Completion, Elicitation, Sampling, Roots, Notifications, Tasks, Skills und MCP Apps. Mit -addr läuft er über HTTP, mit -auth OAuth-geschützt mit eingebautem Test-Autorisierungsserver und Test-IdP.

mcp-tester profile add reference -c "mcp-test-server"
mcp-tester inspect -p reference

Für eigene Go-Server gibt es die Pakete pkg/mcptasks und pkg/mcpskills, die Tasks und Skills auf Servern mit dem offiziellen Go-SDK nachrüsten.