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