mcpField
U
UniOne

UniOne

远程服务
unione.io通信协作01 周前更新

关于 UniOne

UniOne 官方 MCP 服务让 AI 助手通过公开 Web API 操作 UniOne 账户,支持托管 OAuth 或本地 API 密钥接入。它涵盖邮件发送和账户管理,并提供只读及禁发邮件限制。

主要功能

  1. 01发送事务邮件
  2. 02管理发件域名和模板
  3. 03配置 Webhook 和抑制列表
  4. 04查看事件、标签、项目及账户
  5. 05限制为只读或禁发邮件

适用场景

  1. 01通过 AI 助手发送事务邮件
  2. 02检查或更新发件域名与模板
  3. 03查看投递事件和账户项目
  4. 04将集成限制为只读操作

MCP 相关

将 32 项 UniOne Web API 操作作为 MCP 工具提供。客户端可通过 OAuth 连接托管 HTTP 服务,也可使用带 API 密钥的本地 stdio 服务。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.unione.io/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://mcp.unione.io/mcp需要授权

工具

详细介绍

unione-mcp

适用于 UniOne(https://docs.unione.io)的官方 Model Context Protocol 服务。它让 AI 助手(Claude、ChatGPT、Cursor、Windsurf、VS Code、Cline 及任何其他 MCP 客户端)能够使用你的 UniOne 账户:发送邮件、管理发件人域名、模板、webhook、抑制列表、事件转储、标签和项目。包含 32 个工具,每个工具对应一次公开 UniOne Web API 调用。

有两种使用方式:

  • 远程 — 托管在 https://mcp.unione.io/mcp 的服务。无需安装:将 URL 添加到客户端,然后通过 OAuth 登录 UniOne。
  • 本地 — 服务通过 stdio 在你的计算机上运行(npx、Docker 或二进制文件),并使用你设置到 UNIONE_API_KEY 中的 API 密钥。

远程服务(OAuth)

URL:https://mcp.unione.io/mcp

首次使用时,客户端会打开 UniOne 登录页面;你批准访问后,客户端会保存令牌。你可以随时在 UniOne 账户中撤销令牌。

Claude Code

claude mcp add --transport http unione https://mcp.unione.io/mcp

Claude Desktop / claude.ai — 设置 → 连接器 → 添加自定义连接器,URL https://mcp.unione.io/mcp。

Cursor、Windsurf、Cline、VS Code 及其他使用 mcpServers 配置的客户端:

{
  "mcpServers": {
    "unione": {
      "type": "http",
      "url": "https://mcp.unione.io/mcp"
    }
  }
}

不支持 OAuth 的客户端可以改用 API 密钥:添加请求头 Authorization: Bearer <UniOne API key>。

本地服务(API 密钥)

在 UniOne 账户中获取 API 密钥:账户密钥可访问整个账户,项目密钥只能访问其所属项目。服务会从 UNIONE_API_KEY 读取密钥。

npx(Node.js 18+;首次运行时会下载适用于你平台的二进制文件):

{
  "mcpServers": {
    "unione": {
      "command": "npx",
      "args": ["-y", "unione-mcp"],
      "env": { "UNIONE_API_KEY": "<your API key>" }
    }
  }
}

Docker:

{
  "mcpServers": {
    "unione": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "UNIONE_API_KEY", "ghcr.io/unione-repo/unione-mcp", "stdio"],
      "env": { "UNIONE_API_KEY": "<your API key>" }
    }
  }
}

二进制文件 — 从 Releases 下载 unione-mcp-<os>-<arch>,使其可执行并将其放入 PATH 中(或运行 go install github.com/unione-repo/unione-mcp/cmd/unione-mcp@latest):

{
  "mcpServers": {
    "unione": {
      "command": "unione-mcp",
      "args": ["stdio"],
      "env": { "UNIONE_API_KEY": "<your API key>" }
    }
  }
}

Claude Code,一行配置:

claude mcp add unione --env UNIONE_API_KEY=<your API key> -- npx -y unione-mcp

询问 "显示我的 UniOne 账户",即可检查连接:助手会调用 get_account。

工具

每个工具都有一个类别,并作为 MCP 注解发送给客户端:

  • read — 仅读取(readOnlyHint);
  • write — 创建或更改内容,不会丢失任何内容(destructiveHint: false);
  • dangerous — 永久删除或覆盖内容,或无法撤销(destructiveHint: true)。 客户端会在调用此类工具前征求你的确认。
区域工具功能类别
账户get_account获取 UniOne 账户信息read
域名list_domains列出发件人域名read
域名get_dns_records添加域名 / 获取其 DNS 记录write
域名validate_domain检查域名 DNS 记录read
域名delete_domain删除发件人域名dangerous
域名get_sandbox_domain获取沙盒域名write
已确认邮箱list_confirmed_emails列出已确认的邮箱read
已确认邮箱add_confirmed_email添加已确认的邮箱write
已确认邮箱delete_confirmed_email删除已确认的邮箱dangerous
发送send_email发送邮件(计费)dangerous
模板list_templates列出模板read
模板get_template获取模板read
模板set_template创建或覆盖模板dangerous
模板delete_template删除模板dangerous
Webhooklist_webhooks列出 Webhookread
Webhookget_webhook获取 Webhookread
Webhookset_webhook创建或覆盖 Webhookdangerous
Webhookdelete_webhook删除 Webhookdangerous
抑制列表get_suppression获取某个地址的抑制状态read
抑制列表list_suppressions列出抑制项read
抑制列表set_suppression屏蔽某个地址dangerous
抑制列表delete_suppression解除对某个地址的屏蔽dangerous
验证validate_email验证邮箱地址(计费)write
事件转储request_event_dump请求事件转储write
事件转储get_event_dump获取事件转储read
事件转储delete_event_dump删除事件转储dangerous
标签list_tags列出标签read
标签delete_tag删除标签dangerous
项目list_projects列出项目read
项目create_project创建项目write
项目update_project更新项目dangerous
项目delete_project删除项目dangerous

send_email 会发送真实邮件,且无法撤回。validate_email 会按地址计费。会触及账户以外资源的工具——send_email 和 add_confirmed_email 会向某个地址发送邮件,set_webhook 会将 UniOne 指向某个 URL,validate_email 会探测邮箱——会通过 openWorldHint: true 标明这一点。

只读和禁发模式

两个开关可以缩减本地服务的工具列表:

变量效果
MCP_READ_ONLY=1只列出 read 工具:助手无法更改账户
MCP_DISABLE_SEND=1不列出 send_email:助手无法发送邮件
"env": { "UNIONE_API_KEY": "<your API key>", "MCP_READ_ONLY": "1" }

使用 Docker 时,env 只会作用于 docker 进程:请在镜像名称前使用容器自己的 -e,将开关传入容器。

"args": ["run", "-i", "--rm", "-e", "UNIONE_API_KEY", "-e", "MCP_READ_ONLY", "ghcr.io/unione-repo/unione-mcp", "stdio"],
"env": { "UNIONE_API_KEY": "<your API key>", "MCP_READ_ONLY": "1" }

这些开关只能防止模型出错,无法约束密钥所有者:同一个密钥仍可直接用于 Web API。如需硬性限制,请使用项目 API 密钥。

配置

所有配置均通过环境变量设置;也会读取工作目录中的 .env 文件。 .env.example 列出了所有配置项。每个值都会在启动时进行验证。

变量用途
UNIONE_API_KEY本地模式:所有工具使用的 API 密钥
UNIONE_API_URLWeb API 基础 URL,默认值为 https://api.unione.io/en/transactional/api/v1
MCP_TRANSPORThttp(默认)或 stdio;unione-mcp stdio 也会设置此项
MCP_READ_ONLY、MCP_DISABLE_SEND参见上文
AUTH_MODE自托管 http 模式:api_key(默认)或 oauth
AUTHORIZATION_SERVER_URL、OAUTH_SCOPES、OAUTH_TOKEN_PREFIX、MCP_PUBLIC_URL自托管 oauth 模式。OAUTH_TOKEN_PREFIX 的默认值为 uoat_。
LISTEN_HOST、PORT自托管 http 模式的监听器(默认:所有网络接口,从 3000 开始使用第一个可用端口)
UPSTREAM_TIMEOUT、UPSTREAM_MAX_BODY_BYTES、MCP_MAX_REQUEST_BYTESWeb API 调用限制和 /mcp 请求体大小上限
LOG_LEVEL、LOG_FORMATdebug、info、warn、error;text 或 json,始终输出到 stderr

API 密钥、Authorization 标头和 Web API 响应体均不会被记录。

文档

开发

go build -o bin/unione-mcp ./cmd/unione-mcp
go test ./internal/... ./cmd/...                     # unit tests, no network

# acceptance: the real binary over HTTP and stdio against a WireMock stand-in of the API
docker run -d --rm -p 8081:8081 wiremock/wiremock:3.4.1 --local-response-templating --port 8081
E2E_WIREMOCK_URL=http://localhost:8081 go test -tags=integration ./tests/...

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。