Vobiz

io.github.vobiz-ai由 GitHub 账号 vobiz-ai 发布v1.4.3更新于 Nov 6, 2026

Vobiz voice calls, IVRs, call records, numbers, SIP trunks, SMS/MMS/RCS and Vobiz skills.

已验证Streamable HTTP可网页运行云端与基础设施沟通与协作商业与电商

概览

AI 生成的概览

Vobiz 官方 MCP 服务器,让助手在你的 Vobiz 账户上拨打和控制电话、搭建 IVR、发送短信/彩信/RCS,并管理号码、SIP 中继和子账户。

可以做什么
  • 拨打与控制通话:发起和结束通话、转接、保持、播放音频、朗读文本、发送按键音,查询通话状态、通话记录和录音。
  • 管理会议与媒体:静音、屏蔽成员、踢出成员、录制会议,并把通话音频流式传输给 AI 代理。
  • 构建 IVR 与回调:生成 VobizXML 应答文档、收集按键、列出 webhook。
  • 管理账户与基础设施:电话号码、SIP 中继、端点、凭据、IP 白名单、语音应用和子账户。
  • 发送与追踪消息:短信、彩信和 RCS,费用预估、会话、群发和退订名单。
  • 查询账单交易;在托管连接器上还可安排带自定义音频的提醒电话。
适用场景
当你希望助手实际操作真实的 Vobiz 电话账户时使用,例如外呼、IVR、会议、为语音代理配置 SIP 中继或短信群发,以及查看通话记录和支出。托管连接器也适合用电话做简单的个人提醒。
运行要求
需要一个 Vobiz 账户及其 Auth ID 和 Auth Token。远程使用连接托管端点并通过 OAuth 登录;本地使用通过 npx 运行 npm 包,需要 Node.js 22.9 或更高版本,并设置 VOBIZ_AUTH_ID 和 VOBIZ_AUTH_TOKEN。外呼、消息和开通功能默认关闭,需通过相应环境变量开启。
安装前请注意
它会操作真实的付费账户:通话、消息和购买号码都会产生费用,购买还需将 VOBIZ_MAX_NUMBER_COST 设为大于零。外呼、消息和开通默认关闭,需用 VOBIZ_ENABLE_CALLS、VOBIZ_ENABLE_MESSAGING 或 VOBIZ_ENABLE_PROVISIONING 开启。多数操作需要 confirm: true 或用户确认提示,但按键音、播放、静音等通话中控制无需二次确认。托管连接器会保存提醒内容和上传的音频,凭据会发送给 Vobiz。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Vobiz,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.vobiz-ai%2Fvobiz-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "vobiz": {
      "type": "http",
      "url": "https://mcp.vobiz.ai/mcp"
    }
  }
}

README

Vobiz MCP server

The official Model Context Protocol server for Vobiz. It lets Claude and any other MCP client run real work on your Vobiz account:

  • place and control voice calls, run conferences, and stream call audio to AI agents
  • build VobizXML IVRs
  • read call records and recordings
  • manage phone numbers, SIP trunks, credentials, IP allow-lists, SIP endpoints, voice applications and sub-accounts
  • read billing transactions
  • send SMS, MMS and RCS messages
  • schedule reminder and wake-up calls (hosted connector)
  • call someone and play audio or speak text in one step: make_call with say / play (hosted connector)

It also ships the Vobiz Agent Skills, so the model knows how each Vobiz product works before it acts.

[CI] [npm] [MCP Registry] [License: MIT] [Glama]

Tools114 in 13 toolsets: calls, in-call control, conferences, media (audio streams, recordings, number releases, billing), records, IVR/XML, account and numbers, provisioning (applications, number purchases, SIP trunks), SIP endpoints and credentials, sub-accounts, messaging (SMS/MMS/RCS, opt-outs), skills, and reminder calls with your own audio (hosted connector)
Prompts17: one per Vobiz skill, e.g. vobiz-voice-xml, vobiz-sip-trunking
Resourcesvobiz://skills/index and vobiz://skills/{name} (with completion)
Transportsstdio (npx), Streamable HTTP for one account, hosted multi-tenant Streamable HTTP with OAuth 2.1
SafetyCalling, messaging and account changes are off until enabled. Calls, messages, purchases, transfers, provisioning and deletes need confirm: true; controls on a call already placed (keypad tones, playback, speech, muting) run without a second confirmation. Calls and messages are rate-limited and idempotent. VOBIZ_READ_ONLY and VOBIZ_TOOLSETS narrow what the model can see.

Looking for documentation search instead of account operations? Use the hosted Vobiz Docs MCP server (https://www.vobiz.ai/docs/mcp). The two servers work well side by side.

"Call me at…"

On the hosted connector (https://mcp.vobiz.ai/mcp) you can say "wake me up at 6 tomorrow" or "call me at 3 to remind me about the dentist". The client calls schedule_reminder_call once and the server does the rest: it places the call at that time from your Vobiz number, speaks the message, and lets you press 1 to snooze, 2 to confirm or 9 to stop. It retries when nobody answers. Nothing depends on the chat staying open.

At sign-in you choose Full access, Personal assistant (only reminder calls to your own number, plus your balance, numbers and call status) or Read-only, and enter your own number, an optional caller ID and your timezone. Manage reminders with list_reminder_calls, get_reminder_call and cancel_reminder_call. Operators: see docs/HOSTING.md.

"Call me and play this"

On the hosted connector, "call +919876543210 and play my alarm" or "call +919876543210 and say 'Your table is ready'" is one make_call with say (text) and/or play (a file in your audio library, or a direct https .mp3/.wav link). The connector hosts the call script: the call plays or speaks the content, then hangs up (loop: 0 repeats the audio until you hang up). A web page such as Pixabay, YouTube, Spotify or SoundCloud cannot be played; give a direct file link or add the file to your audio library first. See docs/TOOLS.md.

Your own audio on a reminder call

Say "use this MP3 as my alarm" or "let me record the message". Your audio plays at the start of the call, before the spoken message. There are three ways to add it to your private audio library:

  • Upload page. create_audio_upload_link gives you a one-time link (valid 15 minutes). Open it to pick or drop a file, or press Record to record from your microphone (up to 5 minutes), then name it.
  • Straight from the chat. If you attached the file and your assistant can run code, it uploads the file to the same link itself.
  • A public link. Paste an https link and the assistant saves it with import_audio_from_url.

Then say "use the audio Morning alarm" and the assistant passes that name as audio to schedule_reminder_call. MP3, WAV, M4A, OGG, WEBM, AAC and FLAC work, up to 15 MB and 5 minutes each. See your files with list_audio and remove one with delete_audio. Operators: see docs/HOSTING.md.

Contents

What you can ask

Ask ClaudeWhat happens
"What's my Vobiz balance and how many calls are live?"get_account_balance, get_concurrency, list_live_calls
"Show yesterday's missed calls to +91 80 1234 5678"list_call_records filtered by date, number and hangup_cause
"Call +919876543210 from my Bangalore number and read them this reminder"list_phone_numbers → you confirm → make_call → speak_text → get_call_status
"Wake me up at 6 tomorrow and tell me to take the 7:10 train" (hosted)you confirm → schedule_reminder_call; the server calls you at 06:00 in your timezone
"Build an IVR: press 1 for sales, 2 for support"get_vobiz_skill vobiz-voice-xml → generate_answer_xml
"Text +14155550123 'Your order has shipped' from my US number"preview_message_cost → you confirm → send_message → get_message
"Who replied to our last SMS broadcast?"list_broadcasts, list_messages direction=in, list_conversations
"Block +14155550123 from future messages"add_opt_out (you confirm)
"Where do my webhooks go?"list_webhooks across applications and SIP trunks
"Set up a SIP trunk for my LiveKit agent"get_vobiz_skill vobiz-sip-trunking → create_sip_trunk (you confirm)
"Mute everyone except the host in the sales-standup conference"get_conference → mute_conference_member
"Stream this call's audio to my agent at wss://agent.example.com/ws"start_audio_stream (you confirm)
"Allow our office IP 203.0.113.10 on the trunk and add a SIP user for the PBX"add_ip_acl_entry, create_trunk_credential (you confirm)
"Create a sub-account for the Mumbai team and send them the KYC link"create_sub_account, create_sub_account_kyc_session (you confirm)
"What did we spend last week?"list_transactions with a date range
"How do I migrate my Plivo integration?"vobiz-plivo-migration prompt

Connect Claude in five steps

Works in claude.ai, Claude Desktop and the Claude mobile apps. Nothing to install.

  1. Copy your credentials. In the Vobiz console overview page, copy your Auth ID (MA_…, or SA_… for a sub-account) and Auth Token.
  2. Open Connectors. In Claude, go to Settings → Connectors → Add custom connector. On Team and Enterprise plans an Owner adds it once under Admin settings → Connectors, then each member connects their own Vobiz account.
  3. Add the server. Name it Vobiz, enter https://mcp.vobiz.ai/mcp, leave the advanced OAuth fields empty, and click Add.
  4. Connect and sign in. Click Connect. On the Vobiz sign-in page, paste your Auth ID and Auth Token, optionally tick Read-only access, and click Allow access. You return to Claude, connected.
  5. Use it. In a new chat, enable Vobiz in the tools menu and ask: "What's my Vobiz balance, and how many calls are live right now?"
ToDo this
Switch between read-only and full accessSettings → Connectors → Vobiz → Disconnect, then Connect again and change Read-only access
DisconnectSettings → Connectors → Vobiz → Disconnect
Revoke every app at onceRotate your Auth Token in the Vobiz console

Claude asks before it runs any tool that places a call, sends a message or changes your account, and the server requires your confirmation for each one. Number purchases are not offered by the hosted connector.

Install

You need a Vobiz account, plus its Auth ID and Auth Token from the overview page of the Vobiz console. The full guide, with config files for every client, is docs/INSTALL.md.

Connect in one step (hosted, recommended)

ClientOne stepThen
Claude (web, Desktop, mobile)Settings → Connectors → Add custom connector → https://mcp.vobiz.ai/mcpClick Connect and sign in (5 steps)
Claude Codeclaude mcp add --transport http vobiz https://mcp.vobiz.ai/mcpRun /mcp, pick vobiz, sign in
Claude Code (plugin: server + skills)/plugin install vobiz --marketplace vobiz-ai/Vobiz-MCP-ServerEnter your Auth ID and Auth Token when asked
Claude Desktop (local extension)Open vobiz-mcp-v1.4.4.mcpb from the latest releaseEnter your Auth ID and Auth Token
OpenAI Codex (CLI, IDE, app)codex mcp add vobiz --url https://mcp.vobiz.ai/mcpThe Vobiz sign-in opens in your browser; to sign in again later, run codex mcp login vobiz
ChatGPTPlugins → + → Add custom MCP server → https://mcp.vobiz.ai/mcpSign in, then use @Vobiz
Gemini CLIgemini mcp add -s user --transport http vobiz https://mcp.vobiz.ai/mcpRun /mcp auth vobiz
CursorAdd to CursorClick Connect in Cursor's MCP settings
VS Code / GitHub CopilotAdd to VS CodeStart the server and sign in
Windsurf / Devindevin mcp add -s user vobiz https://mcp.vobiz.ai/mcpdevin mcp login vobiz
Clinecline mcp add vobiz https://mcp.vobiz.ai/mcp --transport http --yesChoose Authorize OAuth
GooseOpen goose://extension?url=… (link)Sign in
Zed, JetBrains, Warp, LM Studio, ContinueAdd { "url": "https://mcp.vobiz.ai/mcp" } as a server (guide)Sign in

Every remote option signs in with OAuth on a Vobiz page, so no Auth Token is written to a config file. To run the server on your own machine instead, use the local options below.

Run it locally

Local options run the server on your machine with npx and need Node.js 22.9 or newer.

ClientInstall
Claude (web, Desktop, mobile)Settings → Connectors → Add custom connector → https://mcp.vobiz.ai/mcp
Claude Desktop extensionOpen vobiz-mcp-v1.4.4.mcpb from the latest release
Claude Code/plugin install vobiz --marketplace vobiz-ai/Vobiz-MCP-Server (MCP server + skills)
OpenAI Codexcodex mcp add vobiz --env VOBIZ_AUTH_ID=MA_XXXXXXXX --env VOBIZ_AUTH_TOKEN=YOUR_AUTH_TOKEN -- npx -y @vobiz/[email protected]
Gemini CLIgemini extensions install https://github.com/vobiz-ai/Vobiz-MCP-Server
CursorOne-click install
VS Code / CopilotOne-click install
Goosegoose configure → Add Extension → npx -y @vobiz/[email protected] (deeplink)
Windsurf, Zed, Cline, JetBrains, Continue, LM Studio, Warp, ChatGPTdocs/INSTALL.md

Any other MCP client:

json
{  "mcpServers": {    "vobiz": {      "command": "npx",      "args": [        "-y",        "@vobiz/[email protected]"      ],      "env": {        "VOBIZ_AUTH_ID": "MA_XXXXXXXX",        "VOBIZ_AUTH_TOKEN": "YOUR_AUTH_TOKEN"      }    }  }}

Calling, messaging and account changes stay off until you add VOBIZ_ENABLE_CALLS, VOBIZ_ENABLE_MESSAGING or VOBIZ_ENABLE_PROVISIONING set to "true" to env.

To self-host the remote connector: docker run -p 3000:3000 -e VOBIZ_HOSTED_URL=https://mcp.example.com -e VOBIZ_HOSTED_SECRET="$(openssl rand -hex 32)" ghcr.io/vobiz-ai/vobiz-mcp:v1.4.4 (docs/HOSTING.md).

Tools

Every tool has a title, input validation, and annotations: readOnlyHint: true or destructiveHint: true, plus idempotentHint and openWorldHint. Results are structuredContent, with the same JSON sent as text. docs/TOOLS.md lists every input and is generated from the registry.

ToolsetRead-onlyWrites that need confirm: trueWrites without a second confirmation
callsget_call_status, list_live_callsmake_call, end_callsend_dtmf
call_controltransfer_call, hold_call, unhold_call, start_recordingplay_audio, stop_audio, speak_text, stop_speaking, stop_recording
conferenceslist_conferences, get_conferenceend_conference, end_all_conferences, kick_conference_member, hangup_conference_member, start_conference_recordingmute_conference_member, unmute_conference_member, deafen_conference_member, undeafen_conference_member, play_audio_to_conference_member, stop_audio_to_conference_member, stop_conference_recording
medialist_audio_streams, get_audio_stream, list_transactions, list_transaction_typesstart_audio_stream, delete_recording, release_phone_number, cancel_number_release, assign_number_to_subaccount, unassign_number_from_subaccountstop_audio_stream
recordsget_call_details, list_call_records, get_call_recording, list_recordings
voice_xmlgenerate_answer_xml, get_gather_result, list_webhook_events, list_webhooksgather_dtmf
accountget_account_details, get_account_balance, get_concurrency, list_phone_numbers, get_phone_number_details, get_number_health, list_sip_trunks, get_sip_trunk
provisioninglist_applications, get_application, search_available_numberscreate_application, update_application, delete_application, buy_phone_number, update_phone_number, create_sip_trunk, update_sip_trunk, delete_sip_trunk
siplist_sip_endpoints, get_sip_endpoint, list_trunk_credentials, list_ip_acl_entries, list_origination_uriscreate_sip_endpoint, update_sip_endpoint, delete_sip_endpoint, create_trunk_credential, update_trunk_credential, delete_trunk_credential, add_ip_acl_entry, update_ip_acl_entry, delete_ip_acl_entry, create_origination_uri, update_origination_uri, delete_origination_uri
subaccountslist_sub_accounts, get_sub_account, get_sub_account_kyc_statuscreate_sub_account, update_sub_account, delete_sub_account, create_sub_account_kyc_session
messaginglist_messaging_numbers, preview_message_cost, list_messages, get_message, list_conversations, get_conversation_messages, list_broadcasts, get_broadcast, check_opt_out, list_opt_outssend_message, add_opt_out, remove_opt_out
reminders (hosted only)list_reminder_calls, get_reminder_call, list_audioschedule_reminder_call, cancel_reminder_call, delete_audiocreate_audio_upload_link, import_audio_from_url
skillslist_vobiz_skills, get_vobiz_skill

Choosing tools. 114 tools is a lot for some clients. Load only what you need:

  • VOBIZ_TOOLSETS=calls,call_control,records,skills registers just those groups.
  • VOBIZ_READ_ONLY=true keeps only the read-only tools.

Secrets. SIP passwords, credential secrets and sub-account tokens are always redacted. Reset or copy them in the Vobiz console.

Hosting needed. gather_dtmf, get_gather_result, list_webhook_events, hold_call and unhold_call need Vobiz to reach this server. Use single-account HTTP mode with VOBIZ_PUBLIC_URL for them.

Errors. Errors are MCP tool errors (isError: true) shaped like this:

json
{ "ok": false, "error": "not_allowed", "message": "…what happened and what to do…", "retryable": false, "http_status": 400, "hint": "…" }

Error kinds.

  • Input and access: invalid_input, missing_credentials, auth_failed, forbidden, not_found, insufficient_balance
  • Limits and availability: rate_limited, timeout, network_error, service_unavailable
  • Server switches and policy: calls_disabled, messaging_disabled, provisioning_disabled, confirmation_required, not_allowed, spending_limit
  • Idempotency: duplicate_blocked, idempotency_conflict, in_progress, outcome_unknown
  • Other: call_not_active, opted_out, unsupported, internal_error

Call outcomes. Call results add outcome (answered, busy, no_answer, rejected, invalid_number, unreachable, cancelled…) with the typical SIP code.

Skills, prompts and resources

The 17 Vobiz Agent Skills ship inside the package (skills/) and are exposed three ways, so they work in every client:

SurfaceHow to use it
Toolslist_vobiz_skills returns each skill's name, description and sections. get_vobiz_skill { name, section? } returns the whole skill or one section.
PromptsEach skill is a prompt with an optional task argument. In Claude Code, type /mcp__vobiz__vobiz-voice-xml build an IVR for a clinic.
Resourcesvobiz://skills/index and vobiz://skills/{name}, with name completion.

The skills:

  • Voice and calls: vobiz-api, vobiz-voice-calls, vobiz-voice-xml, vobiz-audio-streams, vobiz-cdr
  • Campaigns and reporting: vobiz-campaign-planner, vobiz-reports
  • Numbers and infrastructure: vobiz-phone-numbers, vobiz-sip-trunking, vobiz-applications-endpoints
  • AI and messaging: vobiz-ai-voice-agents, vobiz-sms, vobiz-whatsapp
  • Accounts and partners: vobiz-sub-accounts, vobiz-partner-api
  • Migration and scoping: vobiz-plivo-migration, vobiz-forward-deployed-engineer

The skills come from the Vobiz docs repository. Refresh them with npm run skills:sync [path/to/.mintlify/skills].

Safety model

Everything below is enforced by the server, not left to the model.

GuardDefault
Outbound callsOff (VOBIZ_ENABLE_CALLS)
Sending messages, changing opt-outsOff (VOBIZ_ENABLE_MESSAGING)
Buying or releasing numbers; changing trunks, SIP endpoints, credentials, IP allow-lists, applications and sub-accounts; deleting recordingsOff (VOBIZ_ENABLE_PROVISIONING). Purchases also need VOBIZ_MAX_NUMBER_COST > 0.
Explicit confirmationWhen the MCP client supports elicitation, calls, messages, transfers, holds, recordings, audio streams, purchases, number releases and other account changes are approved by the user in a prompt from the server that names the destination number, URL host or fee; a decline does nothing. Other clients use confirm: true, which the model sets on the user's behalf (model-attested). MCP clients also prompt for every destructive tool.
Idempotencyidempotency_key replays the first result instead of acting twice. Identical calls inside VOBIZ_DUPLICATE_CALL_WINDOW_SEC are refused. Unknown outcomes stay blocked. With a shared store (hosted connector on Firestore) records and call/message caps are shared by every replica; in multi-tenant mode VOBIZ_IDEMPOTENCY_FILE is ignored.
Call limitsDestination countries and blocked prefixes (also for every <Dial> number the server builds), plus caps on duration, per-minute and per-hour calls, and concurrency. A concurrency slot is reserved before the checks run, so simultaneous requests cannot overshoot the cap. A balance floor applies to prepaid accounts.
Message limitsRecipients per send, messages per minute and per hour, recipient countries. Senders must be messaging numbers on the account. Opt-outs are respected.
Number purchasesCost cap, daily cap, balance pre-check, already-owned check
Call-control URLshttps only, approved hosts only (hosted mode: any public host). No credentials in URLs.
Tenant isolationThe account comes from the credentials only. No tool accepts an account ID.
SecretsAuth tokens, SIP passwords and other secrets are redacted from results. Logs carry route templates and status codes only, never phone numbers or tokens.
Untrusted contentMessage bodies, caller names and callback payloads are data, never instructions. Tools that return them mark each item untrusted: true and add a top-level notice and untrusted_fields; all other fields are unchanged.

Configuration

All settings are environment variables. Every one is optional except credentials (and the hosted settings for hosted mode). .env.example lists them all with comments.

AreaVariables (default)
Tool selectionVOBIZ_TOOLSETS (all), VOBIZ_READ_ONLY (false)
CredentialsVOBIZ_AUTH_ID, VOBIZ_AUTH_TOKEN, VOBIZ_BASE_URL (https://api.vobiz.ai), VOBIZ_ENV (development), VOBIZ_TIMEOUT_MS (15000), VOBIZ_LOG_LEVEL (info), VOBIZ_DEFAULT_PAGE_SIZE (20)
CallsVOBIZ_ENABLE_CALLS (false), VOBIZ_DEFAULT_ANSWER_URL, VOBIZ_VERIFY_CALLER_ID (true), VOBIZ_ALLOWED_COUNTRY_CODES (any), VOBIZ_BLOCKED_PREFIXES, VOBIZ_ALLOWED_DESTINATIONS, VOBIZ_ALLOWED_CALLER_IDS, VOBIZ_MAX_CALL_DURATION_SEC (600), VOBIZ_MAX_CALLS_PER_MINUTE (5), VOBIZ_MAX_CALLS_PER_HOUR (30), VOBIZ_MAX_CONCURRENT_CALLS (3), VOBIZ_CHECK_BALANCE (true), VOBIZ_MIN_BALANCE (0), VOBIZ_BALANCE_CURRENCY (primary wallet), VOBIZ_DUPLICATE_CALL_WINDOW_SEC (120), VOBIZ_IDEMPOTENCY_FILE
MessagingVOBIZ_ENABLE_MESSAGING (false), VOBIZ_MESSAGING_ALLOWED_COUNTRY_CODES (any), VOBIZ_MAX_RECIPIENTS_PER_SEND (10), VOBIZ_MAX_MESSAGES_PER_MINUTE (20), VOBIZ_MAX_MESSAGES_PER_HOUR (200), VOBIZ_VERIFY_SENDER (true)
Account changes (numbers, trunks, SIP, applications, sub-accounts, recordings)VOBIZ_ENABLE_PROVISIONING (false), VOBIZ_MAX_NUMBER_COST (0 = no purchases), VOBIZ_MAX_NUMBER_PURCHASES_PER_DAY (1)
URLsVOBIZ_ALLOWED_URL_HOSTS, VOBIZ_ALLOW_ANY_URL_HOST (false)
LinksVOBIZ_CONSOLE_URL, VOBIZ_PRIVACY_URL, VOBIZ_DOCS_URL, VOBIZ_DOCS_MCP_URL (public Vobiz URLs)
Single-account HTTPPORT (3000), HOST (127.0.0.1), VOBIZ_HTTP_SECRET, VOBIZ_PUBLIC_URL, VOBIZ_REMOTE_ALLOW_CALLS (false), VOBIZ_WEBHOOK_SIGNATURE (require), VOBIZ_ANSWER_TEXT
Hosted connectorVOBIZ_HOSTED_URL, VOBIZ_HOSTED_SECRET, VOBIZ_ACCESS_TOKEN_TTL_SEC (3600, max 86400), VOBIZ_REFRESH_TOKEN_TTL_SEC (2592000), VOBIZ_ALLOWED_ORIGINS (https://claude.ai,https://claude.com,https://chatgpt.com,https://chat.openai.com), VOBIZ_HOSTED_EXCLUDED_TOOLS
Hosted connector OAuthVOBIZ_TRUSTED_CLIENTS (none; redirect-host=Display Name), VOBIZ_LOGIN_MAX_PER_IP (10), VOBIZ_LOGIN_MAX_PER_AUTH_ID (10), VOBIZ_TRUSTED_EGRESS_CIDRS (Anthropic's published ranges), VOBIZ_TRUSTED_EGRESS_URL

Run modes

| Mode | Command | For | |---|---|---|---| | stdio | npx -y @vobiz/mcp (or node dist/index.js) | Claude Desktop, Claude Code, Cursor and other local clients on one account | | Single-account HTTP | npx -y @vobiz/mcp http (or npm run start:http) | One account over Streamable HTTP behind a path secret; hosted IVR flows, gather, signed webhooks | | Hosted multi-tenant | npx -y @vobiz/mcp hosted (or npm run start:hosted, Docker) | Public connector: each user signs in with OAuth and acts only on their own account | | Dashboard | npm run dashboard → http://127.0.0.1:5178 | Read-only local browser view built on the same tools |

Single-account HTTP endpoints

| Path | Purpose | Auth | |---|---|---|---| | /mcp/<VOBIZ_HTTP_SECRET> | Streamable HTTP MCP | path secret | | /sse/<secret>, /message/<secret> | legacy SSE MCP for older clients | path secret | | /xml/flow/<id> | hosted XML (answer, transfer, hold, dial) | Vobiz signature + 128-bit ID | | /xml/gather/<id> | Gather Digits callback; returns follow-up XML | Vobiz signature + ID | | /webhooks/vobiz | answer, hangup and status callbacks | Vobiz signature | | /answer | static <Speak> XML | none | | /health | liveness | none |

Callback signatures. Callbacks are checked with X-Vobiz-Signature-V3 = base64(HMAC-SHA256(auth_token, URL-without-query + "." + nonce)). V2 is accepted as a fallback, and the comparison is constant-time. Reused nonces are rejected, and duplicate events are stored once.

Hosted connector (OAuth)

vobiz-mcp hosted is a complete OAuth 2.1 authorization server and MCP resource server in one process. It is built for Claude's connector directory and works with any remote MCP client.

Sign-in flow:

  1. Claude calls POST /mcp without a token. The server answers 401 with WWW-Authenticate: Bearer resource_metadata=".../.well-known/oauth-protected-resource/mcp".
  2. Claude reads the protected-resource metadata (RFC 9728, resource = <VOBIZ_HOSTED_URL>/mcp) and the authorization-server metadata (RFC 8414). The AS metadata advertises PKCE S256, dynamic client registration (RFC 7591) and Client ID Metadata Documents.
  3. Claude registers itself, or uses its CIMD URL, and opens /authorize. The user enters their Auth ID and Auth Token and picks Full access, Personal assistant or Read-only, plus their own number, caller ID and timezone for reminder calls. The server checks the credentials with Vobiz, then redirects back with a single-use code.
  4. /token exchanges the code (PKCE checked) for a 1-hour access token and a 30-day refresh token.

Token handling:

  • Tokens are AES-256-GCM sealed, so no credential database is needed and any number of replicas can share VOBIZ_HOSTED_SECRET.
  • Each request runs on the signed-in account only, with per-account rate limits and idempotency.
  • Rotating the Auth Token in the Vobiz console revokes every token for that account immediately.

Server card. GET https://mcp.vobiz.ai/mcp/server-card (alias /.well-known/mcp/server-card.json) serves an MCP server card: the server's name, version, Streamable HTTP endpoint and supported protocol versions, for clients and scanners that discover servers before connecting. It is public, cached for an hour and lists no tools; those come from tools/list after sign-in.

Tool exclusions. The hosted connector leaves out tools that buy things or need the server to host one account's callbacks. The default list is buy_phone_number, gather_dtmf, get_gather_result, list_webhook_events, hold_call and unhold_call, and you can change it with VOBIZ_HOSTED_EXCLUDED_TOOLS. Browser Origin headers are checked against VOBIZ_ALLOWED_ORIGINS.

Deployment, DNS, scaling and directory submission are covered in docs/HOSTING.md and docs/PUBLISHING.md.

Privacy policy

This server is published by Vobiz (Ilaimitado Private Limited). The full policy is at https://www.vobiz.ai/privacy.

What it processes:

  • Your Vobiz Auth ID and Auth Token, used only to authenticate your requests to the Vobiz API.
  • The tool arguments the MCP client sends, such as phone numbers, message text and call settings.
  • The Vobiz API responses it returns to the client.

What it stores:

  • Local modes: credentials stay in your environment or OS keychain. Idempotency records stay in memory, or in VOBIZ_IDEMPOTENCY_FILE if you set it.
  • Hosted mode (https://mcp.vobiz.ai/mcp): the connector stores no conversation content. Your Vobiz Auth ID and Auth Token are kept only inside encrypted (AES-256-GCM), expiring tokens: the access and refresh tokens your MCP client holds and, while a reminder call is pending, its queued call job. It stores:

| Item | Location | Retention | |---|---|---|---| | Idempotency records for calls, messages and number purchases (key, request fingerprint, the tool result) | Firestore | Up to 24 hours | | Rate counters for calls and messages (per account, per minute and per hour) | Firestore | Until the window ends (at most 1 hour) | | OAuth sessions (refresh-token family: ids, timestamps, a hash of the Auth ID; refresh tokens rotate with reuse detection) and used authorization codes | Firestore | Up to 90 days per session; codes expire after 5 minutes | | Reminder calls (destination number, message text, timezone, caller ID, schedule and the outcome of each attempt) | Firestore | Kept as your reminder history; cancel_reminder_call stops a pending one | | Audio library files and their names | Private Cloud Storage bucket, under a hash of the Auth ID | Until you delete them with delete_audio |

What it never does: it does not read your conversation history, memory or files. It does not use your data for advertising, and it does not sell or share it with third parties.

Logs: logs contain route templates, HTTP status codes and timings. They never contain tokens, message text or phone numbers.

Retention: call records, recordings and messages remain in your Vobiz account under the Vobiz terms (https://www.vobiz.ai/terms).

Contact: [email protected]

Development

bash
git clone https://github.com/vobiz-ai/Vobiz-MCP-Server.gitcd Vobiz-MCP-Servernpm cicp .env.example .env        # placeholders only; fill in your own credentialsnpm run check               # type-check, build, mocked testsnpm run test:live           # live read-only smoke test with .env credentials (calls/messages/purchases forced off)npm run test:live:hosted    # live OAuth flow + hosted tools against the real API (no messages sent)npm run inspector           # MCP Inspector against dist/index.jsnpm run docs:tools          # regenerate docs/TOOLS.mdnpm run skills:sync         # refresh bundled skills from the docs repository

Code layout:

  • Tools live in src/tools/{calls,control,conferences,media,records,account,voice,provisioning,sip,subaccounts,messaging}.ts. Each file is one toolset, registered in src/server.ts.
  • Skills are in src/skills.ts.
  • Guardrails are in src/policy.ts, src/idempotency.ts and src/outcomes.ts.
  • VobizXML generation is in src/xml.ts, hosted flows in src/flows.ts, and callback verification in src/webhooks.ts.
  • Transports are in src/index.ts (stdio), src/http.ts (single account) and src/hosted.ts (OAuth multi-tenant).

Tests:

  • Mocked tests never touch the network, and no test places a call, sends a message or buys a number.
  • CI runs lint, build, the tests on Node 22 and 24, npm audit, the .mcpb manifest check and a package dry-run.
  • Releases are tag-driven (v1.2.3). They publish to npm with provenance and to the MCP Registry, attach the .mcpb bundle, and push the Docker image (see docs/PUBLISHING.md).

Troubleshooting

SymptomFix
missing_credentials / auth_failedSet or rotate VOBIZ_AUTH_ID / VOBIZ_AUTH_TOKEN. In hosted mode, reconnect the connector.
forbidden on account detailsAccount details need main-account (MA_) credentials. Balance, concurrency and numbers work with sub-accounts.
calls_disabled / messaging_disabled / provisioning_disabledEnable the capability (environment variable, or the desktop extension settings).
confirmation_requiredThe model must ask you, then repeat the call with confirm: true.
not_allowedDestination or recipient country, blocked prefix, allowlist, sender or caller ID not on the account, or URL host not approved
rate_limitedServer caps (minute, hour, concurrency, messages) or the account's CPS limit. Wait and retry.
duplicate_blockedSame call within VOBIZ_DUPLICATE_CALL_WINDOW_SEC. Pass a new idempotency_key if a second call is intended.
outcome_unknownDo not retry. Check list_live_calls, list_call_records or list_messages.
unsupported on gather or holdRun single-account HTTP mode with VOBIZ_PUBLIC_URL.
Callbacks rejected with 401VOBIZ_PUBLIC_URL must match the URL Vobiz calls exactly. Try VOBIZ_WEBHOOK_SIGNATURE=verify_if_present.
Hosted sign-in says the link expiredThe sign-in page is valid for 15 minutes. Start the connection again from your client.

Related

  • Vobiz CLI (GitHub, docs): run vobiz mcp install <client> to add this server to Claude Code, Cursor, Codex, VS Code, Gemini CLI, Windsurf, Zed or Claude Desktop. It uses the hosted connector with OAuth sign-in by default.
  • Vobiz Agent Skills (GitHub, docs): the same skills bundled here, packaged for any agent that loads skills.

Built by Team Vobiz

Vobiz is a global programmable telephony platform: SIP trunking, voice APIs, SMS, WhatsApp and AI voice agent integrations in 130+ countries.

Support: [email protected] · Documentation · Issues · Contributing · Security · Code of Conduct

License

MIT © Vobiz

来源:README.md,提交 6d7ed62

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

4
  1. v1.4.3最新Oct 23, 2026
  2. v1.4.2Oct 21, 2026
  3. v1.4.1Oct 20, 2026
  4. v1.1.4Oct 19, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分