Edison Watch
開発者

OpenAI Agents SDK

OpenAI Agents SDKエージェント(PythonまたはTypeScript)をEdison WatchにstreamableHTTP MCPサーバーとして接続する。

OpenAI Agents SDK は、クライアントサイドの MCPServerStreamableHttp クラスを使ってEdisonに接続します。接続URL にはAPIキーが含まれているため、URLを渡すだけで済み、認証ヘッダーは不要です。

ここで示すクライアントサイドMCPServerStreamableHttp を使用してください。ホスト型の HostedMCPTool / hostedMcpTool使わないでください。ホスト型MCPツールはResponses APIを介して OpenAIのサーバー から接続を実行するため、あなたのEdisonのURLがOpenAIに渡され、あなたのネットワークではなくOpenAIのネットワークから接続されます。自分で管理するゲートウェイには、常にクライアントサイドで接続してください。

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 に接続URLを設定してください(例:https://mcp.edison.watch/mcp/<your-api-key>/?client=openai-agents)。

npm install @openai/agents

JSクラスには明示的な 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();
}

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

ゼロ知識暗号化シークレット を使用するサーバーがある場合は、x-edison-secret-key を追加します。Pythonでは params に、TypeScriptでは requestInit.headers に設定します(トップレベルの 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! } },
});