Mastra
Conecta un agente de Mastra a Edison Watch usando MCPClient sobre HTTP streamable.
Mastra se conecta a Edison con MCPClient. Una entrada de servidor con solo una url usa Streamable HTTP automáticamente. Tu URL de conexión lleva tu clave API, por lo que no se necesita cabecera de autenticación.
npm install @mastra/mcp @mastra/core @ai-sdk/openaiimport { 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();Establece EDISON_MCP_URL con tu URL de conexión, p. ej. https://mcp.edison.watch/mcp/<your-api-key>/?client=mastra. Nótese que url recibe un objeto URL, y la limpieza se hace con disconnect() (no existe .close()). Los métodos de herramientas son listTools() (estático) / listToolsets() (por solicitud); los nombres anteriores getTools() / getToolsets() todavía existen como alias, pero prefiere las formas list*.
Opcional: la cabecera de secretos cifrados
Para servidores con secretos cifrados de conocimiento cero, pasa cabeceras bajo 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! },
},
},
},
});Cuando cada solicitud lleva las credenciales de un usuario diferente, prefiere el dinámico await mcp.listToolsets() pasado a agent.generate(prompt, { toolsets }) sobre vincular herramientas en el momento de la construcción.

