import Sandbox from 'e2b'
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const sandbox = await Sandbox.betaCreate({
mcp: {
exa: {
apiKey: process.env.EXA_API_KEY!,
},
notion: {
internalIntegrationToken: process.env.NOTION_API_KEY!,
},
},
});
const client = new Client({
name: 'e2b-mcp-client',
version: '1.0.0'
});
const transport = new StreamableHTTPClientTransport(
new URL(sandbox.betaGetMcpUrl()),
{
requestInit: {
headers: {
'Authorization': `Bearer ${await sandbox.betaGetMcpToken()}`
}
}
}
);
await client.connect(transport);
const tools = await client.listTools();
console.log('Available tools:', tools.tools.map(t => t.name));
await client.close();
await sandbox.kill();