Edison Watch
開発者

Mastra

MastraエージェントをMCPClientを使ってstreamable HTTP経由でEdison Watchに接続する。

MastraMCPClient を使ってEdisonに接続します。url だけを指定したサーバーエントリは自動的にStreamable HTTPを使用します。接続URL にはAPIキーが含まれているため、認証ヘッダーは不要です。

npm install @mastra/mcp @mastra/core @ai-sdk/openai
import { 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();

EDISON_MCP_URL に接続URLを設定してください(例:https://mcp.edison.watch/mcp/<your-api-key>/?client=mastra)。urlURL オブジェクトを受け取り、クリーンアップは disconnect() で行います(.close() はありません)。ツールメソッドは listTools()(静的)と listToolsets()(リクエストごと)です。古い名前 getTools() / getToolsets() はエイリアスとして残っていますが、list* 形式を推奨します。

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

ゼロ知識暗号化シークレット を使用するサーバーには、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! },
      },
    },
  },
});

リクエストごとに異なるユーザーの認証情報を使う場合は、構築時にツールをバインドするのではなく、agent.generate(prompt, { toolsets }) に渡す動的な await mcp.listToolsets() を優先してください。