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

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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 after creation. Returns the created agent's ID. For single_prompt agents, set the prompt via update_agent after creation.

update_agentA

Update an agent — name, prompt/instructions, first message, voice, model, language, variables, the pre-call API, and other settings. Only provided fields are updated. Config changes are saved to the branch's draft (publish_draft to make them live, or test first with test_agent using include_draft); metadata (name, phone numbers, inbound toggle) applies immediately. To add/remove the agent's API-call tools use add_agent_tool / remove_agent_tool; for end_call/transfer use configure_call_actions. To manage post-call disposition metrics use add_disposition_metrics / remove_disposition_metrics (upsert/remove by identifier; existing metrics are preserved) — get_agent lists the current ones.

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 from its name + description, filling in any declared parameters. Pass a single tool via the top-level fields, or several at once via tools. Upserts by name: an existing tool with the same name is replaced, others are preserved. Changes are saved to the branch's draft via read-modify-write against the open draft — make tool edits one at a time (sequential edits stack; concurrent edits to the same branch can drop each other), then publish_draft once to make everything live. Use remove_agent_tool to delete a tool by name, and configure_call_actions for end_call / transfer_call.

remove_agent_toolA

Remove a tool (by name) from a single_prompt agent. Works for any tool type (api_call, transfer_call, etc.). The change is saved to the agent's draft — publish_draft to make it live. Use get_agent_prompt to see the agent's current tool names.

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 the branch's draft; publish_draft to go live. Without an enabled end_call the agent cannot hang up on its own.

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 branch's open draft when it has one, else its head; pass branch_id to target a specific branch.

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 the branch's draft — 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).

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_branchesA

List the agent's branches. The live (serving) branch is marked with isLive; hasOpenDraft flags a branch that has unpublished draft changes waiting for publish_draft. Use this to find a branch_id (for make_branch_live) or to see where edits are in progress before publishing or discarding.

create_branchA

Create a new branch to work on a set of changes in isolation, without touching the live agent. The branch starts from a source branch's head (the live branch by default). Edit its draft with the usual tools (pass the new branch_id), publish_draft to commit, then make_branch_live to serve it.

rename_branchA

Rename a branch. The default branch cannot be renamed, and 'main' is reserved. Use list_branches to find branch IDs.

delete_branchA

Delete (archive) a branch, along with its revisions and open draft. The default branch cannot be deleted, and the live branch cannot be deleted — make another branch live first. Use list_branches to find branch IDs.

make_branch_liveA

Make a branch's head revision the live (serving) configuration for the agent. Under the branch model only a branch head can serve — so this switches which branch the agent runs. Use list_branches to find branch IDs. The head must have passed its security check (otherwise this is rejected).

get_branch_draftA

Get a branch's pending (unpublished) draft — its latest draft revision and edit history (which sections changed per edit). Each branch has at most one open draft. Use list_branches to see which branches have one (hasOpenDraft).

publish_draftA

Publish a branch's pending draft edits, committing them as a new revision. If the branch is live, the changes serve immediately; otherwise use make_branch_live to serve them. Publishing runs an async security check on the prompt; this tool waits for it and reports the real outcome — if the check is still running after ~60s the changes aren't committed yet (they commit automatically once it passes), and if it fails the draft stays open so you can fix the prompt and publish again. Can also discard the pending draft instead of publishing.

list_revisionsA

List the committed revisions on a specific branch, newest first. Revisions are branch-scoped — this returns one branch's history, not a global list. Shows revision number, label, who published it, and its security-check status. Use get_revision for a single revision's config.

get_revisionA

Get a single committed revision — its metadata and fully resolved config. Use list_revisions to find revision IDs.

diffA

Compare two agent configs and show what changed, section by section (field paths with old/new values). Each side is a reference: a revision_id (from list_revisions) or ":draft" for a branch's open draft (branch_id from list_branches). E.g. diff a branch's draft against the live head to preview a publish.

test_agentA

Start a test call against a branch — its committed head by default, its open draft (include_draft: true) to try unpublished changes, or a specific revision_id. Modes: webcall (default) or chat return LiveKit connection details; telephony places a real call to to_phone (required, E.164).

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 and run again. This places a real (chargeable) chat session on the agent. Note: the agent must be published; to chat with unpublished draft changes use test_agent (mode=chat, include_draft=true).

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.

create_webhookA

Register a NEW webhook endpoint (delivery URL). Use this only when the target URL does not already exist as a webhook. To point an agent at an ALREADY-REGISTERED webhook, do NOT create a new one — call get_webhooks to find it, then attach_agent_webhook. events is optional: omit it to register the endpoint only, or pass agent+event pairs to attach in the same call. Never guess or default the event types. If the user hasn't said which of call-start (pre-conversation), call-end (post-conversation), or analytics (analytics-completed) they want, ask them before calling.

get_webhooksA

List the organization's webhooks, or fetch a single one by ID. Each webhook includes its subscriptions — the agents and event types (pre-conversation, post-conversation, analytics-completed) it's attached to.

update_webhookA

Update a webhook's endpoint URL, description, or custom headers. Provide at least one field. This does NOT change which agents/events are attached — subscriptions are fixed at creation. To change attachments, delete the webhook and create a new one.

delete_webhookA

Delete a webhook and all of its agent/event subscriptions. This detaches it from every agent it was attached to.

get_webhook_eventsA

List recent delivery events (attempts, payloads, and outcomes) for a webhook. Use this to verify that call-start/call-end/analytics events are firing and reaching your endpoint.

attach_agent_webhookA

Attach an EXISTING webhook to an agent for the given events. This is the right tool for 'send this agent's call-start/call-end/analytics to an already-created webhook' — find the webhook with get_webhooks first, then pass its id here. WARNING: this REPLACES the agent's current subscriptions — the backend deletes all of the agent's existing webhook subscriptions and recreates them for this webhook only, so an agent points at one webhook at a time. To only remove subscriptions, use detach_agent_webhooks. Never guess or default the event types. If the user hasn't said which of call-start (pre-conversation), call-end (post-conversation), or analytics (analytics-completed) they want, ask them before calling.

get_agent_webhooksA

List an agent's current webhook subscriptions — which webhook it's attached to and for which events (pre-conversation, post-conversation, analytics-completed).

detach_agent_webhooksA

Remove ALL of an agent's webhook subscriptions. The agent will stop receiving call-start/call-end/analytics deliveries until re-attached with attach_agent_webhook. This does not delete the webhook endpoint itself.

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'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