Zum Inhalt springen
Dokumentationsmenü

MCP

OAuth für MCP-Kunden

Wie MCP-Kunden die TradeCatalog-MCP-Server mit OAuth 2.1 entdecken, registrieren und Token erhalten.

Diese Seite ist für Personen gedacht, die einen MCP-Client erstellen oder eine Verbindung debuggen. Wenn Sie nur Claude oder ChatGPT verbinden möchten, lesen Sie Eine AI-App verbinden.

TradeCatalog folgt dem MCP-Autorisierungsspezifikation: OAuth 2.1 mit PKCE, geschützte Ressourcen-Metadaten (RFC 9728) und Autorisierungsserver-Metadaten (RFC 8414).

EndpunkteLink zu diesem Abschnitt#

WasURL
MCP-Server (geschützter Ressource)https://tradecatalog.app/mcp
Metadaten der geschützten Ressourcehttps://tradecatalog.app/.well-known/oauth-protected-resource/mcp
Metadaten des Autorisierungsservershttps://tradecatalog.app/.well-known/oauth-authorization-server
Autorisierungsendpunkthttps://tradecatalog.app/oauth/authorize
Token-Endpunkthttps://tradecatalog.app/oauth/token
Dynamische Client-Registrierunghttps://tradecatalog.app/oauth/register
Verbundene Apps (für Personen)https://tradecatalog.app/oauth/connections

Die Metadaten der geschützten Ressource befinden sich unter der pfadbezogenen Adresse für /mcp, wie in RFC 9728 für eine Ressource mit einem Pfad beschrieben. Es gibt bewusst nichts bei /.well-known/oauth-protected-resource allein.

Die optionale /mcp/account-Verbindung fügt eine eigentümerfreundliche sichere Abrechnungshandover für Agenten-Hosts hinzu, die Software-Abonnementsabrechnung erlauben. Es handelt sich um eine Nachfahrin der gleichen /mcp-geschützten Ressource: verwenden Sie die Metadaten oben und resource=https://tradecatalog.app/mcp bei der Autorisierung oder bei der Anforderung von Tokens. Registrierung, OAuth-Einwilligung und Arbeitsbereichszugriff verwenden dasselbe Konto. ChatGPT-Plugins verbinden sich mit /mcp; siehe Registrierung und Abrechnung.

BereichLink zu diesem Abschnitt#

Fordern Sie tradecatalog:read für Abfragen an. Fordern Sie tradecatalog:read tradecatalog:write an, um auch Änderungen vorzubereiten. Die Einwilligungsseite beschreibt den angeforderten Zugriff. Bestehende schreibgeschützte Berechtigungen erhalten niemals automatisch Schreibzugriff. Rollen und Abrechnungseinschränkungen werden bei der Vorschlag- und Genehmigungsaktion erneut überprüft. Konsequente Schreibvorgänge erfordern eine separate Einmalbestätigung im Chatkarten, oder auf der angemeldeten Überprüfungsseite für Clients ohne Karten; siehe Tools.

EntdeckungsflussLink zu diesem Abschnitt#

  1. Der Client ruft https://tradecatalog.app/mcp ohne Token auf.
  2. Der Server antwortet mit 401 Unauthorized und einem WWW-Authenticate: Bearer-Header, der auf die Metadaten der geschützten Ressource verweist.
  3. Der Client liest die Metadaten der geschützten Ressource, um den Autorisierungsserver und https://tradecatalog.app zu finden.
  4. Der Client liest die Metadaten des Autorisierungsservers für die oben genannten Endpunkte.
bash
curl https://tradecatalog.app/.well-known/oauth-protected-resource/mcp
json
{
  "resource": "https://tradecatalog.app/mcp",
  "authorization_servers": ["https://tradecatalog.app"],
  "scopes_supported": ["tradecatalog:read", "tradecatalog:write"],
  "bearer_methods_supported": ["header"],
  "resource_name": "TradeCatalog MCP server"
}

Client-RegistrierungLink zu diesem Abschnitt#

Verwenden Sie entweder:

  • Client-ID-Metadokumente (vorzuziehen): verwenden Sie eine https-URL, die Sie kontrollieren, als Ihre client_id, die die Metadaten Ihres Clients bereitstellt. Die Personen, die die Verbindung genehmigen, sehen die Host-Adresse dieser URL als Veröffentlicher.
  • Dynamische Client-Registrierung (RFC 7591) unter /oauth/register.

Jeder kann einen Client unter jedem Namen registrieren, daher zeigt die Genehmigungsseite, wohin die Genehmigung gesendet wird (der Umleitungs-Host) und, bei URL-Client-IDs, den Veröffentlicher. Der Name allein wird als nicht verifiziert markiert.

AutorisierungLink zu diesem Abschnitt#

Verwenden Sie den Autorisierungscode-Fluss mit PKCE (S256):

  1. Senden Sie den Browser der Person an /oauth/authorize mit response_type=code, client_id, redirect_uri, code_challenge, code_challenge_method=S256, state und scope=tradecatalog:read.
  2. Wenn sie nicht angemeldet sind, bittet TradeCatalog sie, sich mit einem E-Mail-Code (oder Google oder Microsoft, falls aktiviert) anzumelden, und bringt sie dann zurück.
  3. Sie sehen, welche App fragt, das Konto, unter dem sie angemeldet sind, und was sie tun kann, und wählen dann Erlauben oder Ablehnen.
  4. Erlauben leitet zu Ihrem redirect_uri mit code und state weiter. Ablehnen leitet mit error=access_denied weiter.
  5. Tauschen Sie den Code an /oauth/token mit Ihrem code_verifier. Sie erhalten ein Zugriffstoken und ein Refresh-Token.

Senden Sie das Zugriffstoken bei jedem MCP-Antrag:

http
POST /mcp HTTP/1.1
Host: tradecatalog.app
Authorization: Bearer <access token>
Content-Type: application/json
Accept: application/json, text/event-stream

Zugriffstoken sind kurzlebig. Verwenden Sie das Refresh-Token an /oauth/token, um ein neues zu erhalten.

Wer kann genehmigenLink zu diesem Abschnitt#

  • Jeder angemeldete TradeCatalog-Benutzer: Lieferantenteam oder Käufer.
  • Nicht Demo-Besucher (Gast-Sitzungen). Sie werden angewiesen, sich ordnungsgemäß anzumelden.
  • Es gibt keinen Weg, ein Konto über diesen Fluss zu erstellen, und es gibt keinen maschinennur (Client-Credentials)-Zugriff. Für Server-zu-Server-Zugriff verwenden Sie die REST API mit einem API-Schlüssel.

Die Berechtigung trägt nur die Identität der Person. Jeder Werkzeugaufruf überprüft erneut, was sie sehen kann, sodass, wenn sie den Zugriff auf einen Arbeitsbereich verliert, auch die KI-App ihn verliert.

TransportLink zu diesem Abschnitt#

Der Server ist zustandslos Streamable HTTP. Er gibt keine Sitzungs-IDs aus; jeder Antrag steht allein, und er antwortet mit JSON anstelle eines Ereignisstroms.

WiderrufenLink zu diesem Abschnitt#

Personen sehen und trennen genehmigte Apps unter /oauth/connections. Trennen widerruft die Berechtigung und ihre Tokens sofort.

Auch veröffentlichtLink zu diesem Abschnitt#