Vercel Connect suma soporte para TanStack AI
Si construís agentes con TanStack AI, ahora podés llamar servidores MCP protegidos con OAuth sin guardar ni rotar credenciales vos mismo.

Un transport que maneja el token por vos
El nuevo subpath @vercel/connect/tanstack-ai exporta connectMCPTransport, que toma la config de transport de TanStack y le agrega un auth provider respaldado por Connect. Ese provider se ejecuta antes de cada request MCP, así que el token que usás siempre está vigente. No tenés que ocuparte de renovarlo ni almacenarlo.
import { chat, toServerSentEventsResponse } from '@tanstack/ai';import { createMCPClient } from '@tanstack/ai-mcp';import { vercelGatewayText } from '@tanstack/ai-vercel-gateway';import {connectMCPTransport,getConsentChallenge,} from '@vercel/connect/tanstack-ai';export async function POST(request: Request) {const { messages } = await request.json();const userId = await getUserId(request);try {const linear = await createMCPClient({transport: connectMCPTransport({ type: 'http', url: 'https://mcp.linear.app/mcp' },'oauth/linear',{ subject: { type: 'user', id: userId } },),});const stream = chat({adapter: vercelGatewayText('anthropic/claude-opus-5'),messages,mcp: { clients: [linear] },});return toServerSentEventsResponse(stream);} catch (err) {const challenge = getConsentChallenge(err);if (challenge) return Response.redirect(challenge.url, 303);throw err;}}Manejar el consentimiento antes de llegar al modelo
Si el usuario todavía no dio permiso, createMCPClient falla con un consent challenge antes de que el modelo se ejecute. Con getConsentChallenge podés capturar ese error y redirigir a la URL de consentimiento de Connect. Si no lo hacés así, el error de consentimiento generado dentro de una tool call le llega al modelo como un string de error, no al usuario como un redirect.
Qué te llevas
Vercel Connect ahora soporta TanStack AI para conectar agentes a servidores MCP con OAuth.
El auth provider refresca el token antes de cada request MCP, sin que vos manejes credenciales.
Tenés que capturar el consent challenge con
getConsentChallengepara redirigir al usuario, en vez de dejar que el error llegue al modelo.La integración se hace vía el subpath
@vercel/connect/tanstack-ai, documentado en los docs de Connect.
¿Quieres una clase de esto?
Si varias personas lo piden, entra al programa. No hace falta dejar mail ni nombre.