loading…
Search for a command to run...
loading…
Enables interaction with the XEM Email API to send emails, manage campaigns, and organize contact lists. It supports features like HTML content, scheduling, tem
Enables interaction with the XEM Email API to send emails, manage campaigns, and organize contact lists. It supports features like HTML content, scheduling, template management, and bulk contact imports from CSV files.
A Model Context Protocol (MCP) server that provides tools for interacting with the XEM Email API. This server enables sending emails, managing campaigns, creating contact lists, and managing contacts.
npm install
npm run build
You can configure the API token and Team ID using environment variables:
XEM_API_TOKEN: Your XEM Email API token (required)XEM_TEAM_ID: Your Team ID (optional, if applicable to your account)Alternatively, pass credentials as command line arguments:
--token <token>: XEM Email API token--team-id <team-id>: Team IDAdd to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"xem-email": {
"command": "node",
"args": ["/path/to/mcp/build/index.js"],
"env": {
"XEM_API_TOKEN": "your-api-token-here",
"XEM_TEAM_ID": "your-team-id-here"
}
}
}
}
{
"mcpServers": {
"xem-email": {
"command": "node",
"args": [
"/path/to/mcp/build/index.js",
"--token", "your-api-token-here",
"--team-id", "your-team-id-here"
]
}
}
}
Note: When token and teamId are configured via environment variables or CLI args, you don't need to provide them in each tool call. If both are set, the tool argument takes precedence.
Send an email using the XEM Email API.
Required Parameters:
to (string): Recipient email addresssubject (string): Email subject lineOptional Parameters:
token (string): XEM Email API token (only if not set via environment/args)html (string): HTML content of the emailcc (string): CC email addresses (comma-separated)bcc (string): BCC email addresses (comma-separated)replyTo (string): Reply-to email addresstemplateId (string): Template ID to use for the emailscheduleAt (string): ISO 8601 timestamp to schedule the emailprovider (string): Email provider (default: "CUSTOM")test (boolean): Whether this is a test email (default: false)data (array): Additional data arrayExample (assuming token is set via environment):
{
"to": "[email protected]",
"subject": "Welcome!",
"html": "<h1>Hello World</h1>",
"test": true
}
Create an email campaign that can be sent to a contact list.
Required Parameters:
name (string): Campaign namesubject (string): Email subject linelistId (string): Mailing list ID to send the campaign toOptional Parameters:
token (string): XEM Email API token (only if not set via environment/args)teamId (string): Team ID (only if not set via environment/args)html (string): HTML content of the campaign emailtemplateId (string): Template ID to use for the campaignscheduleAt (string): ISO 8601 timestamp to schedule the campaignCreate a new contact list for organizing email recipients.
Required Parameters:
name (string): Name of the contact listOptional Parameters:
token (string): XEM Email API token (only if not set via environment/args)teamId (string): Team ID (only if not set via environment/args)description (string): Description of the contact listAdd contacts to a mailing list.
Required Parameters:
listId (string): ID of the mailing list to add contacts tocontacts (array): Array of contact objectsOptional Parameters:
token (string): XEM Email API token (only if not set via environment/args)teamId (string): Team ID (only if not set via environment/args)Contact Object:
email (string, required): Contact email addressname (string, optional): Contact namephone (string, optional): Contact phone numberExample (assuming token/teamId set via environment):
{
"listId": "list-123",
"contacts": [
{
"email": "[email protected]",
"name": "John Doe",
"phone": "+1234567890"
},
{
"email": "[email protected]",
"name": "Jane Smith"
}
]
}
Import contacts from a CSV file to a mailing list using file upload.
Required Parameters:
listId (string): ID of the mailing list to import contacts tofileId (string): File ID from a previous file uploadmappings (object): Field mappings for CSV columnsOptional Parameters:
token (string): XEM Email API token (only if not set via environment/args)teamId (string): Team ID (only if not set via environment/args)Example (assuming token/teamId set via environment):
{
"listId": "list-123",
"fileId": "file-456",
"mappings": {
"name": "name",
"email": "email",
"phone": "phone"
}
}
Get all contact lists for a team.
Optional Parameters:
token (string): XEM Email API token (only if not set via environment/args)teamId (string): Team ID (only if not set via environment/args)page (number): Page number for pagination (default: 0)limit (number): Number of items per page (default: 10)Get contacts from a specific mailing list.
Required Parameters:
listId (string): ID of the mailing listOptional Parameters:
token (string): XEM Email API token (only if not set via environment/args)teamId (string): Team ID (only if not set via environment/args)page (number): Page number for pagination (default: 0)limit (number): Number of items per page (default: 10)All tools require an API token from XEM Email. You can obtain this token from your XEM Email account dashboard.
Important: Keep your API token secure and never commit it to version control.
npm run build
npm run watch
mcp/
├── src/
│ └── index.ts # Main MCP server implementation
├── build/ # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md
@modelcontextprotocol/sdk: MCP SDK for building MCP serverstypescript: TypeScript compiler@types/node: Node.js type definitionsMIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"xem-email-mcp-server": {
"command": "npx",
"args": []
}
}
}