get_call_script
Retrieve structured call scripts for discovery or cold calls, providing key questions and conversation frameworks to guide sales conversations.
Instructions
Get a call script for discovery calls or cold calls.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| call_type | Yes | The type of call script needed |
Implementation Reference
- src/main.ts:927-939 (handler)Handler for the 'get_call_script' tool. Extracts call_type from args, looks it up in CALL_SCRIPTS, and returns the result.
case "get_call_script": { const callType = args?.call_type as string; const script = CALL_SCRIPTS[callType as keyof typeof CALL_SCRIPTS]; return { content: [{ type: "text", text: JSON.stringify({ module: "Call Scripts", ...script }, null, 2) }] }; } - src/main.ts:762-775 (schema)Registration of the 'get_call_script' tool with its name, description, and inputSchema (requires 'call_type' enum: discovery_call, cold_call).
{ name: "get_call_script", description: "Get a call script for discovery calls or cold calls.", inputSchema: { type: "object", properties: { call_type: { type: "string", enum: ["discovery_call", "cold_call"], description: "The type of call script needed" } }, required: ["call_type"] } - src/main.ts:582-641 (helper)The CALL_SCRIPTS constant containing discovery_call and cold_call script data.
const CALL_SCRIPTS = { discovery_call: { name: "Discovery Call Framework", duration: "30 minutes", structure: { opening: { time: "2 min", script: "Thanks for taking the time. Before we dive in, I want to set expectations — my goal today is to understand what you're working on and see if there's a fit. If there is, great. If not, totally fine — I'll point you in the right direction. Sound good?" }, their_situation: { time: "10 min", questions: [ "Tell me about what's happening right now with [topic]. What prompted you to take this call?", "What have you tried so far? What worked, what didn't?", "If you solved this, what would that mean for [company/team/you personally]?", "What happens if you don't solve this?" ] }, your_solution: { time: "10 min", script: "Based on what you've shared, here's how I typically help companies in your situation... [Explain your approach, not your product features]" }, next_steps: { time: "5 min", script: "So here's what I'm thinking for next steps. I'll put together 3 options based on what we discussed and send them over by [date]. You review, and if one of them makes sense, we can move forward. If not, no pressure. Does that work?" }, closing: { time: "3 min", script: "Before we wrap — is there anything else I should know? Anyone else who needs to be involved? Any timeline I should be aware of?" } } }, cold_call: { name: "Cold Call Framework", duration: "2-3 minutes max", structure: { permission: { script: "Hi [Name], this is [Your name] from [Company]. Did I catch you at a bad time?" }, reason: { script: "I'll be quick — I'm reaching out because I noticed [observation about their company]. I help similar companies with [outcome]. Is that something you're working on right now?" }, if_yes: { script: "Great — can I ask what's driving that? What's the main challenge you're running into?" }, if_no: { script: "No worries. Is this 'not right now' or 'not ever'? If it's timing, I'm happy to reach out later." }, book_meeting: { script: "Sounds like there might be a fit. How's [specific date/time] for a 20-minute call to dig deeper?" } }, rules: [ "Keep it under 3 minutes", "Don't pitch — just qualify", "If they're busy, ask for a better time — don't launch into your script", "Sound like a person, not a robot reading a script" ] } }; - src/main.ts:659-796 (registration)The ListToolsRequestSchema handler where 'get_call_script' is registered as one of the available tools (line 762-775).
// Register available tools server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: "get_discovery_script", description: "Get a discovery script to qualify prospects before pitching. Always ask questions first.", inputSchema: { type: "object", properties: { tone: { type: "string", enum: ["professional", "warm", "ultra_short", "cold_outbound", "inbound_lead"], description: "professional=email/linkedin, warm=existing relationship, ultra_short=DM, cold_outbound=first contact, inbound_lead=they reached out" } }, required: ["tone"] } }, { name: "get_objection_response", description: "Handle a specific sales objection with psychology-backed responses.", inputSchema: { type: "object", properties: { objection_type: { type: "string", enum: ["too_expensive", "no_budget", "need_approval", "comparing_options", "bad_timing", "already_have_someone", "send_info", "need_to_think", "too_soon", "ghosting"], description: "The type of objection to handle" } }, required: ["objection_type"] } }, { name: "get_followup_sequence", description: "Get a follow-up sequence for different situations (post-proposal, post-call, cold outbound, revival).", inputSchema: { type: "object", properties: { sequence_type: { type: "string", enum: ["post_proposal", "post_call", "cold_outbound", "revival"], description: "The type of follow-up sequence needed" } }, required: ["sequence_type"] } }, { name: "get_closing_script", description: "Get a closing script based on the situation.", inputSchema: { type: "object", properties: { style: { type: "string", enum: ["standard", "assumptive", "timeline", "scarcity", "retainer", "choice", "next_step"], description: "The closing style to use" } }, required: ["style"] } }, { name: "get_pricing_framework", description: "Get the 3-option pricing framework and templates.", inputSchema: { type: "object", properties: {}, required: [] } }, { name: "get_emea_intelligence", description: "Get market intelligence for selling to a specific European country.", inputSchema: { type: "object", properties: { country: { type: "string", enum: ["uk", "ireland", "spain", "germany", "france", "netherlands", "nordics"], description: "The EMEA market to get intelligence for" } }, required: ["country"] } }, { name: "get_cold_email_template", description: "Get a cold email template for outbound.", inputSchema: { type: "object", properties: { template_type: { type: "string", enum: ["pattern_interrupt", "observation", "mutual_connection", "case_study", "breakup"], description: "The type of cold email template" } }, required: ["template_type"] } }, { name: "get_call_script", description: "Get a call script for discovery calls or cold calls.", inputSchema: { type: "object", properties: { call_type: { type: "string", enum: ["discovery_call", "cold_call"], description: "The type of call script needed" } }, required: ["call_type"] } }, { name: "get_buying_signals", description: "Get a list of buying signals to watch for during sales conversations.", inputSchema: { type: "object", properties: {}, required: [] } }, { name: "get_full_playbook", description: "Get the complete sales playbook with all modules.", inputSchema: { type: "object", properties: {}, required: [] } } ] };