dialnexa
Voice AI on steroids!
Что умеет
- List Calls: Returns call logs for the organization, filterable by agent, status, sentiment, and date range. Use this when the user asks about call history or outcomes across multiple calls. For a sing
- Get Call: Returns full details for a single call by its ID (e.g. call_abc123). Use list_calls first if you don't already have the ID.
- Get Call Details: Returns what actually HAPPENED on one call: its transcript, the post-call summary, notes, the recording link, and post-call-analysis field order. This is the only way to read a SINGL
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Voice AI on steroids! Docs: https://dialnexa.com/docs/mcp-tools/overview
Как подключить
Как подключить dialnexa к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://dialnexa--kamat.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить dialnexa к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://dialnexa--kamat.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить dialnexa к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://dialnexa--kamat.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (60)
Технические названия из tools/list. Нужны только разработчикам.
| list_calls | Returns call logs for the organization, filterable by agent, status, sentiment, and date range. Use this when the user asks about call history or outcomes across multiple calls. For a single known call, use get_call instead. |
| get_call | Returns full details for a single call by its ID (e.g. call_abc123). Use list_calls first if you don't already have the ID. |
| get_call_details | Returns what actually HAPPENED on one call: its transcript, the post-call summary, notes, the recording link, and post-call-analysis field order. This is the only way to read a SINGLE call's transcript — get_call returns metadata (status, duration, cost) but never the conversation. Use it for "what did the agent say on that call?", "why did this one go wrong?", or to quote a caller's own words. Transcripts can be long; ask only for the fields you need. |
| get_call_retries | Returns the retry attempts made for a call, given the ORIGINAL (parent) call id. Retries are separate call records with no batch id of their own, so they do not show up in list_calls_in_batch or campaign counts — this is the only way to see them. Use it for "did it try again?", "how many attempts did this lead get?", or when a campaign's numbers do not add up. An empty list means no retries were made. |
| get_call_transfer | Returns whether a call was handed to a human (warm transfer) and how that went — which sessions were attempted and their status. Answers "did this reach a person?". Calls whose agent has no transfer step report had_call_transfer_node: false. |
| create_call | Places a real outbound phone call using one of the organization's agents. This is NOT a read-only action: it dials an actual phone number immediately and deducts from the organization's billing wallet on success. Only call this after the user has explicitly confirmed the phone number and intent — never as a guess or a way to "check" something. Requires the org to have verified KYC and sufficient wallet balance; fails with a clear error otherwise. Returns the new call's ID (e.g. call_abc123), which can be passed to get_call to check on its status afterward. |
| redact_call | Permanently masks a call's TRANSCRIPT and RECORDING while keeping the call record itself (status, duration, cost, outcome) intact. This is the tool for privacy and data-deletion requests — "delete the recording for that call", "remove what the caller said", a GDPR erasure ask. It CANNOT be undone and the audio is not recoverable, so never use it to tidy up or free space, and never as a side effect of another request. Requires confirm: true. If the user only wants to stop seeing it, say that this is irreversible and ask them to confirm that is what they want. |
| list_agents | Returns every voice agent in the organization as a compact roster — agent_id, name, type, current version number. This is the tool for resolving an agent NAME to an agent_id (names like "Nexa Agent 10" live here); it deliberately omits prompts, settings and version detail so the whole roster always fits in one result. Call get_agent with an id from here when you need full configuration. |
| get_agent | Returns full configuration for a single agent by ID (e.g. agent_abc123), including all versions with their functions, pronunciations, and post-call analysis config. Use list_agents first if you don't already have the ID. |
| create_agent | Creates a new voice agent for the organization. This is NOT a read-only action — it creates a real, persistent agent. prompt_text, language_id, and voice_id are required; everything else has sensible defaults. Use list_languages/list_voices/list_llms/list_transcribers first to get valid IDs. Only call this after the user has described what they want the agent to do — never as a guess. |
| update_agent | Updates a specific DRAFT version of an existing agent's configuration. This is NOT a read-only action. version_number is required — published versions cannot be updated (only re-published). Only fields you provide are changed — omit anything you don't want to touch. Use get_agent first to see current values and version numbers. |
| duplicate_agent | Clones an existing agent — copies its current version's prompt and every setting into a brand-new agent. Reversible: the copy is an unpublished DRAFT that makes no calls, and the original is untouched. Deliberately does NOT copy the phone-number binding, so the clone never starts answering the original's number. Use it for "make a copy of X so I can tweak it" or "same agent but for the Hindi market". Resolve the source with list_agents first. |
| delete_agent | Permanently deletes an agent. This is NOT reversible. Only call this after the user has explicitly confirmed they want THIS specific agent deleted — never as a guess, and never in response to an ambiguous request. Use get_agent first to confirm you have the right one. Requires confirm: true — only set this after the user has given explicit approval in this conversation, never preemptively. |
| list_llms | Returns the LLM providers/models available to use when configuring an agent (e.g. GPT-4, Claude). Use when the user asks what LLMs are available or wants to pick one for an agent. |
| get_llm | Returns details for a single LLM by ID (e.g. llm_abc123). Use list_llms first if you don't already have the ID. |
| list_fallback_llms | Returns the LLMs eligible to be configured as an agent’s fallback model (used if the primary LLM fails). Use when the user asks what fallback LLM options exist. |
| list_languages | Returns the languages available for agent voices and transcription. Use when the user asks what languages are supported or wants to configure agent language. |
| get_language | Returns details for a single language by ID (e.g. lang_abc123). Use list_languages first if you don't already have the ID. |
| list_voices | Returns available TTS voices for configuring an agent. Supports three modes via the mode param: standard catalog (filterable by provider/accent/gender/name), just the distinct accent values, or speech-to-speech-capable voices only. |
| get_voice | Returns details for a single voice by ID (e.g. voice_abc123). Use list_voices first if you don't already have the ID. |
| get_voice_languages | Returns the languages a specific voice supports, given its voice ID. |
| list_transcribers | Returns the speech-to-text transcriber options available for configuring an agent. |
| get_transcriber | Returns details for a single transcriber by ID (e.g. trs_abc123). Use list_transcribers first if you don't already have the ID. |
| list_fallback_transcribers | Returns transcribers with is_fallback=true — use this list to populate the Fallback STT selector when configuring per-agent STT fallback settings. |
| list_batch_calls | Returns the organization's batch call campaigns (bulk outbound call jobs), each with an id and title. Use this to find a batch_id before listing the calls inside it or its leads. |
| list_calls_in_batch | Returns the individual call logs that belong to a specific batch call campaign, given its batch_id. This is NOT a single-batch-details lookup — it's the calls made within that batch. Use list_batch_calls first to find the batch_id. |
| list_batch_call_leads | Returns the leads (contacts) uploaded into a specific batch call campaign, given its batch_id — phone number, notes, and dynamic variables per lead. |
| clean_batch_call_names | Suggests a cleaned-up natural first name for each raw name you pass in — same AI suggestion logic the dashboard's batch call upload wizard uses (extracts a first name, e.g. "Rai Rao" -> "Rai", strips titles, fixes casing). Read-only — it only returns suggestions, it does not change anything. Call this on the name column before create_batch_call, show the user original vs. suggested for each, let them accept/reject/edit, then build the final CSV using the confirmed names. |
| preview_batch_call_leads | Parses a small CSV/Excel leads file WITHOUT creating anything — same preview/validation the dashboard's batch call upload wizard runs before letting a batch start. Returns how many rows are valid vs. invalid, and for each invalid row, which phone number failed and why (bad country code, invalid length, destination not allowed by this org's calling rules, etc.). Use this on the file before create_batch_call: if invalid_row_count > 0, show the user the specific bad rows, get them fixed or dropped, then call create_batch_call with the corrected file. Same file_base64 size limit as create_batch_call (a few dozen rows). |
| create_batch_call | Creates a batch call campaign from a small lead list and starts dialing real phone numbers immediately. This is NOT a read-only action, spends real money, and cannot be undone once calls go out (the campaign itself can be cancelled afterward with update_batch_call_status, but any calls already placed are not). Requires confirm: true — only set this after the user has explicitly approved starting this specific batch, never preemptively. Only suitable for short lists (a few dozen leads at most) — for larger campaigns, tell the user to use the dashboard upload instead. Recommended order: clean_batch_call_names on the name column, then preview_batch_call_leads on the file, resolve any issues with the user, THEN call this. file_base64 must be the base64-encoded content of a CSV or Excel file with a phone_number column (and optionally name/other columns as dynamic variables). agent_version_number is required in practice — omitting it fails with "no outbound phone number found," since the org's phone number is bound to a specific agent+version pair, not just the agent. Use get_agent or list_agent_versions first to find the right version_number. |
| update_batch_call_status | Changes the execution status of a batch call. This is NOT a read-only action. pause halts new outbound calls (in-progress ones continue, can be resumed); resume continues a paused batch; cancel permanently stops it, removes queued calls, and marks call logs cancelled — it cannot be resumed or undone, and requires confirm: true (only set this after the user has explicitly approved cancelling this specific batch, never preemptively). pause/resume do not require confirm. |
| list_workflows | Returns the organization's automation workflows (multi-step call/WhatsApp sequences), each with an id and name. Use this to find a workflow_id before inspecting its leads. |
| get_workflow | Returns details for a single workflow by ID (e.g. workflow_abc123). Use list_workflows first if you don't already have the ID. |
| list_workflow_leads | Returns the leads enrolled in a workflow along with their current execution status (which step they're on, when they entered, when they completed). Optionally filter to specific lead IDs. |
| get_workflow_lead_variable_keys | Returns the distinct dynamic variable names (from the uploaded lead CSV columns) available for a workflow's leads — e.g. to know what personalization fields exist. |
| get_workflow_lead_history | Returns the full execution history for one lead within a workflow — every step it passed through, timestamps, and current status. Use list_workflow_leads first to find the lead_id. |
| update_workflow_status | Changes the execution status of a workflow. This is NOT a read-only action. Valid actions: activate (start, must be in draft status; blocking validation errors fail the call — common causes: multiple or zero entry nodes, unreachable nodes, missing CONVERTED/DROPPED nodes, call get_workflow_structure first to catch these before activating) and resume (continue a paused workflow) both return non-blocking warnings in the response when present — e.g. the agent bound to a call node changed since this workflow was last configured — relay these to the user rather than ignoring them. pause/deactivate (halt new leads entering, in-progress ones continue) has no such warnings. |
| remove_workflow_lead | Removes a single lead from a workflow. This is NOT reversible. Use list_workflow_leads first to find the lead_id. Requires confirm: true — only set this after the user has explicitly approved removing this specific lead, never preemptively. |
| list_knowledge_base_documents | Returns the organization's knowledge base entries used to ground agent responses. Use this to find a kb_id before fetching a specific document. |
| get_knowledge_base_document | Returns a single knowledge base document by ID (e.g. kb_abc123). Use list_knowledge_base_documents first if you don't already have the ID. |
| get_knowledge_base_affected_agents | Returns the agents that currently use this knowledge base. Call it BEFORE proposing delete_knowledge_base or any change to a KB, so the user is told which agents lose that knowledge by name rather than in the abstract. An empty list means nothing is attached and deleting is safe. |
| create_knowledge_base | Creates a new, empty named knowledge base container for the organization. This is NOT a read-only action. Note: this only creates the container — adding documents/content to it requires a file upload that is not available through this tool; that has to be done from the dashboard. |
| update_knowledge_base | Renames a knowledge base container. This is NOT a read-only action. |
| delete_knowledge_base | Permanently deletes a knowledge base and its documents. This is NOT reversible, and fails if the knowledge base is still attached to any agent. Requires confirm: true — only set this after the user has explicitly approved deleting this specific knowledge base, never preemptively. |
| list_organization_phone_numbers | Returns phone numbers owned by the organization, including which agent (if any) is assigned inbound/outbound on each. |
| get_organization_phone_number | Returns details for one of the organization's phone numbers by ID (e.g. phn_abc123). |
| search_plivo_numbers | Searches Plivo for phone numbers available to purchase in a given country. Use type to filter local/tollfree/mobile and region for city/state. This searches a provider catalog, not the org's owned numbers — use list_organization_phone_numbers for those. |
| get_phone_number_active_workflows | Returns the ACTIVE workflows that dial through this phone number. Call it BEFORE proposing delete_phone_number or reassigning a number, so the user knows what stops working — releasing a number that a live workflow calls through breaks that workflow mid-run. An empty list means nothing active depends on it. Paused workflows are deliberately excluded: they are not blocking. |
| purchase_phone_number | Purchases a phone number from Plivo and registers it to the organization. This is NOT a read-only action — it spends real money from the organization's wallet immediately. Use search_plivo_numbers first to find an available number and its telephony_provider_id. Requires confirm: true — only set this after the user has explicitly approved buying this specific number, never preemptively. |
| create_sip_trunk | Links an organization-owned SIP trunk phone number for outbound/inbound calling. This is NOT a read-only action. Only call this after the user has provided real SIP termination details — never as a guess or with placeholder values. |
| delete_phone_number | Releases/deletes one of the organization's phone numbers. This is NOT reversible. Use get_organization_phone_number first to confirm you have the right one. Requires confirm: true — only set this after the user has explicitly approved removing this specific number, never preemptively. |
| list_user_webhooks | Returns the organization's configured outbound webhooks (URLs notified on events like call completion). Secrets are masked. |
| get_user_webhook | Returns details for a single webhook by ID (e.g. webhook_abc123). Secret is masked. |
| get_external_webhook | Returns the organization's external webhook configuration — the endpoint DialNexa posts call results to, and its settings. Answers "where do my call results go?" and "is a webhook set up?". Returns null when none is configured. Separate from list_user_webhooks, which covers per-agent webhooks. |
| list_templates | Returns the platform's catalog of pre-built agent templates, optionally filtered by agent type. Use this when the user wants to start from a template rather than build an agent from scratch. |
| get_template | Returns details for a single agent template by ID. Use list_templates first if you don't already have the ID. |
| get_spend_limits | Returns the organization's monthly spend cap, its early-warning alert threshold, how much has been spent so far this month, and when the month resets — all in INR. Pair this with get_wallet_balance for any "how much can I still spend" question: a large wallet behind a small monthly cap is not the runway the balance alone suggests. A null limit means no cap is set. |
| get_billing_alert_emails | Returns the email addresses that receive this organization's balance and spend alerts. An empty list means alerts fall back to the organization owner. |
| get_wallet_balance | Returns the organization's current billing wallet balance in INR — the money left to spend on calls. This is the SAME balance the dashboard sidebar shows, and it is the tool to use for any "how many credits / how much balance do I have left" question. The other billing tools return the plan and rate CATALOG, not what is left. Orgs still on the legacy credit system have no INR wallet; this reports that explicitly rather than returning zero. |
| list_billing_plans | Returns the platform's catalog of available billing plans (pricing tiers). |