How to integrate Dialpad MCP with Claude Agent SDK

Connect Claude Agent SDK to Dialpad MCP. Block these spam numbers on our phone system, add a new operator to the support call center, and more using natural language, with authentication handled for you.

Dialpad logoDialpad
Oauth2Api Key

Dialpad is a cloud-based business phone and contact center system for teams. It unifies voice, video, messaging, and meetings across your devices.

192 Tools

Introduction

This guide walks you through connecting Dialpad to the Claude Agent SDK using the Composio tool router. By the end, you'll have a working Dialpad agent that can place and transfer calls, send SMS messages, pull call transcripts, manage contacts, and configure call centers and phone numbers through natural language commands.

This guide will help you understand how to give your Claude Agent SDK agent real control over a Dialpad account through Composio's Dialpad MCP server.

Before we dive in, let's take a quick look at the key ideas and tools involved.

Also integrate Dialpad with

TL;DR

Here's what you'll learn:
  • Get and set up your Claude/Anthropic and Composio API keys
  • Install the necessary dependencies
  • Initialize Composio and create a Tool Router session for Dialpad
  • Configure an AI agent that can use Dialpad as a tool
  • Run a live chat session where you can ask the agent to perform Dialpad operations

What is Claude Agent SDK?

The Claude Agent SDK is Anthropic's official framework for building AI agents powered by Claude. It provides a streamlined interface for creating agents with MCP tool support and conversation management.

Key features include:

  • Native MCP Support: Built-in support for Model Context Protocol servers
  • Permission Modes: Control tool execution permissions
  • Streaming Responses: Real-time response streaming for interactive applications
  • Context Manager: Clean async context management for sessions

What is the Dialpad MCP server, and what's possible with it?

The Dialpad MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Dialpad account. It provides structured and secure access to your company’s phone system, giving your agent the ability to manage calls, operators, channels, and communication workflows—all without you lifting a finger.

  • Automated call and participant management: Have your agent add participants to ongoing calls or assign phone numbers to call routers to streamline real-time communications.
  • Channel and team membership control: Let your agent add members to channels or coaching teams, making onboarding and team adjustments effortless.
  • Operator assignment and role management: Easily direct your agent to add or update operators for departments, offices, or call centers, ensuring the right people are always in the right roles.
  • Phone and fax line provisioning: Empower your agent to create and assign fax lines or phone numbers to users, departments, or call routers, keeping your communications infrastructure flexible and up-to-date.
  • Access policy and security oversight: Enable your agent to list and audit access control policies, helping administrators maintain secure and compliant operations within Dialpad.

What is the Composio tool router, and how does it fit here?

What is Composio SDK?

Composio's Composio SDK helps agents find the right tools for a task at runtime. You can plug in multiple toolkits (like Gmail, HubSpot, and GitHub), and the agent will identify the relevant app and action to complete multi-step workflows. This can reduce token usage and improve the reliability of tool calls. Read more here: Getting started with Composio SDK

The tool router generates a secure MCP URL that your agents can access to perform actions.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Step by step09 STEPS
1

Prerequisites

Before starting, make sure you have:
  • Composio API Key and Claude/Anthropic API Key
  • Primary know-how of Claude Agents SDK
  • A Dialpad account
  • Some knowledge of Python
2

Getting API Keys for Claude/Anthropic and Composio

Claude/Anthropic API Key
  • Go to the Anthropic Console and create an API key. You'll need credits to use the models.
  • Keep the API key safe.
Composio API Key
  • Log in to the Composio dashboard.
  • Navigate to your API settings and generate a new API key.
  • Store this key securely as you'll need it for authentication.
3

Install dependencies

npm install @anthropic-ai/claude-agent-sdk @composio/core dotenv

Install the Composio SDK and the Claude Agents SDK.

What's happening:

  • @composio/core provides Composio integration for Anthropic
  • @anthropic-ai/claude-agent-sdk is the core agent framework
  • dotenv/config loads environment variables
4

Set up environment variables

bash
COMPOSIO_API_KEY=your_composio_api_key_here
USER_ID=your_user_id_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here

Create a .env file in your project root.

What's happening:

  • COMPOSIO_API_KEY authenticates with Composio
  • USER_ID identifies the user for session management
  • ANTHROPIC_API_KEY authenticates with Anthropic/Claude
5

Import dependencies

import 'dotenv/config';
import readline from 'node:readline';
import { Composio } from '@composio/core';
import { query, type Options } from "@anthropic-ai/claude-agent-sdk";

dotenv.config();
What's happening:
  • We're importing all necessary libraries including the Claude Agent SDK and Composio
  • The dotenv.config() function loads environment variables from your .env file
  • This setup prepares the foundation for connecting Claude with Dialpad functionality
6

Create a Composio instance and Tool Router session

async function chat() {
  const { COMPOSIO_API_KEY, USER_ID } = process.env;
  if (!COMPOSIO_API_KEY || !USER_ID) {
    throw new Error('COMPOSIO_API_KEY and USER_ID required in .env');
  }

  const composio = new Composio({ apiKey: COMPOSIO_API_KEY });

  // Create Tool Router session for Dialpad
  const session = await composio.create(USER_ID, {
    toolkits: ['dialpad'],
  });
  const mcpUrl = session?.mcp.url;
What's happening:
  • The function checks for the required COMPOSIO_API_KEY environment variable
  • We're creating a Composio instance using our API key
  • The create method creates a Tool Router session for Dialpad
  • The returned url is the MCP server URL that your agent will use
7

Configure Claude Agent with MCP

const options: Options = {
  permissionMode: 'bypassPermissions',
  mcpServers: {
    composio: {
      type: 'http',
      url: mcpUrl,
      headers: { 'x-api-key': COMPOSIO_API_KEY }
    }
  },
  systemPrompt: 'You are a helpful assistant with access to Dialpad tools via Composio.',
  maxTurns: 10,
};
What's happening:
  • We're configuring the Claude Agent options with the MCP server URL
  • permissionMode: 'bypassPermissions' allows the agent to execute operations without asking for permission each time
  • The system prompt instructs the agent that it has access to Dialpad
  • maxTurns: 10 limits the conversation length to prevent excessive API usage
8

Create client and start chat loop

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
    prompt: 'You: '
  });

  console.log('\nChat started. Type "exit" to quit.\n');

  let isProcessing = false;

  async function ask(prompt: string) {
    isProcessing = true;
    rl.pause();

    process.stdout.write('Claude is thinking...');
    const stream = query({ prompt, options });

    let firstChunk = true;
    for await (const msg of stream) {
      const content = (msg as any).message?.content || (msg as any).content;
      if (Array.isArray(content)) {
        for (const block of content) {
          if (block.type === 'text' && block.text) {
            if (firstChunk) {
              process.stdout.write('\r\x1b[K');
              process.stdout.write('Claude: ');
              firstChunk = false;
            }
            process.stdout.write(block.text);
          }
        }
      }
    }
    process.stdout.write('\n\n');

    isProcessing = false;
    rl.resume();
    rl.prompt();
  }

  rl.on('line', async (line) => {
    if (isProcessing) return;

    const input = line.trim();
    if (input === 'exit') {
      rl.close();
      process.exit(0);
    }
    if (input) await ask(input);
    else rl.prompt();
  });

  await ask('What can you help me with?');
}
What's happening:
  • The readline interface is created to handle user input and output
  • The query function is used to send the user's input to the agent
  • The chat loop continues until the user types 'exit' or 'quit'
9

Run the application

try {
  await chat();
} catch (error) {
  console.error(error);
  process.exit(1);
}
What's happening:
  • The chat function is the entry point for the application
  • The try-catch block is used to handle any errors that occur

Complete Code

Here's the complete code to get you started with Dialpad and Claude Agent SDK:

import 'dotenv/config';
import readline from 'node:readline';
import { Composio } from '@composio/core';
import { query, type Options } from "@anthropic-ai/claude-agent-sdk";

async function chat() {
  const { COMPOSIO_API_KEY, USER_ID } = process.env;
  if (!COMPOSIO_API_KEY || !USER_ID) {
    throw new Error('COMPOSIO_API_KEY and USER_ID required in .env');
  }

  const composio = new Composio({ apiKey: COMPOSIO_API_KEY });
  const session = await composio.create(USER_ID, {
    toolkits: ['dialpad']
  });
  const mcp_url = session?.mcp.url;

  const options: Options = {
    permissionMode: 'bypassPermissions',
    mcpServers: {
      composio: {
        type: 'http',
        url: mcp_url,
        headers: { 'x-api-key': COMPOSIO_API_KEY }
      }
    },
    systemPrompt: 'You are a helpful assistant with access to Dialpad tools via Composio.',
    maxTurns: 10,
  };

  const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
    prompt: 'You: '
  });

  console.log('\nChat started. Type "exit" to quit.\n');

  let isProcessing = false;

  async function ask(prompt: string) {
    isProcessing = true;
    rl.pause();

    process.stdout.write('Claude is thinking...');
    const stream = query({ prompt, options });

    let firstChunk = true;
    for await (const msg of stream) {
      const content = (msg as any).message?.content || (msg as any).content;
      if (Array.isArray(content)) {
        for (const block of content) {
          if (block.type === 'text' && block.text) {
            if (firstChunk) {
              process.stdout.write('\r\x1b[K');
              process.stdout.write('Claude: ');
              firstChunk = false;
            }
            process.stdout.write(block.text);
          }
        }
      }
    }
    process.stdout.write('\n\n');

    isProcessing = false;
    rl.resume();
    rl.prompt();
  }

  rl.on('line', async (line) => {
    if (isProcessing) return;

    const input = line.trim();
    if (input === 'exit') {
      rl.close();
      process.exit(0);
    }
    if (input) await ask(input);
    else rl.prompt();
  });

  await ask('What can you help me with?');
}

try {
  await chat();
} catch (error) {
  console.error(error);
  process.exit(1);
}

Conclusion

You've successfully built a Claude Agent SDK agent that can interact with Dialpad through Composio's Tool Router.

Key features:

  • Native MCP support through Claude's agent framework
  • Streaming responses for real-time interaction
  • Permission bypass for smooth automated workflows
You can extend this by adding more toolkits, implementing custom business logic, or building a web interface around the agent.
TOOLS

Supported Tools

Every Dialpad action and event your agent gets out of the box.

Access control policies listing

Lists the authenticated company's access control policies, including their permission sets.

Add blocked phone numbers

Adds specified phone numbers to the company-wide blocked list, rejecting inbound calls and texts from them for every user.

Add department operator by id

Adds a new operator to a specific department in Dialpad.

Add member to channel

Adds a new member to a specified channel within the Dialpad communication platform.

Add member to coaching team

Adds a new member to a specific coaching team in Dialpad.

Add operator to call center

This endpoint adds a new operator to a specified call center in the Dialpad system.

Add operator to office

Adds a user or room as an operator to an office's mainline, with an optional operator or admin role.

Add participant to call

Adds a new participant to an existing call in the Dialpad system.

Assign fax line to target

Creates and assigns a new fax line to a specified target (user or department) in the Dialpad system.

Assign number to call router

This endpoint assigns a phone number to a specific call router in the Dialpad system.

Assign phone number to office

This endpoint assigns a phone number to a specific office in the Dialpad system.

Assign phone number to room

Assigns a phone number to a specified room in Dialpad.

Assign phone number to target

Assigns a specific phone number to a Dialpad target, such as a user or department.

Assign phone number to user

This endpoint assigns a phone number to a specific Dialpad user.

Assign policy to user by id

Assigns an access control policy to a user at company, office, or contact center level.

Attach labels to call

Adds labels to a specified call, preserving existing labels.

Configure call center settings

Creates a new call center in a specified office, with options for call handling, routing, hours, recording, queues, alerts and voice intelligence.

Create access control policy

Creates a new access control policy in Dialpad, defining a set of permissions and their application scope.

Create agent status subscription

Creates or updates an agent status subscription for real-time monitoring of contact center agent statuses in Dialpad.

Create callback

Creates a callback request in a Dialpad call center.

Create call review share link

Creates a shareable link for a specific call review in the Dialpad platform.

Create call router configuration

Creates a new call router in the Dialpad system, allowing for custom call routing logic based on a specified URL.

Create channel endpoint

Creates a new communication channel within the Dialpad platform.

Create custom ivr with audio file

Creates a custom IVR recording for a specified Dialpad target and IVR type using a Base64-encoded MP3.

Create new contact entry

The CreateContact endpoint adds a new contact to Dialpad's system.

Create new department record

Creates a department in a specified office with optional call handling, operating hours, routing, and voice intelligence settings.

Create pin for international room calls

Creates a PIN for protected international calls from Dialpad room phones, optionally associating a customer reference for usage reporting.

Create room in office via post

Creates a new room within a specified office in the Dialpad system.

Create schedule reports endpoint

Creates a scheduled report in the Dialpad system for various types of communication data.

Create secondary office

Creates a secondary Dialpad office with billing information and optional operational, routing, and communication settings.

Create sms event subscription

Creates a new SMS event subscription in the Dialpad API, allowing users to receive notifications for inbound and/or outbound SMS messages.

Create user with auto assign

Creates a new user account in the Dialpad system with the specified details.

Create webhook post endpoint

Creates a Dialpad webhook endpoint with a URL and optional signing secret.

Deauthorize oauth2 session

Deauthorizes (revokes) an OAuth2 access token, effectively terminating the application's access to the Dialpad API.

Delete access control policy by id

Deletes an access control policy by ID, marking it deleted and removing its associated users.

Delete agent status by id

Deletes a specific agent status subscription identified by its unique ID.

Delete call center by id

Deletes a specified Dialpad call center by ID.

Delete callreviewsharelink by id

This endpoint deletes a specific call review share link in the Dialpad system.

Delete callrouter by id

Deletes a specific call router from the Dialpad system.

Delete call subscription by id

Deletes a specific call subscription from the Dialpad system.

Delete channel by id

Deletes a specific channel from the Dialpad communication platform.

Delete channel member by id

Removes a specified member from a Dialpad channel.

Delete contact by id

Deletes a specific contact from the Dialpad system using the provided contact ID.

Delete customivr by targettype and ivrtype

Unassigns and deletes a custom IVR recording for a specified target and IVR type.

Delete department resource

Permanently deletes a Dialpad department by ID, removing the department and all its configuration.

Delete deskphone by user id

Deletes a specific deskphone associated with a user in the Dialpad system.

Delete deskphone in room

Deletes a specific Dialpad room desk phone by room ID and desk phone ID.

Delete number via api

Deletes a specific phone number from the user's Dialpad account.

Delete office operator by id

Removes a specified user or room operator from an office's mainline using the operator ID and type.

Delete operator from call center

Removes a specified operator from a call center in the Dialpad system.

Delete operator from department

Removes a specified operator from a department in the Dialpad system.

Delete recording share link by id

Deletes a specific recording share link in the Dialpad system.

Delete room by id

Deletes a specific room from the Dialpad system using its unique identifier.

Delete schedule report by id

Deletes a scheduled report subscription by ID, stopping its recurring report schedule.

Delete sms subscription by id

Deletes an SMS event subscription by its subscription ID.

Delete subscription changelog by id

Deletes a change log event subscription by ID.

Delete subscription contact by id

Deletes a contact event subscription by its subscription ID.

Delete user by id

Deletes a user from the Dialpad system based on the provided user ID.

Delete webhook by id

Deletes a Dialpad webhook by its ID, stopping delivery to that webhook endpoint.

Delete websocket connection by id

Closes and removes a specific WebSocket connection in the Dialpad system.

Fetch call byid

Retrieves detailed information for a concluded Dialpad call by ID, including call status, duration, and available recording and transcription information.

Fetch call transcript by id

Retrieves the transcript for a specific call in the Dialpad system.

Fetch custom ivrs

Lists custom IVR recordings for a specified Dialpad target, with cursor pagination.

Fetch operators for office id

Retrieves the mainline operators for a specified Dialpad office, including available operator details and status.

Fetch scheduled reports

Lists scheduled report subscriptions for the company, with a cursor for pagination.

Fetch transcript url by call id

Retrieves the URL of a transcript for a specific call in the Dialpad system.

Fetch user details by id

Retrieves detailed information about a specific user in the Dialpad system.

Format phone numbers

Reformats a phone number supplied in local or E.

Get available licenses for an office

Retrieves the number of available (unused) licenses for a specific office within a Dialpad organization.

Get call center status by id

Retrieves the current operational status of a specific call center in the Dialpad system.

Get call labels

Retrieves a list of all available call labels in the Dialpad system.

Get call review share link by id

Retrieves an existing call review share link, including its access link and privacy state when available.

Get call subscription details

Lists Dialpad call event subscriptions for the company or a specified target.

Get channel members by id

Retrieves a list of members for a specific channel in Dialpad.

Get departments by office id

Retrieves a list of all departments associated with a specific office in the Dialpad system.

Get deskphone by parent id

Retrieves detailed information about a specific deskphone within a designated room or parent entity in the Dialpad system.

Get deskphones for user parent id

Lists deskphones associated with a specified Dialpad user.

Get deskphones in rooms

Lists deskphones associated with a specified Dialpad room, including available name, state, and phone number information.

Get office call centers

Retrieves a list of call centers associated with a specific office in the Dialpad platform.

Get operator skills by call center and user

Retrieves an operator's skill level for a specified call center.

Get phone number details

Retrieves details for a specific Dialpad phone number, including its status and assignment when available.

Get recording share link by id

Retrieves a recording share link by ID, including its access link, associated call ID, and privacy state when available.

Get rooms list

Lists company rooms, optionally filtered by office, with cursor pagination.

Get subscription contact by id

Retrieves a contact event subscription by its subscription ID, including its enabled state and available delivery endpoint configuration.

Get user caller id

Retrieves the caller ID information for a specific user in the Dialpad system.

Get user deskphones

Retrieves detailed information about a specific deskphone associated with a particular user in the Dialpad system.

Get user e911 details

Retrieves the Enhanced 911 (E911) information for a specific user in the Dialpad system.

Get webhooks information

Lists webhooks associated with the company, with cursor pagination.

Hangup call via id

Terminates an active call in the Dialpad system.

Initiate ivr call api endpoint

Initiates an outbound call to ring an IVR workflow, using a specified phone number and a call center, department, or office target.

Initiate outbound call via api

Initiates an outbound call on behalf of a Dialpad user by ringing all devices or a specified device.

Initiate user call with group options

Causes a specified user's Dialpad application to initiate an outbound call, with optional caller ID, group, and custom data.

List channels api

Lists company channels, optionally filtered by state.

List conference rooms

Lists Dialpad meeting rooms with cursor pagination.

List offices endpoint

Lists accessible Dialpad offices, optionally filtering for active offices; results may be paginated and office entries contain IDs.

List users

Retrieves a list of users from the Dialpad system.

Modify contact details using id

Updates an existing contact's information in the Dialpad system.

Modify custom ivr settings

Assigns an existing IVR recording to a target for a specified IVR type, replacing the previous assignment.

Modify operator skill level

Updates the skill level of a specific operator in a designated call center.

Modify webhook configuration

Updates an existing webhook configuration in the Dialpad API.

Move user to specified office

Moves a Dialpad user to a different office.

Oauth2 authorize endpoint

Initiates the OAuth 2.

Patch access control policy by id

Updates an access control policy by ID, including its name, description, permissions, or state.

Patch agent status event subscription

Updates an agent status event subscription by ID, including its enabled state and logging endpoint.

Patch call router by id

Updates an existing call router in the Dialpad system.

Patch department details by id

Updates the settings and configuration of a specific department in the Dialpad system.

Patch subscription changelog endpoint

Updates a change log event subscription's enabled state and logging endpoint by ID; enabled defaults to true when omitted.

Patch user active call recording

Updates recording for a user's active call, including recording indication playback and recording scope for group calls.

Patch user status

Updates a user's status message, optionally specifying an expiration time, and returns the user's status if the user exists.

Patch websocket signature secret

Updates the signature secret for a specified Dialpad WebSocket endpoint, for example to rotate the secret used to verify event payloads.

Post call event subscription

Creates a new call event subscription in the Dialpad system, allowing real-time notifications for various call states and actions.

Post recording share link

Creates a shareable link for a specific recording in Dialpad, such as a call recording or voicemail.

Post subscription change log event

Creates a company change log event subscription for a webhook or websocket endpoint, with an enabled setting.

Post users screenpop uri

Triggers a screen pop for a specific Dialpad user, displaying relevant information during a call or communication event.

Post websocket connection secret

Creates a Dialpad websocket endpoint for receiving event notifications, optionally specifying a signature secret.

Reassign phone number to target

Assigns or reassigns a phone number to a specific target within the Dialpad system.

Redeem access or refresh token

Sends a request to Dialpad's OAuth token endpoint.

Remove blocked numbers

Unblocks specified phone numbers company-wide, restoring inbound calls and texts from them.

Retrieve access control policy assignments

Lists users assigned to a specified Dialpad access control policy, along with their associated policy targets.

Retrieve access control policy by id

Retrieves detailed information about a specific access control policy in the Dialpad system.

Retrieve agent status by id

Retrieves an agent status event subscription by ID, including its agent type, enabled state, and webhook or websocket configuration.

Retrieve agent status subscription

Lists the company's agent status event subscriptions for auditing or managing event notifications.

Retrieve app settings

Retrieves OAuth app settings for a specified target, or company app settings when target type and ID are not provided.

Retrieve blocked number details

Checks whether a phone number is blocked company-wide.

Retrieve blocked phone numbers

Lists company-wide phone numbers blocked through the Dialpad API.

Retrieve call center by id

Retrieves detailed information about a specific call center in the Dialpad system.

Retrieve callcenter operators by id

Retrieves a list of operators associated with a specific call center in Dialpad.

Retrieve call centers information

Lists call centers in the company, optionally filtered by office or name.

Retrieve call information

Lists Dialpad calls in reverse chronological order, optionally filtered by start time or target.

Retrieve callrouter by id

Retrieves detailed information about a specific call router in the Dialpad system.

Retrieve call routers v2 api

Retrieves a list of call routers configured in the Dialpad system.

Retrieve call subscription by id

Retrieves a call event subscription by ID, including its enabled status and associated webhook or websocket configuration when available.

Retrieve channel by id

Retrieves a Dialpad channel by its unique identifier, returning its ID and name.

Retrieve coaching stats v2

Starts asynchronous processing of Dialpad statistics for a selected statistics type and export type, with date and target options.

Retrieve coaching team by id

Retrieves a coaching team by ID, including its name, associated office and company, and available descriptive metadata.

Retrieve coaching teams information

Lists coaching teams in the company, with team identifiers, names, office and company identifiers, and available descriptive metadata.

Retrieve company data

Retrieves detailed information about a specific company within the Dialpad platform.

Retrieve conference meetings

Lists summaries of past Dialpad meetings for a meeting room, with cursor pagination.

Retrieve contact by id

Retrieves a single Dialpad contact by ID, including available contact details.

Retrieve contact list

Lists Dialpad company shared contacts or a user's local contacts, with cursor pagination and an option to include local contacts.

Retrieve department by id

Retrieves a Dialpad department by ID, including its name, company and office IDs, and creation and update timestamps when available.

Retrieve department operators by id

Retrieves a list of operators associated with a specific department in Dialpad.

Retrieve e911 office details

Retrieves the Enhanced 911 (E911) settings for a specific office within the Dialpad communication platform.

Retrieve list of departments

Lists company departments, optionally filtered by office or department name.

Retrieve members of coaching team by id

Lists members of a specified coaching team, including available user identity, contact, and availability information.

Retrieve numbers via api v2

Retrieves a list of phone numbers associated with the user's Dialpad account.

Retrieve off duty status by office id

Lists the off-duty status options configured for a specified office.

Retrieve office by id

Retrieves a specified Dialpad office by ID.

Retrieve office plan by id

Retrieves an office's billing plan, including purchased license counts by line type, remaining calling credit, and the start of the next billing cycle.

Retrieve operator duty status

Retrieves the current duty status of a specific call center operator in Dialpad.

Retrieve room information by id

Retrieves information about a Dialpad room by ID, including its name, state, office, group details, and phone settings when available.

Retrieve schedule report by id

Retrieves a scheduled report subscription by ID, including its frequency and delivery endpoint ID when available.

Retrieve sms opt out by company id

Lists a company's external phone numbers filtered by SMS opt-out or opt-back-in state, optionally by A2P campaign.

Retrieve sms subscription by id

Retrieves an SMS event subscription by ID, including its direction and available delivery endpoint and target settings.

Retrieve sms subscriptions

Lists SMS event subscriptions for a company or target, with optional target filtering and cursor pagination.

Retrieve specific webhook by id

Retrieves a webhook configuration by ID, including its URL and available signature settings.

Retrieve stat by id

Retrieves the progress and result of a previously initiated statistics request by its request ID.

Retrieve subscription change log

Lists a company's change log event subscriptions with cursor pagination.

Retrieve subscription change log by id

Retrieves a change log event subscription by ID.

Retrieve subscription contacts

Lists a company's contact event subscriptions, with cursor pagination.

Retrieve teams for office id

Lists coaching teams associated with a specified Dialpad office, with cursor-based pagination.

Retrieve user device by id

Retrieves detailed information about a specific user device associated with a Dialpad account.

Retrieve user devices list

Lists registered user devices, such as desk phones, softphones, and mobile apps.

Retrieve user personas by id

Retrieves all personas associated with a specific user in the Dialpad system.

Retrieve websocket by id

Retrieves detailed information about a specific WebSocket connection using its unique identifier.

Retrieve websocket connection

Lists the company's Dialpad WebSockets, with cursor pagination.

Send sms with optional media and group sender

The SendSMS endpoint allows you to send SMS or MMS messages through the Dialpad platform to one or multiple recipients.

Set user caller id by id

Sets or blocks the Caller ID for a specific Dialpad user.

Subscribe contact event

Creates a new contact event subscription in the Dialpad platform, allowing you to receive real-time updates about changes to contacts.

Toggle user do not disturb status

The ToggleUserDoNotDisturb endpoint allows you to update the Do Not Disturb (DND) status for a specific user in the Dialpad system.

Toggle vi call for user by id

Turns Voice Intelligence on or off for a user's currently active call.

Transfer call to destination

Transfers an active call within the Dialpad system to a new destination.

Unassign access control policy from user

Unassigns one or all target groups associated with a user for a Dialpad access control policy.

Unassign office number

Unassigns a phone number from an office mainline.

Unassign room phone number

Unassigns a phone number from a room.

Unassign user phone number

Unassigns a specified phone number from a user.

Unpark call by user id

Unparks a call previously parked on an office mainline, routing it to the specified user.

Update call center settings by id

Updates a call center's settings by ID, including hours, routing, hold queues, alerts, recording, and voice intelligence.

Update call review share link privacy

Updates the privacy settings of an existing call review share link in Dialpad.

Update call subscription by id

Updates a call event subscription's call states, active status, logging endpoint and event filters.

Update contact information

Creates or updates a shared Dialpad contact using a unique identifier.

Update contact subscription by id

Updates a Dialpad contact event subscription by ID, setting its contact type and enabled status and optionally associating a different logging endpoint.

Update e911 address for office

This endpoint updates the Enhanced 911 (E911) address for a specific office in Dialpad.

Update e911 address for user

Updates the E911 address for a specified user in the Dialpad system.

Update ivr details by id

Updates the name and/or description of a custom IVR recording by ID.

Update operator duty status

Updates an operator's duty status and optionally its reason for all call centers the user belongs to.

Update recording share link privacy

Updates the privacy settings of a specific recording share link in Dialpad.

Update room details

Updates the configuration of a specific Dialpad room identified by its ID.

Update schedule report settings

Updates an existing scheduled report subscription's frequency, timing, type, target, and delivery settings.

Update sms subscription settings

Updates an SMS event subscription by ID, including direction, endpoint and target settings.

Update user information by id

This endpoint allows you to update various aspects of a user's profile and settings in the Dialpad system.

Validate callback request

Validates a callback request for the Dialpad system.

FAQ

Frequently asked questions

With a standalone Dialpad MCP server, the agents and LLMs can only access a fixed set of Dialpad tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Dialpad and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. Claude Agent SDK fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Dialpad tools.

Yes, absolutely. You can configure which Dialpad scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Dialpad data and credentials are handled as safely as possible.

Start with Dialpad.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Dialpad tool your agent needs.Free to start.

Start building