mcpField
S
SpacePost

SpacePost

远程服务
docs.spacepost.dev通信协作03 天前更新

关于 SpacePost

SpacePost 是供 AI 助手调用 SpacePost 事务邮件 API 的 MCP 服务。其工具由 OpenAPI 文档生成,并支持托管或本地连接,以及按 API 区域和权限筛选工具。

主要功能

  1. 01为 API 端点提供对应工具
  2. 02发送事务邮件
  3. 03管理域名、联系人和 Webhook
  4. 04按 API 区域筛选工具
  5. 05按密钥权限限制工具

适用场景

  1. 01通过助手发送事务邮件
  2. 02管理邮件域名和联系人
  3. 03处理 Webhook 和受众
  4. 04将可用工具限制为只读操作

MCP 相关

将 SpacePost API 操作作为 MCP 工具开放,工具根据 OpenAPI 文档生成。客户端可连接托管的 Streamable HTTP 端点,也可通过 stdio 在本地运行软件包。

配置

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

服务地址https://api.spacepost.dev/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://api.spacepost.dev/mcp需要授权
安装包
npm@spacepost/mcp0.2.1

工具

46
参数类型必填说明
afterstring否返回早于此 ID 的项目(下一页)。不能与 `before` 同时使用。
limitinteger否要返回的项目数。
beforestring否返回早于此 ID 的项目(上一页)。不能与 `after` 一起使用。

详细介绍

SpacePost

@spacepost/mcp

SpacePost MCP server on Glama

一个 MCP 服务,为 AI 助手提供完整的 SpacePost API:根据 API 参考文档中的 OpenAPI 文档生成,每个端点对应一个工具。新的 API 功能会自动成为 MCP 工具。文档:https://docs.spacepost.dev/tools/mcp/

SpacePost 是一款兼容 Resend、基于 Amazon SES 的事务邮件 API(欧盟公司),提供 SMTP 中继 和此 MCP 服务。

有两种使用方式:

  • 托管方式:https://api.spacepost.dev/mcp(Streamable HTTP),使用 Authorization: Bearer sp_live_...。无需安装。
  • 本地方式(此软件包):npx -y @spacepost/mcp,使用 stdio。规范已打包,因此可离线启动。

在 SpacePost 控制面板中创建 API 密钥。在官方 MCP Registry 中,该服务的名称为 dev.spacepost/mcp;在 npm 上的名称为 @spacepost/mcp。

配置

环境变量
SPACEPOST_API_KEY必填。助手拥有与此密钥完全相同的权限(sending_access 密钥只能发送邮件)。
SPACEPOST_BASE_URL可选,默认值为 https://api.spacepost.dev
SPACEPOST_DEFAULT_FROM可选发件人(例如 Acme <[email protected]>),在 send_email 未设置 from 时使用
SPACEPOST_READ_ONLYtrue = --read-only
SPACEPOST_TOOLSETS= --toolsets
SPACEPOST_PERMISSION= --permission
标志
--read-only仅使用 GET 端点的工具
--toolsets a,b仅使用这些 API 区域(OpenAPI 标签):emails、domains、apikeys、webhooks、audiences、contacts、broadcasts、suppressions、tenants
--permission sending_access仅使用仅发送密钥可用的工具(具有 x-permission: sending_access 的操作)
--list-tools输出给定选项对应的工具,然后退出
--help、--version

托管端点接受相同的选项作为查询参数:/mcp?read_only=true&toolsets=emails,domains。它会根据调用者的密钥确定权限筛选条件:sending_access 密钥在 tools/list 中只能看到发送工具。MCP 不会阻止其他工具;调用这些工具会向 API 发起请求,API 会像处理 REST 请求一样返回 restricted_api_key。

Claude Code
# hosted
claude mcp add --transport http spacepost https://api.spacepost.dev/mcp --header "Authorization: Bearer sp_live_..."
# local
claude mcp add spacepost -e SPACEPOST_API_KEY=sp_live_... -e SPACEPOST_DEFAULT_FROM="Acme <[email protected]>" -- npx -y @spacepost/mcp
Cursor(~/.cursor/mcp.json 或 .cursor/mcp.json)
{
  "mcpServers": {
    "spacepost": { "url": "https://api.spacepost.dev/mcp", "headers": { "Authorization": "Bearer sp_live_..." } }
  }
}
Claude Desktop(claude_desktop_config.json)
{
  "mcpServers": {
    "spacepost": {
      "command": "npx",
      "args": ["-y", "@spacepost/mcp"],
      "env": { "SPACEPOST_API_KEY": "sp_live_...", "SPACEPOST_DEFAULT_FROM": "Acme <[email protected]>" }
    }
  }
}
Docker
docker build -t spacepost-mcp .
docker run -i --rm -e SPACEPOST_API_KEY=sp_live_... spacepost-mcp

此镜像从本仓库的源代码构建服务,并以非 root 用户通过 stdio 运行。密钥在运行时从环境变量读取,不会写入镜像。

工具的构建方式

  • 名称:operationId 的 snake_case 形式(sendEmail → send_email,getBroadcastReadiness → get_broadcast_readiness)。0.1 版的 12 个手写工具保留原名。
  • 输入:一个扁平的 JSON Schema 对象,包含路径参数(snake_case:audience_id、id_or_email)、查询参数、标头参数(Idempotency-Key → idempotency_key)以及顶层 JSON 请求体字段。与参数名称冲突的请求体字段会以 body_<field> 的形式公开;非对象请求体(批处理数组)则以 body 的形式公开。$ref/allOf 会内联;枚举、格式、模式、边界、默认值和描述均予以保留。
  • 描述:规范中的摘要和描述、精选补充内容、所需权限以及 HTTP 路由。
  • 注解:GET → readOnlyHint;DELETE → destructiveHint;GET/PUT/DELETE → idempotentHint;可按操作覆盖。
  • 结果:API 的 JSON(文本 + structuredContent)。错误:返回 isError: true,并包含 Resend 风格的 { statusCode, name, message } 错误正文和提示。
调整工具

工具遵循 API 的 OpenAPI 文档。操作包含以下扩展(由 SpacePost 在规范中设置):

x-mcp: { hidden: false, description: "Extra guidance for agents.", destructive: true, idempotent: true, openWorld: true }
x-permission: sending_access # only on operations a sending_access key may call

src/overlay.ts(按 operationId 索引)保存少量精选描述,内容侧重于如何更好地使用工具,而非 API 本身;若同一字段在两处都有设置,则以 x-mcp 为准。

开发

bun install
bun run build     # dist/index.js, spec included
bun test
bun run generate  # refresh src/generated/openapi.json from https://api.spacepost.dev/openapi.json

欢迎提交问题和拉取请求。安全问题请发送至:[email protected]。

0.2 版的破坏性变更:结果改为原始 API JSON,不再是简短的文本摘要;verify_domain 返回验证响应(如需获取新状态,请调用 get_domain)。

许可证

MIT,详见 LICENSE。© Studio 404 d.o.o.

评论

支持 Markdown

第一次接触 MCP?

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

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