Saperly MCP server for AI agents and assistants

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

List voice calls in the connected Saperly workspace, including status, rates, duration, cost and recording and transcript flags.

List Connections

List connections in the connected Saperly workspace, including their configuration and recording settings.

List Consent Records

List TCPA consent records in the connected Saperly workspace, including the associated number, contact, consent type, source and grant or revocation timestamps.

List Languages

List spoken languages supported for voice connections as code and name pairs.

List Messages

List inbound and outbound SMS messages in the connected Saperly workspace, optionally filtered by phone number ID.

List Phone Numbers

List phone numbers in the connected Saperly workspace, including their IDs, connection, webhook, pricing and lifecycle details.

List Voices

List text-to-speech voices available for Saperly connections, optionally filtered by language prefix or family.

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/mcp @ai-sdk/openai
Install the Composio SDK and your agent framework
2

Create a session with MCP enabled

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

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["saperly"],
  mcp: true,
});
Create a session scoped to Saperly and read its MCP URL and headers
3

Connect your agent to the MCP server

typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "Send an SMS with Saperly to +15551234567 saying: Your demo is confirmed for tomorrow at 2 PM.",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
Pass the session's MCP URL and headers to your agent and run a Saperly request
SETUP GUIDE

Connect Saperly API Tool with your Agent

1

Install Composio

typescript
npm install @composio/core @composio/openai openai
Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
2

Create a Composio session

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

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["saperly"] });
const tools = await session.tools();
Initialize Composio with the OpenAI Responses provider and create a session scoped to Saperly
3

Run Saperly tools with your agent

typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "Send an SMS with Saperly to +15551234567 saying: Your demo is confirmed for tomorrow at 2 PM." }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
Send a request, execute the Saperly tool calls through the session, and print the final answer

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

Rolling this out across your team?

Give your team centralized access control across every framework with Composio’s MCP Gateway.

EXPLORE MCP GATEWAY
FAQ

Frequently asked questions

Start with Saperly.It takes 30 seconds.

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

Start building