Skip to main content
Glama
smallest-inc

Smallest MCP Server

Official
by smallest-inc

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ATOMS_API_KEYYesYour Smallest AI API key

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_agentsA

List AI agents in your organization. Returns agent configuration including voice, LLM model, language settings, and call statistics. Supports pagination, filtering, and sorting.

get_agentA

Get full details for a single agent by ID, including voice config, model, prompt, language, call behavior settings, and workflow type.

get_agent_promptA

Read the current system prompt / instructions for an agent. Returns the prompt text and any configured tools.

create_agentA

Create a new AI agent in your organization. By default the agent is a single_prompt agent with gpt-4.1 model and daniel voice (waves_lightning_v3_1); set workflow_type to multi_agents for a Playbooks agent (an intent router + specialist SOP playbooks — add them via add_playbooks after creation). The STT transcriber defaults to Pulse — change it (e.g. to pulse-legacy) via update_agent_config after creation. Returns the created agent's ID. For single_prompt agents, set the prompt via update_agent_prompt after creation.

update_agent_promptA

Update an agent's system prompt / instructions. Pass the full new prompt text. Only works for single_prompt agents. Optionally update the first message too. For versioned agents, changes are saved as a draft — pass draft_id to stack onto an existing draft (e.g. one returned by add_agent_tool or set_pre_call_api), then publish_draft once to make everything live.

update_agent_configA

Update an agent's configuration (name, language, first message, voice settings, model, variables, etc.). Only provided fields are updated. To update the agent's prompt/instructions, use update_agent_prompt instead. For versioned agents, changes are saved as a draft — use publish_draft to make them live, or test the draft first via make_call with the draft's version_id.

add_agent_toolA

Add (or update) one or more API-call tools on a single_prompt agent. API-call tools let the agent make an HTTP request to an external API during a call — e.g. look up an order, book an appointment, or post to a CRM. The agent decides when to invoke a tool based on its name and description, filling in any declared parameters. Pass a single tool via the top-level fields, or several at once via tools (preferred when configuring multiple tools — they land in one draft write). Upserts by name: tools with existing names are replaced; others are added (existing tools are preserved). For versioned agents the change is saved as a draft — pass draft_id to stack onto an existing draft (e.g. one returned by update_agent_prompt or set_pre_call_api) instead of creating a new one, then publish_draft once. Caveat: the draft's tools section is written wholesale, so when targeting a draft that already had tool edits, include ALL desired tools in this call. Use get_agent_prompt to see an agent's current live tools.

remove_agent_toolA

Remove a tool (by name) from a single_prompt agent. Works for any tool type (api_call, transfer_call, etc.). For versioned agents the change is saved as a draft — pass draft_id to stack onto an existing draft, then publish_draft to make it live. Use get_agent_prompt to see the agent's current tool names.

set_pre_call_apiA

Configure (or disable) an agent's pre-call API. This is an HTTP request the platform makes automatically BEFORE the call connects — typically to enrich the agent with data, e.g. look up a customer record by phone number. Values extracted via response_variables become {{variables}} you can reference in the prompt and first message. This is different from add_agent_tool: a pre-call API always runs once before the call and is not chosen by the LLM, whereas an api_call tool is invoked by the agent during the conversation. There is exactly one pre-call API per agent (this replaces it). For versioned agents the change is saved as a draft — pass draft_id to stack onto an existing draft, then publish_draft to make it live.

delete_agentA

Archive (soft-delete) an agent by its ID. Archived agents are inactive. Cannot archive agents with active campaigns. Unarchiving is not supported — to restore an agent, use app.smallest.ai.

duplicate_agentA

Duplicate an existing agent, creating a new agent with the same configuration. The new agent is created in the target organization (defaults to your own org). Useful for creating variants of an agent for testing or A/B comparisons.

get_playbooksA

Read a multi_agents agent's Playbooks config: the intent router (fallback + mid-call rerouting), shared auth tools, and the SOP list (id, intent, auth level, tool count). Pass playbook_id for one playbook's full detail (prompt, tools, intent description). Reads the active version by default; pass draft_id or version_id to inspect those instead.

add_playbooksA

Add one or more playbooks (SOPs) to a multi_agents agent. Each playbook = an intent (name + description the classifier routes on) + a specialist prompt + optional scoped tools and an auth level. Edits land on a draft (auto-created from the active version when draft_id is omitted) — use publish_draft to go live. The first enabled playbook becomes the router fallback automatically if none is set. Names and intent names must be unique on the agent (case-insensitive, archived included).

configure_call_actionsA

Enable/disable the agent's end_call action and set/remove a transfer_call number. These are AGENT-LEVEL settings (the console's Tools tab) that apply to the whole agent — for multi-agent (Playbooks) agents the runtime injects them into every playbook, never gated behind auth. Changes land on a draft; publish_draft to go live. Without an enabled end_call the agent cannot hang up on its own.

update_playbookA

Edit one playbook (SOP) on a multi_agents agent: change its prompt, intent, auth level, tools, or archive/restore it (enabled=false/true — playbooks are archived, never deleted, so call history stays resolvable). Edits land on a draft (auto-created when draft_id omitted); publish_draft to go live. The router fallback cannot be archived — repoint it first via configure_playbooks.

configure_playbooksA

Configure the section-level Playbooks settings of a multi_agents agent: the intent router (fallback playbook, mid-call rerouting), the conversation guide (persona/tone/global rules injected into EVERY playbook — define them once here, not per-SOP), and the shared identity tools that satisfy weak/strong auth. Edits land on a draft (auto-created when draft_id omitted); publish_draft to go live.

list_draftsA

List all active (unpublished) drafts for a versioned agent. Shows draft name, revision count, last editor, and last edit time. Useful to see what changes are in progress before deciding to publish or discard.

get_draftA

Get detailed information about a specific draft, including its latest revision, edit history (which sections changed per revision), and resolved config. Use list_drafts first to find draft IDs.

rename_draftA

Rename a draft to give it a more descriptive name. Useful when working with multiple drafts to keep them organized.

get_draft_diffA

Compare a draft against its source version (or a specific published version) to see what changed. Shows unchanged sections and detailed diffs for modified sections. Useful before publishing to review changes.

publish_draftA

Publish a draft as a new version and (by default) activate it to make it live. Publishing triggers an async security check on the prompt; this tool waits for it to pass before activating and reports the real outcome — if the check is still pending after ~60s the version is published but NOT live yet (use activate_version once it passes), and if it fails the version cannot be activated until the prompt is fixed. Can also discard a draft instead of publishing.

test_draftA

Initiate a test call using a draft's configuration (before publishing). Supports webcall, chat, and telephony modes. Use this to verify draft changes work correctly before making them live.

list_versionsA

List all published versions for a versioned agent, sorted by version number (newest first). Shows version number, label, who published it, whether it's active, and whether it's pinned. Use this to review version history or find a version to roll back to.

get_versionA

Get full details for a specific published version, including its resolved configuration across all sections (voice, LLM, language, prompt, detection, timeouts, etc.). Use list_versions to find version IDs.

update_versionA

Update metadata on a published version — label, description (release notes), or pin status. Pinned versions are highlighted in the version list for quick access. Does NOT change the version's configuration (published versions are immutable).

activate_versionA

Activate a specific published version, making it the live configuration for the agent. Use this to roll back to a previous version or switch between versions. The previously active version is automatically deactivated. Use list_versions to find version IDs.

diff_versionsA

Compare two published versions side-by-side to see exactly what changed between them. Shows unchanged sections and detailed diffs for modified config sections (voice, prompt, LLM, language, etc.). Use list_versions to find version IDs.

compare_version_metricsA

A/B compare call performance metrics between two published versions. Shows total calls, answered calls, average duration, completion rate, total cost, and percentage deltas. Optionally filter by date range. Use this to evaluate which version performs better before deciding which to keep active.

test_versionA

Initiate a test call using a specific published version's configuration. Supports webcall, chat, and telephony modes. Use this to test a non-active version before activating it (e.g. verifying a rollback candidate).

get_audiencesA

List all audiences in your organization. Shows audience name, member count, linked campaigns, and the phone number column name. Audiences are contact lists used by campaigns for outbound calling.

get_audienceA

Get details for a specific audience by ID, including name, description, and phone number column name.

delete_audienceA

Delete an audience by ID. Cannot delete an audience that is linked to a campaign — remove or delete the campaign first.

get_audience_membersA

List members (contacts) in an audience with pagination. Each member has a data object containing their phone number and any other fields from the original CSV upload.

search_audience_membersA

Search for members in an audience. Supports general search across all fields, or field-specific search (e.g. by phone number or name). Returns up to 10 results.

add_audience_membersA

Add members (contacts) to an existing audience. Each member must include the phone number column defined when the audience was created (use get_audience to check). Max 10,000 members per request. Duplicate phone numbers are skipped.

delete_audience_membersA

Remove specific members from an audience by their member IDs. Use get_audience_members or search_audience_members to find member IDs. If all members are removed, the audience itself may be deleted.

get_campaignsB

List outbound calling campaigns for your organization. Shows campaign status, progress, agent used, audience, retry config, and execution details.

get_campaignA

Get detailed information about a specific campaign, including status, execution progress, events timeline, and metrics (participants, contacts called, contacts connected).

create_campaignA

Create a new outbound calling campaign. Requires an agent and an audience (contact list). The campaign is created in draft status unless a scheduled time is provided, in which case it will be scheduled. Use start_campaign to begin dialing.

start_campaignA

Start a campaign to begin dialing contacts. Works on campaigns in draft or paused status. For paused campaigns, this resumes from where it left off. The campaign enters processing state and begins making calls asynchronously.

pause_campaignA

Pause a running campaign. Active calls in progress will complete, but no new calls will be initiated. Use start_campaign to resume.

delete_campaignA

Delete a campaign. This permanently removes the campaign and its execution data.

export_campaign_logsA

Export call logs for a campaign. Returns detailed call data grouped by audience member, including call status, duration, recording URL, transcript, cost, retry attempts, and post-call analytics.

list_callsA

Search and list calls across your organization. Use this to browse calls with filters (by status, type, date range, agent, phone number, campaign). Returns a summary list with metadata, duration, cost, and disconnection reasons. For detailed info about a specific call (status, transcript, errors, debugging), use debug_call instead.

make_callA

Initiate an outbound phone call using a specific agent. The agent will call the provided phone number and follow its configured prompt. Only telephony outbound calls are supported — for webcall or chat, use app.smallest.ai.

chat_with_agentA

Hold a TEXT conversation with a published agent over the realtime chat WebSocket (mode=chat) — no audio, no phone, just text in / text out. Sends each message in messages in order, waiting for each agent turn to FULLY settle before sending the next — a turn can be several messages (a filler while a tool runs, then the answer), so tool-using flows (auth, lookups) complete instead of being cut off. Returns the full transcript. Use this to test an agent's prompt/behaviour programmatically (e.g. an automated build → test → evaluate → refine loop): run a scripted conversation, read the transcript, then adjust the prompt with update_agent_prompt and run again. This places a real (chargeable) chat session on the agent. Note: the agent must be published; for unpublished drafts use test_draft (mode=chat) to start one.

debug_callA

Get detailed info about a single call — use this to check call status, debug failures, or get transcripts. Returns call status, failure reasons, errors, transcript, post-call analytics, latency metrics, cost breakdown, variables, voice/model config at time of call, and full event timeline. Works for calls in any state (queued, in-progress, completed, failed). Use a callId (e.g. CALL-1234567890-abc123).

get_usage_statsA

Get call usage statistics for your organization — total calls, pickup rate, duration, costs, and unique users reached. Each metric includes current period, previous period, and percent change. Useful for understanding usage patterns and costs.

get_credit_balanceA

Get the current credit balance for your organization, including plan information and enterprise status.

get_credit_ledgerB

Get the credit transaction history (ledger) for your organization. Shows purchases, usage deductions, bonuses, admin adjustments, coupon credits, and more. Supports filtering by date range, transaction type, and scope.

get_usage_breakdownA

Get a breakdown of credit usage by feature and product scope for your organization. Shows how credits are being consumed across different services (voice AI, voice models, platform).

get_invoicesA

List all invoices for your organization from Stripe. Shows invoice details including amounts, status, and dates.

get_payment_methodsA

List all payment methods (cards) configured for your organization. Shows card brand, last 4 digits, expiry, and which is the default.

get_auto_reloadA

Get the current auto-reload configuration for your organization. Auto-reload automatically adds credits when your balance drops below a threshold.

get_billing_alertsA

Get the current billing alert configuration for your organization. Billing alerts notify you when credit usage reaches specified thresholds.

update_billing_alertsA

Configure billing alert settings. Set up to 3 credit usage thresholds that trigger email notifications. Alerts can be sent to additional email addresses beyond the account owner.

get_plansA

List available plans and optionally get the features included in a specific plan. Use this to understand plan pricing, included features, and credit rates.

validate_couponA

Check if a coupon code is valid and see how many credits it would give. Does not redeem the coupon — use redeem_coupon to actually apply it.

redeem_couponA

Redeem a coupon code to add credits to your organization's balance. Use validate_coupon first to check the code before redeeming.

get_phone_numbersA

List phone numbers acquired by your organization. Shows product ID (needed for make_call's from_product_id), number, country, provider, and which agent it's assigned to.

get_voicesA

List available voices for agents. Returns voice IDs, names, gender, language, and supported models. Use the voiceId with update_agent_config's synthesizer.voiceConfig to change an agent's voice. A voice whose supportedModels include 'lightning-v3.1-pro' is a Lightning V3.1 Pro voice (use it with the waves_lightning_v3_1 model). Optionally include your organization's cloned voices.

get_dashboardA

Get the full analytics dashboard in a single call — includes summary KPIs, call volume timeseries, call outcomes, pickup rates by number, hourly performance, and duration stats.

get_call_volumeB

Get call volume over time as a daily timeseries. Shows how many calls were made each day in the date range.

get_call_outcomesA

Get call outcome distribution over time — daily breakdown of completed, failed, and no-answer calls, plus totals.

get_agent_performanceB

Compare agent performance — shows each agent's total calls, average duration, completion rate, and cost. Use to find top and bottom performers.

get_hourly_performanceA

Get performance metrics by hour of day (0-23). Shows call count, average duration, and cost per hour. Useful for identifying peak hours.

get_pickup_ratesA

Get pickup rate by phone number — shows total calls, answered calls, and pickup rate for each outbound number. Useful for optimizing caller IDs.

get_phone_number_trendsB

Get per-phone-number daily trends — calls, pickup rate, and average duration per day for each number.

get_weekly_trendsB

Get weekly aggregated metrics — calls, average duration, and cost per week. Good for spotting week-over-week trends.

get_duration_statsB

Get call duration statistics — average, median, min, max, and p95 duration. Shows how long calls typically last.

get_attempt_cohortsA

Get attempt cohort analysis — shows volume and success rate by attempt number (1st attempt, 2nd attempt, etc.). Useful for optimizing retry strategies.

get_call_counts_by_dayC

Get call count per day as a simple histogram. Shows { day, count } pairs.

get_credit_usageA

Get daily credit/cost usage over time — shows credits consumed each day and total for the period. Useful for billing and budget tracking.

get_concurrencyA

Get concurrent call counts for a specific date — minute-by-minute concurrency data plus per-agent max concurrency. Shows how many calls were running simultaneously.

get_call_start_distributionA

Get call start distribution by hour for a specific date — shows how many calls started in each hour (0-23). Useful for scheduling and capacity planning.

get_daily_summaryA

Get summary statistics for a specific date — total calls, completed, failed, no-answer, in-progress, in-queue, average duration, and total cost.

text_to_speechA

Convert text to speech audio using Smallest AI's Lightning TTS. Saves the audio file to the specified path. IMPORTANT: Always ask the user where to save the file before calling. Suggest ~/Desktop/.wav as default. Do NOT retry if successful — the file is saved even if inline audio rendering fails.

transcribe_audioA

Transcribe an audio file to text using Smallest AI's Pulse STT. Supports 32+ languages. IMPORTANT: Always ask the user what language the audio is in before calling this tool. Pass a file path on the user's machine (e.g. ~/Desktop/recording.wav) or a publicly accessible URL. Note: files uploaded to the chat sandbox are NOT accessible — ask the user for the actual file path on their machine or a URL instead.

invite_memberA

Invite one or more users to your organization by email. They'll receive an invitation email to join. Requires admin role on the organization. You can invite as 'member' (default) or 'admin'.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
platform-overviewOverview of the Atoms platform, key concepts, and terminology

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/smallest-inc/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server