Saltar al contenido
Menú de documentos

MCP

OAuth para clientes de MCP

Cómo los clientes de MCP descubren, registran y obtienen tokens para el servidor TradeCatalog MCP con OAuth 2.1.

Esta página es para personas que construyen un cliente MCP o depuran una conexión. Si solo desea conectar Claude o ChatGPT, consulte Conectar una aplicación de IA.

TradeCatalog sigue la especificación de autorización MCP: OAuth 2.1 con PKCE, metadatos de recursos protegidos (RFC 9728) y metadatos del servidor de autorización (RFC 8414).

Puntos finalesEnlace a esta sección#

¿QuéURL
Servidor MCP (recurso protegido)https://tradecatalog.app/mcp
Metadatos del recurso protegidohttps://tradecatalog.app/.well-known/oauth-protected-resource/mcp
Metadatos del servidor de autorizaciónhttps://tradecatalog.app/.well-known/oauth-authorization-server
Punto de autorizaciónhttps://tradecatalog.app/oauth/authorize
Punto de tokenhttps://tradecatalog.app/oauth/token
Registro dinámico de clienteshttps://tradecatalog.app/oauth/register
Aplicaciones conectadas (para personas)https://tradecatalog.app/oauth/connections

Los metadatos del recurso protegido están en la dirección específica de la ruta para /mcp, según lo describe el RFC 9728 para un recurso con una ruta. No hay nada en absoluto en /.well-known/oauth-protected-resource por sí solo.

La conexión opcional /mcp/account agrega un intercambio seguro de facturación exclusivo para el propietario para anfitriones de agentes que permiten la facturación por suscripción de software. Es un descendiente del mismo recurso protegido /mcp: utilice los metadatos anteriores y resource=https://tradecatalog.app/mcp al autorizar o solicitar tokens. El registro, el consentimiento de OAuth y el acceso al espacio de trabajo utilizan la misma cuenta. Los complementos de ChatGPT se conectan a /mcp; consulte registro y facturación.

ÁmbitoEnlace a esta sección#

Solicite tradecatalog:read para búsquedas. Solicite tradecatalog:read tradecatalog:write para preparar cambios también. La página de consentimiento describe el acceso solicitado. Los permisos existentes de solo lectura nunca obtienen acceso de escritura automáticamente. Los roles y las restricciones de facturación se vuelven a comprobar al proponer y aprobar acciones. Las escrituras consecuentes requieren una confirmación única en el cartón de chat, o en la página de revisión iniciada sesión para clientes sin cartones; consulte Herramientas.

Flujo de descubrimientoEnlace a esta sección#

  1. El cliente llama a https://tradecatalog.app/mcp sin un token.
  2. El servidor responde con 401 Unauthorized con un encabezado WWW-Authenticate: Bearer que apunta a los metadatos del recurso protegido.
  3. El cliente lee los metadatos del recurso protegido para encontrar el servidor de autorización, https://tradecatalog.app.
  4. El cliente lee los metadatos del servidor de autorización para los puntos de conexión anteriores.
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"
}

Registrar un clienteEnlace a esta sección#

Use cualquiera de las siguientes opciones:

  • Documentos de metadatos de ID de cliente (preferido): use una URL https que controle como su client_id, sirviendo los metadatos de su cliente. Las personas que aprueben la conexión ven la URL de host como el editor.
  • Registro dinámico de cliente (RFC 7591) en /oauth/register.

Cualquiera puede registrar un cliente bajo cualquier nombre, por lo que la página de aprobación muestra a las personas a dónde se envía la aprobación (el host de redirección) y, para ID de cliente de URL, el editor. El nombre solo se marca como no verificado.

AutorizaciónEnlace a esta sección#

Use el flujo de código de autorización con PKCE (S256):

  1. Envíe el navegador de la persona a /oauth/authorize con response_type=code, client_id, redirect_uri, code_challenge, code_challenge_method=S256, state y scope=tradecatalog:read.
  2. Si no están iniciadas sesión, TradeCatalog las pide que se inicien sesión con un código por correo electrónico (o Google o Microsoft, donde esté habilitado), luego las devuelve.
  3. Ven qué aplicación está pidiendo, la cuenta con la que están iniciadas sesión y lo que puede hacer, luego eligen Permitir o Denegar.
  4. Permitir redirige a su redirect_uri con code y state. Denegar redirige con error=access_denied.
  5. Intercambie el código en /oauth/token con su code_verifier. Recibe un token de acceso y un token de actualización.

Envíe el token de acceso en cada solicitud MCP:

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

Los tokens de acceso tienen una vida útil corta. Use el token de actualización en /oauth/token para obtener uno nuevo.

¿Quién puede aprobarEnlace a esta sección#

  • Cualquier usuario de TradeCatalog iniciado sesión: personal de proveedores o compradores.
  • No visitantes de demostración (sesiones de invitado). Se les envía a iniciar sesión correctamente.
  • No hay forma de crear una cuenta a través de este flujo, y no hay acceso solo de máquina (credenciales de cliente). Para acceso de servidor a servidor, utilice la API REST con una clave de API.

La concesión lleva solo la identidad de la persona. Cada llamada a la herramienta vuelve a comprobar lo que pueden ver, por lo que si pierden el acceso a un espacio de trabajo, la aplicación de IA también lo hace.

TransporteEnlace a esta sección#

El servidor es sin estado HTTP transmisible. No emite identificadores de sesión; cada solicitud es independiente, y responde con JSON en lugar de un flujo de eventos.

RevocarEnlace a esta sección#

Las personas ven y desconectan aplicaciones aprobadas en /oauth/connections. Desconectar revoca inmediatamente la concesión y sus tokens.

También publicadoEnlace a esta sección#