Package Exports
- switchboard-mcp-server
- switchboard-mcp-server/build/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (switchboard-mcp-server) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Switchboard MCP Server
🎯 Purpose
Model Context Protocol (MCP) server for the Switchboard API, enabling AI assistants to access broadcast messaging, email campaigns, and contact management capabilities.
🛠️ Features
- 📱 SMS/MMS Broadcast Management: List and manage text message campaigns
- 📧 Email Campaign Tools: Handle email blasts and email list management
- 👥 Contact Management: Create and organize contacts with labels
- 🏷️ Label System: Organize contacts with custom labels
- 📊 Export Capabilities: Export campaign data for analysis
- 🔐 Secure Authentication: HTTP Basic auth with account credentials
⚡ Quick Deploy
Installation via Smithery
npx -y @smithery/cli install @arsenalpac/switchboardmcpManual Installation
npm install -g switchboard-mcp-server🔧 Configuration
Required Credentials
You'll need your Switchboard API credentials:
- Account ID: Found at https://oneswitchboard.com/organization/settings?tab=api
- Secret Key: Generated from the same settings page
MCP Client Configuration
Add to your MCP client configuration:
{
"mcpServers": {
"switchboard": {
"command": "npx",
"args": ["-y", "@arsenalpac/switchboardmcp"],
"config": {
"account_id": "ac_your_account_id_here",
"secret_key": "sk_your_secret_key_here"
}
}
}
}Environment Variables (Alternative)
You can also set credentials via environment variables:
export BASIC_USERNAME_HTTPBASIC="ac_your_account_id"
export BASIC_PASSWORD_HTTPBASIC="sk_your_secret_key"🔌 Available Tools
Broadcast Management
list_broadcasts_v1_broadcasts_get- List all broadcastsget_broadcast_v1_broadcasts__broadcast_id__get- Get broadcast detailsexport_broadcasts_v1_broadcasts_export_post- Export broadcast dataget_broadcast_phone_messages_v1_broadcasts__broadcast_id__phone_messages_get- List messages in a broadcast
Email Campaign Management
list_email_blasts_v1_email_blasts_get- List email campaignsget_email_blast_v1_email_blasts__blast_id__get- Get email blast detailsexport_blasts_v1_email_blasts_export_post- Export email blast data
Contact Management
create_phone_v1_phones_post- Add phone number contactcreate_email_v1_emails_post- Add email contactlist_phones_v1_phones_get- List phone contactslist_emails_v1_emails_get- List email contacts
List Management
create_phone_list_v1_phone_lists_post- Create phone list from CSVcreate_email_list_v1_email_lists_post- Create email list from CSVlist_phone_lists_v1_phone_lists_get- List all phone listslist_email_lists_v1_email_lists_get- List all email lists
Label Management
create_label_v1_labels_post- Create new labellist_labels_v1_labels_get- List all labelsupdate_labels_v1_phones_update_labels_post- Update phone labelsupdate_labels_v1_emails_update_labels_post- Update email labels
📋 Example Usage
List Recent Broadcasts
// AI Assistant can run:
await use_mcp_tool("switchboard", "list_broadcasts_v1_broadcasts_get", {});Create a New Contact
// AI Assistant can run:
await use_mcp_tool("switchboard", "create_phone_v1_phones_post", {
requestBody: JSON.stringify({
phone_number: "+12025551234",
first_name: "Jane",
last_name: "Doe",
label_names: ["Volunteer", "Donor"]
})
});Export Campaign Data
// AI Assistant can run:
await use_mcp_tool("switchboard", "export_broadcasts_v1_broadcasts_export_post", {
requestBody: JSON.stringify({})
});🔐 Security Standards
- API Authentication: Secure HTTP Basic authentication
- Data Protection: All communications use HTTPS
- Credential Storage: Never commit credentials to version control
- Access Control: API keys are scoped to organization level
💻 Development
Local Development
# Clone the repository
git clone https://github.com/ArsenalPAC/SwitchboardMCP.git
cd SwitchboardMCP
# Install dependencies
npm install
# Build the project
npm run build
# Run locally
npm startTesting with MCP Inspector
# Use the MCP Inspector to test the server
npx @modelcontextprotocol/inspector🚀 Automated Releases
This repository is configured for automated NPM publishing. When you create a new GitHub release or push a version tag, the package is automatically published to NPM.
See Release Process Documentation for setup and usage instructions.
🤝 Contributing
Arsenal PAC welcomes contributions! Please feel free to submit a Pull Request.
🏛️ Political Disclaimer
Paid for by Arsenal PAC and is not authorized by any candidate or candidate's committee.
📧 Support
Note: This project is not affiliated with Switchboard. Switchboard support will generally not be able to assist with MCP-related questions or issues.
Where to Get Help:
- Switchboard API Issues: Email developers@oneswitchboard.com
- MCP Server Issues or General Questions: Open an issue in this repository
- Switchboard API Documentation: https://api.oneswitchboard.com/v1/docs
⚖️ License & Compliance
Licensed under MIT License.