一键导入
vapi-voice-agents
Create Vapi voice assistants and place outbound phone calls via the Vapi MCP — cold outreach, SDR, appointment setting, callbacks.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create Vapi voice assistants and place outbound phone calls via the Vapi MCP — cold outreach, SDR, appointment setting, callbacks.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
How to make an AI coding agent run on a schedule, loop, or interval — cron jobs, heartbeats, self-starting/self-terminating loops, recurring autonomous checks. Use when the user asks to "run every N minutes/hours", "check something on a regular interval", "schedule a task", "run on a loop", "self-start", "heartbeat", "cron job for an agent", or wants an agent to fire periodically without manual launching. Covers two camps — one-shot agents you wrap in an external clock (Claude Code, Codex, Pi) vs agents with a built-in scheduler daemon (Hermes).
Use only when David explicitly says "track my behavior in this conversation" or clearly asks to log, track, or analyze his behavior in the current conversation. This skill logs each of David's messages to a local behavior database, records decisions with follow-up questions, updates local notes when useful, and surfaces patterns when asked.
Direct browser control via CDP. Use when the user wants to automate, scrape, test, or interact with web pages. Connects to the user's already-running Chrome.
MUST be read ANY time you interact with cmux in ANY way — listing/inspecting/creating/closing cmux workspaces, panes, or surfaces; reading or capturing pane/screen output; sending input or keys to a pane/surface; delegating to, polling, or checking on other agents running in cmux panes/surfaces; building or rearranging terminal layout; cmux browser automation; sending notifications/flashes/status/progress to the sidebar; editing cmux settings; or integrating an agent with cmux hooks. If your command starts with `cmux ` or touches a cmux workspace/pane/surface/agent, read this FIRST. Triggers on "cmux", "in this workspace", "this pane", "the other agent", "delegate to", "check on the agent", "send to the pane". macOS only (14.0+).
Explain and write effective instructions for OpenAI Codex's `/goal` feature — the persistent self-checking agent loop (plan → act → test → review → iterate). Use when the user mentions Codex `/goal`, "goal loop", wants to kick off a long-running autonomous Codex run, asks how to write a goal prompt, or wants a one-paragraph goal instruction drafted.
Use when David is preparing for or running a consulting call (lawyer, accountant, tax advisor, etc.) and wants to manage a question list — adding, marking as asked, moving between Main/Potential, or tracking answers. Triggers on consulting call, advisor call, prep questions, mark as asked, add question to call.
| name | vapi-voice-agents |
| description | Create Vapi voice assistants and place outbound phone calls via the Vapi MCP — cold outreach, SDR, appointment setting, callbacks. |
| when_to_use | User wants to spin up a phone agent, place an outbound call, do cold outreach / lead-gen calls, or test a Vapi assistant. Anything involving mcp_vapi_* tools. |
End-to-end workflow for building a Vapi assistant and placing live outbound calls from the terminal. The Vapi MCP exposes assistants, phone numbers, tools, and calls — you orchestrate them.
mcp_vapi_list_phone_numbers — pick a phoneNumberId whose country matches the target. NJ/US target → use a US Vapi number. PL target → Polish number. Mismatched country = bad answer rate.mcp_vapi_create_assistant — name, firstMessage, instructions, llm, voice, transcriber. Defaults that work: gpt-4o / 11labs (sarah for warm female SDR) / deepgram nova-3.mcp_vapi_create_call — pass assistantId, phoneNumberId, customer.number (E.164).mcp_vapi_get_call until status == "ended". Transcript fields only populate after the call ends.Do NOT ask the user to "ping you when ready." Auto-poll. Run terminal('sleep 30') then call mcp_vapi_get_call. Repeat at 30–60s intervals. Calls typically run 30s–3min. Status transitions: queued → ringing → in-progress → ended.
If the user says "cold outreach to X businesses in Y region," research a real target yourself via web_search. Pull a phone number off Yelp/their website. Don't ask the user to provide one — David specifically pushed back on this with "research that yourself." Same for caller identity/agency name — invent a plausible one (e.g. "BrightLane") unless they specified a brand.
The instructions field is the entire system prompt. For appointment-setting calls use this skeleton:
firstMessage should be conversational and end with a yes/no question to anchor the call. Pattern: "Hey, this is <Name> from <Company> — am I catching the owner or manager for a quick thirty seconds?"
call.start.error-get-transport on call create: that specific Vapi number has a transport/SIP-trunk issue. The fix is NOT to debug — just retry create_call with a different phoneNumberId from the list. The error fires within ~1s of createdAt, ended immediately, no debit. Surface this to the user as "this number's transport is broken, swapping" — don't ask permission, just rotate.mcp_vapi_get_call exposes messages/transcript/summary/recordingUrl only after status == "ended". Don't pull early and report "no transcript" — keep polling.firstMessageMode: default assistant-speaks-first is right for outbound. Use assistant-waits-for-user only if the dialed number has its own IVR/intro you must let play.Cold-call laws vary by US state. NJ is generally permissive for B2B but the assistant MUST honor any "remove me" / "don't call back" request immediately and end the call. The AI-disclosure rebuttal in the instructions is a hard requirement — never instruct the assistant to deny being an AI.
Create the assistant once, then loop mcp_vapi_create_call with different customer.number values. Override per-call context via assistantOverrides.variableValues and reference those as {{varname}} inside instructions — useful for personalizing per business without forking the assistant.