Edison Watch
開発者

Vercel AI SDK

Vercel AI SDKをcreateMCPClientを使ってstreamable HTTP経由でEdison Watchに接続する。

Vercel AI SDKcreateMCPClient と組み込みのHTTPトランスポートを使ってEdisonに接続します。接続URL にはAPIキーが含まれているため、認証ヘッダーは不要です。

createMCPClient は専用の @ai-sdk/mcp パッケージ(プレフィックスなしの名前)に含まれており、ai v7 と併用します。古いコードでは ai から experimental_createMCPClient をインポートしていました。このエイリアスは後方互換性のために @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 に接続URLを設定してください(例:https://mcp.edison.watch/mcp/<your-api-key>/?client=vercel-ai-sdk)。

最近のAI SDKバージョンでは、SSRFガードとしてMCP HTTPトランスポートのリダイレクト処理が厳格化されています。Edisonはエンドポイントを直接提供します(リダイレクトなし)ので、デフォルトのままで問題ありません。ただし、ゲートウェイの前に3xxリダイレクトを行うものを置く場合は、redirect: 'follow' を明示的に設定してください。

オプション:暗号化シークレットヘッダー

ゼロ知識暗号化シークレット を使用するサーバーには、トランスポートに headers を追加します。

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