Jamdesk Documentation logo

MCP-Server

Jede Jamdesk-Website enthält einen integrierten MCP-Server. KI-Assistenten wie Claude und Cursor können Ihre Dokumentation direkt durchsuchen und lesen.

Jede Jamdesk-Website verfügt über einen integrierten MCP-Server (Model Context Protocol). llms.txt gibt KI-Tools einen statischen Snapshot Ihrer Dokumentation. MCP ermöglicht es ihnen, Ihre Dokumentation gezielt zu durchsuchen und abzufragen, um konkrete Antworten zu finden, ohne alles lesen zu müssen.

Was ist MCP?

Das Model Context Protocol ist ein offener Standard, um KI-Tools mit externen Datenquellen zu verbinden. Ihre Jamdesk-Dokumentation stellt zwei MCP-Tools bereit:

ToolZweck
searchDocsDokumentation nach Schlüsselwort durchsuchen, liefert sortierte Ergebnisse
getPageEine Seite als vollständiges Markdown abrufen

Ihre Endpoint-URL

Ihr MCP-Endpunkt ist Ihre Dokumentations-URL mit angehängtem /_mcp. Wenn eine benutzerdefinierte Domain aktiv ist, verwenden Sie diese:

SetupEndpunkt
Benutzerdefinierte Domain docs.acme.comhttps://docs.acme.com/_mcp
Keine benutzerdefinierte Domainhttps://my-project.jamdesk.app/_mcp

Verwenden Sie den Endpunkt der benutzerdefinierten Domain, sofern eine verbunden ist. So bleibt Ihr Branding in jeder URL erhalten, die KI-Tools sehen. Er funktioniert auch dann weiter, wenn Sie später Ihre .jamdesk.app-Subdomain mit Nur benutzerdefinierte Domain ausblenden.

Schnellstart

Fügen Sie Ihre Dokumentation als MCP-Server hinzu:

claude mcp add --transport http my-docs https://docs.acme.com/_mcp

Ersetzen Sie docs.acme.com durch Ihre Dokumentationsdomain. Verwenden Sie my-project.jamdesk.app, falls Sie noch keine benutzerdefinierte Domain verbunden haben.

Claude kann Ihre Dokumentation nun durchsuchen und lesen, wenn Sie Fragen zu Ihrem Projekt stellen.

Verfügbare Tools

searchDocs

Durchsuchen Sie Ihre Dokumentation und erhalten Sie sortierte Ergebnisse.

Parameter:

ParameterTypErforderlichBeschreibung
querystringJaSuchbegriffe (z. B. "Authentifizierung", "Erste Schritte")
limitnumberNeinMaximale Anzahl der Ergebnisse (Standard: 10, Maximum: 50)
typestringNeinNach Inhaltstyp filtern: all, api, guide, quickstart, help, component

Beispielanfrage:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "searchDocs",
    "arguments": {
      "query": "authentication",
      "limit": 5
    }
  }
}

Beispielantwort:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [{
      "type": "text",
      "text": "{\"query\":\"authentication\",\"total\":1,\"results\":[{\"title\":\"Authentication\",\"description\":\"How to authenticate API requests\",\"url\":\"/docs/api/authentication\",\"type\":\"api\",\"score\":0.95}]}"
    }]
  }
}

getPage

Rufen Sie eine Dokumentationsseite als Markdown ab. Tabellen, Listen und Codeblöcke kommen vollständig zurück, nicht als Auszüge. Übergeben Sie die url, die searchDocs zurückgegeben hat, als url, oder den Seitenpfad als slug. Seiten mit mehr als 80.000 Zeichen werden an dieser Stelle abgeschnitten, mit einem Verweis auf die .md-URL der Seite für den Rest.

Parameter:

ParameterTypErforderlichBeschreibung
urlstringEines von url oder slugDie url aus einem searchDocs-Ergebnis (z. B. /docs/api/authentication). Vollständige Seiten-URLs und .md-Links funktionieren ebenfalls.
slugstringEines von url oder slugDer Seitenpfad ohne das Präfix /docs (z. B. api/authentication)

Senden Sie eines davon. Wenn Sie beide senden, wird slug verwendet.

Beispielanfrage:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "getPage",
    "arguments": {
      "url": "/docs/api/authentication"
    }
  }
}

Beispielantwort:

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [{
      "type": "text",
      "text": "{\"title\":\"Authentication\",\"description\":\"How to authenticate\",\"content\":\"## Overview\\n\\nUse API keys to authenticate...\",\"url\":\"/docs/api/authentication\"}"
    }]
  }
}

Endpoint testen

Testen Sie Ihren MCP-Endpunkt mit curl:

# List available tools
curl -X POST https://docs.acme.com/_mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

# Search for content
curl -X POST https://docs.acme.com/_mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"searchDocs","arguments":{"query":"getting started"}}}'

Websites mit Login-Schutz

Wenn Ihre Website Passwort- oder JWT-Authentifizierung verwendet, benötigt der MCP-Server einen Projekt-API-Schlüssel. Erstellen Sie einen unter Projekteinstellungen > API-Schlüssel und senden Sie ihn als Header:

claude mcp add --transport http my-docs https://docs.example.com/_mcp \
  --header "Authorization: Bearer jd_live_..."

Mit einem Schlüssel kann ein MCP-Client die durchsuchbaren Seiten der Website durchsuchen und lesen, also dieselbe Menge, die auch die Website-Suche abdeckt. Gruppenbeschränkte Seiten sind über MCP niemals verfügbar, egal ob mit oder ohne Schlüssel. Versteckte Seiten und Seiten mit search: false bleiben außen vor, sofern Sie sie nicht durchsuchbar gemacht haben. Behandeln Sie den Schlüssel wie ein Passwort. Widerrufen Sie ihn im Dashboard, falls er durchsickert.

Derselbe Schlüssel öffnet auch .md-Seiten-URLs, llms.txt und llms-full.txt. Siehe llms.txt und Markdown-Quelle. Der Schlüssel öffnet niemals HTML-Seiten oder den KI-Chat. Dafür ist weiterhin eine Anmeldung nötig.

Ohne Schlüssel antwortet der Server mit 401 und einem JSON-Body, der erklärt, wie Sie einen hinzufügen. Ein Schlüssel aus einem anderen Projekt wird abgelehnt. Die Fehlercodes lauten:

StatuserrorBedeutung
401auth_requiredEs wurde kein Schlüssel gesendet.
401invalid_api_keyDer Schlüssel ist für diese Website nicht gültig.
503auth_unavailableDer Schlüssel konnte nicht überprüft werden. Versuchen Sie es nach der im Header Retry-After angegebenen Anzahl von Sekunden erneut.

Funktionsweise

Der MCP-Endpunkt verwendet einen Suchindex, der zusammen mit Ihrer Dokumentation erstellt wird:

  • BM25-Ranking: sortiert Ergebnisse nach Relevanz
  • Unscharfe Suche: toleriert Tippfehler von 1 Zeichen
  • Feldgewichtung: Titel und Abschnittsüberschriften zählen mehr als der Fließtext
  • Typfilterung: filtert Ergebnisse nach Inhaltstyp (API, Anleitung usw.)

Der Index wird bei jedem Deployment neu aufgebaut.

Ratenbegrenzungen

Anfragen ohne API-Schlüssel sind auf etwa 60 pro Minute pro IP-Adresse begrenzt. Das reicht für den KI-Assistenten einer Person. Alle hinter einer gemeinsamen IP, etwa in einem Büronetzwerk oder Ihrem eigenen Backend, teilen sich dasselbe Kontingent.

Anfragen mit einem Projekt-API-Schlüssel umgehen das IP-Limit und erhalten stattdessen 120 pro Minute pro Schlüssel, auf jeder Website. Fügen Sie den Schlüssel auf dieselbe Weise zur Konfiguration Ihres MCP-Clients hinzu wie bei passwortgeschützten Websites.

Auf einer passwortgeschützten Website zählen .md-Seitenanfragen sowie Anfragen an llms.txt oder llms-full.txt, die mit einem Schlüssel gestellt werden, ebenfalls auf das Limit dieses Schlüssels. Die Such-API hat ein eigenes Limit von 60 pro Minute pro Schlüssel.

Anfragen über einem Limit erhalten eine 429-Antwort mit Retry-After: 60.

Fehlerbehebung

Prüfen Sie, ob Ihre Endpunkt-URL korrekt und erreichbar ist:

curl https://docs.acme.com/_mcp

Sie sollten eine JSON-Antwort mit Serverinformationen sehen. Falls nicht, prüfen Sie, ob Ihre Dokumentation mindestens einmal erstellt wurde.

Jamdesk erstellt den Suchindex zur Build-Zeit. Lösen Sie im Jamdesk-Dashboard einen Neuaufbau aus, um neue Inhalte zu indizieren.

Übergeben Sie die url aus einem searchDocs-Ergebnis, um Slug-Abweichungen zu vermeiden. Wenn Sie einen slug senden, stimmen Sie ihn genau mit Ihrem Seitenpfad ab, ohne die Endung .mdx. Eine Seite unter api/authentication.mdx hat den Slug api/authentication.

Die Website verwendet Passwort- oder JWT-Authentifizierung. Die Anfrage benötigt einen Projekt-API-Schlüssel. Fügen Sie den Header Authorization: Bearer mit einem Schlüssel aus Projekteinstellungen > API-Schlüssel hinzu. Siehe Passwortgeschützte Websites.

Wie geht es weiter?

Schreiben mit KI

Tipps zur Verwendung von KI-Tools für das Schreiben von Dokumentation

llms.txt

Automatisch generierter Seitenindex für KI-Tools