Skip to main content
Glama
smallest-inc

Smallest MCP Server

Official
by smallest-inc
README.md
# Smallest MCP Server

MCP server for the [Smallest AI](https://smallest.ai) platform. Manage agents, debug calls, view analytics — directly from your IDE.

## Quick start

### Option A: npm (recommended)

Requires Node.js 18+. Add this to your MCP config (`~/.cursor/mcp.json` for Cursor, `claude_desktop_config.json` for Claude Desktop):

```json
{
  "mcpServers": {
    "smallest": {
      "command": "npx",
      "args": ["-y", "@developer-smallestai/smallest-mcp-server"],
      "env": {
        "ATOMS_API_KEY": "sk_your_key_here"
      }
    }
  }
}
```

Auto-updates to the latest version every time your editor restarts.

### Option B: One-line installer (no dependencies)

**Mac / Linux:**
```bash
curl -fsSL https://raw.githubusercontent.com/smallest-inc/mcp-server/main/install.sh | bash
```

**Windows (PowerShell):**
```powershell
irm https://raw.githubusercontent.com/smallest-inc/mcp-server/main/install.ps1 | iex
```

Downloads a standalone binary, prompts for your API key, and configures Cursor + Claude Desktop automatically. Re-run to update.

### Option C: One prompt

Open a chat in Cursor or Claude Desktop and type:

```
Set up the Smallest MCP server for me.
The npm package is @developer-smallestai/smallest-mcp-server.
My API key is: sk_paste_your_key_here
```

### Verify

Reload your editor, then type: **"List all my agents"**

---

## Available tools

### Read

| Tool | Description |
|---|---|
| `list_calls` | Search and list calls with filters for status, type, date range, agent, phone number |
| `debug_call` | Get detailed info about a single call — status, transcript, errors, analytics, latency |
| `get_agents` | List agents with their configuration, voice, LLM model, and call stats |
| `get_agent` | Get full details for a single agent |
| `get_agent_prompt` | Read an agent's current system prompt and tools |
| `get_usage_stats` | Usage statistics — total calls, duration, costs, status breakdown |
| `get_campaigns` | List outbound calling campaigns with status and progress |
| `get_phone_numbers` | List phone numbers owned by your organization |
| `get_voices` | List available voices with gender, language, and model filters |
| `get_playbooks` | Read a multi-agent (Playbooks) agent's SOPs, intent router, and shared auth tools |
| `get_branch_draft` | View a branch's pending (unpublished) draft changes |
| `get_revision` | Get a single committed revision's metadata and resolved config |

### Write

Edits are saved to a branch's **draft** (agents use the branch/revision model). Pass an optional `branch_id` to any editing tool — omit it to edit the live branch; if the agent has several branches you'll be asked which one. Run `publish_draft` once to commit.

| Tool | Description |
|---|---|
| `create_agent` | Create a new AI voice agent (`single_prompt`, or `multi_agents` for Playbooks) |
| `update_agent` | Update agent settings — name, prompt, first message, voice, model, language, variables, pre-call API, etc. |
| `add_agent_tool` | Add or update an API-call tool the agent can invoke during a call |
| `remove_agent_tool` | Remove a tool from an agent by name |
| `configure_call_actions` | Enable/disable end_call and set a transfer number — agent-level |
| `add_playbooks` | Add SOP playbooks (intent + prompt + scoped API tools + auth level) to a multi-agent |
| `update_playbook` | Edit, archive, or restore one playbook |
| `configure_playbooks` | Set the intent router, conversation guide, and shared weak/strong auth tools |
| `delete_agent` | Archive (soft-delete) or unarchive an agent |
| `duplicate_agent` | Copy an agent |

### Versioning (branches & revisions)

| Tool | Description |
|---|---|
| `list_branches` | List the agent's branches (which is live, which have a pending draft) |
| `create_branch` | Create a working branch from another branch's head |
| `rename_branch` | Rename a branch |
| `make_branch_live` | Make a branch's head the live (serving) config |
| `publish_draft` | Publish (commit) or discard a branch's pending draft |
| `list_revisions` | List a branch's committed revisions |
| `diff` | Compare two configs (revisions or a branch draft) |
| `test_agent` | Start a test call against a branch's head, its draft, or a specific revision |

### Act

| Tool | Description |
|---|---|
| `make_call` | Initiate an outbound phone call using a specific agent |

### Resources

| Resource | URI | Description |
|---|---|---|
| Platform Overview | `atoms://docs/platform-overview` | Key concepts, call types, statuses, and cost breakdown |

---

## Environment variables

| Variable | Required | Description |
|---|---|---|
| `ATOMS_API_KEY` | Yes | Your Smallest AI API key |

## Development

```bash
npm install
npm run dev    # run with tsx
npm run build  # bundle to dist/
```

## Releases

Merging to `main` automatically publishes a new version to npm and GitHub Releases.

**Version bumps are automatic** based on commit messages:

| Commit message contains | Bump | Example |
|---|---|---|
| `new tool`, `new resource`, `add tool`, `add resource` | **minor** (0.2.0 → 0.3.0) | `feat: add new tool for knowledge bases` |
| `BREAKING CHANGE` or `feat!:` | **major** (0.2.0 → 1.0.0) | `feat!: redesign agent config schema` |
| Anything else | **patch** (0.2.0 → 0.2.1) | `fix: handle empty call logs` |

## License

MIT

TDQS

B3.2/5.0

Scored across 83 tools

Disambiguation3/5

Most core entity tools are clearly distinct per resource, but the analytics/usage cluster contains many overlapping-sounding tools like get_usage_breakdown, get_usage_stats, get_credit_usage, get_credit_ledger, and get_daily_summary. An agent could easily misselect among these similar report tools, though the descriptions do provide some differentiation.

Naming Consistency3/5

The dominant get_* pattern is consistent, but the server mixes list_ and get_ for equivalent list operations (list_branches vs get_agents, list_calls vs get_campaigns). It also mixes create_/add_ and delete_/remove_ for similar operations, and uses bare verbs like diff, publish_draft, and make_branch_live.

Tool Count1/5

83 tools is an extreme count for a single MCP server, well beyond the 50+ threshold. Many analytics and reporting endpoints could be consolidated; the breadth makes the tool set feel more like a full API dump than a curated MCP surface.

Completeness2/5

The surface has significant gaps: there is no create_audience tool even though audiences are required for campaigns, no update_campaign, and update_agent references add_disposition_metrics/remove_disposition_metrics tools that do not exist in the exposed set. While agents, branches, webhooks, and analytics are well covered, several core workflows cannot be completed end-to-end.

Maintenance

ActivitySlowing
ResponsivenessNo issues