Do I need to know how telephony works to build a phone-calling Claude skill?
No. The reason to skip the developer voice platforms (Bland, Vapi, Retell, Vocode) and write against a finished product is that the telephony stack (the carrier, speech recognition, voice synthesis, codec conversion, the phone-number pool, and webhook handling) is fully managed. Your SKILL.md only needs two endpoints: POST /call to start a call, and GET /call/:id to poll for the result and a nullable transcript. The skill is judgment plus a fire-and-poll loop. If you can write a markdown file and read a JSON response, you can ship a working phone-calling skill in an afternoon.
How long should a SKILL.md file actually be?
Between 150 and 400 lines is the sweet spot for a phone-calling skill. Shorter than that and you miss edge cases — what to do when nobody picks up, when the receptionist asks if you are a bot, when the user gives a non-US number, when the call reaches voicemail. Longer than that and Claude starts skipping sections. Write the file like a runbook for a junior teammate: charter, when to invoke, when not to invoke, API contract with example payloads, hard rules, and three or four worked transcripts. Add new constraints as short examples in the body rather than as long policy prose at the top.
Can the skill make international calls?
Not today, if you use ClawCall as the backend. The API is US-only (+1 NANP) and English-only, so your skill should validate the destination number before posting and refuse non-US numbers with a clear error. For international calling, you are back in developer voice platform territory (Vapi, Bland, Vocode), wiring telephony yourself. For most consumer and agent uses (appointments, reservations, hold-time elimination, bill disputes, subscription cancellations), US-only is enough, which is why the trade-off is worth it for flat monthly pricing and a packaged skill.
What is the difference between a Claude Code skill and an MCP server for phone calls?
A skill is a markdown file Claude reads to decide when and how to do something — no code, no process, no port. An MCP server is a long-running process that exposes tools over the Model Context Protocol, which Claude can call as functions. For phone calling, hosted OAuth MCP is the preferred primitive when the host supports remote MCP and OAuth: connect https://api.clawcall.dev/mcp, sign in, and let the host discover the workflow tools without receiving a ClawCall API key. A SKILL.md plus the REST API remains useful as a fallback for incompatible hosts or when you need custom procedural guidance beyond the hosted tool descriptions.
How do I keep the skill from making spam calls or leaving voicemails?
Put the hard rules in the SKILL.md body and back them with a backend that follows them too. The ClawCall voice agent follows two fixed rules: it always discloses it is an AI when asked, and it leaves voicemail only when the call instructions authorize one. The skill should restate both in plain language so Claude understands the boundary, and should add a do-not-call rule: no bulk or robocall-style promotions; individual outreach calls are allowed within the user’s instructions. Backend rules plus skill-level instruction are what keep a phone-calling agent on the right side of consumer-protection law and basic decency.