Edison Watch
Desenvolvedores

OpenAI Agents SDK

Conecte um agente do OpenAI Agents SDK (Python ou TypeScript) ao Edison Watch como um servidor MCP streamable-HTTP.

O OpenAI Agents SDK se conecta ao Edison com sua classe MCPServerStreamableHttp do lado do cliente. Como sua URL de conexão já carrega sua chave de API, você apenas passa a URL - sem cabeçalho de autenticação.

Use o MCPServerStreamableHttp do lado do cliente (mostrado aqui), não o HostedMCPTool / hostedMcpTool hospedado. As ferramentas MCP hospedadas executam a conexão a partir dos servidores da OpenAI via Responses API, o que passaria sua URL do Edison para a OpenAI e se conectaria a partir da rede deles em vez da sua. Para um gateway que você controla, sempre conecte do lado do cliente.

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())

Defina EDISON_MCP_URL com sua URL de conexão, por exemplo https://mcp.edison.watch/mcp/<your-api-key>/?client=openai-agents.

npm install @openai/agents

A classe JS precisa de um ciclo de vida explícito 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();
}

Opcional: o cabeçalho de segredos criptografados

Se você usar servidores com segredos com criptografia zero-knowledge, adicione x-edison-secret-key. Em Python vai em params; em TypeScript vai em requestInit.headers (não há opção headers de nível superior):

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! } },
});