Saperly MCP for AI Agents

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Saperly MCP or direct API to provision phone numbers, send SMS, place voice calls, and manage compliance through natural language.

Saperly logoSaperly
Api Key

Saperly is a phone carrier API for AI agents, offering phone numbers, voice, SMS, and compliance tools. It gives agents reliable telecom infrastructure without stitching together carrier, messaging, and compliance systems yourself.

30 Tools

Try Saperly now

Type what you want done — sign in and watch it run live in the Tool Router playground.

TOOL ROUTER PLAYGROUND
Saperly
Try asking
TOOLS

Supported Tools

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

Bind Connection to Number

Attach a connection (the AI persona / answering brain from SAPERLY_CREATE_CONNECTION) to a phone number, so inbound calls and SMS to that number — and outbound calls placed from it — are handled by that connection.

Check Consent

Check whether a contact currently has active TCPA consent for one of your Saperly numbers, given numberId (your number) and peerNumber (the contact's E.

Create Connection

Create a connection: the AI 'brain' that answers calls and (optionally) SMS on a Saperly phone number.

Delete Connection

PERMANENTLY AND IRREVERSIBLY delete a connection (the AI answering brain / persona that handles calls and SMS) by its id.

End Call

End an in-progress call by its id, hanging up and settling the metered cost.

Get Call

Fetch a single call by its id, returning its status, per-minute rate, final duration (durationSec) and cost (costCents), and the hasRecording / hasTranscript flags.

Get Call Recording

Get the audio recording for a call and return it as a downloadable file.

Get Call Transcript

Fetch the transcript (conversation turns/segments) of a completed call by its id.

Get Connection

Fetch a single connection (the AI answering brain / persona that handles calls and SMS) by its id, returning its full config: name, mode, backend, instructions, tts voice, language, compliance/disclosure settings, recordingEnabled, and manual webhook URL.

Get Phone Number

Fetch a single phone number by its id, returning its E.

Get Usage & Balance

Return the workspace usage summary and prepaid balance: calls {count, totalCostCents, totalDurationSec}, messages {count}, and balanceCents (the prepaid balance, in cents).

List Calls

Return the full voice-call history (inbound + outbound) for the connected Saperly workspace.

List Connections

Return every connection (the AI persona / answering 'brain' that handles calls and SMS) in the connected Saperly workspace.

List Consent Records

Return every TCPA consent record in the connected Saperly workspace, with each record's id, numberId (the Saperly number contact is authorized FROM), peerNumber (the contact's E.

List Languages

Return the spoken languages Saperly supports for voice connections, each as a {code, name} pair (about 42 entries, e.

List Messages

Return SMS messages in the connected Saperly workspace (both inbound and outbound).

List Phone Numbers

Return every phone number provisioned in the connected Saperly workspace, with each number's id, phoneNumber (E.

List Voices

List the text-to-speech voices available for Saperly connections.

Place Call

PAID / METERED — places a REAL outbound voice call that RINGS A REAL PHONE and BILLS PER MINUTE (~26¢/min); it keeps billing until hung up — end it with SAPERLY_END_CALL to stop the meter.

Provision Phone Number

PAID / METERED: provision (buy) a new phone number in a country.

Quote Number Price

READ-ONLY and FREE: quote the price to provision a phone number in a country/type, returning { customerMonthlyCents, customerUpfrontCents }.

Record Consent

Record TCPA consent for a contact so outbound SMS (SAPERLY_SEND_SMS) and calls (SAPERLY_PLACE_CALL) from your number are permitted.

Release Phone Number

PERMANENTLY AND IRREVERSIBLY release a phone number back to the carrier.

Revoke Consent

Revoke a contact's TCPA consent for a given Saperly number, blocking further outbound contact to them.

Send SMS

PAID / METERED: send a single SMS from one of your Saperly numbers to an E.

Set Number Caller ID Name

Set the outbound caller ID name / CNAM (1-15 characters: letters, digits, spaces) presented to recipients on outbound calls from a Saperly phone number, or pass callerIdName=null to CLEAR it.

Set Number SMS Sender ID

Set the alphanumeric SMS sender id (1-11 alphanumeric chars, e.

Set Number Webhook

Set the HTTPS webhook URL that Saperly POSTs this number's events (inbound SMS/calls, status) to.

Transfer Call

PAID / METERED — BLIND-transfers a LIVE, in-progress voice call to another destination `to` (an E.

Update Connection

Partially update a connection (the AI answering brain bound to a number).

SETUP GUIDE

Connect Saperly MCP Tool with your Agent

1

Install Composio

typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
Install the Composio SDK for Python or TypeScript
2

Initialize Client and Create Tool Router Session

typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
Import and initialize the Composio client, then create a Tool Router session for Saperly
3

Connect to AI Agent

typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'Send an SMS with Saperly to +15551234567 saying: Your demo is confirmed for tomorrow at 2 PM.'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
Use the MCP server with your AI agent (Anthropic Claude or Mastra)
SETUP GUIDE

Connect Saperly API Tool with your Agent

1

Install Composio

typescript
npm install @composio/openai
Install the Composio SDK
2

Initialize Composio and Create Tool Router Session

typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
Import and initialize Composio client, then create a Tool Router session
3

Execute Saperly Tools via Tool Router with Your Agent

typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Send an SMS with Saperly to +15551234567 saying: Your demo is confirmed for tomorrow at 2 PM.'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
Get tools from Tool Router session and execute Saperly actions with your Agent

Why Use Composio?

AI Native Saperly Integration

  • Supports both Saperly MCP and direct API based integrations
  • Structured, LLM-friendly schemas for reliable voice, SMS, phone number, and compliance actions
  • Rich coverage for building agents that can communicate with customers over real phone channels

Managed Auth

  • Secure API key handling for Saperly without hard-coding secrets in agent code
  • Central place to manage, scope, and revoke Saperly access across users and environments
  • Use auth_configs.create() and connected_accounts.link() to set up Saperly credentials cleanly

Agent Optimized Design

  • Saperly tools are shaped so AI agents can understand phone, SMS, and compliance actions clearly
  • Tools are tuned using real error and success rates to improve reliability over time
  • Comprehensive execution logs so you always know what call, message, or number action ran, when, and on whose behalf

Enterprise Grade Security

  • Fine-grained RBAC so you control which agents and users can access Saperly
  • Scoped, least privilege access to Saperly phone numbers, messaging, voice, and compliance workflows
  • Full audit trail of agent actions to support review, carrier compliance, and internal governance
FRAMEWORKS

Use Saperly with any AI Agent Framework

Choose a Framework you want to connect Saperly with

FAQ

Frequently asked questions

Yes, Saperly requires you to configure your own API key credentials. Once set up, Composio handles secure credential storage and API request handling for you.

Yes! Composio's Tool Router enables agents to use multiple toolkits. Learn more.

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. Learn more.

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

Start with Saperly.It takes 30 seconds.

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

Start building