Edison Watch
นักพัฒนา

OpenAI Agents SDK

เชื่อมต่อ agent ของ OpenAI Agents SDK (Python หรือ TypeScript) กับ Edison Watch ในฐานะ MCP server แบบ streamable-HTTP

OpenAI Agents SDK เชื่อมต่อกับ Edison ด้วย class MCPServerStreamableHttp ฝั่ง client เนื่องจาก connection URL ของคุณมี API key อยู่แล้ว คุณเพียงแค่ส่ง URL - ไม่ต้องใช้ auth header

ใช้ MCPServerStreamableHttp ฝั่ง client (ที่แสดงอยู่ที่นี่) ไม่ใช่ HostedMCPTool / hostedMcpTool แบบ hosted MCP tools แบบ hosted รัน connection จาก เซิร์ฟเวอร์ของ OpenAI ผ่าน Responses API ซึ่งจะส่ง Edison URL ของคุณให้ OpenAI และเชื่อมต่อจากเครือข่ายของพวกเขาแทน สำหรับ gateway ที่คุณควบคุม ให้เชื่อมต่อจากฝั่ง client เสมอ

pip install openai-agents
import asyncio
import os

from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp

async def main() -> None:
    async with MCPServerStreamableHttp(
        name="Edison Watch",
        params={"url": os.environ["EDISON_MCP_URL"]},
    ) as server:
        agent = Agent(
            name="Assistant",
            instructions="Use the Edison tools to answer.",
            mcp_servers=[server],
        )
        result = await Runner.run(agent, "List my available tools.")
        print(result.final_output)

asyncio.run(main())

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

npm install @openai/agents

JS class ต้องการ lifecycle connect() / close() อย่างชัดเจน:

import { Agent, run, MCPServerStreamableHttp } from '@openai/agents';

const server = new MCPServerStreamableHttp({
  url: process.env.EDISON_MCP_URL!,
  name: 'Edison Watch',
});

const agent = new Agent({
  name: 'Assistant',
  instructions: 'Use the Edison tools to answer.',
  mcpServers: [server],
});

await server.connect();
try {
  const result = await run(agent, 'List my available tools.');
  console.log(result.finalOutput);
} finally {
  await server.close();
}

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

หากคุณใช้ server ที่มี ความลับที่เข้ารหัสแบบ zero-knowledge ให้เพิ่ม x-edison-secret-key ใน Python ใส่ใน params ส่วน TypeScript ใส่ใน requestInit.headers (ไม่มี option headers ระดับบนสุด):

MCPServerStreamableHttp(params={
    "url": os.environ["EDISON_MCP_URL"],
    "headers": {"x-edison-secret-key": os.environ["EDISON_SECRET_KEY"]},
})
new MCPServerStreamableHttp({
  url: process.env.EDISON_MCP_URL!,
  name: 'Edison Watch',
  requestInit: { headers: { 'x-edison-secret-key': process.env.EDISON_SECRET_KEY! } },
});