Edison Watch
Desarrolladores

OpenAI Agents SDK

Conecta un agente del OpenAI Agents SDK (Python o TypeScript) a Edison Watch como servidor MCP streamable-HTTP.

El OpenAI Agents SDK se conecta a Edison con su clase MCPServerStreamableHttp del lado del cliente. Como tu URL de conexión ya lleva tu clave API, solo pasas la URL - sin cabecera de autenticación.

Usa el MCPServerStreamableHttp del lado del cliente (mostrado aquí), no el HostedMCPTool / hostedMcpTool alojado. Las herramientas MCP alojadas ejecutan la conexión desde los servidores de OpenAI a través de la Responses API, lo que entregaría tu URL de Edison a OpenAI y se conectaría desde su red en lugar de la tuya. Para un gateway que controlas, siempre conéctate del lado del 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())

Establece EDISON_MCP_URL con tu URL de conexión, p. ej. https://mcp.edison.watch/mcp/<your-api-key>/?client=openai-agents.

npm install @openai/agents

La clase JS necesita un 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: la cabecera de secretos cifrados

Si usas servidores con secretos cifrados de conocimiento cero, añade x-edison-secret-key. En Python va en params; en TypeScript va bajo requestInit.headers (no hay opción headers de nivel 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! } },
});