bland-skills
v2.0.0
Published
Voice AI agent skills and MCP server for Bland AI — make calls, manage personas, knowledge bases, and more
Maintainers
Readme
Bland AI Skills
Voice agent skills and MCP tools for AI coding agents. Make phone calls, manage personas, knowledge bases, pathways, and more — all from natural language.
Demo
A Telegram bot that books a hair salon appointment — dispatches an outbound call, handles a callback when the salon reschedules, and confirms via SMS. All from a single message.
Quick Start
1. Add the Marketplace
In Claude Code:
/plugin marketplace add CINTELLILABS/bland-skills2. Install the Plugin
/plugin install bland@bland-skillsThis installs both the skills (workflow guidance) and the MCP server (API execution). The MCP server starts automatically when Claude Code launches.
3. Authenticate
Just ask the agent:
"Log in to Bland AI"
The bland_auth_login tool opens your browser to sign up or log in, then saves your API key automatically. No manual env setup needed.
Alternative: Set BLAND_API_KEY in your shell profile:
export BLAND_API_KEY="sk-..."4. Make a Call
"Call +14155551234 and ask how the weather is. Keep it under 1 minute."
The agent will create a call, monitor it, and show you the results.
Architecture
The plugin has two layers that work together:
- MCP Server (
dist/mcp-server.js) — executes all Bland API calls. Handles auth, HTTP, error handling. Speaks JSON-RPC over stdio. - Skills (
skills/) — teach the agent how to use the tools effectively: when to use personas vs raw calls, how to monitor call lifecycle, how to manage knowledge bases.
The MCP server resolves your API key automatically:
BLAND_API_KEYenvironment variable- Local config file saved by
bland_auth_login(~/.config/bland-cli-nodejs/config.json)
Skills
| Skill | Description |
|-------|-------------|
| setup-api-key | Authenticate with Bland AI via browser login or manual key |
| create-call | Create outbound voice calls with phone number, task/pathway, voice, and parameters |
| monitor-call | List calls, get status, stop calls, retrieve transcripts, play recordings, monitor via SSE |
| personas | Create, update, promote, and delete voice agent personas with draft/production versioning |
| knowledge-base | Upload files/text/URLs to create knowledge bases, attach to calls via tools |
| live-listen | Stream call audio through speakers in real-time via WebSocket |
| send-sms | Send outbound SMS/WhatsApp messages with optional AI-powered responses |
MCP Tools
All API operations go through MCP tools (prefixed bland_):
Auth
bland_auth_login— Browser-based signup/login, saves API key automatically
Calls
bland_call_send— Make outbound call (persona_id, task, or pathway_id)bland_call_list— List recent callsbland_call_get— Get call details, transcript, recording URLbland_call_stop— Stop an in-progress callbland_call_stop_all— Stop all active callsbland_call_active— List active calls
Personas
bland_persona_list— List all personasbland_persona_get— Get persona detailsbland_persona_create— Create personabland_persona_update— Update draft versionbland_persona_delete— Delete personabland_persona_promote— Promote draft to production
Knowledge Bases
bland_knowledge_list— List knowledge basesbland_knowledge_create— Create KB from text or web URLsbland_knowledge_get— Get KB details and statusbland_knowledge_delete— Delete KB
Pathways
bland_pathway_list— List pathwaysbland_pathway_get— Get pathway detailsbland_pathway_create— Create pathwaybland_pathway_chat— Chat with pathway interactivelybland_pathway_node_test— Test individual node
Other
bland_number_list— List phone numbersbland_number_buy— Purchase phone numberbland_voice_list— List available voicesbland_tool_test— Test custom toolbland_sms_send— Send SMS/WhatsApp (Enterprise)bland_audio_generate— Generate TTS audio
Shell Scripts
For operations requiring persistent connections (SSE, WebSocket):
| Script | Description |
|--------|-------------|
| bin/bland-monitor.sh [--raw] | SSE stream monitor for all active calls |
| bin/bland-poll.sh <call_id> [timeout] | Poll until call completes with adaptive intervals |
| bin/bland-play.sh <call_id> [--save file] | Download and play call recording |
| bin/bland-listen.sh <call_id> | Live audio streaming via WebSocket |
These scripts read BLAND_API_KEY from the environment.
Programmatic Usage (Agent SDK)
For embedding Bland tools in your own Agent SDK application:
import { createBlandMcpServer } from "bland-plugin/dist/bland-mcp.js";
const blandServer = createBlandMcpServer(process.env.BLAND_API_KEY);
// Pass to query() as an MCP server
const response = await query({
prompt: "List my personas",
options: {
mcpServers: { bland: blandServer },
allowedTools: ["mcp__bland__bland_persona_list"],
},
});See demo/ for a full example — a Telegram bot that manages appointments via voice calls and SMS.
