Edison Watch
นักพัฒนา

Mastra

เชื่อมต่อ agent ของ Mastra กับ Edison Watch โดยใช้ MCPClient ผ่าน streamable HTTP

Mastra เชื่อมต่อกับ Edison ด้วย MCPClient รายการ server ที่มีเพียง url ใช้ Streamable HTTP โดยอัตโนมัติ connection URL ของคุณมี API key อยู่แล้ว ดังนั้นไม่ต้องใช้ auth header

npm install @mastra/mcp @mastra/core @ai-sdk/openai
import { MCPClient } from '@mastra/mcp';
import { Agent } from '@mastra/core/agent';

const mcp = new MCPClient({
  id: 'edison-client',
  servers: {
    edison: {
      url: new URL(process.env.EDISON_MCP_URL!),
    },
  },
});

const agent = new Agent({
  id: 'edison-agent',
  name: 'Edison Agent',
  instructions: 'You can use Edison Watch tools.',
  model: 'openai/gpt-5.6-luna',
  tools: await mcp.listTools(),
});

const res = await agent.generate('List my available tools.');
console.log(res.text);

await mcp.disconnect();

ตั้งค่า EDISON_MCP_URL เป็น connection URL ของคุณ เช่น https://mcp.edison.watch/mcp/<your-api-key>/?client=mastra โปรดทราบว่า url รับ object แบบ URL และการล้างข้อมูลใช้ disconnect() (ไม่มี .close()) method ของ tool คือ listTools() (static) / listToolsets() (per-request) ชื่อเก่า getTools() / getToolsets() ยังคงอยู่เป็น alias แต่ควรใช้รูปแบบ list* แทน

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

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

const mcp = new MCPClient({
  servers: {
    edison: {
      url: new URL(process.env.EDISON_MCP_URL!),
      requestInit: {
        headers: { 'x-edison-secret-key': process.env.EDISON_SECRET_KEY! },
      },
    },
  },
});

เมื่อแต่ละ request มี credentials ของผู้ใช้ที่แตกต่างกัน ควรใช้ await mcp.listToolsets() แบบ dynamic ที่ส่งไปยัง agent.generate(prompt, { toolsets }) แทนการผูก tools ในเวลา construction