inboxassure-mcp-server
v5.0.0
Published
Comprehensive MCP server for InboxAssure email marketing platform with full API coverage including campaigns, replies, and email account management.
Maintainers
Readme
InboxAssure MCP Server
Comprehensive Model Context Protocol (MCP) server for the InboxAssure email marketing platform. This server provides full API coverage with 23 tools for managing campaigns, replies, and email accounts through AI assistants like Claude and Cursor.
Features
- 23 comprehensive tools covering the entire InboxAssure API
- Campaigns Management: Create, manage, and analyze email campaigns
- Replies Management: Handle incoming emails and compose responses
- Email Accounts: Manage sender accounts and configurations
- Multi-transport support: STDIO, HTTP, and SSE protocols
- Client compatibility: Works with Claude Desktop, Cursor, and other MCP clients
- Secure API key handling: Client-provided keys, no server-side storage
Prerequisites
- Node.js (version 18.x or later)
- npm (usually comes with Node.js)
- InboxAssure API key (starting with
iak_)
Installation
Clone this repository:
git clone https://github.com/your-org/inboxassure-mcp-server cd inboxassure-mcp-serverInstall dependencies:
npm install
Usage
STDIO Mode (Recommended for AI Assistants)
# Using npm script
npm run start:stdio -- --api-key YOUR_INBOXASSURE_API_KEY
# Or directly using node
node src/cli.js --stdio --api-key YOUR_INBOXASSURE_API_KEYHTTP Server Mode
# Default port 3000
npm start -- --api-key YOUR_INBOXASSURE_API_KEY
# Custom port
npm start -- --api-key YOUR_INBOXASSURE_API_KEY --port 3001The HTTP server provides:
- MCP Endpoint:
http://localhost:PORT/mcp(POST requests) - Health Check:
http://localhost:PORT/health(GET requests)
Available Tools
Original Tools
get_bison_hello- Test endpoint to verify API connectivity
📧 Campaigns API (11 tools)
list_campaigns- List all campaigns with filtering and pagination- Parameters:
workspace_id, optionalparams(search, status, page, per_page)
- Parameters:
create_campaign- Create a new email marketing campaign- Parameters:
workspace_id,name, optionaltype
- Parameters:
get_campaign_details- Get detailed campaign information- Parameters:
workspace_id,campaign_id
- Parameters:
pause_campaign- Temporarily pause a running campaign- Parameters:
workspace_id,campaign_id
- Parameters:
resume_campaign- Resume a paused campaign- Parameters:
workspace_id,campaign_id
- Parameters:
get_campaign_stats- Get performance metrics for date range- Parameters:
workspace_id,campaign_id,start_date,end_date
- Parameters:
get_campaign_leads- View leads in campaign with status- Parameters:
workspace_id,campaign_id, optionalparams
- Parameters:
create_campaign_schedule- Set up campaign sending schedule (days, times, timezone)- Parameters:
workspace_id,campaign_id,start_time,end_time,timezone, day booleans
- Parameters:
get_schedule_templates- Get predefined schedule templates for quick setup- Parameters:
workspace_id
- Parameters:
create_sequence_steps- Define email sequence steps for drip campaigns- Parameters:
workspace_id,campaign_id,title,sequence_stepsarray
- Parameters:
attach_lead_list- Import entire lead lists into campaigns- Parameters:
workspace_id,campaign_id,lead_list_id
- Parameters:
💬 Replies API (5 tools)
list_replies- Retrieve email replies with filtering- Parameters:
workspace_id, optionalparams(search, status, folder, etc.)
- Parameters:
get_reply_details- Get complete reply details and content- Parameters:
workspace_id,reply_id
- Parameters:
compose_new_email- Send standalone emails outside campaigns- Parameters:
workspace_id,sender_email_id,to_emails,message, optionalcontent_type,cc_emails,bcc_emails
- Parameters:
reply_to_email- Respond to emails maintaining thread- Parameters:
workspace_id,reply_id,sender_email_id,to_emails,message, optionalcontent_type
- Parameters:
get_conversation_thread- Get complete conversation history- Parameters:
workspace_id,reply_id
- Parameters:
👤 Email Accounts API (6 tools)
list_email_accounts- List configured email accounts- Parameters:
workspace_id, optionalparams(search, page, per_page)
- Parameters:
get_email_account_details- Get account configuration and stats- Parameters:
workspace_id,email_id
- Parameters:
update_email_account- Modify account settings- Parameters:
workspace_id,email_id, optionaldaily_limit,name,email_signature
- Parameters:
get_account_campaigns- See which campaigns use this email account- Parameters:
workspace_id,email_id
- Parameters:
get_account_replies- View replies received by this email account- Parameters:
workspace_id,email_id
- Parameters:
bulk_update_email_signatures- Update signatures across multiple accounts- Parameters:
workspace_id,sender_email_idsarray,email_signature
- Parameters:
Total: 23 tools (1 original + 11 campaigns + 5 replies + 6 email accounts)
Client Configuration
For Claude Desktop
Add to your Claude MCP configuration:
{
"mcpServers": {
"InboxAssure": {
"command": "node",
"args": [
"/path/to/inboxassure-mcp-server/src/cli.js",
"--api-key=YOUR_INBOXASSURE_API_KEY",
"--stdio"
]
}
}
}For Cursor
Add to your Cursor MCP settings:
{
"mcpServers": {
"InboxAssure Email Marketing": {
"command": "node",
"args": [
"/full/path/to/src/cli.js",
"--api-key=YOUR_INBOXASSURE_API_KEY",
"--stdio"
]
}
}
}Global NPM Installation (Coming Soon)
Once published to NPM:
{
"mcpServers": {
"InboxAssure": {
"command": "npx",
"args": [
"-y",
"inboxassure-mcp-server",
"--api-key=YOUR_INBOXASSURE_API_KEY",
"--stdio"
]
}
}
}API Key Management
This server follows security best practices:
- Client-provided: API keys are provided via
--api-keyargument - No server storage: Keys are never stored on the server
- Header extraction: Supports multiple header formats for compatibility
- Per-request authentication: Each API call uses the client's key
Development
Development Scripts
# Start with placeholder API key (update in package.json)
npm run dev
npm run dev:stdio
# Linting (placeholder)
npm run lintTesting Locally
Start the server:
node src/cli.js --api-key=YOUR_KEY --stdioSend test JSON-RPC messages:
{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}
Deployment
Production Deployment (PM2)
The project includes PM2 ecosystem configuration:
# Deploy to production server
ssh -i ~/.ssh/mcpx [email protected] "cd /root/mcpx && git pull && pm2 restart all"Docker Deployment
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY src/ ./src/
EXPOSE 3000
CMD ["node", "src/cli.js"]API Documentation
The server integrates with the complete InboxAssure API:
- Base URL:
https://bison.imnodev.com/api/ - Authentication:
X-API-Keyheader with InboxAssure API key - Endpoints: Campaigns, Replies, Email Accounts APIs
Common Parameters
- workspace_id: Your InboxAssure workspace identifier
- Pagination:
page(default: 1),per_page(default: 15, max: 100) - Filtering:
search,status,folderparameters - Date Format: ISO 8601 (
YYYY-MM-DDorYYYY-MM-DDTHH:MM:SSZ)
Troubleshooting
Common Issues
- "API key is required": Ensure
--api-keyis provided in client configuration - Connection errors: Verify API key format starts with
iak_ - Tools not appearing: Check client MCP configuration and restart client
- Permission errors: Verify API key has appropriate workspace permissions
Debug Logging
The server provides extensive debug logging:
# Check server logs
tail -f /var/log/your-app/mcp-server.log
# Enable verbose debugging
DEBUG=* node src/cli.js --api-key=YOUR_KEYClient Logs
- Windows:
%APPDATA%\Claude\logs\mcp*.log - macOS:
~/Library/Logs/Claude/mcp*.log
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
License
MIT License - see LICENSE file for details.
Support
For issues and questions:
- Create an issue on GitHub
- Check the InboxAssure API documentation
- Review the MCP specification
