Mastra
Conecte um agente Mastra ao Edison Watch usando MCPClient via HTTP streamável.
Mastra se conecta ao Edison com MCPClient. Uma entrada de servidor com apenas uma url usa Streamable HTTP automaticamente. Sua URL de conexão carrega sua chave de API, portanto nenhum cabeçalho de autenticação é necessário.
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();Defina EDISON_MCP_URL com sua URL de conexão, por exemplo https://mcp.edison.watch/mcp/<your-api-key>/?client=mastra. Note que url recebe um objeto URL, e a limpeza é feita com disconnect() (não há .close()). Os métodos de ferramentas são listTools() (estático) / listToolsets() (por requisição); os nomes mais antigos getTools() / getToolsets() ainda existem como aliases, mas prefira as formas list*.
Opcional: o cabeçalho de segredos criptografados
Para servidores com segredos com criptografia zero-knowledge, passe cabeçalhos em 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! },
},
},
},
});Quando cada requisição carrega credenciais de um usuário diferente, prefira o dinâmico await mcp.listToolsets() passado para agent.generate(prompt, { toolsets }) em vez de vincular ferramentas no momento da construção.

