Skip to main content

Overview

Vercel AI SDK v4.2+ includes native MCP support via experimental_createMCPClient, enabling direct integration with StackOne’s MCP server. Official Docs

Installation

npm install ai @ai-sdk/openai

Quick Start

Connect to StackOne MCP and use tools in your Next.js/Node.js app:
import { experimental_createMCPClient as createMCPClient } from 'ai';

// Configure StackOne account
const STACKONE_ACCOUNT_ID = "<account_id>"; // a StackOne account ID

// Connect to StackOne MCP server
const mcp = createMCPClient({
  transport: {
    type: 'streamable-http',
    url: 'https://api.stackone.com/mcp',
    headers: {
      'Authorization': `Basic ${Buffer.from(`${process.env.STACKONE_API_KEY}:`).toString('base64')}`,
      'x-account-id': STACKONE_ACCOUNT_ID,
      'Content-Type': 'application/json',
      'Accept': 'application/json,text/event-stream',
      'MCP-Protocol-Version': '2025-06-18'
    }
  }
});

// Get StackOne tools
const { tools } = await mcp.tools();

// Use with any AI SDK provider
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';

const result = await generateText({
  model: openai('gpt-5'),
  tools,
  prompt: 'Search recent calls in Gong'
});

Environment Variables

STACKONE_API_KEY=<stackone_api_key>

Server Component Example (Next.js)

// app/api/chat/route.ts
import { streamText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from 'ai';

// Configure StackOne account
const STACKONE_ACCOUNT_ID = "<account_id>"; // Your StackOne account ID

export async function POST(req: Request) {
  const { messages } = await req.json();

  const mcp = createMCPClient({
    transport: {
      type: 'streamable-http',
      url: 'https://api.stackone.com/mcp',
      headers: {
        'Authorization': `Basic ${Buffer.from(`${process.env.STACKONE_API_KEY}:`).toString('base64')}`,
        'x-account-id': STACKONE_ACCOUNT_ID,
        'MCP-Protocol-Version': '2025-06-18'
      }
    }
  });

  const { tools } = await mcp.tools();

  const result = await streamText({
    model: openai('gpt-5'),
    messages,
    tools,
  });

  return result.toDataStreamResponse();
}

Resources

Next Steps