邮件控制协议服务器

一个用于Mailmodo与Claude Desktop及其他MCP支持客户端集成的TypeScript项目,实现消息控制协议服务器功能。

  • by mailmodo
  • TypeScript
  • 混合部署
  • 更新于
在 GitHub 查看 mailmodo/mailmodo-mcp

使用说明

mailmodo mcp

这是一个TypeScript项目,它实现了一个消息控制协议(MCP)服务器,用于Mailmodo与Claude Desktop和其他支持MCP的客户端的集成。

先决条件

  • Node.js(建议使用v20或更高版本)
  • npm(附带Node.js)

安装

通过Smithery安装

通过以下方式自动安装克劳德桌面版Mailmodo Integration Server 史密瑟里:

npx -y @smithery/cli install @mailmodo/mailmodo-mcp --client claude

手动安装

  1. 克隆存储库:
git clone https://github.com/mailmodo/mailmodo-mcp.git
cd mailmodo-mcp
  1. 安装依赖项:
npm install

建设项目

要将TypeScript代码编译为JavaScript,请运行:

npm run build

这将创建一个 dist 包含编译的JavaScript文件的目录。

运行项目

构建后,您可以使用以下命令运行项目:

node dist/index.js

或者使用npm脚本:

npm start

Claude桌面配置

本地代码运行

要使用Claude Desktop配置此项目,请将以下配置添加到您的Claude Desktop设置中:

{
  "mcpServers": {
    "mailmodo": {
      "command": "node",
      "args": [
        "/path/to/your/mailmodo-mcp/dist/index.js"
      ]
    }
  }
}

从docker镜像运行

{
  "mcpServers": {
    "mailmodo": {
      "command": "docker",
      "args": [
        "run",
        "--platform", 
        "linux/amd64",
        "-i",
        "--rm",
        "-e",
        "MAILMODO_API_KEY",
        "avneesh001/mailmodo-mcp"
      ],
      "env": {
        "MAILMODO_API_KEY": "<GET MAILMODO KEY from https://manage.mailmodo.com/app/settings/apikey and insert here>"
      }
    }
  }
}

从npx运行

{
  "mcpServers": {
    "mailmodo": {
      "command": "npx",
      "args": [
        "-y",
        "@mailmodo/mcp"
      ],
      "env": {
        "MAILMODO_API_KEY": "<GET MAILMODO KEY from https://manage.mailmodo.com/app/settings/apikey and insert here>"
      }
    }
  }
}

通过远程服务器连接

{
  "mcpServers": {
    "mailmodo": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.app.mailmodo.com/mcp",
        "--header",
        "mmApiKey:${MAILMODO_API_KEY}"
      ],
      "env": {
        "MAILMODO_API_KEY": "<GET MAILMODO KEY from https://manage.mailmodo.com/app/settings/apikey and insert here>"
      }
    }
  }
}

确保在中调整文件路径 args 数组以匹配您的本地项目目录。

发展

要在开发模式下运行项目并自动重新编译,请执行以下操作:

  1. 安装 ts-node 和 nodemon 作为开发依赖关系:
npm install --save-dev ts-node nodemon
  1. 在package.json中添加一个开发脚本:
{
  "scripts": {
    "dev": "nodemon src/index.ts",
    "build": "tsc",
    "start": "node dist/index.js"
  }
}
  1. 运行开发服务器:
npm run dev

项目结构

mailmodo-mcp/
├── src/             # TypeScript source files
├── dist/            # Compiled JavaScript files
├── package.json     # Project dependencies and scripts
└── tsconfig.json    # TypeScript configuration

工具与资源

Mailmodo MCP服务器提供了多种工具和资源,用于与Mailmodo的功能进行交互。以下是一个全面的列表:

资源

  1. Mailmodo模板 (mailmodo://templates)

    • 以JSON格式返回所有可用电子邮件模板的列表
    • MIME类型:应用程序/json
  2. Mailmodo活动 (mailmodo://campaigns)

    • 以JSON格式返回所有活动的列表
    • MIME类型:应用程序/json
  3. Mailmodo联系人列表 (mailmodo://contact-lists)

    • 以JSON格式返回所有联系人列表
    • MIME类型:应用程序/json

工具

  1. 用户详细信息

    • 姓名: userDetails
    • 描述:获取联系人的所有详细信息
    • 参数:
      • email (string):联系人的电子邮件地址
  2. 活动报告工具

    • 姓名: MailmodoCampainReportTool
    • 描述:获取活动报告,包括打开次数、点击次数和提交次数
    • 参数:
      • campaignId (UUID):活动的ID
      • fromDate (YYYY-MM-DD):报告的开始日期
      • toDate (YYYY-MM-DD):报告的结束日期
  3. 当前日期时间

    • 姓名: currentDateTime
    • 描述:获取当前日期和时间
    • 参数:无
  4. 发送事件

    • 姓名: sendEvent
    • 描述:使用电子邮件和事件属性发送自定义事件
    • 参数:
      • email (string):联系人的电子邮件地址
      • event_name (string):事件名称
      • ts (数字,可选):时间戳
      • event_properties (对象,可选):其他事件属性
  5. 联系人列表管理

    • 将联系人添加到列表

      • 姓名: addContactToList
      • 描述:将单个联系人添加到列表中
      • 参数:
        • email (string):联系人的电子邮件
        • listName (string):列表名称
        • data (对象,可选):联系人属性
        • 联系人元数据的各种可选字段
    • 批量添加联系人

      • 姓名: addBulkContactToList
      • 说明:在一次操作中将多个联系人添加到列表中
      • 参数:
        • listName (string):列表名称
        • values (array):接触对象数组
    • 从列表中删除联系人

      • 姓名: removeContactFromList
      • 描述:从特定列表中删除联系人
      • 参数:
        • email (string):联系人的电子邮件
        • listName (string):列表名称
  6. 联系人状态管理

    • 取消订阅联系人

      • 姓名: unsubscribeContact
      • 描述:取消订阅或隐藏联系人
      • 参数:
        • email (string):联系人的电子邮件
    • 重新订阅联系人

      • 姓名: resubscribeContact
      • 描述:重新订阅以前未订阅的联系人
      • 参数:
        • email (string):联系人的电子邮件
    • 存档联系人

      • 姓名: archiveContact
      • 描述:永久存档联系人
      • 参数:
        • email (string):联系人的电子邮件
  7. 活动管理

    • 发送电子邮件活动

      • 姓名: sendEmailToCampaign
      • 描述:触发具有个性化的电子邮件活动
      • 参数:
        • campaignId (字符串):活动ID
        • email (string):收件人的电子邮件
        • 可定制的各种可选参数
    • 广播活动

      • 姓名: broadcastCampaignToList
      • 描述:触发整个联系人列表的活动
      • 参数:
        • campaignId (字符串):活动ID
        • listId (string):目标列表ID
        • 活动定制的可选参数

许可证

MIT许可证