• MCP Apps support on Vercel

    Teams can now build and deploy MCP Apps on Vercel with full support for Next.js.

    MCP Apps are similar to ChatGPT apps, but are a provider-agnostic open standard for embedded UIs. They run inside iframes and communicate with any compatible host, such as ChatGPT, using a shared bridge.

    This architecture uses ui/* JSON-RPC over postMessage, enabling a single UI to function across any compatible host without platform-specific integrations.

    By combining this standard with Next.js on Vercel, developers can leverage Server-Side Rendering (SSR) and React Server Components to build portable, high-performance agent interfaces.

    Deploy the template or learn more in the documentation.

  • Vercel Sandbox now accepts environment variables at creation

    The Vercel Sandbox SDK and CLI now support setting environment variables at sandbox creation that are automatically available to every command.

    When running multi-step processes in a Vercel Sandbox like installing dependencies, building a project or starting a dev server, each step often needs the same environment variables. Now, these are available with every runCommand call.

    await using sandbox = await Sandbox.create({
    env: { HELLO: "world", DEBUG: "true" },
    });
    // Prints "world" (inherited from Sandbox.create)
    await sandbox.runCommand({ cmd: "node", args: ["-p", "process.env.HELLO"] });
    // Prints "false" (overrides the DEBUG value)
    await sandbox.runCommand({ cmd: "node", args: ["-p", "process.env.DEBUG"], env: { DEBUG: "false" } });

    Environment variables passed to Sandbox.create() are inherited by all commands automatically. Per-command env in runCommand can still override individual values when needed.

    Update to the latest Sandbox CLI and SDK, run npm i @vercel/sandbox to get started.

  • Vercel Workflow is now twice as fast

    Server-side performance for Vercel Workflow, the fully managed platform built on top of the open-source Workflow Development Kit (WDK), is now twice as fast, delivering a 54% median improvement across the board.

    Over the last two weeks, the median API response time has been reduced from 37ms to 17ms, with queue latency, Time to First Byte (TTFB), and per-step overhead all reduced.

    Workflows that coordinate multiple steps benefit the most, as lower overhead compounds across each step in a run.

    npx workflow@latest

    To get these and future speedups, update to the latest version of the Workflow DevKit (workflow@4.1.0-beta.60 or newer) or view the documentation.

  • GPT 5.3 Chat is now on AI Gateway

    GPT-5.3 Chat (GPT 5.3 Instant) is now available on AI Gateway.

    This update focuses on tone, relevance, and conversational flow for more accurate answers, better-contextualized web results, and fewer unnecessary refusals and caveats. It also reduces hallucination rates and produces smoother and more direct responses.

    To use this model, set model to openai/gpt-5.3-chat in the AI SDK.

    import { streamText } from 'ai';
    const result = streamText({
    model: 'openai/gpt-5.3-chat',
    prompt: 'Best restaurants in SF for a birthday dinner.',
    });

    AI Gateway provides a unified API for calling models, tracking usage and cost, and configuring retries, failover, and performance optimizations for higher-than-provider uptime. It includes built-in observability, Bring Your Own Key support, and intelligent provider routing with automatic retries.

    Learn more about AI Gateway, view the AI Gateway model leaderboard or try it in our model playground.

  • Gemini 3.1 Flash Lite is now on AI Gateway

    Gemini 3.1 Flash Lite from Google is now available on AI Gateway.

    This model outperforms 2.5 Flash Lite on overall quality, with notable improvements in translation, data extraction, and code completion. Gemini 3.1 Flash Lite is best suited for high-volume agentic tasks, data extraction, and applications where budget and latency are the primary evaluation constraints.

    To use this model, set model to google/gemini-3.1-flash-lite-preview in the AI SDK. This model supports four thinking levels, minimal, low, medium, and high.

    import { streamText } from 'ai';
    const result = streamText({
    model: 'google/gemini-3.1-flash-lite-preview',
    prompt:
    `Translate this customer support article from English to Japanese,
    preserving formatting and technical terms.`,
    providerOptions: {
    google: {
    thinkingConfig: {
    thinkingLevel: 'medium',
    includeThoughts: true,
    },
    },
    },
    });

    AI Gateway provides a unified API for calling models, tracking usage and cost, and configuring retries, failover, and performance optimizations for higher-than-provider uptime. It includes built-in observability, Bring Your Own Key support, and intelligent provider routing with automatic retries.

    Learn more about AI Gateway, view the AI Gateway model leaderboard or try it in our model playground.

  • Vercel CLI for Marketplace integrations optimized for agents

    AI agents can now autonomously discover, install, and retrieve setup instructions for Vercel Marketplace integrations using the Vercel CLI. This lets agents configure databases, auth, logging, and other services end-to-end in one workflow.

    These capabilities are powered by the new discover and guide commands in the Vercel CLI.

    By using the --format=json flag with the discover command, the CLI provides non-interactive JSON output that benefits developers as well, making it easier to automate infrastructure, write custom scripts, and manage CI/CD pipelines.

    When building an application, agents begin by exploring available integrations using the discover command.

    vercel integration discover --format=json

    After exploring the options, the agent can add an integration and then fetch getting started guides and code snippets for a specific integration using the guide command.

    vercel integration add neon --format=json
    vercel integration guide neon

    The Vercel CLI returns this setup documentation in an agent-friendly markdown format. This allows the agent to easily parse the instructions, write the necessary integration code, and configure the project autonomously.

    For integrations with required metadata fields, agents can use the help command to determine the required inputs and pass them as options to the add command.

    vercel integration add upstash/upstash-redis --help
    vercel integration add upstash/upstash-redis -m primaryRegion=iad1 --format=json

    The CLI also makes it easy to pause this process for human decisions, like terms of service acceptance. Agents can prompt developers for confirmation, enabling hybrid workflows that require human oversight of certain integration decisions.

    These commands are continuously tested against agent evaluations to ensure reliable autonomous behavior.

    pnpm i -g vercel@latest

    Update to the latest version of the Vercel CLI to try it out, or read the documentation.

  • Vercel Queues now in public beta

    Vercel Queues is a durable event streaming system built with Fluid compute, and is now available in public beta for all teams. Vercel Queues also powers Workflow: use Queues for direct message publishing and consumption, Workflow for ergonomic multi step orchestration.

    Functions need a reliable way to defer expensive work and guarantee that tasks complete even when functions crash or new deployments roll out. Queues makes it simple to process messages asynchronously with automatic retries and delivery guarantees, providing at-least-once delivery semantics.

    How it works:

    • Messages are sent to a durable topic

    • The queue fans messages out to subscribed consumer groups.

    • Each consumer group processes messages independently.

    • The queue redelivers messages to consumer groups until successfully processed or expired.

    Publish messages from any route handler:

    app/api/orders/route.ts
    import { send } from '@vercel/queue';
    export async function POST(request: Request) {
    const order = await request.json();
    const { messageId } = await send('orders', order);
    return Response.json({ messageId });
    }

    Create a consumer:

    app/api/queues/fulfill-order/route.ts
    import { handleCallback } from '@vercel/queue';
    export const POST = handleCallback(async (order, metadata) => {
    console.log('Fulfilling order', metadata.messageId, order);
    // await doAnythingAsync(order);
    });

    Configure the consumer group:

    vercel.json
    {
    "functions": {
    "app/api/queues/fulfill-order/route.ts": {
    "experimentalTriggers": [{ "type": "queue/v2beta", "topic": "orders" }]
    }
    }
    }

    Adding a trigger makes the route private: it has no public URL and only Vercel's queue infrastructure can invoke it.

    Vercel Queues is billed per API operation, starting at $0.60 per 1M operations, and includes:

    • Multiple AZ synchronous replication

    • At-least-once delivery

    • Customizable visibility timeout

    • Delayed delivery

    • Idempotency keys

    • Concurrency control

    • Per-deployment topic partitioning

    Functions invoked by Queues in push mode are charged at existing Fluid compute rates.

    Get started with the Queues documentation.

  • Chat SDK adds Telegram adapter support

    Chat SDK now supports Telegram, extending its single-codebase approach to Slack, Discord, GitHub, and Teams, with the new Telegram adapter.

    Teams can build bots that support mentions, message reactions, direct messages, and typing indicators.

    The adapter handles single file uploads and renders basic text cards, with buttons and link buttons that display as inline keyboard elements, allowing developers to create interactive workflows directly within Telegram chats.

    Get start with Telegram adapter setup:

    import { Chat } from "chat";
    import { createTelegramAdapter } from "@chat-adapter/telegram";
    const bot = new Chat({
    userName: "mybot",
    adapters: {
    telegram: createTelegramAdapter(),
    },
    });
    bot.onNewMention(async (thread, message) => {
    await thread.post(`You said: ${message.text}`);
    });

    Telegram does not expose full historical message APIs to bots, so message history relies on adapter-level caching. Additionally, callback data is limited to 64 bytes, and the platform does not currently support modals or ephemeral messages.

    Read the documentation to get started.