内容
<div align="center">
# Temway MCP 服务器
**让您的 AI 助手设计漂亮的电子邮件和布局 — 在您的 Temway 工作区中。**
一个 [模型上下文协议](https://modelcontextprotocol.io) 服务器,将 Claude、ChatGPT、Cursor 等 AI 客户端转变为可视化电子邮件和布局创作工作室。
[](https://modelcontextprotocol.io)
[](./LICENSE)
[](https://mcp.temway.com/health)
[快速开始](#快速开始) · [配置客户端](#配置客户端) · [工具](#工具) · [Temway](https://temway.com)
</div>
---
Temway 是一个用于创建**电子邮件**和**布局**的可视化构建工具。该 MCP 服务器将您的 Temway 工作区暴露给任何与 MCP 兼容的 AI 客户端:模型读取您的品牌令牌,草拟促销/新闻稿/欢迎电子邮件,预览,发布,甚至发送测试 — 所有操作都通过自然语言完成。**无需代码,无需拖拽复制粘贴 HTML。**
它是一个**托管远程** MCP 服务器。您只需将客户端指向一个带有 API 密钥(或 Web 客户端的 OAuth)的 URL — **无需在本地安装、构建或运行**。服务器使用 MCP **Streamable HTTP** 传输协议。
> 🔒 **此处无源码?正确。** 这是 Temway MCP 服务器的公共上线仓库。服务器由 Temway 运行,位于 `https://mcp.temway.com/mcp`。该仓库包含客户端配置、工具参考和连接助手。在 [Issues](https://github.com/temway/mcp-server/issues) 中报告问题或请求工具。
## 工作原理
```
您的 AI 客户端(Claude / ChatGPT / Cursor / 桌面版)
└─ 通过 HTTPS 的 MCP → https://mcp.temway.com/mcp
Authorization: Bearer tmw_live_… ← API 密钥
(或 Web 连接器的 OAuth 令牌)
└─ Temway 公共 API → 您的 工作区
```
模型通过请求进行身份验证,然后通过品牌感知的模板、块突变、布局艺术、实时预览和发布来驱动您的工作区。
## 快速开始
### 1. 获取 API 密钥
API 密钥由 Temway 仪表盘中的团队管理员创建。密钥:
- 以 `tmw_live_…` 开头
- 绑定到**一个工作区**
- 携带**作用域**(`emails:read`、`emails:write`、`layouts:read`、`layouts:write`),这些作用域决定了哪些工具成功
安全存储 — 它只显示**一次**。
### 2. 将客户端指向服务器
每个客户端的端点和可以直接粘贴的配置都在 [`examples/`](./examples) 中。简而言之:
```bash
# Claude 代码
claude mcp add --transport http temway https://mcp.temway.com/mcp \
--header "Authorization: Bearer tmw_live_xxxxxxxxxxxxxxxx"
```
就这样。工作区从密钥中派生。
### 3. 询问您的助手
> *"为我们的夏季促销创建一封促销电子邮件, 25% 折扣,品牌颜色,一个大 CTA 按钮,预览,然后发布。*
模型将为您执行 `get_branding` → `create_email` → `apply_template` → `update_block` → `preview_email_web` → `publish_email` 操作。
## 配置客户端
Temway 服务器使用 **Streamable HTTP** 传输协议。请选择您的客户端:
| 客户端 | 配置 | 文件 |
|--------|--------|------|
| **Claude 代码** | `claude mcp add --transport http …` | [`examples/claude-code.md`](./examples/claude-code.md) |
| **Claude 桌面版** | `mcpServers` JSON | [`examples/claude-desktop.json`](./examples/claude-desktop.json) |
| **claude.ai** (网页) | OAuth 连接器 URL | [`examples/claude-ai-web.md`](./examples/claude-ai-web.md) |
| **ChatGPT** | OAuth 连接器 URL | [`examples/chatgpt.md`](./examples/chatgpt.md) |
| **Cursor** | MCP 设置 | [`examples/cursor.md`](./examples/cursor.md) |
| **任意 MCP 客户端** | Streamable HTTP URL | [`examples/generic.json`](./examples/generic.json) |
### 身份验证
两种类型的凭证 — 它们都解析为相同的工作区上下文:
- **`tmw_live_…` API 密钥** — 用于桌面和程序化客户端(Claude 代码、Claude 桌面版、Cursor、脚本)。作为 `Authorization: Bearer tmw_live_…` 发送。工作区从密钥中派生。作用域绑定。
- **OAuth 2.1** — 用于托管 Web 连接器(claude.ai、ChatGPT),它们拒绝静态密钥。无需粘贴标头 — 用户登录并在同意屏幕上选择工作区;连接器接收其自己的短期令牌(PKCE / S256)。只需输入 URL `https://mcp.temway.com/mcp`。
## 工具
服务器公开 **58 种工具**,分为五个组。读取需要 `*:read` 作用域;突变需要 `*:write` 作用域。
<details>
<summary><strong>发现与上下文</strong> — 品牌令牌、模式、目录</summary>
| 工具 | 功能 |
|------|--------------|
| `get_branding` | 获取工作区品牌令牌(颜色、字体、徽标、社交媒体、页脚)。 |
| `list_block_types` / `get_block_schema` | 电子邮件块目录 + 每个块的可编辑字段。 |
| `list_layout_element_types` / `get_element_schema` | 布局元素目录 + 字段。 |
| `get_universal_schema` | 全局电子邮件样式字段。 |
| `list_templates` | 精选的电子邮件起始模板。 |
| `list_fonts` | 可用的字体(网页安全用于电子邮件;+ Google/custom 用于布局)。 |
| `list_concepts` / `get_concept` | 思维模型概念文档(阅读前创作)。 |
| `list_layout_templates` | 精选的布局艺术起始模板。 |
| `list_shape_presets` / `list_style_presets` | 自定义 SVG 库 + 样式键。 |
</details>
<details>
<summary><strong>电子邮件</strong> — 作者、变异、预览、发布、发送</summary>
| 工具 | 功能 |
|------|--------------|
| `list_emails` / `get_email` | 浏览和阅读已发布/草稿电子邮件。 |
| `create_email` / `update_email` / `delete_email` / `duplicate_email` | CRUD。 |
| `create_email_from_layout` | 从已发布的布局中创建电子邮件。 |
| `set_content` / `validate_content` | 替换整个内容 / 验证后再保存。 |
| `add_block` / `update_block` / `remove_block` / `move_block` | 增量块编辑。 |
| `set_universal` | 合并全局电子邮件样式。 |
| `apply_template` | 应用品牌感知的起始模板。 |
| `preview_email_web` | **快速** 网页目标预览(首选)。 |
| `preview_email_html` | 收件箱目标 MJML HTML(较慢;验证客户端渲染)。 |
| `publish_email` | 渲染 + 存储;标记电子邮件已发布。 |
| `test_send_email` | 向地址发送一次性测试副本。 |
</details>
<details>
<summary><strong>布局</strong> — 自由形式的像素级完美艺术画布</summary>
| 工具 | 功能 |
|------|--------------|
| `list_layouts` / `get_layout` | 浏览和阅读布局。 |
| `create_layout` / `update_layout` / `delete_layout` / `duplicate_layout` | CRUD。 |
| `set_layout_content` | 替换整个布局描述符。 |
| `add_layout_element` / `update_layout_element` / `remove_layout_element` | 元素编辑(绝对定位)。 |
| `add_custom_shape` / `add_shape_preset` | 自定义 SVG 或精选装饰形状。 |
| `apply_layout_template` | 应用布局起始模板(英雄横幅、促销卡片、…)。 |
| `fit_canvas_to_content` | 将画布边界紧密贴合到可见元素。 |
| `publish_layout` | 快照用于嵌入电子邮件。 |
> **注意:** 布局在嵌入电子邮件时栅格化为单个 PNG(文本不可选)。在电子邮件块中创作可读/可点击的内容。
</details>
<details>
<summary><strong>并发锁</strong> — 防止共享资源上的冲突</summary>
`acquire_*` / `get_*_lock_status` / `refresh_*_lock` / `release_*_lock` / `force_release_*_lock` 用于 `email` 和 `layout` 资源。
块/元素突变**不是原子操作** — 永远不要并行触发同一资源上的两个操作。首先获取编辑锁。
</details>
<details>
<summary><strong>搜索与获取</strong></summary>
| 工具 | 功能 |
|------|--------------|
| `search` | 在工作区中搜索电子邮件/布局, 按名称/主题/标签。 |
| `fetch` | 通过 ID 获取搜索结果的完整内容。 |
</details>
### 典型的创作流程
```
get_branding
→ create_email { name: "Spring sale" }
→ apply_template { template: "promo" } # 品牌感知的起始模板
→ update_block / add_block # 微调副本、CTA、颜色
→ preview_email_web # 快速预览(首选)
→ publish_email # 渲染 + 标记已发布
→ test_send_email { to: "me@example.com" } # 可选的实际发送
```
## 环境变量
托管端点是完全托管的 — **大多数用户从不接触环境变量**。它们仅在您自行托管或运行_stdio传输时相关。
| 变量 | 用途 | 是否必需? |
|-----|---------|-----------|
| `TEMWAY_API_URL` | Temway API 基本 URL。 | 仅在自行托管时需要。 |
| `TEMWAY_API_KEY` | `tmw_live_…` 密钥(stdio 传输)。 | 仅stdio需要。 |
| `TEMWAY_WORKSPACE_ID` | 工作区 ID(stdio 传输;HTTP 从密钥派生)。 | 仅stdio需要。 |
| `LOG_LEVEL` | pino 日志级别(默认为`info`)。 | 否 |
## 连接性检查
在连接客户端之前,请验证端点是否可从您的网络访问:
```bash
node scripts/healthcheck.mjs
# → OK 200 OK (926ms)
# → ✓ Temway MCP 端点可访问。
```
(`npx temway-mcp-healthcheck` 发布后,或 `npm run healthcheck`。)
## 自行托管
此仓库**不包含**服务器源代码。如果您需要自行运行服务器(本地、隔离、自定义身份验证),请联系 [hi@temway.com](mailto:hi@temway.com) 或开启一个问题。
## 常见问题
<details>
<summary><strong>这是开源的吗?</strong></summary>
**服务器** 由 Temway 运行(当前源码私有)。此仓库是公共集成表面:客户端配置、工具参考和助手,以 MIT 许可证发布,您可以自由复制配置。
</details>
<details>
<summary><strong>我需要安装 Node / npm / 任何东西吗?</strong></summary>
不需要。托管远程传输意味着您的客户端通过 URL 连接 HTTPS — 本地无需运行任何东西。可选的 `healthcheck.mjs` 需要 Node ≥ 18.17。
</details>
<details>
<summary><strong>我应该使用哪个客户端?</strong></summary>
对于本地/CLI 工作:**Claude 代码** 或 **Cursor**。对于无需安装的浏览器使用:**claude.ai** 或 **ChatGPT**,使用 OAuth 连接器。所有配置都在 [`examples/`](./examples) 中。
</details>
<details>
<summary><strong>我的电子邮件如何受到模型的保护?</strong></summary>
凭证按密钥绑定作用域(`*:read` / `*:write`)。读取永远不会变异;每个变异都是显式的。为安全浏览使用窄作用域到只读密钥。
</details>
## 支持
- 📧 [hi@temway.com](mailto:hi@temway.com)
- 🐛 [GitHub 问题](https://github.com/temway/mcp-server/issues)
- 🌐 [temway.com](https://temway.com)
## 许可证
[MIT](./LICENSE) © Temway