// Node.js: npm install @modelcontextprotocol/sdk@^1.29.0
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
import { ResourceUpdatedNotificationSchema } from '@modelcontextprotocol/sdk/types.js';
// Your workspace MCP URL, e.g. https://your-workspace.example/mcp
const { ORBOTO_MCP_URL, ORBOTO_API_KEY, ORBOTO_TICKET } = process.env;
if (!ORBOTO_MCP_URL || !ORBOTO_API_KEY || !ORBOTO_TICKET) {
throw new Error('Set ORBOTO_MCP_URL, ORBOTO_API_KEY and ORBOTO_TICKET');
}
const client = new Client({ name: 'my-agent', version: '1.0.0' });
client.setNotificationHandler(ResourceUpdatedNotificationSchema, async ({ params }) => {
const ticket = await client.readResource({ uri: params.uri });
console.log(ticket.contents); // Pass fresh context to your agent loop.
});
const transport = new StreamableHTTPClientTransport(new URL(ORBOTO_MCP_URL), {
requestInit: { headers: { Authorization: 'Bearer ' + ORBOTO_API_KEY } },
});
await client.connect(transport);
await client.subscribeResource({ uri: 'orboto://ticket/' + ORBOTO_TICKET });
console.log('Subscribed. Change the ticket to receive updates.');
process.once('SIGINT', async () => {
await client.close();
process.exit(0);
});