Warmbly文档

MCP 服务器

将任意 MCP 客户端(Claude Code、Claude Desktop、Cursor)连接到 Warmbly,将数据和工作流程作为工具使用。可通过 OAuth 登录,也可为静态 API 密钥设置权限范围。

Warmbly 支持模型上下文协议(Model Context Protocol)。将任意 MCP 客户端连接到 Warmbly 服务器后,它即可在你授予的权限范围内搜索联系人、查看营销活动、读取收件箱、起草回复,以及创建营销活动和自动化流程的草稿。

  • URL: https://api.warmbly.com/v1/mcp
  • 传输方式:可流式传输的 HTTP
  • 身份验证:OAuth 2.1 访问令牌(通过浏览器登录),或静态 API 密钥(通过 Bearer 请求头传入)。

有两种连接方式。OAuth 只需一条命令:运行 add 命令,在浏览器中批准访问后,客户端即可持有可刷新的短期令牌。API 密钥则是静态凭据方式:创建密钥并将其粘贴到客户端配置中。两种方式可访问完全相同的工具,也采用完全相同的权限检查。

通过 OAuth 连接

推荐使用此方式。无需在任何地方粘贴密钥:客户端会发现 Warmbly 的授权服务器,打开浏览器供你登录并批准权限范围,然后自行保存生成的令牌。

Claude Code

claude mcp add --transport http warmbly https://api.warmbly.com/v1/mcp

然后在 Claude Code 中运行 /mcp 并选择 Authenticate(身份验证)。浏览器打开后,登录 Warmbly,批准请求的权限范围,即可建立连接。无需配置请求头或密钥。

Claude Desktop 和 Cursor

仅使用 URL 添加服务器,客户端会在首次使用时执行 OAuth 流程:

{
  "mcpServers": {
    "warmbly": { "type": "http", "url": "https://api.warmbly.com/v1/mcp" }
  }
}

你将授权哪些操作

同意授权页面会将自行注册的客户端标记为 Not affiliated with Warmbly(与 Warmbly 无关联),说明批准后访问权限将授予哪个应用,并明确列出客户端将获得的权限范围:即它所请求、且你的工作区角色允许的权限,因此连接后的客户端绝不会执行超出你自身权限的操作。实际发送邮件的权限不在其中:按设计,通过 OAuth 连接的 MCP 客户端不会获得 SEND_CAMPAIGNS 和 API 密钥管理权限,助手也始终只生成草稿。你可以随时在控制台的已连接应用中撤销客户端的访问权限。

使用 API 密钥连接

希望使用静态的长期凭据,例如用于 CI、共享脚本,或不支持 OAuth 的客户端?创建 API 密钥并将其作为 Bearer 令牌发送:

Authorization: Bearer wmbly_...

限制密钥的权限范围

为每个 MCP 客户端创建专用 API 密钥,仅授予其所需的权限范围(参阅权限)。根据客户端需要访问的数据授予读取或写入权限;如果需要搜索网页或读取操作手册,还应授予 AI_AGENT。

Claude Code

claude mcp add --transport http warmbly https://api.warmbly.com/v1/mcp \
  --header "Authorization: Bearer wmbly_..."

Claude Desktop

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "warmbly": {
      "type": "http",
      "url": "https://api.warmbly.com/v1/mcp",
      "headers": { "Authorization": "Bearer wmbly_..." }
    }
  }
}

Cursor

添加到 .cursor/mcp.json:

{
  "mcpServers": {
    "warmbly": {
      "url": "https://api.warmbly.com/v1/mcp",
      "headers": { "Authorization": "Bearer wmbly_..." }
    }
  }
}

提供哪些能力

无论使用 OAuth 令牌还是 API 密钥,服务器都只提供该凭据有权使用的工具。每个工具都会检查自身所需的权限范围;此外,OAuth 令牌或 API 密钥所属的成员在当前时点也必须具有对应的组织权限。只有读取权限的凭据只能看到读取工具,具有写入权限的凭据还会看到相应写入工具,因此 MCP 客户端只能在你明确授予的权限范围内操作。

这只是产品内置助手功能的子集。有两类操作仅限控制台,API 密钥和 OAuth 令牌始终无法访问:发送邮件(send_reply、compose_email),以及工作区治理(团队、工作区设置和账单)。这些路由仅接受会话身份验证,没有可授予的 API 权限范围,因此不会通过 MCP 提供。

每个工具都受其对应的 API 权限约束。tools/list 仅返回权限掩码允许使用的工具。无论权限范围如何,发送类工具(任何向收件人传送邮件的工具)都不会通过 MCP 提供;通过 MCP 使用助手时,只会生成草稿(draft_reply)。

工具用途所需权限范围
search_contacts按文本搜索联系人READ_CONTACTS
get_contact读取单个联系人READ_CONTACTS
update_contact_fields更新联系人字段WRITE_CONTACTS
add_tag / remove_tag为联系人添加或移除标签WRITE_CONTACTS
list_campaigns列出营销活动READ_CAMPAIGNS
get_campaign_stats营销活动统计,可涵盖全部时间,也可仅统计 from 至 to 期间发送的邮件READ_ANALYTICS
list_campaign_leads营销活动的潜在客户,以及推导状态和汇总数量READ_CONTACTS
create_campaign_draft创建营销活动草稿WRITE_CAMPAIGNS
set_campaign_status启动或停止营销活动SEND_CAMPAIGNS
set_lead_hold暂停或恢复某位联系人在某个营销活动中的流程,且不取消其订阅WRITE_CAMPAIGNS
get_dashboard_analytics指定时段的发送统计,可覆盖整个组织,也可限定为选定的营销活动和营销活动文件夹READ_ANALYTICS
list_mailboxes发件邮箱及其健康状况和预热状态READ_ANALYTICS
list_placement_tests / get_placement_test收件箱投递位置测试,以及每封测试邮件实际到达的位置READ_ANALYTICS
run_placement_test从一个邮箱向种子收件箱发送某个步骤或模板的邮件SEND_CAMPAIGNS
list_placement_batches / get_placement_batch投递位置测试批次、进度,以及按发件域名、发件服务商和收件服务商划分的投递位置结果READ_ANALYTICS
run_placement_batch从营销活动的发件邮箱或整个工作区运行相同的投递位置测试,可选择抽样。仅限已登录成员:API 密钥通过 POST /placement/batches 启动批次,该端点会应用密钥的邮箱限制SEND_CAMPAIGNS
add_contact / delete_contact创建或删除联系人WRITE_CONTACTS
bulk_edit_contacts批量为联系人添加标签或订阅BULK_CONTACTS
get_contact_timeline / get_contact_sent_emails读取联系人的活动记录和已发送邮件READ_CONTACTS
list_segments / get_segment / list_segment_fields读取已保存的受众,以及条件中可引用的字段READ_CONTACTS
preview_segment统计一组条件可匹配的记录数,不保存任何内容READ_CONTACTS
create_segment / update_segment / delete_segment管理已保存的受众WRITE_CONTACTS
set_segment_members将联系人固定纳入或排除于某个分群WRITE_CONTACTS
list_campaign_segments读取为营销活动提供联系人的分群READ_CAMPAIGNS
set_campaign_segments / add_segment_to_campaign将受众关联到营销活动,或将其成员一次性加入活动WRITE_CAMPAIGNS
list_forms / get_form / list_form_submissions / get_form_stats读取托管表单、提交记录和转化漏斗READ_CONTACTS
create_form / update_form / delete_form管理托管表单WRITE_CONTACTS
mint_form_link获取某位联系人的个性化表单 URLWRITE_CONTACTS
get_campaign_forms营销活动表单在其收件人中的表现READ_CAMPAIGNS
list_suppressions读取禁止联系名单,以及各条目进入名单的原因READ_CONTACTS
add_suppressions / remove_suppression禁止向某个地址或域名发送邮件,或解除该限制WRITE_CONTACTS
list_pipelines / list_deals / get_deal / list_deals_by_contact读取 CRM 销售管道和商机READ_CRM
create_task / create_deal创建 CRM 记录WRITE_CRM
update_deal / move_deal_stage / delete_deal编辑、移动或删除商机WRITE_CRM
list_tasks / list_task_types读取 CRM 任务和任务类型READ_CRM
update_task / complete_task / delete_task编辑、完成或删除任务WRITE_CRM
add_contact_note / list_contact_notes添加或读取联系人备注WRITE_CRM / READ_CRM
update_contact_note / delete_contact_note编辑或删除备注WRITE_CRM
create_pipeline / update_pipeline / delete_pipeline管理 CRM 销售管道WRITE_CRM
create_pipeline_stage / update_pipeline_stage / delete_pipeline_stage管理销售管道阶段WRITE_CRM
get_campaign / list_campaign_senders / get_campaign_logs读取营销活动配置、发件邮箱和日志READ_CAMPAIGNS
update_campaign / delete_campaign编辑或删除营销活动WRITE_CAMPAIGNS
set_campaign_senders / verify_campaign_tracking_domain设置发件邮箱、验证跟踪域名WRITE_CAMPAIGNS
list_campaign_steps读取营销活动的邮件序列步骤READ_CAMPAIGNS
add_campaign_step / update_campaign_step / delete_campaign_step编辑营销活动的邮件序列步骤WRITE_CAMPAIGNS
list_threads / get_thread读取统一收件箱READ_UNIBOX
draft_reply起草回复(绝不发送)READ_UNIBOX
list_scheduled_sends列出排队等待发送的邮件READ_UNIBOX
mark_thread_seen / set_thread_labels标记为已读、设置邮件会话标签WRITE_UNIBOX
snooze_thread / unsnooze_thread / cancel_scheduled_send稍后提醒某个邮件会话、取消排队中的发送任务WRITE_UNIBOX
get_mailbox / get_warmup_ban_status读取邮箱配置和预热状况READ_EMAILS
update_mailbox / set_mailbox_warmup / set_mailbox_send_hold / set_mailbox_tracking_domain编辑邮箱设置、预热设置、营销活动暂停限制和跟踪域名WRITE_EMAILS
submit_warmup_appeal / disconnect_mailbox对预热封禁提出申诉、断开邮箱连接WRITE_EMAILS
create_automation_draft / list_automations / get_automation读取自动化流程、创建停用状态的草稿INTEGRATIONS
update_automation / set_automation_enabled / delete_automation编辑、启用或删除自动化流程INTEGRATIONS
list_api_keys / create_api_key / update_api_key / revoke_api_key管理 API 密钥API_KEYS
list_webhooks / list_webhook_deliveries读取 Webhook 端点和投递记录WEBHOOKS
create_webhook / update_webhook / delete_webhook / rotate_webhook_secret / verify_webhook管理 Webhook 端点WEBHOOKS
search_web / fetch_url搜索和读取公开网页AI_AGENT
load_skill读取某份操作手册AI_AGENT

有意未提供两类表单功能:品牌素材上传(徽标、封面、背景)采用多部分图片上传,并有尺寸和 MIME 类型限制,工具调用无法表达这些要求;自定义表单域名则属于整个工作区的品牌设置,并须通过 DNS 检查,因此位于设置中,不以工具形式提供。

MCP 调用与其他 API 调用遵循相同的速率限制:API 密钥按密钥限流,OAuth 令牌按用户限流。表中包含 SEND_CAMPAIGNS,是因为 set_campaign_status 和投递位置测试工具需要此权限。自行注册的 MCP 客户端永远不会获得该权限,因此只有持有此权限范围的 API 密钥或应用,才能通过 MCP 启动或停止营销活动。无论权限范围如何,向收件人发送邮件的工具(send_reply、compose_email)都不会通过 MCP 传输方式提供。

会返回密钥的工具(create_webhook 和 rotate_webhook_secret)会将密钥返回给发起调用的 MCP 客户端,也就是请求该密钥的调用方。产品内置助手始终无法看到这些值。

OAuth 发现机制

单命令连接流程采用标准 MCP 授权机制,因此任何符合规范的客户端都可以使用,无需针对 Warmbly 特别配置。请求未携带有效令牌时,/v1/mcp 会返回 401,并在 WWW-Authenticate 响应头中指向受保护资源的元数据。随后客户端依次执行:

  • GET /.well-known/oauth-protected-resource:获取资源及其授权服务器(RFC 9728)。
  • GET /.well-known/oauth-authorization-server:获取授权、令牌和注册端点(RFC 8414)。
  • POST /v1/oauth/register:动态注册客户端,使客户端无需手动配置应用即可创建公共客户端(PKCE)的 client_id(RFC 7591)。
  • 在浏览器中执行带 PKCE(S256)的授权码流程,然后调用 POST /v1/oauth/token 获取短期访问令牌和轮换式刷新令牌。

所有客户端都通过同一发现机制访问 Warmbly 的 OAuth 服务器。完整的授权服务器参考见 OAuth 2.1 页面。

另请参阅

  • 智能体工具(REST):通过普通 HTTP 提供同一工具注册表,适用于不支持 MCP 的 Hermes 和 OpenAI 风格函数调用智能体。
  • OAuth 2.1:授权服务器端点、权限范围和动态注册。
  • 身份验证:API 密钥与 OAuth 令牌的工作方式。
  • 权限:完整的权限范围列表。
  • 如果你需要反向连接,即让 Warmbly 连接到外部 MCP 服务器,请参阅连接 MCP 工具指南。

本页目录