OneLi ב־Mastra
איך נותנים לסוכן שבנוי ב־Mastra לבצע שיחות טלפון בעברית דרך OneLi, לעקוב אחרי השיחה, לענות להתייעצויות ולקבל את התוצאה.
ל־Mastra יש לקוח MCP מובנה. מוסיפים את שרת OneLi עם מפתח ה־API בכותרת, והסוכן מקבל את כל הכלים של OneLi.
התקנה
- יוצרים מפתח API ב־oneli.io/app/connect ושומרים אותו במשתנה הסביבה
ONELI_API_KEYבשרת. - מתקינים את החבילות:
Terminal
npm i @mastra/core @mastra/mcp zodנבדק מול: @mastra/core 1.79.0 · @mastra/mcp 2.5.0
חיבור דרך MCP (מומלץ)
TypeScript
import { MCPClient } from '@mastra/mcp'
import { Agent } from '@mastra/core/agent'
const mcp = new MCPClient({
id: 'oneli',
servers: {
oneli: {
url: new URL('https://mcp.oneli.io/mcp'), // url => Streamable HTTP
requestInit: { headers: { Authorization: `Bearer ${process.env.ONELI_API_KEY}` } },
},
},
})
export const callAgent = new Agent({
id: 'call-agent', name: 'Call Agent',
instructions: 'Use OneLi to place and follow phone calls.',
model: 'openai/gpt-5.6-sol', // any model id you use
tools: await mcp.listTools(), // names are namespaced: oneli_create_call_task, …
})חלופה: כלי REST משלכם
TypeScript
import { createTool } from '@mastra/core/tools'
import { z } from 'zod'
export const createCallTask = createTool({
id: 'create-call-task',
description: 'Have OneLi place a phone call. to_number in E.164.',
inputSchema: z.object({ to_number: z.string(), goal: z.string(), instructions: z.string().optional() }),
execute: async (input, { abortSignal }) => {
const r = await fetch('https://api.oneli.io/v1/call-tasks', {
method: 'POST', signal: abortSignal,
headers: { Authorization: `Bearer ${process.env.ONELI_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ idempotency_key: crypto.randomUUID(), ...input }),
})
if (!r.ok) throw new Error(`OneLi ${r.status}: ${await r.text()}`)
return r.json()
},
})שימו לב
- שמות הכלים מקבלים קידומת של שם השרת, למשל oneli_create_call_task.
- בגרסאות 1.x הפונקציה נקראה getTools(); היום listTools().
- למפתח נפרד לכל משתמש: listToolsets() ומעבירים את התוצאה בזמן generate או stream.
מספרי טלפון: OneLi מקבלת מספר ישראלי בכל פורמט נפוץ (050-1234567, +972501234567). כשהשיחה מתחילה, הסוכן ממשיך עם get_call_events או עם GET /v1/call-tasks/:id/events כדי לעקוב, לענות להתייעצויות ולקבל את הסיכום.
מה הלאה
מקורות: mastra.ai/reference/tools/mcp-client · mastra.ai/docs/agents/using-tools