Edison Watch
นักพัฒนา

Vercel AI SDK

เชื่อมต่อ Vercel AI SDK กับ Edison Watch โดยใช้ createMCPClient ผ่าน streamable HTTP

Vercel AI SDK เชื่อมต่อกับ Edison ด้วย createMCPClient และ HTTP transport ในตัว connection URL ของคุณมี API key อยู่แล้ว ดังนั้นไม่ต้องใช้ auth header

createMCPClient อยู่ใน package @ai-sdk/mcp เฉพาะ (ชื่อที่ไม่มี prefix) ใช้ร่วมกับ ai v7 โค้ดเก่า import experimental_createMCPClient จาก ai ซึ่ง alias นั้นยังคงอยู่ใน @ai-sdk/mcp เพื่อความเข้ากันได้ย้อนหลัง แต่ควรใช้ createMCPClient แทน

npm install ai @ai-sdk/mcp @ai-sdk/openai
import { createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: process.env.EDISON_MCP_URL!,
  },
});

try {
  const tools = await client.tools();
  const response = await generateText({
    model: openai('gpt-5.6-luna'),
    tools,
    messages: [{ role: 'user', content: 'List my available tools.' }],
  });
  console.log(response.text);
} finally {
  await client.close();
}

ตั้งค่า EDISON_MCP_URL เป็น connection URL ของคุณ เช่น https://mcp.edison.watch/mcp/<your-api-key>/?client=vercel-ai-sdk

AI SDK เวอร์ชันล่าสุดเพิ่มความเข้มงวดในการจัดการ redirect บน MCP HTTP transports เพื่อป้องกัน SSRF Edison ให้บริการ endpoint โดยตรง (ไม่มี redirect) ดังนั้นค่าเริ่มต้นก็ใช้ได้ - แต่หากคุณใช้สิ่งที่ redirect แบบ 3xx นำหน้า gateway ให้ตั้งค่า redirect: 'follow' อย่างชัดเจน

ทางเลือก: header สำหรับ encrypted secrets

สำหรับ server ที่มี ความลับที่เข้ารหัสแบบ zero-knowledge ให้เพิ่ม headers ใน transport:

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: process.env.EDISON_MCP_URL!,
    headers: { 'x-edison-secret-key': process.env.EDISON_SECRET_KEY! },
  },
});