Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Mit Google anmelden, um Bewertungen zu schreiben.Prototyp · alle 30 Min. aktualisiert
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

mcp-authprobe

von EnigmackerVersion 0.10.1i★ 0iLäuft auf deinem Computer
Name in der Registryio.github.Enigmacker/mcp-authprobe

So installierst du es

What it does

Active OAuth tests for remote MCP servers you own: tokens, PKCE, redirect_uri, audience, CSRF.

  • Connects Läuft auf deinem Computer
  • Account or key Needs MCP_AUTHPROBE_SECRET
  • Category Marketing & Social Media

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

3/3 Prüfungen bestanden · Läuft auf deinem Computer · ✓ Befehle geprüft am 14. Nov. 2026

Zuerst: Welche KI nutzt du?

Wähle deine App, dann erscheinen die Schritte unten.

Klappt mit Claude, aber erst etwas vorbereiten

Du brauchst einen Schlüssel von mcp-authprobe (auf der Seite des Anbieters erstellen) · Installiere zuerst Node.js auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy

  1. Node.js installieren

    Nur einmal; gilt für alle Server, die Node.js brauchen

    Download-Seite von Node.js öffnen ↗

  2. Bei mcp-authprobe registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Seite von mcp-authprobe öffnen ↗

  3. Einstellungsdatei der Claude-Desktop-App öffnen

    SettingsDeveloperEdit Config

  4. Diese Einstellungen einfügen und speichern

    {
      "mcpServers": {
        "authprobe": {
          "command": "npx",
          "args": [
            "-y",
            "mcp-authprobe",
            "mcp"
          ],
          "env": {
            "MCP_AUTHPROBE_SECRET": "your-value"
          }
        }
      }
    }

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  5. Claude beenden und neu öffnen

  6. Ausprobieren

    Nutze mcp-authprobe und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude sagt, dass es mcp-authprobe nutzt, oder ein Werkzeug von mcp-authprobe in der Antwort zeigt, bist du verbunden

8 optionale Einstellung(en) (geht auch ohne)

Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.

  • MCP_AUTHPROBE_SECRET_FILE Path to the ownership secret (create it with `mcp-authprobe ownership init `). Without a secret, only discovery runs.
  • MCP_AUTHPROBE_CREDENTIALS_FILE Path to a test grant written by `mcp-authprobe login`, for the refresh token checks. It is consumed by a scan.
  • MCP_AUTHPROBE_ALLOW_PRIVATE Set to 1 to allow loopback and private targets (local labs only).
  • MCP_AUTHPROBE_LAB_ORIGINS Comma-separated lab origins exempt from the ownership proof, e.g. http://127.0.0.1:8080.
  • MCP_AUTHPROBE_TIMEOUT_MS Per-request timeout in milliseconds (default 10000).
  • MCP_AUTHPROBE_BEARER_FILE Path to a static API key (one line, mode 600) for a server authenticated without OAuth. Needs MCP_AUTHPROBE_BEARER_TARGET.
  • MCP_AUTHPROBE_BEARER_TARGET The exact MCP URL the static key may be used for.
  • MCP_AUTHPROBE_BEARER_HEADER Header for the static key (default Authorization, sent as Bearer).

Die Beschreibungen sind noch im englischen Original.

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

ChatGPT kann mcp-authprobe noch nicht verbinden

mcp-authprobe läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen

Das kannst du stattdessen tun

A · Eine App nutzen, die mcp-authprobe verbinden kann

  • Du brauchst einen Schlüssel von mcp-authprobe (auf der Seite des Anbieters erstellen) · Installiere zuerst Node.js auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
  • Du brauchst einen Schlüssel von mcp-authprobe (auf der Seite des Anbieters erstellen) · Installiere zuerst Node.js auf deinem Computer (nur einmal)
  • Du brauchst einen Schlüssel von mcp-authprobe (auf der Seite des Anbieters erstellen) · Installiere zuerst Node.js auf deinem Computer (nur einmal)
  • Du brauchst einen Schlüssel von mcp-authprobe (auf der Seite des Anbieters erstellen) · Installiere zuerst Node.js auf deinem Computer (nur einmal)

B · Andere in Marketing & Social Media, die mit ChatGPT funktionieren

Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden

Klappt mit Claude Code, aber erst etwas vorbereiten

Du brauchst einen Schlüssel von mcp-authprobe (auf der Seite des Anbieters erstellen) · Installiere zuerst Node.js auf deinem Computer (nur einmal)

  1. Node.js installieren

    Nur einmal; gilt für alle Server, die Node.js brauchen

    Download-Seite von Node.js öffnen ↗

  2. Bei mcp-authprobe registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Seite von mcp-authprobe öffnen ↗

  3. Terminal öffnen

    Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen

  4. Diesen Befehl einfügen und Enter drücken

    claude mcp add --scope user authprobe --env MCP_AUTHPROBE_SECRET=your-value -- npx -y mcp-authprobe mcp

    Ersetze „your-value“ vor dem Enter durch deinen Schlüssel

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  5. /mcp in Claude Code eingeben

    mcp-authprobe sollte in der Liste als verbunden erscheinen

  6. Ausprobieren

    Nutze mcp-authprobe und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude Code sagt, dass es mcp-authprobe nutzt, oder ein Werkzeug von mcp-authprobe in der Antwort zeigt, bist du verbunden

8 optionale Einstellung(en) (geht auch ohne)

Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.

  • MCP_AUTHPROBE_SECRET_FILE Path to the ownership secret (create it with `mcp-authprobe ownership init `). Without a secret, only discovery runs.
  • MCP_AUTHPROBE_CREDENTIALS_FILE Path to a test grant written by `mcp-authprobe login`, for the refresh token checks. It is consumed by a scan.
  • MCP_AUTHPROBE_ALLOW_PRIVATE Set to 1 to allow loopback and private targets (local labs only).
  • MCP_AUTHPROBE_LAB_ORIGINS Comma-separated lab origins exempt from the ownership proof, e.g. http://127.0.0.1:8080.
  • MCP_AUTHPROBE_TIMEOUT_MS Per-request timeout in milliseconds (default 10000).
  • MCP_AUTHPROBE_BEARER_FILE Path to a static API key (one line, mode 600) for a server authenticated without OAuth. Needs MCP_AUTHPROBE_BEARER_TARGET.
  • MCP_AUTHPROBE_BEARER_TARGET The exact MCP URL the static key may be used for.
  • MCP_AUTHPROBE_BEARER_HEADER Header for the static key (default Authorization, sent as Bearer).

Die Beschreibungen sind noch im englischen Original.

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit Cursor, aber erst etwas vorbereiten

Du brauchst einen Schlüssel von mcp-authprobe (auf der Seite des Anbieters erstellen) · Installiere zuerst Node.js auf deinem Computer (nur einmal)

  1. Node.js installieren

    Nur einmal; gilt für alle Server, die Node.js brauchen

    Download-Seite von Node.js öffnen ↗

  2. Bei mcp-authprobe registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Seite von mcp-authprobe öffnen ↗

  3. Mit diesem Button Cursor öffnen

    In Cursor öffnen

    Cursor fragt nach einer Bestätigung; klicke Install

  4. Schlüssel eintragen

    In den Einstellungen von mcp-authprobe ist MCP_AUTHPROBE_SECRET leer; trag deinen Schlüssel ein und speichere

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  5. KI-Chat in Cursor im Agent-Modus öffnen

  6. Ausprobieren

    Nutze mcp-authprobe und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Cursor sagt, dass es mcp-authprobe nutzt, oder ein Werkzeug von mcp-authprobe in der Antwort zeigt, bist du verbunden

8 optionale Einstellung(en) (geht auch ohne)

Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.

  • MCP_AUTHPROBE_SECRET_FILE Path to the ownership secret (create it with `mcp-authprobe ownership init `). Without a secret, only discovery runs.
  • MCP_AUTHPROBE_CREDENTIALS_FILE Path to a test grant written by `mcp-authprobe login`, for the refresh token checks. It is consumed by a scan.
  • MCP_AUTHPROBE_ALLOW_PRIVATE Set to 1 to allow loopback and private targets (local labs only).
  • MCP_AUTHPROBE_LAB_ORIGINS Comma-separated lab origins exempt from the ownership proof, e.g. http://127.0.0.1:8080.
  • MCP_AUTHPROBE_TIMEOUT_MS Per-request timeout in milliseconds (default 10000).
  • MCP_AUTHPROBE_BEARER_FILE Path to a static API key (one line, mode 600) for a server authenticated without OAuth. Needs MCP_AUTHPROBE_BEARER_TARGET.
  • MCP_AUTHPROBE_BEARER_TARGET The exact MCP URL the static key may be used for.
  • MCP_AUTHPROBE_BEARER_HEADER Header for the static key (default Authorization, sent as Bearer).

Die Beschreibungen sind noch im englischen Original.

Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit VS Code, aber erst etwas vorbereiten

Du brauchst einen Schlüssel von mcp-authprobe (auf der Seite des Anbieters erstellen) · Installiere zuerst Node.js auf deinem Computer (nur einmal)

  1. Node.js installieren

    Nur einmal; gilt für alle Server, die Node.js brauchen

    Download-Seite von Node.js öffnen ↗

  2. Bei mcp-authprobe registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Seite von mcp-authprobe öffnen ↗

  3. Mit diesem Button VS Code öffnen

    In VS Code öffnen

    VS Code fragt nach einer Bestätigung; klicke Install

  4. Schlüssel eintragen

    In den Einstellungen von mcp-authprobe ist MCP_AUTHPROBE_SECRET leer; trag deinen Schlüssel ein und speichere

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  5. KI-Chat in VS Code im Agent-Modus öffnen

  6. Ausprobieren

    Nutze mcp-authprobe und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn VS Code sagt, dass es mcp-authprobe nutzt, oder ein Werkzeug von mcp-authprobe in der Antwort zeigt, bist du verbunden

8 optionale Einstellung(en) (geht auch ohne)

Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.

  • MCP_AUTHPROBE_SECRET_FILE Path to the ownership secret (create it with `mcp-authprobe ownership init `). Without a secret, only discovery runs.
  • MCP_AUTHPROBE_CREDENTIALS_FILE Path to a test grant written by `mcp-authprobe login`, for the refresh token checks. It is consumed by a scan.
  • MCP_AUTHPROBE_ALLOW_PRIVATE Set to 1 to allow loopback and private targets (local labs only).
  • MCP_AUTHPROBE_LAB_ORIGINS Comma-separated lab origins exempt from the ownership proof, e.g. http://127.0.0.1:8080.
  • MCP_AUTHPROBE_TIMEOUT_MS Per-request timeout in milliseconds (default 10000).
  • MCP_AUTHPROBE_BEARER_FILE Path to a static API key (one line, mode 600) for a server authenticated without OAuth. Needs MCP_AUTHPROBE_BEARER_TARGET.
  • MCP_AUTHPROBE_BEARER_TARGET The exact MCP URL the static key may be used for.
  • MCP_AUTHPROBE_BEARER_HEADER Header for the static key (default Authorization, sent as Bearer).

Die Beschreibungen sind noch im englischen Original.

Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach

Alle Apps mit MCP ansehen →

JSON-Einstellungen stehen unten unter „Für Entwickler“

Hängst du fest? Frag Leute, die mcp-authprobe nutzen💬 Diskussion →
Für Entwickler: Terminal-Befehle und JSON-Einstellungen

Auf deinem Computer installiert

Claude Code

claude mcp add --scope user authprobe --env MCP_AUTHPROBE_SECRET=your-value -- npx -y mcp-authprobe mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "authprobe": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-authprobe",
        "mcp"
      ],
      "env": {
        "MCP_AUTHPROBE_SECRET": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "authprobe": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-authprobe",
        "mcp"
      ],
      "env": {
        "MCP_AUTHPROBE_SECRET": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "authprobe": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-authprobe",
        "mcp"
      ],
      "env": {
        "MCP_AUTHPROBE_SECRET": "your-value"
      }
    }
  }
}

Werte, die du selbst einträgst

  • MCP_AUTHPROBE_SECRET_FILE env
    Path to the ownership secret (create it with `mcp-authprobe ownership init `). Without a secret, only discovery runs.
  • MCP_AUTHPROBE_SECRET geheim erforderlich env
    Ownership secret, if not read from MCP_AUTHPROBE_SECRET_FILE.
  • MCP_AUTHPROBE_CREDENTIALS_FILE env
    Path to a test grant written by `mcp-authprobe login`, for the refresh token checks. It is consumed by a scan.
  • MCP_AUTHPROBE_ALLOW_PRIVATE env
    Set to 1 to allow loopback and private targets (local labs only).
  • MCP_AUTHPROBE_LAB_ORIGINS env
    Comma-separated lab origins exempt from the ownership proof, e.g. http://127.0.0.1:8080.
  • MCP_AUTHPROBE_TIMEOUT_MS env
    Per-request timeout in milliseconds (default 10000).
  • MCP_AUTHPROBE_BEARER_FILE env
    Path to a static API key (one line, mode 600) for a server authenticated without OAuth. Needs MCP_AUTHPROBE_BEARER_TARGET.
  • MCP_AUTHPROBE_BEARER_TARGET env
    The exact MCP URL the static key may be used for.
  • MCP_AUTHPROBE_BEARER_HEADER env
    Header for the static key (default Authorization, sent as Bearer).

Die Beschreibungen sind noch im englischen Original.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Auf einen Blick

Downloads pro Wochei
516/Wo.
Verbindung
Läuft auf deinem Computer
Neueste Versioni
0.10.1
In der Registry veröffentlichti
13. Nov. 2026
Code zuletzt geänderti
13. Nov. 2026
Entwickler
Enigmacker
Pakete
npm: mcp-authprobe
Website
github.com
Registry-Status
Aktiv

Welche Apps ihn nutzen können

Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.

Laufen auf deinem Computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

Alle Apps, mit Vor- und Nachteilen →

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 14. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto Enigmacker bestätigt, dem das Repo gehört

  • ✓ Bestanden

    Wird noch gepflegt

    Code zuletzt geändert: gestern

  • ✓ Bestanden

    Hat eine Lizenz

    Nutzt MIT

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Diskussion

Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.

Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.

Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.

Mit Google anmelden, um zu posten

Nutzerbewertungen

Noch keine Bewertungen

Mit Google anmelden, um zu bewerten

Im Vergleich mit anderen in Marketing & Social Mediai

  • Mehr Sterne als 0 % der anderen 3922 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 98 % der anderen 3922 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 3922 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist mcp-authprobe sicher?

Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: MCP_AUTHPROBE_SECRET

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt gestern geändert, und die neueste Version (0.10.1) kam gestern in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: PostHog MCP Server, Openshorts, Google Ads + Meta Ads + SEO/GEO MCP

Andere in derselben Kategorie

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

PostHog MCP Server

Official PostHog MCP Server for product analytics, feature flags, experiments, and more.

von PostHogWeit verbreitet★ 40.772 Sterne des ganzen ReposAktualisiert vor 10 Monaten

Läuft in der Cloud

Openshorts

Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.

von mutonbyWeit verbreitet★ 7941Aktualisiert vor 3 Monaten

Läuft in der Cloud

Google Ads + Meta Ads + SEO/GEO MCP

Google Ads, Meta Ads, Google Analytics (GA4) & Search Console MCP server by Ryze AI

von irinabuht12-ossWeit verbreitet★ 7563Aktualisiert vor 33 Tagen

Läuft in der Cloud

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

mcp-authprobe

Active authorization testing for remote MCP servers you own.

Passive scanners read what a remote Model Context Protocol server *announces*: its OAuth metadata, its TLS setup, its tool descriptions. Some properties can only be confirmed by actually exercising the authorization server: does it really rotate refresh tokens, does it really refuse a redirect URI it never registered, does it enforce PKCE, does it accept a token meant for another server, does it slow down repeated failures?

mcp-authprobe runs those active checks, against servers whose ownership you have proven, and reports the results as JSON, SARIF and Markdown.

19 checks, field-tested against a certified OpenID provider: OAuth discovery, refresh token rotation and replay, redirect URI strictness, PKCE enforcement, single-use codes, token audience, Origin validation, tokens in URLs, session IDs used as credentials, CORS, throttling and consent CSRF (in a real browser). It works as a CLI with an interactive login, as an MCP server so an AI assistant can run the audit, and as a GitHub Action. A deliberately vulnerable lab lets you try everything in a minute.

Only test servers you own or are explicitly authorized to test. Active checks change state on the target. The tool enforces an ownership proof before running them, but responsibility stays with the operator.

Contents

  • Field-tested
  • Why another scanner?
  • Install
  • Try it in a minute: the lab
  • Quick start
  • Ownership proof
  • Refresh token checks
  • Interactive login
  • Redirect URI checks
  • Throttling check
  • Consent CSRF check
  • Use it from an MCP client
  • What it checks
  • Servers with a static API key
  • Tool poisoning check
  • Combine with mcp-posture
  • Reports and exit codes
  • GitHub Action
  • Safety of the scanner
  • Roadmap
  • Development
  • Contributing and security

Field-tested

Besides its own test suite and lab, mcp-authprobe was run against real authorization stacks before each release:

  • node-oidc-provider (an OpenID Certified authorization server) with dynamic registration, resource indicators and JWT access tokens, in front of an MCP server built with the official TypeScript SDK that validates the token audience and the Origin header. Every check that can be judged from outside passed; MAP-THR01 failed, as expected, since that provider leaves rate limiting to the deployment; and its consent page, protected by a per-flow identifier instead of an anti-CSRF field, is reported as inconclusive with the reason.
  • The MCP TypeScript SDK's OAuth example server, a demonstration that is not meant for production. The results matched its code: redirect_uri not bound to the code, no Origin validation, unsafe redirect URIs accepted at registration, no refresh tokens, and crashes reported as inconclusive rather than passes. Its sessions correctly require the token on every request (MAP-SES01 passes).

These runs led to several fixes: results kept when a server issues no refresh token or crashes during login, a throttling check that copes with a broken refresh grant, and the per-flow identifier analysis above.

Why another scanner?

Good tools already exist, and this one is meant to sit next to them, not replace them:

ToolFocusOverlap with mcp-authprobe
mcp-posturePassive posture of remote servers: OAuth metadata per RFC, transport, tool poisoning, rug pullsNone by design: it never sends state-changing requests. Run it first.
MCPJam OAuth conformanceRuns real OAuth flows and checks conformance, with a few negative checksBasic redirect URI rejection. No refresh token replay, throttling or consent CSRF.
Cisco mcp-scanner, Snyk agent-scanMalicious tools, configs, local serversNone.

mcp-authprobe focuses on what only an active, authorized test can confirm, and uses check IDs (MAP-…) that do not clash with mcp-posture's (MCPP-…). mcp-posture reserves its own active IDs for this and points here; the two reports can be merged into one.

Install

Requires Node.js 22.19 or later.

# run without installing

npx mcp-authprobe --help

or install globally

npm install -g mcp-authprobe

Releases are published from GitHub Actions with npm trusted publishing; check the provenance on the package page before installing a security tool.

From source:

git clone https://github.com/Enigmacker/mcp-authprobe.git

cd mcp-authprobe npm ci npm run build node dist/cli.js --help

Try it in a minute: the lab

mcp-authprobe lab starts a small MCP server with its own OAuth authorization server on 127.0.0.1, so you can see every check at work without touching a real server:

# Terminal 1: a deliberately vulnerable server (or --profile secure)

npx mcp-authprobe lab

Terminal 2

npx mcp-authprobe scan http://127.0.0.1:8787/mcp --allow-private npx mcp-authprobe login http://127.0.0.1:8787/mcp --allow-private --out lab-grant.json npx mcp-authprobe scan http://127.0.0.1:8787/mcp --allow-private --credentials-file lab-grant.json

Log in with the account test / test and click Allow.

ProfileWhat you should see
vulnerable (default)Refresh token replay accepted, unsafe redirect URIs registered, PKCE not enforced, token audience ignored, foreign Origin accepted, token accepted in the URL, session ID accepted without a token, CORS open to any origin with credentials, no throttling, consent page without CSRF protection. MAP-RDR02 is reported as inconclusive: this server sends unknown visitors to its login page before looking at redirect_uri, which cannot be told apart from outside, and the scanner never turns that into a pass.
secureEvery check passes (or is not applicable); MAP-CSR01 runs with consent-check.
static-bearerNo OAuth: the MCP endpoint takes a static API key, printed when the lab starts (scan with --bearer-file). JSON-RPC batches executed, 6 MiB bodies accepted, key accepted in the URL, any Origin accepted, session ID enough without the key, no rate limit.
static-bearer-secureThe same server done right: every key check passes or is not applicable.

The lab only listens on 127.0.0.1 or ::1 (--host, --port, default 8787; names such as localhost are refused so that no resolver can move it elsewhere), keeps everything in memory, and stops with Ctrl-C. Its access tokens are unsigned JWTs, so MAP-AUD01 can read their audience. It is vulnerable on purpose: never expose it.

Quick start

# 1. Create a secret and the proof to publish for your MCP host

mcp-authprobe ownership init mcp.example.com

2. Publish the proof (well-known file or DNS TXT), then keep the secret in your environment

export MCP_AUTHPROBE_SECRET='…'

3. Check the proof is visible

mcp-authprobe ownership verify mcp.example.com

4. Scan

mcp-authprobe scan https://mcp.example.com/mcp --sarif results.sarif --markdown summary.md

5. Log in once with a dedicated test account to create a test grant

mcp-authprobe login https://mcp.example.com/mcp --out ./test-grant.json

6. Full scan, including the refresh token checks

mcp-authprobe scan https://mcp.example.com/mcp --credentials-file ./test-grant.json

Without a valid proof the scan still runs discovery (the same read-only requests any MCP client sends before logging in), and every active check is reported as skipped.

For a local lab on your own machine:

mcp-authprobe scan http://127.0.0.1:8080/mcp --allow-private

Loopback targets with --allow-private do not need a proof.

Ownership proof

Active checks register clients, rotate tokens and send failing requests. To make sure they only ever hit servers whose operator agreed to it, the scanner requires a proof for every host it would contact: the MCP server host and, when it differs, the authorization server host.

The proof is a hash, bound to the host, of a secret that only you hold:

mcp-authprobe-verification=sha256:<hex(sha256("<host>:<secret>"))>

Publish it in one of two places:

MethodWhereValue
Well-known filehttps:// /.well-known/mcp-authprobe.txtone line per proof; other lines are ignored
DNS TXT_mcp-authprobe. the proof string

Design choices:

  • The secret never leaves your machine. Only its hash is published, so a proof found in the wild cannot be reused by someone else to scan your server.
  • Proofs are host-bound. A proof for mcp.example.com is useless for any other host.
  • The secret is read from `MCP_AUTHPROBE_SECRET` or `--secret-file`, never from the command line, so it does not land in shell history or process listings.
  • Hosted authorization servers. If your authorization server is a third-party service on its own domain, you can only publish a proof if you control that domain (for example a custom domain). Check the provider's penetration testing policy before running active checks against it.

You can remove the proof as soon as you are done testing.

Refresh token checks

MCP clients are usually public clients, so OAuth 2.1 requires their refresh tokens to be rotated, and RFC 9700 recommends revoking the whole token family when an old one is reused. These properties cannot be read from metadata; they have to be exercised.

The checks need a test grant: a client and a refresh token obtained by logging in to your own server with a dedicated test account.

The easy way is mcp-authprobe login (see Interactive login), which writes the file for you. You can also write it by hand, readable only by you (chmod 600):

{

"client_id": "your-test-client-id", "refresh_token": "the-refresh-token", "client_secret": "only-for-confidential-clients", "token_endpoint_auth_method": "none" }

token_endpoint_auth_method is none (default for public clients), client_secret_post (default when a secret is present) or client_secret_basic.

The scan sends at most three refresh_token requests to the token endpoint found by discovery:

StepRequestExpected on a compliant serverCheck
1Refresh with the supplied tokenNew access token and a new refresh tokenMAP-RTK01
2Refresh again with the token from step 1's input (already used)Rejected, typically invalid_grantMAP-RTK02
3Refresh with the newest token (from step 1's output)Rejected: reuse revoked the whole familyMAP-RTK03

Nur der Anfang wird gezeigt; den Rest findest du im Repo