import {Client} from '@modelcontextprotocol/sdk/client/index.js'; import {StreamableHTTPClientTransport} from '@modelcontextprotocol/sdk/client/streamableHttp.js'; import {inputs,origin,summary} from './integration-client.mjs'; const client=new Client({name:'Datoka-Hooks-example',version:'1.0.0'}); try{ const {access,eventId,body}=await inputs(); // The hook-specific endpoint keeps access credentials out of tool arguments. await client.connect(new StreamableHTTPClientTransport(new URL(`${origin}/v1/hooks/${access.hookId}/mcp`),{requestInit:{headers:{authorization:'Bearer '+access.token}}})); const reply=await client.callTool({name:'accept_hook_event',arguments:{eventId,contentType:'application/json',bodyBase64:body.toString('base64')}}); if(reply.isError)throw new Error('tool_error'); console.log(JSON.stringify(summary(reply.structuredContent),null,2)); }catch{console.error('Envoi MCP non confirmé. Vérifiez vos accès et reprenez avec le même identifiant et le même fichier JSON.');process.exitCode=1;} finally{await client.close();}