关于 Spotler Sendpro / Flowmailer Mcp Server
面向团队的非官方 MCP 服务,可让 AI Agent 访问 Spotler SendPro 账户数据和消息操作。它使用 OAuth2,默认只读;启用写入后可执行消息操作。
主要功能
- 01OAuth2 客户端凭据认证
- 02默认启用只读模式
- 03查询消息与收件人
- 04列出资源和端点
- 05可选提交、模拟与重发
适用场景
- 01检查消息及归档内容
- 02查询收件人和 SendPro 资源
- 03按需启用消息提交或重发
MCP 相关
通过 stdio 将 SendPro API 操作作为 MCP 工具提供。默认允许读取;写入工具需关闭只读模式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| method | string | 否 | |
| path | string | 是 | 相对 SendPro API 路径,例如 /{account_id}/messages 或 /545/messages。绝对 URL 将被拒绝。 |
| accountId | string | 否 | 为此调用覆盖 FLOWMAILER_ACCOUNT_ID。 |
| matrix | object | 否 | 追加到最终路径段的矩阵参数,例如 daterange。 |
| query | object | 否 | 查询字符串参数。 |
| body | any | 否 | 用于修改数据的 API 调用的 JSON 请求正文。 |
| range | string | 否 | Range 标头,例如 items=:10 或 items=0-10。 |
详细介绍
Spotler SendPro / FlowMailer MCP 服务
这是一个非官方的 Model Context Protocol 服务,用于访问 Spotler SendPro API(原名 FlowMailer)。
本项目与 Spotler 无关联,未获其认可,也不由其维护。这是一个社区 MCP 服务,供需要以受控方式通过 AI Agent 访问 SendPro 账户数据,并在明确启用时执行 SendPro 消息操作的团队使用。
功能
- 通过 OAuth2 客户端凭据连接 SendPro。
- 通过 stdio 将 SendPro 操作公开为 MCP 工具。
- 默认启用只读模式。
- 启用只读模式时,阻止会修改数据的 SendPro 请求。
- 支持当前的 SendPro 命名方式以及旧版 FlowMailer 环境变量。
- 在 server.json 中包含 MCP Registry 元数据。
安装
从 npm 安装:
npx -y sendpro-flowmailer-mcp
直接从 GitHub 安装:
npx -y github:Mestika/sendpro-flowmailer-mcp
本地开发:
git clone https://github.com/Mestika/sendpro-flowmailer-mcp.git
cd sendpro-flowmailer-mcp
npm install
npm run build
node dist/index.js
配置
通过 MCP 客户端配置、shell 环境或本地 .env 文件设置凭据。
| 变量 | 必填 | 默认值 | 描述 |
|---|---|---|---|
SENDPRO_ACCOUNT_ID | 是 | SendPro 账户 ID。 | |
SENDPRO_CLIENT_ID | 是 | OAuth 客户端 ID。 | |
SENDPRO_CLIENT_SECRET | 是 | OAuth 客户端密钥。 | |
SENDPRO_READ_ONLY | 否 | true | 安全模式标志。为 true 时,仅允许读取 SendPro 请求。 |
READ_ONLY | 否 | SENDPRO_READ_ONLY 的通用覆盖项;适用于共享 MCP 配置约定。 | |
SENDPRO_API_BASE_URL | 否 | https://api.flowmailer.net | SendPro API 基础 URL。 |
SENDPRO_AUTH_BASE_URL | 否 | https://login.flowmailer.net | OAuth 基础 URL。 |
SENDPRO_API_MEDIA_TYPE | 否 | application/vnd.flowmailer.v1.12+json | SendPro 供应商媒体类型。 |
支持旧版别名:
| 当前变量 | Spotler 别名 | 旧版 FlowMailer 别名 |
|---|---|---|
SENDPRO_ACCOUNT_ID | SPOTLER_SENDPRO_ACCOUNT_ID | FLOWMAILER_ACCOUNT_ID |
SENDPRO_CLIENT_ID | SPOTLER_SENDPRO_CLIENT_ID | FLOWMAILER_CLIENT_ID |
SENDPRO_CLIENT_SECRET | SPOTLER_SENDPRO_CLIENT_SECRET | FLOWMAILER_CLIENT_SECRET |
SENDPRO_READ_ONLY | SPOTLER_SENDPRO_READ_ONLY | FLOWMAILER_READ_ONLY |
优先级依次为:READ_ONLY、SENDPRO_*、SPOTLER_SENDPRO_*、FLOWMAILER_*。
创建 SendPro API 凭据
SendPro 使用 OAuth2 客户端凭据。你需要三个值:
- 账户 ID
- 客户端 ID
- 客户端密钥
SendPro 公共 API 文档指出,API 使用 OAuth2 客户端凭据,访问令牌端点为 https://login.flowmailer.net/oauth/token,并使用 client_id、client_secret、grant_type=client_credentials 和可选的 scope=api 表单值来请求令牌。同一文档还提供了 /{account_id}/sources/{source_id}/users 下的源系统凭据端点,包括列出、创建、获取、更新和删除源凭据的端点。
在 SendPro 控制面板中,具体标签可能因账户而异,但通常的操作路径如下:
- 登录 Spotler SendPro。
- 前往 Setup。
- 打开 Sources 或 Source systems。
- 选择要用于 API 访问的源系统,或创建专用于 MCP/自动化的源。
- 打开源凭据/用户部分。
- 创建新凭据,并填写清晰的描述,例如
MCP read-only。 - 复制生成的客户端 ID 和客户端密钥,并将其存储在 MCP 客户端环境中。
- 从账户 URL、控制面板上下文或 API 设置中获取 SendPro 账户 ID,并将其设为
SENDPRO_ACCOUNT_ID。
供 AI Agent 使用时,建议使用仅具备所需最低访问权限的凭据。除非明确需要提交、模拟或重新发送操作,否则请让此 MCP 服务保持只读模式。
官方参考资料:
Codex
将以下内容添加到 ~/.codex/config.toml:
[mcp_servers.sendpro_flowmailer]
command = "npx"
args = ["-y", "sendpro-flowmailer-mcp"]
startup_timeout_sec = 20.0
[mcp_servers.sendpro_flowmailer.env]
SENDPRO_ACCOUNT_ID = "your-account-id"
SENDPRO_CLIENT_ID = "your-client-id"
SENDPRO_CLIENT_SECRET = "your-client-secret"
SENDPRO_READ_ONLY = "true"
要直接从 GitHub 运行:
[mcp_servers.sendpro_flowmailer]
command = "npx"
args = ["-y", "github:Mestika/sendpro-flowmailer-mcp"]
startup_timeout_sec = 20.0
Claude Desktop
将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"sendpro-flowmailer": {
"command": "npx",
"args": ["-y", "sendpro-flowmailer-mcp"],
"env": {
"SENDPRO_ACCOUNT_ID": "your-account-id",
"SENDPRO_CLIENT_ID": "your-client-id",
"SENDPRO_CLIENT_SECRET": "your-client-secret",
"SENDPRO_READ_ONLY": "true"
}
}
}
}
只读模式
SENDPRO_READ_ONLY 默认为 true。
启用只读模式时:
- MCP 架构仅允许通用请求工具使用
GET。 - 不会注册用于修改数据的辅助工具。
- 底层客户端会在请求 OAuth 令牌之前,拒绝
POST、PUT、PATCH和DELETESendPro API 请求。
OAuth 本身仍使用 POST https://login.flowmailer.net/oauth/token,因为 SendPro 要求先使用 OAuth2 客户端凭据,才能读取任何资源。只读保护适用于针对已配置 API 基础 URL 的 SendPro API 资源调用。
工具
读取工具:
| 工具 | 描述 |
|---|---|
flowmailer_request | 通用的相对路径 SendPro API 请求。在只读模式下,仅接受 GET。 |
flowmailer_endpoint_catalog | 列出此服务已知的 SendPro 端点。 |
flowmailer_list_messages | 使用 SendPro 引用范围分页列出消息。 |
flowmailer_get_message | 按 ID 获取一条消息。 |
flowmailer_get_message_archive | 获取消息的归档内容元数据。 |
flowmailer_get_message_error_archive | 获取消息的归档错误内容。 |
flowmailer_get_recipient | 获取收件人信息。 |
flowmailer_list_resource | 列出常见资源,例如流程、模板、发件人域名、源和统计信息。 |
写入工具,仅在 SENDPRO_READ_ONLY=false 时可用:
| 工具 | 描述 |
|---|---|
flowmailer_submit_message | 提交电子邮件或 SMS 消息。 |
flowmailer_simulate_message | 模拟电子邮件或 SMS 消息。 |
flowmailer_resend_message | 按 ID 重新发送消息。 |
由于公共 SendPro API 和媒体类型在多个地方仍使用 FlowMailer 命名,工具名称目前保留 FlowMailer 前缀。为便于发现,软件包名称和文档同时使用 SendPro 和 FlowMailer。
示例
列出消息:
{
"method": "GET",
"path": "/{account_id}/messages",
"matrix": {
"daterange": "2026-05-01T00:00:00Z,2026-05-20T00:00:00Z"
},
"query": {
"addevents": true,
"sortfield": "INSERTED",
"sortorder": "ASC"
},
"range": "items=:10"
}
通过便捷工具列出流:
{
"resource": "flows"
}
仅在 SENDPRO_READ_ONLY=false 时提交消息:
{
"body": {
"messageType": "EMAIL",
"headerFromAddress": "[email protected]",
"headerToAddress": "[email protected]",
"subject": "Hello",
"text": "Message body"
}
}
开发
npm install
npm run check
常用命令:
npm run dev
npm run build
npm run typecheck
npm test
npm run inspect
有关仓库结构、徽章、发布规范和维护设置,请参阅 docs/repository-health.md。
发布
此软件包以 sendpro-flowmailer-mcp 的名称发布到 npm,且仓库包含用于提交到注册表的 MCP Registry 元数据。
发布到 npm:
npm publish --access public
对于官方 MCP Registry,请在 npm 软件包创建后发布 server.json。npm 软件包包含:
{
"mcpName": "io.github.mestika/sendpro-flowmailer-mcp"
}
发布与版本
本项目使用语义化版本标签,例如 v0.1.0、v0.1.1 和 v1.0.0。
使用:
npm run version:patch # bug fixes and small documentation-only release updates
npm run version:minor # new backwards-compatible tools or features
npm run version:major # breaking changes
git push origin main --follow-tags
然后根据新标签创建 GitHub Release。GitHub Release 是面向公众的变更日志条目;Git 标签对应精确的源代码快照。完整检查清单请参阅 docs/releasing.md。
安全
切勿提交真实的 SendPro 凭据。请使用 MCP 客户端环境变量、Shell 环境变量或本地 .env 文件。
有关漏洞报告和运维说明,请参阅 SECURITY.md。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。