simulate_buyer_persona
Practice sales pitches against realistic buyer personas like CFOs or VPs to refine your messaging and handle objections before actual meetings.
Instructions
Practice your pitch against a realistic buyer — pick a CFO, CTO, COO, VP Sales, or VP Engineering and get their opening challenge. They'll push back the way real buyers do, so you can sharpen your story before the actual meeting.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| persona | Yes | Which buyer to simulate. Pick based on who the user is preparing to meet. | |
| stageId | No | Buyer journey stage (0=Unaware through 7=Advocating). Default: 3. | |
| productDescription | No | What the user's product does. Infer from conversation context. | |
| productName | No | Product name. Infer from context. | |
| mode | No | opening = buyer's opening message. list = available personas. Default: opening. |
Implementation Reference
- src/catalog.js:487-519 (schema)Tool definition and input schema for `simulate_buyer_persona`.
name: 'simulate_buyer_persona', description: 'Practice your pitch against a realistic buyer — pick a CFO, CTO, COO, VP Sales, or VP Engineering and get their opening challenge. They\'ll push back the way real buyers do, so you can sharpen your story before the actual meeting.', annotations: READ_ONLY, inputSchema: { type: 'object', properties: { persona: { type: 'string', enum: ['CFO', 'CTO', 'COO', 'VP Sales', 'VP Engineering'], description: 'Which buyer to simulate. Pick based on who the user is preparing to meet.', }, stageId: { type: 'number', enum: [0, 1, 2, 3, 4, 5, 6, 7], description: 'Buyer journey stage (0=Unaware through 7=Advocating). Default: 3.', }, productDescription: { type: 'string', description: 'What the user\'s product does. Infer from conversation context.', }, productName: { type: 'string', description: 'Product name. Infer from context.', }, mode: { type: 'string', enum: ['opening', 'list'], description: 'opening = buyer\'s opening message. list = available personas. Default: opening.', }, }, required: ['persona'], }, }, - src/server.js:47-69 (handler)The tool handler in `server.js` proxies all tool executions (including `simulate_buyer_persona`) to the `AndruClient` backend API.
server.setRequestHandler( CallToolRequestSchema, async (request) => { if (!client) { return { content: [{ type: 'text', text: JSON.stringify({ error: 'ANDRU_API_KEY not configured. Tool execution requires an API key.' }) }], isError: true, }; } const { name, arguments: args } = request.params; try { return await client.callTool(name, args || {}); } catch (error) { return { content: [{ type: 'text', text: JSON.stringify({ error: error.message }), }], isError: true, }; } } );