8.0
热点
AI SCORE
编程提效2026-09-24 08:00
Vercel Connect 新增 TanStack AI 集成
Vercel Blog#Vercel#TanStack AI#MCP
Editor brief · 编辑速览
Vercel Connect 支持 TanStack AI 构建的 Agent 调用 OAuth 保护的 MCP 服务器,认证 provider 在每次请求前刷新 token,开发者无需管理凭证。
用 TanStack AI 构建的 Agent 现已可以通过 Vercel Connect 调用受 OAuth 保护的 MCP server,无需自行存储或轮换任何凭证。
新的 @vercel/connect/tanstack-ai 子路径导出了 connectMCPTransport,它接收一个 TanStack transport 配置,并附加一个由 Connect 提供支持的 auth provider。该 provider 会在每次 MCP 请求之前被调用,因此 token 始终是最新的。
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;
}
}
连接一个 Linear MCP client,并为每个用户配上 token,必要时重定向到 consent 页面。
如果用户尚未授予访问权限,createMCPClient 会在模型运行之前因 consent challenge 而失败。用 getConsentChallenge 捕获该异常,并重定向到 Connect 的 consent URL。否则,工具调用中抛出的 consent error 会以错误字符串的形式到达模型,而非以重定向的形式呈现给用户。
阅读 TanStack AI 集成文档开始上手,或查看 Vercel Connect 支持的框架和适配器完整列表。
Hedi Zandi, Dima Voytenko