Skip to main content
Glama

ShowDoc2MD

CI

Liest ShowDoc-Projekte mit bekanntem Zugriffspasswort und konvertiert sie in Markdown, zur Nutzung mit KI / Agent / RAG.

Drei Verwendungsmöglichkeiten werden unterstützt:

  • MCP Server (empfohlen): KI-Clients wie Cursor, Codex, Claude, AgentDock entdecken die Tools automatisch und rufen sie auf.

  • CLI: Manueller oder skriptbasierter Batch-Export von Markdown.

  • Legacy HTTP API: Behält die kompatible /convert-Schnittstelle bei.

ShowDoc2MD dient ausschließlich zum Lesen von Dokumenten, für die du bereits legal Zugriffsrechte und das Passwort besitzt. Es errät, knackt oder brute-forct keine Passwörter.

Warum dieses Projekt

Passwortgeschützte ShowDoc-Seiten verlangen normalerweise, dass der Browser zuerst eine Captcha-/Passwort-Interaktion durchführt, was für KI-Agenten beim automatischen Lesen von Dokumenten sehr unpraktisch ist.

Die schreibgeschützte Schnittstelle von ShowDoc erlaubt es, Anfragen mit _item_pwd=<bekanntes Dokumentpasswort> zu versehen. ShowDoc2MD nutzt diesen normalen Lese-Parameter, um auf Projektverzeichnisse und Seiten zuzugreifen, sodass die KI keinen Browser-Captcha-Ablauf simulieren muss.

Derzeit werden hauptsächlich gelesen:

  • /api/item/info

  • /api/page/info

Related MCP server: mkdocs-mcp

Installation

Voraussetzung: Python 3.10+.

Windows

powershell -ExecutionPolicy Bypass -File .\scripts\windows_install.ps1

macOS / Linux

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .

MCP: Empfohlener KI-Anschluss

ShowDoc2MD verwendet das offizielle Python-MCP-SDK und unterstützt:

  • stdio: Geeignet für KI-Clients auf derselben Maschine.

  • Streamable HTTP: Geeignet für die Bereitstellung auf einer festen Maschine, auf die andere KI-Clients über das Netzwerk zugreifen.

Für die KI bereitgestellte Tools

Tool

Zweck

showdoc_probe

Prüft, ob ShowDoc-Adresse und Passwort lesbar sind

showdoc_list_pages

Ruft das gesamte Projektverzeichnis ab, ohne alle Inhalte zu lesen

showdoc_read_page

Liest eine Seite und gibt Markdown zurück

showdoc_read_full

Liest das gesamte Projekt und fasst es als Markdown zusammen

showdoc_export

Exportiert Markdown-Dateien und Ressourcen auf der MCP-Server-Maschine

Nach der Verbindung erhält der KI-Client diese Tools mit ihren Parametern und Beschreibungen automatisch über das MCP-Schema – es ist nicht nötig, dem Modell das HTTP-JSON-Format separat mitzuteilen.

Variante 1: stdio auf derselben Maschine

Zuerst ShowDoc2MD installieren, dann in einem MCP-Client einen stdio-Server konfigurieren. Allgemeine Konfigurationsübersicht:

{
  "mcpServers": {
    "showdoc2md": {
      "command": "showdoc2md",
      "args": ["mcp", "--transport", "stdio"],
      "env": {
        "SHOWDOC_PASSWORD": "your-document-password"
      }
    }
  }
}

Wenn verschiedene ShowDoc-Projekte unterschiedliche Passwörter verwenden, kann SHOWDOC_PASSWORD weggelassen werden; die KI übergibt dann password bei jedem Tool-Aufruf.

Variante 2: Streamable HTTP auf einer festen Maschine bereitstellen

Nur lokaler Zugriff:

$env:SHOWDOC_PASSWORD='your-document-password'
.\showdoc2md.cmd mcp

Standard-MCP-Adresse:

http://127.0.0.1:18765/mcp

Linux / macOS:

export SHOWDOC_PASSWORD='your-document-password'
showdoc2md mcp

Der KI-Client muss nur die MCP-URL konfigurieren:

http://127.0.0.1:18765/mcp

LAN / Remote-Maschinen

Das MCP-SDK aktiviert standardmäßig DNS-Rebinding-Schutz. ShowDoc2MD setzt für Remote-Listener außerdem sichere Standardwerte:

  • Erlaubte Hosts/IPs müssen explizit deklariert werden.

  • Standardmäßig muss SHOWDOC_MCP_TOKEN gesetzt werden; der Client authentifiziert sich über ein Bearer-Token.

Serverbeispiel:

$env:SHOWDOC_MCP_TOKEN='replace-with-a-long-random-token'
.\showdoc2md.cmd mcp `
  --host 0.0.0.0 `
  --port 18765 `
  --allowed-host 192.168.1.20

Dann verbindet sich der KI-Client:

http://192.168.1.20:18765/mcp

Und für diese MCP-Verbindung wird ein HTTP-Header konfiguriert:

Authorization: Bearer replace-with-a-long-random-token

Die MCP-Konfigurationsdateiformate verschiedener KI-Clients unterscheiden sich, aber solange sie benutzerdefinierte Header für Streamable HTTP unterstützen, ist das ausreichend.

Bei Zugriff über eine Domain:

showdoc2md mcp \
  --host 0.0.0.0 \
  --port 18765 \
  --allowed-host mcp.example.com

--allowed-host mcp.example.com erlaubt gleichzeitig mcp.example.com:*.

Browserbasierte MCP-Clients, die einen Origin senden, können zusätzlich ergänzt werden:

--allowed-origin https://app.example.com

Wenn MCP nur in einem vollständig vertrauenswürdigen privaten Netzwerk/VPN läuft und das Bearer-Token ausdrücklich deaktiviert werden soll, kann explizit hinzugefügt werden:

--allow-unauthenticated-remote

Sicherheitshinweis: Setze einen MCP-Dienst ohne Authentifizierung niemals direkt ins öffentliche Internet aus. Ein statisches Bearer-Token eignet sich für persönliche/Kleinteam-Bereitstellungen; für öffentliche Dienste in Produktion wird empfohlen, ihn hinter TLS, VPN/Tailscale, einem authentifizierenden Reverse-Proxy oder einem MCP-konformen OAuth-2.1-Ressourcenserver zu platzieren.

Die zwei verschiedenen Passwörter nicht verwechseln

  • SHOWDOC_PASSWORD: Das Zugriffspasswort für die ShowDoc-Dokumente selbst.

  • SHOWDOC_MCP_TOKEN: Das Bearer-Token, das KI-Clients beim Verbinden mit dem ShowDoc2MD-MCP-Server verwenden.

Sie haben unterschiedliche Zwecke und werden von den MCP-Tools nie zurückgegeben.

Docker

Das Repository enthält eine Dockerfile und docker-compose.example.yml. Beispiel für lokale Bereitstellung:

export SHOWDOC_PASSWORD='your-document-password'
export SHOWDOC_MCP_TOKEN='replace-with-a-long-random-token'
docker compose -f docker-compose.example.yml up -d --build

Standardmäßig wird der Port nur auf 127.0.0.1:18765 des Hosts gemappt. Für den Zugriff von anderen Maschinen müssen sowohl das Port-Mapping als auch der --allowed-host-Parameter im Container-Startbefehl auf die tatsächlich von der KI verwendete Server-IP/Domain geändert werden.

Wie die KI sie verwenden sollte

Normalerweise sind keine speziellen Prompts nötig – der MCP-Server bringt eigene Anweisungen mit. Empfohlene Aufrufreihenfolge:

  1. Bei unsicherer Berechtigung: showdoc_probe

  2. Zuerst die Struktur ansehen: showdoc_list_pages

  3. Nur wenige Inhalte benötigt: showdoc_read_page

  4. Analyse des gesamten Projekts: showdoc_read_full

  5. Dateien auf der Festplatte benötigt: showdoc_export

Du kannst der KI zum Beispiel direkt sagen:

阅读这个 ShowDoc 并总结它的 API 认证方式:
https://www.showdoc.com.cn/100200/300400

Wenn das Passwort bereits in der Umgebungsvariable SHOWDOC_PASSWORD des MCP-Servers konfiguriert ist, muss die KI das Passwort nicht mehr erhalten.

CLI

Prüfen, ob Zugriff möglich ist

$env:SHOWDOC_PASSWORD='your-document-password'
.\showdoc2md.cmd probe 'https://www.showdoc.com.cn/100200/300400'

Vollständiger Export

.\showdoc2md.cmd export 'https://www.showdoc.com.cn/100200/300400' --output .\output

Das Passwort kann auch direkt übergeben werden:

showdoc2md export 'https://www.showdoc.com.cn/100200/300400' \
  --password 'your-document-password' \
  --output ./output

Die Umgebungsvariable wird empfohlen, damit das Passwort nicht in den Shell-Verlauf gelangt.

Exportstruktur

output/
└── ProjectName_itemId/
    ├── 完整文档.md
    ├── manifest.json
    ├── assets/
    └── pages/
        ├── 0001_Overview.md
        └── API/
            └── 0002_CreateOrder.md
  • Normale ShowDoc-Markdown-Seiten werden möglichst originalgetreu gespeichert.

  • RunAPI/API-JSON-Seiten werden in lesbares Markdown konvertiert.

  • Bilder in Seiten werden standardmäßig nach assets/ heruntergeladen und Links umgeschrieben.

  • 完整文档.md fasst die Seiten in Verzeichnisreihenfolge zusammen.

  • manifest.json protokolliert Seiten, fehlgeschlagene Einträge und den complete-Status.

Integritätsschutz

ShowDoc2MD tarnt „Teilerfolg" nicht als vollständigen Erfolg:

  • Wenn das Projektverzeichnis 0 Seiten zurückgibt, wird direkt ein Fehler gemeldet.

  • Wenn eine Seite oder eine angeforderte Ressource fehlschlägt, gilt complete=false.

  • Die CLI gibt bei unvollständigem Export einen Exit-Code ungleich 0 zurück.

  • MCP-/HTTP-Ergebnisse geben den Integritätsstatus explizit zurück.

Legacy HTTP API

Wenn ein bestehendes System bereits /convert verwendet, kann es weiterlaufen:

.\showdoc2md.cmd serve --host 127.0.0.1 --port 18765

Schnittstelle:

GET  /health
POST /convert

Für neue KI-Integrationen wird empfohlen, direkt MCP zu verwenden, nicht diese Schnittstelle.

Entwicklung und Tests

.\.venv\Scripts\python.exe -m unittest discover -s tests -v

Die Tests verwenden fiktive URLs, fiktive Projekte und einen Fake-Client; sie enthalten keine ShowDoc-Adressen, Dokumentpasswörter oder Exportinhalte des Maintainers.

Aktuelle Grenzen

  • Derzeit wird vorrangig der Typ „Projektzugriffspasswort" von ShowDoc abgedeckt.

  • Wenn eine ShowDoc-Instanz eine Kontoanmeldung erzwingt (z. B. force_login), reicht möglicherweise nur das Projektpasswort nicht aus.

  • Bilder in Seiten werden beim Herunterladen unterstützt; die eigenständige Anhangsliste von ShowDoc ist noch nicht als separate Anhangsfunktion vollständig abgedeckt.

Lizenz

MIT-Lizenz. Siehe LICENSE.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

  • MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.

  • Markdown utilities MCP.

  • MCP-native collaborative markdown editor with real-time AI document editing

View all MCP Connectors

Latest Blog Posts

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/ishare2121/ShowDoc2MD'

If you have feedback or need assistance with the MCP directory API, please join our Discord server