Saltar al contenido principal
Esta página es para quien construye un cliente MCP o quiere saber qué pasa por debajo. Si solo quieres conectar Claude, ve a Conectar con Claude.

Resumen

Descubrimiento

Un pedido sin token recibe 401 con la dirección de los metadatos:

El flujo

1

Registro

El cliente se registra con POST /oauth/register mandando client_name y sus redirect_uris. Se aceptan clientes públicos (token_endpoint_auth_method: none) y con secreto (client_secret_post o client_secret_basic).
2

Autorización

El cliente abre /oauth/authorize en el navegador con response_type=code, client_id, redirect_uri, code_challenge, code_challenge_method=S256, state y, recomendado, resource=https://mcp.xtarify.com/mcp.
3

Consentimiento en xtarify.com

El usuario inicia sesión en xtarify.com y ve qué app pide acceso, a dónde volverá y qué podrá hacer. Las apps conocidas (Claude, ChatGPT, Cursor, VS Code, Windsurf y clientes locales) aparecen como verificadas; las demás muestran un aviso. Si acepta, vuelve al redirect_uri con code y state.
4

Token

El cliente canjea el código en POST /oauth/token con grant_type=authorization_code, el code_verifier y el mismo redirect_uri. El código dura 5 minutos y sirve una sola vez: si se usa dos veces, se revocan los tokens que emitió.
5

Llamadas

Cada pedido al servidor MCP lleva Authorization: Bearer <access_token>. Para renovar, grant_type=refresh_token: devuelve un par nuevo y el refresco anterior deja de servir.

Reglas

  • Tokens atados al servidor (RFC 8707): un token emitido para otro recurso no abre https://mcp.xtarify.com/mcp, y un resource distinto en el pedido de token devuelve invalid_target.
  • Direcciones de retorno: https://, http:// solo para localhost, 127.0.0.1 o ::1, y esquemas propios de apps de escritorio (cursor://, vscode://). Nunca javascript:, data: ni file:, y sin fragmento (#).
  • Límite de registros: 30 por hora por dirección IP.
  • Desconexión: el usuario puede revocar una app en xtarify.com/fabrica (Apps conectadas) y sus tokens dejan de servir al instante. El cliente también puede revocar sus tokens con /oauth/revoke.

Transporte

  • POST /mcp con un mensaje JSON-RPC (o un lote) responde con JSON. Las notificaciones reciben 202.
  • GET /mcp responde 405: el servidor no abre flujos SSE y no usa Mcp-Session-Id, porque cada pedido es independiente.
  • Si mandas MCP-Protocol-Version con una versión que no está en la lista, recibes 400.