cloudflare-api
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email routing, cache purge, WAF rules,…
Build conversational AI voice agents on the ElevenLabs platform. Configure agent + tools + knowledge base, integrate SDK (React / React Native / Swift / JS / server-side), test, deploy. Use whenever the user mentions ElevenLabs, building a voice agent, an AI phone system, an AI
$ npx -y skills add jezweb/claude-skills --skill elevenlabs-agents --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/elevenlabs-agentsContext preview
The summary Claude sees to decide when to auto-load this skill.
Build conversational AI voice agents on the ElevenLabs platform. Configure agent + tools + knowledge base, integrate SDK (React / React Native / Swift / JS / server-side), test, deploy. Use whenever the user mentions ElevenLabs, building a voice agent, an AI phone system, an AI
name: elevenlabs-agents description: "Build conversational AI voice agents on the ElevenLabs platform. Configure agent + tools + knowledge base, integrate SDK (React / React Native / Swift / JS / server-side), test, deploy. Use whenever the user mentions ElevenLabs, building a voice agent, an AI phone system, an AI receptionist, conversational AI, or troubleshooting deprecated @11labs packages, webhook errors, CSP violations, localhost allowlist, or tool parsing errors." compatibility: claude-code-only
Build a production-ready conversational AI voice agent. Produces a configured agent with tools, knowledge base, and SDK integration.
npm install @elevenlabs/react # React SDK
npm install @elevenlabs/client # JavaScript SDK (browser + server)
npm install @elevenlabs/react-native # React Native SDK
npm install @elevenlabs/elevenlabs-js # Full API (server only)
npm install -g @elevenlabs/agents-cli # CLI ("Agents as Code")**DEPRECATED:** `@11labs/react`, `@11labs/client` -- uninstall if present.
**Server-only warning:** `@elevenlabs/elevenlabs-js` uses Node.js `child_process` and won't work in browsers. Use `@elevenlabs/client` for browser environments, or create a proxy server.
**Dashboard:** https://elevenlabs.io/app/conversational-ai -> Create Agent
**CLI (Agents as Code):**
elevenlabs agents init elevenlabs agents add "Support Bot" --template customer-service # Edit agent_configs/support-bot.json elevenlabs agents push --env dev
Templates: `default`, `minimal`, `voice-only`, `text-only`, `customer-service`, `assistant`.
Configure:
Use the 6-component framework for effective agent prompts:
**1. Personality** -- who the agent is:
You are [NAME], a [ROLE] at [COMPANY]. You have [EXPERIENCE]. Your traits: [LIST TRAITS].
**2. Environment** -- communication context:
You're communicating via [phone/chat/video]. Consider [environmental factors]. Adapt to [context].
**3. Tone** -- speech patterns and formality:
Tone: Professional yet warm. Use contractions for natural speech. Avoid jargon. Keep responses to 2-3 sentences. Ask one question at a time.
**4. Goal** -- objectives and success criteria:
Primary Goal: Resolve customer issues on the first call. Success: Customer verbally confirms issue is resolved.
**5. Guardrails** -- boundaries and ethics:
Never: provide medical/legal/financial advice, share confidential info. Always: verify identity before account access, document interactions. Escalation: customer requests manager, issue beyond knowledge base.
**6. Tools** -- available functions and when to use them:
1. lookup_order(order_id) -- Use when customer mentions an order. 2. transfer_to_supervisor() -- Use when issue requires manager approval. Always explain what you're doing before calling a tool.
**Client-side tools (run in browser):**
const clientTools = {
updateCart: {
description: "Add or remove items from the shopping cart",
parameters: z.object({
action: z.enum(['add', 'remove']),
item: z.string(),
quantity: z.number().min(1)
}),
handler: async ({ action, item, quantity }) => {
const cart = getCart();
action === 'add' ? cart.add(item, quantity) : cart.remove(item, quantity);
return { success: true, total: cart.total, items: cart.items.length };
}
},
navigate: {
description: "Navigate user to a different page",
parameters: z.object({ url: z.string().url() }),
handler: async ({ url }) => { window.location.href = url; return { success: true }; }
}
};**Server-side tools (webhooks):**
{
"name": "get_weather",
"description": "Fetch current weather for a city",
"url": "https://api.weather.com/v1/current",
"method": "GET",
"parameters": {
"type": "object",
"properties": {
"city": { "type": "string", "description": "City name" }
},
"required": ["city"]
},
"headers": {
"Authorization": "Bearer {{secret__weather_api_key}}"
}
}Use `{{secret__key_name}}` for API keys in webhook headers -- never hardcode.
**MCP Tools -- CRITICAL COMPATIBILITY NOTE:**
ElevenLabs labels their MCP integration as "Streamable HTTP" but does NOT support the actual MCP 2025-03-26 Streamable HTTP spec (SSE responses). ElevenLabs expects:
What does NOT work:
Working MCP server pattern for ElevenLabs:
import { Hono } from 'hono';
import { cors } from 'hono/cors';
const tools = [{
name: "my_tool",
description: "Tool description",
inputSchema: {
type: "object",
properties: { param1: { type: "string", description: "Description" } },
required: ["param1"]
}
}];
async function handleMCPRequest(request, env) {
const { id, method, params } = request;
switch (method) {
case 'initialize':
return {
jsonrpc: '2.0', id,
result: {
protocolVersion: '2024-11-05', // MUST be 2024-11-05
serverInfo: { name: 'my-mcp', version: '1.0.0' },
capabilities: { tools: {} }
}
};
case 'tools/list':
return { jsonrpc: '2.0', id, result: { tools } };
case 'tools/call':
const result = await handleTool(params.name, params.arguments, env);Production workflow skills for Claude Code. Each skill guides Claude through a recipe to produce tangible output — scaffolded projects, generated assets, professional documents, deployed services. Ten plugins of practical, production-oriented skills.
Repo: jezweb/claude-skills
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email routing, cache purge, WAF rules,…
Scaffold and deploy Cloudflare Workers with Hono routing, Vite plugin, and Static Assets. Describe project, scaffold structure, configure bindings, deploy. Use…
Generate Drizzle ORM schemas for Cloudflare D1 databases with correct D1-specific patterns. Produces schema files, migration commands, type exports, and…
Cloudflare D1 migration workflow: generate with Drizzle, inspect SQL for gotchas, apply to local and remote, fix stuck migrations, handle partial failures. Use…
Generate database seed scripts with realistic sample data. Reads Drizzle schemas or SQL migrations, respects foreign key ordering, produces idempotent…
Scaffold Hono API routes for Cloudflare Workers. Produces route files, middleware, typed bindings, Zod validation, error handling, and API_ENDPOINTS.md…