Smallest MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ATOMS_API_KEY | Yes | Your Smallest AI API key |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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. The agent is created as a single_prompt agent with gpt-4.1 model and daniel voice (waves_lightning_v3_1) by default. Returns the created agent's ID. Set the agent 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 — use publish_draft to make them 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. |
| 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. |
| 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 activate it, making changes live. Use after update_agent_config or update_agent_prompt creates a draft on a versioned agent. 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. |
| 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. 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| platform-overview | Overview 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