ArsenalPAC/SwitchboardMCP
If you are the rightful owner of SwitchboardMCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Switchboard MCP Server is a Model Context Protocol server that allows AI assistants to interact with the Switchboard API for managing broadcast messaging, email campaigns, and contact lists.
list_broadcasts_v1_broadcasts_get
List all broadcasts
get_broadcast_v1_broadcasts__broadcast_id__get
Get specific broadcast details
export_broadcasts_v1_broadcasts_export_post
Export broadcast data to CSV
list_email_blasts_v1_email_blasts_get
List all email blasts
get_email_blast_v1_email_blasts__blast_id__get
Get specific email blast details
Switchboard MCP Server (Smithery Native) š
A clean, modern implementation of the Switchboard MCP server built with Smithery best practices.
Why This Rewrite?
The original implementation was generated from OpenAPI specs, resulting in:
- Complex code with eval() usage
- Manual transport handling
- Deployment issues with Smithery
- 1000+ lines of code
This new implementation:
- ā Native Smithery support
- ā 43% less code
- ā Type-safe Zod schemas
- ā Zero eval() usage
- ā Automatic transport handling
- ā 100% feature parity
Quick Start
Installation
npm install
Development
npx @smithery/cli dev
This will start the development server with hot-reload.
Testing
You can test tools in the Smithery playground that opens automatically during development.
Configuration
The server requires Switchboard API credentials:
account_id
: Your Switchboard Account IDsecret_key
: Your Switchboard Secret Key
Get these from: https://oneswitchboard.com/organization/settings?tab=api
Available Tools (36 Total)
Contact Management
create_phone_contact
- Add phone contacts with detailscreate_email_contact
- Add email contacts with detailslist_phone_contacts
- List all phone numberslist_email_contacts
- List all email addressesupdate_phone_labels
- Manage phone contact labelsupdate_email_labels
- Manage email contact labelsexport_phone_contacts
- Export all phone contactsexport_email_contacts
- Export all email contacts
Broadcast Management
list_broadcasts
- List SMS/MMS campaignsget_broadcast
- Get broadcast detailsget_broadcast_messages
- List messages in a broadcastexport_broadcasts
- Export all broadcast dataexport_broadcast_messages
- Export messages for a broadcast
Email Campaigns
list_email_blasts
- List email campaignsget_email_blast
- Get email blast detailsget_email_blast_messages
- List messages in an email blastexport_email_blasts
- Export all email blast dataexport_email_blast_messages
- Export messages for an email blast
Label Management
list_labels
- List all labelscreate_label
- Create new labelsget_label
- Get label detailsedit_label
- Edit/rename labels
Phone Lists & Imports
list_phone_lists
- List all phone listscreate_phone_list
- Import phone contacts from CSVget_phone_list
- Get phone list detailsexport_phone_list
- Export a specific phone listupdate_phone_list_labels
- Update labels for entire phone list
Email Lists & Imports
list_email_lists
- List all email listscreate_email_list
- Import email contacts from CSVget_email_list
- Get email list detailsexport_email_list
- Export a specific email listupdate_email_list_labels
- Update labels for entire email list
Other Features
export_inbox
- Export inbox messages with filterslist_jobs
- List async jobs (imports/exports)get_job
- Get job statuswhoami
- Verify API credentials
Architecture
src/
āāā index.ts # Complete server implementation (~600 lines)
Simple, clean, maintainable.
Deployment
# smithery.yaml
runtime: "typescript"
Push to GitHub and deploy via Smithery UI. That's it!
Migration from Old Server
Both implementations are API-compatible. Users can switch seamlessly with no changes to their workflows.
Contributing
This is a Smithery-native MCP server. Follow these principles:
- Use
server.tool()
for all tools - Define schemas with Zod
- Keep error handling consistent
- No manual transport handling
License
MIT