Token导航 LogoToken导航TokenDH.com
Rule MCP Server logo
办公协作stdio官方级别未说明来源级核验

Rule MCP Server

MCP Server

rule-mcp-server

Rule MCP Server是一个营销自动化平台的API服务,提供订阅者管理、活动操作、交易消息等功能。

工具数

34

提示词数

0

GitHub Stars

0

资源数

0
JavaScriptClaude团队协作Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

extend-marketing

提供方

extend-marketing

最后核验

2026/5/17 20:23

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx -y rule-mcp-server

详细介绍

规则MCP服务器

模型上下文协议(MCP)服务器 规则 营销自动化平台。服务器提供对Rule的REST API v2的完全访问,用于订阅服务器管理、活动、事务消息等。

特性

  • 用户管理:使用自定义字段创建、更新、搜索和管理订阅者
  • 标签和分段管理:使用标签和分段组织订阅者
  • 活动运营:创建、发送、安排和分析电子邮件/短信活动
  • 事务性消息:发送个人电子邮件和短信
  • 模板管理:访问和使用电子邮件模板
  • 自定义字段:定义和管理用户数据结构
  • 偏好:管理订户通信首选项
  • 旅程:访问自动化行程信息
  • 抑制:监控跳出、垃圾邮件投诉和取消订阅

先决条件

  • 规则帐户位于 app.rule.io
  • 规则API密钥(设置→ 开发者→ 新API密钥)
  • MCP兼容客户端:Claude Desktop、Claude Code、Cursor或类似客户端

安装

您有两种简单的方法来运行此服务器:

选项A:托管HTTP服务器

服务器托管在 https://rule-mcp-server-production.up.railway.app。这是最快的入门方法,因为不需要设置或克隆。只需将您的MCP客户端指向端点,并提供您的Rule API密钥。

选项B:便携式本地安装 npx

如果您更喜欢在本地运行服务器,则不需要克隆此仓库或硬编码路径。任何支持Node.js 18+的计算机都可以运行它:

npx -y rule-mcp-server

这适用于Claude Desktop、Claude Code和其他启动本地命令的MCP客户端。

获取API密钥

  1. 登录到 app.rule.io
  2. 首选 设置→ 开发者
  3. 点击 新API密钥
  4. 安全复制并保存API密钥

连接您的MCP客户端

克劳德桌面版

添加到您的 claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "rule": {
      "type": "streamable-http",
      "url": "https://rule-mcp-server-production.up.railway.app/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_RULE_API_KEY"
      }
    }
  }
}

保存后重新启动Claude Desktop。

Claude桌面与本地 npx

{
  "mcpServers": {
    "rule": {
      "command": "npx",
      "args": ["-y", "rule-mcp-server"],
      "env": {
        "RULE_API_KEY": "YOUR_RULE_API_KEY"
      }
    }
  }
}

这是最简单的本地设置,因为它可以在任何计算机上运行,而无需更改文件路径。

克劳德代码(CLI)

claude mcp add rule --transport streamable-http --header "Authorization: Bearer YOUR_RULE_API_KEY" https://rule-mcp-server-production.up.railway.app/mcp

游标/其他MCP客户端

使用 可流式传输的HTTP 运输方式:

  • 统一资源定位符: https://rule-mcp-server-production.up.railway.app/mcp
  • 头球: Authorization: Bearer YOUR_RULE_API_KEY

使用多个规则API键

许多团队都有多个规则帐户或密钥,例如 Production, Staging,或 Client A.

托管HTTP客户端

添加多个MCP服务器条目,每个密钥一个:

{
  "mcpServers": {
    "rule-production": {
      "type": "streamable-http",
      "url": "https://rule-mcp-server-production.up.railway.app/mcp",
      "headers": {
        "Authorization": "Bearer RULE_PRODUCTION_KEY"
      }
    },
    "rule-staging": {
      "type": "streamable-http",
      "url": "https://rule-mcp-server-production.up.railway.app/mcp",
      "headers": {
        "Authorization": "Bearer RULE_STAGING_KEY"
      }
    }
  }
}

本地 npx 客户

服务器现在支持共享 RULE_API_KEYS 列表加上选定的标签 RULE_API_KEY_NAME.

{
  "mcpServers": {
    "rule-production": {
      "command": "npx",
      "args": ["-y", "rule-mcp-server"],
      "env": {
        "RULE_API_KEYS": "{\"Production\":\"RULE_PRODUCTION_KEY\",\"Staging\":\"RULE_STAGING_KEY\"}",
        "RULE_API_KEY_NAME": "Production"
      }
    },
    "rule-staging": {
      "command": "npx",
      "args": ["-y", "rule-mcp-server"],
      "env": {
        "RULE_API_KEYS": "{\"Production\":\"RULE_PRODUCTION_KEY\",\"Staging\":\"RULE_STAGING_KEY\"}",
        "RULE_API_KEY_NAME": "Staging"
      }
    }
  }
}

支持的格式 RULE_API_KEYS:

  • JSON对象: {"Production":"key_1","Staging":"key_2"}
  • JSON数组: [{"name":"Production","key":"key_1"},{"name":"Staging","key":"key_2"}]
  • 纯文本: Production=key_1;Staging=key_2

健康检查

验证托管服务器是否正在运行:

GET https://rule-mcp-server-production.up.railway.app/health
→ {"status":"ok"}

可用工具

用户管理

rule_create_subscribers

创建一个或多个订阅者,支持:

  • 自定义字段(文本、日期、日期时间、倍数、json)
  • 标签分配(自动创建标签)
  • 自动化触发控制
  • 选择加入流集成
  • 重复更新

例子:

{
  "subscribers": {
    "email": "[email protected]",
    "phone_number": "+46701234567",
    "language": "sv",
    "fields": [
      {
        "key": "Profile.FirstName",
        "value": "Anna",
        "type": "text"
      },
      {
        "key": "Purchase.LastOrderDate",
        "value": "2024-03-20 12:00:00",
        "type": "datetime"
      }
    ]
  },
  "tags": ["Newsletter", "Customer"],
  "update_on_duplicate": true,
  "automation": "reset"
}

rule_get_subscribers

列出所有带分页的订阅者(每页最多100个)。

rule_get_subscriber

通过电子邮件、电话或ID获取详细的订户信息。

rule_get_subscriber_fields

获取按组组织的订阅者的所有自定义字段值。

rule_update_subscriber

更新订阅者详细信息,包括电子邮件、电话、语言、标签和自定义字段。

rule_delete_subscriber

永久删除订阅者。

标签管理

rule_add_subscriber_tags

向订阅者添加标签(如果标签不存在,则创建标签,触发自动化)。

rule_get_subscriber_tags

列出订阅者的所有标签。

rule_clear_subscriber_tags

从订阅者中删除所有标签(不删除标签)。

rule_delete_subscriber_tag

从订阅者中删除特定标签。

rule_get_tags

列出所有带分页的标签。

rule_get_tag

使用可选的订阅者计数获取标签详细信息。

rule_update_tag

更新标签名称或描述。

rule_delete_tag

永久删除标签。

rule_clear_tag

从标签中删除所有订阅者。

片段

rule_get_segments

列出所有带分页的同步段。

交易(个人消息)

rule_send_transaction

发送个人交易电子邮件或短信。

电子邮件示例:

{
  "transaction_type": "email",
  "transaction_name": "Password Reset",
  "subject": "Reset Your Password",
  "from": {
    "name": "My Company",
    "email": "[email protected]"
  },
  "to": {
    "name": "John Doe",
    "email": "[email protected]"
  },
  "content": {
    "plain": "UGFzc3dvcmQgcmVzZXQ=",  // Base64 encoded
    "html": "PHA+UGFzc3dvcmQgcmVzZXQ8L3A+"  // Base64 encoded
  }
}

短信示例(每条消息0.40瑞典克朗):

{
  "transaction_type": "text_message",
  "from": {
    "name": "My Company"
  },
  "to": {
    "phone_number": "+46701234567"
  },
  "content": "Your verification code is: 123456"
}

模板

rule_get_templates

列出所有可用的电子邮件模板。

rule_get_template

获取模板详细信息,包括支持的内容块。

活动

rule_get_campaigns

列出具有可选筛选功能的活动:

  • 类型(1=电子邮件,2=短信)
  • 创建日期范围
  • 发送日期范围

rule_create_campaign

创建包含收件人和内容的活动草稿。

rule_get_campaign

获取包括收件人在内的活动详细信息。

rule_get_campaign_statistics

获取活动绩效指标:

  • 发送、打开、点击
  • 弹跳(硬/软)
  • 取消订阅

rule_send_campaign

立即发送活动。

rule_schedule_campaign

为未来的交付安排活动。

例子:

{
  "send_at": "2024-12-25 10:00:00",
  "subject": "Holiday Greetings",
  "message_type": "email",
  "language": "sv",
  "from": {
    "name": "My Company",
    "email": "[email protected]"
  },
  "recipients": {
    "tags": [
      { "identifier": "Newsletter" }
    ],
    "segments": [
      { "identifier": "InactiveUsers", "negative": true }
    ]
  },
  "content": {
    "plain": "...",
    "html": "..."
  }
}

rule_delete_campaign

永久删除活动。

自定义字段

rule_create_groups_and_fields

创建自定义字段组和字段。

例子:

{
  "fields": [
    {
      "key": "Profile.FirstName",
      "type": "text"
    },
    {
      "key": "Orders.LastPurchase",
      "type": "datetime"
    },
    {
      "key": "Preferences.Categories",
      "type": "multiple"
    }
  ]
}

支持的字段类型:

  • text -文本字符串
  • date -日期(YYYY-MM-DD)
  • datetime -时间戳(YYYY-MM-DD HH:MM:SS)
  • time -时间值(HH:MM:SS)
  • multiple -字符串数组
  • json -JSON编码数据

rule_get_groups

列出所有自定义字段组及其字段。

rule_get_group

获取特定组的字段。

抑制

rule_get_suppressions

列出所有抑制(反弹、垃圾邮件投诉、取消订阅)。

偏好

rule_get_preference_groups

列出所有具有可用首选项的首选项组。

rule_get_subscriber_preferences

获取订阅者对特定组的偏好。

rule_update_subscriber_preferences

更新订阅者的选择加入/选择退出状态。

例子:

{
  "identifier": "[email protected]",
  "preference_group_id": 1,
  "preferences": [
    {
      "preference_id": 1,
      "is_opted_in": true
    },
    {
      "preference_id": 2,
      "is_opted_in": false
    }
  ]
}

旅程

rule_get_journeys

列出自动化旅程,并可选择按名称或偏好进行筛选。

常见用例

1.添加具有自定义数据的订阅者

// Create subscriber with profile data and order history
{
  "subscribers": {
    "email": "[email protected]",
    "fields": [
      { "key": "Profile.FirstName", "value": "Erik", "type": "text" },
      { "key": "Orders.LastOrder", "value": "2024-03-20", "type": "date" },
      { "key": "Orders.TotalSpent", "value": "2500", "type": "text" }
    ]
  },
  "tags": ["Customer", "HighValue"],
  "update_on_duplicate": true
}

2.发送交易电子邮件

// Send order confirmation
{
  "transaction_type": "email",
  "transaction_name": "Order Confirmation",
  "subject": "Your Order #12345",
  "from": {
    "name": "My Shop",
    "email": "[email protected]"
  },
  "to": {
    "name": "Customer Name",
    "email": "[email protected]"
  },
  "content": {
    "plain": btoa("Thank you for your order!"),
    "html": btoa("
Thank you!

Your order is confirmed.
")
  }
}

3.创建和发送活动

// Create campaign
const campaign = await rule_create_campaign({
  "subject": "Spring Sale - 30% Off",
  "message_type": "email",
  "from": { "name": "My Shop", "email": "[email protected]" },
  "recipients": {
    "tags": [{ "identifier": "Newsletter" }]
  },
  "content": { "plain": "...", "html": "..." }
});

// Send immediately
await rule_send_campaign(campaign);

4.管理订阅者标签

// Add tags
await rule_add_subscriber_tags({
  "identifier": "[email protected]",
  "tags": ["VIP", "Spring2024Campaign"]
});

// Remove specific tag
await rule_delete_subscriber_tag({
  "identifier": "[email protected]",
  "tag_identifier": "Spring2024Campaign"
});

5.自动化批量进口

// Import subscribers and trigger welcome flow
{
  "subscribers": [
    { "email": "[email protected]", "fields": [...] },
    { "email": "[email protected]", "fields": [...] }
  ],
  "tags": ["Newsletter"],
  "automation": "force",  // Trigger automation flows
  "sync_subscribers": true
}

API限制和最佳实践

速率限制

  • 默认:每10分钟2 000次请求
  • 错误率:最多49%的错误响应
  • 如果超过,请等待中指定的时间 Retry-After 头球

分页

  • 最大限制:每个请求100个项目
  • 使用 meta.next 来自下一页响应的URL
  • 适用于:订阅者、标签、细分、活动、压制

字段数据大小

  • 每组最大值:65000个字符(65 KB)
  • 这是一个组内所有字段值的总和

批量操作

  • 每次通话的最大用户数: 1000
  • 异步行为:大批量自动
  • 自动化限制:最多100个订阅者 sync_subscribers: true

内容编码

  • 邮件内容:必须采用Base64编码(纯文本和HTML)
  • 短信:纯文本,无需编码
  • 短信费用:每条消息0.40瑞典克朗

认证

API密钥可以通过三种方式提供(此服务器使用Bearer令牌):

  1. 头球 Authorization: Bearer YOUR-API-KEY
  2. 查询参数: ?apikey=YOUR-API-KEY
  3. 请求正文: "apikey": "YOUR-API-KEY"

错误处理

常见错误响应:

// 401 - Not authorized
{ "error": "NotAuthorized" }

// 404 - Resource not found
{ "error": "SubscriberNotFound", "message": "Could not find subscriber" }

// 400 - Validation error
{
  "error": "BadRequest",
  "message": "Some fields could not be validated",
  "fields": {
    "email": ["The email field is required"]
  }
}

// 409 - Duplicate
{ "error": "DuplicateSubscriber", "message": "Subscriber already exists" }

// 429 - Rate limit exceeded
"Too Many Attempts."

集成示例

Shopify订单→ 规则订阅者

// When order is created in Shopify
async function syncOrderToRule(order) {
  await rule_create_subscribers({
    subscribers: {
      email: order.customer.email,
      fields: [
        { key: "Orders.LastOrder", value: order.created_at, type: "datetime" },
        { key: "Orders.LastAmount", value: order.total_price, type: "text" },
        { key: "Orders.ProductNames", value: order.line_items.map(i => i.title), type: "multiple" }
      ]
    },
    tags: ["Customer", `Order${order.order_number}`],
    update_on_duplicate: true
  });
}

废弃购物车回收

// Trigger cart abandonment flow
async function handleAbandonedCart(cart) {
  await rule_create_subscribers({
    subscribers: {
      email: cart.email,
      fields: [
        { key: "Cart.AbandonedAt", value: new Date().toISOString(), type: "datetime" },
        { key: "Cart.Items", value: JSON.stringify(cart.items), type: "json" }
      ]
    },
    tags: ["AbandonedCart"],
    automation: "reset",  // Restart abandoned cart flow
    update_on_duplicate: true
  });
}

购买后跟进

// Schedule follow-up campaign
async function scheduleFollowUp(purchaseData) {
  const followUpDate = new Date();
  followUpDate.setDate(followUpDate.getDate() + 7);

  await rule_schedule_campaign({
    send_at: followUpDate.toISOString().slice(0, 19).replace('T', ' '),
    subject: "How are you enjoying your purchase?",
    message_type: "email",
    from: { name: "My Shop", email: "[email protected]" },
    recipients: {
      tags: [{ identifier: `Order${purchaseData.orderId}` }]
    },
    content: {
      plain: btoa("..."),
      html: btoa("...")
    }
  });
}

网络钩子

Rule可以为各种事件发送Webhook。配置位置:https://app.rule.io/#/settings/developer

可用的webhook事件:

  • 交易已发送/打开/点击
  • 活动已发送/打开/点击
  • 订阅者选择加入/被抑制/添加到标签/被退回
  • 导入已完成
  • 首选项已更新

webhook负载示例(已发送事务):

{
  "message": {
    "id": 111111,
    "transaction_id": 111111,
    "subject": "Password Reset",
    "type": "email",
    "created_at": "2024-03-20 12:00:00"
  },
  "subscriber": {
    "id": 111111,
    "email": "[email protected]",
    "phone_number": "+46701234567"
  }
}

资源

  • API文档: https://apidoc.rule.se/
  • V3 API文档: https://app.rule.io/redoc/v3
  • 帮助中心: https://help.rule.io/
  • 邮差收藏:可在https://apidoc.rule.se/
  • Node.js SDK: https://github.com/rulecom/rule-sdk-node

许可证

麻省理工学院

支持

对于MCP服务器的问题,请在存储库中创建问题。

有关规则API的问题,请联系:〔email protected〕

目录标签

目录标签

JavaScriptClaude团队协作营销自动化混合部署订阅者管理邮件营销短信营销RESTAPI

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

rule-mcp-server

工具数量(toolCount,工具数)

34

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP