Braze MCP写入服务器

一个非官方的Braze MCP服务器扩展,支持写入操作,用于创建演示、触发活动和管理测试环境。

  • by saarkia
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 saarkia/fireMCP

使用说明

MCP写入服务器

A. 非官方的 官方Braze MCP服务器的支持写入的扩展,专为解决方案工程师创建演示、触发活动和管理测试环境而设计。

⚠️ 重要安全须知

此服务器启用 写入操作 前往您的Braze工作区。它包括多种安全机制:

  • 工作区验证:默认情况下仅适用于演示/POC/测试工作区
  • 速率限制:防止意外垃圾邮件
  • 干运行模式:不进行更改的测试操作
  • 确认要求:破坏性操作需要明确确认
  • 生产受阻:除非明确启用,否则禁止写入生产工作区

特性

写入操作

  • ✅ 用户配置文件管理(属性、事件、购买)
  • ✅ 活动触发和管理
  • ✅ 画布触发和管理
  • ✅ 目录项管理
  • ✅ 内容块管理
  • ✅ 用户删除和识别

安全功能

  • ✅ 基于环境的工作空间验证
  • ✅ 每种操作类型的速率限制
  • ✅ 所有操作均采用干运行模式
  • ✅ 破坏性操作的确认要求
  • ✅ 全面的日志记录和审计跟踪

安装

pip install -e .

或者使用紫外线:

uv pip install -e .

配置

环境变量

# Required
BRAZE_API_KEY=your-api-key-here
BRAZE_BASE_URL=https://rest.iad-01.braze.com

# Safety Configuration
BRAZE_WRITE_ENABLED=true                    # Enable write operations
BRAZE_ALLOW_PRODUCTION=false                # Block production workspaces
BRAZE_ALLOWED_WORKSPACES=demo-,poc-,test-  # Allowed workspace patterns
BRAZE_DRY_RUN_DEFAULT=false                 # Default dry run mode

# Rate Limits
BRAZE_MAX_SENDS_PER_HOUR=1000              # Max campaign/canvas sends per hour
BRAZE_MAX_CATALOG_UPDATES_PER_MIN=100      # Max catalog updates per minute

MCP客户端配置

添加到您的MCP客户端配置中(例如,Claude Desktop):

{
  "mcpServers": {
    "braze-write": {
      "command": "python",
      "args": ["-m", "braze_mcp_write.main"],
      "env": {
        "BRAZE_API_KEY": "your-api-key",
        "BRAZE_BASE_URL": "https://rest.iad-01.braze.com",
        "BRAZE_WRITE_ENABLED": "true",
        "BRAZE_ALLOWED_WORKSPACES": "demo-,poc-,test-"
      }
    }
  }
}

使用示例

更新用户属性

await update_user_attributes(
    ctx,
    external_id="user_12345",
    attributes={
        "first_name": "John",
        "last_name": "Doe",
        "email": "[email protected]",
        "subscription_tier": "premium"
    }
)

跟踪自定义事件

await track_event(
    ctx,
    event_name="completed_tutorial",
    external_id="user_12345",
    properties={
        "tutorial_name": "Getting Started",
        "completion_time_seconds": 180
    }
)

发送活动

await send_campaign(
    ctx,
    campaign_id="your-campaign-id",
    recipients=[{
        "external_user_id": "user_12345"
    }]
)

触发器画布

await trigger_canvas(
    ctx,
    canvas_id="your-canvas-id",
    recipients=[{
        "external_user_id": "user_12345"
    }],
    canvas_entry_properties={
        "promo_code": "DEMO2024"
    }
)

干运行模式

在不进行更改的情况下测试任何操作:

result = await update_user_attributes(
    ctx,
    external_id="user_12345",
    attributes={"test_field": "test_value"},
    dry_run=True  # No actual API call made
)

建筑

braze_mcp_write/
├── models/              # Pydantic models for validation
│   ├── errors.py
│   └── responses.py
├── tools/               # MCP tool implementations
│   ├── users_write.py   # User tracking operations
│   ├── campaigns_write.py
│   ├── canvas_write.py
│   ├── catalogs_write.py
│   └── content_blocks_write.py
├── utils/               # Utilities
│   ├── context.py       # Context management
│   ├── http.py          # HTTP client
│   ├── logging.py       # Logging setup
│   └── safety.py        # Safety mechanisms
├── registry_builder.py  # Auto-discovery system
├── server.py            # FastMCP server
└── main.py              # Entry point

发展

运行测试

pytest

代码格式化

black .
ruff check .

安全最佳实践

  1. 始终使用演示工作区:在URL中使用“demo-”、“poc-”或“test-”前缀设置专用的演示工作区
  2. 先进行干运行测试:使用 dry_run=True 在执行之前验证操作
  3. 监控速率限制:注意您工作场所的Braze API费率限制
  4. 对破坏性行动进行确认:操作如 delete_user 需要 confirm=True
  5. 查看日志:定期检查日志以查看意外行为

与官方Braze MCP的差异

此服务器扩展了官方只读Braze MCP服务器:

  • 为活动、画布、用户、目录和内容块编写操作
  • 全面的安全机制,防止意外生产写入
  • 限制价格以防止API滥用
  • 测试的干运行模式
  • 增强的日志记录和审计跟踪

许可证

MIT许可证-有关详细信息,请参阅许可证文件

免责声明

这是一个用于创建演示和POC的开发工具。请谨慎使用,并在启用写入操作之前始终验证您的工作区配置。