关于 Spaceship Mcp
Spaceship Mcp 是社区构建的 MCP 服务,用于管理 Spaceship 域名、DNS、联系人和市场列表。它向兼容的 AI 客户端提供 API 工具、资源和引导式提示词。
主要功能
- 01管理域名注册与设置
- 02创建和管理 DNS 记录
- 03管理联系人与隐私设置
- 04处理 SellerHub 列表和结账链接
- 05分析 DNS 配置一致性
- 06提供资源和引导式提示词
适用场景
- 01通过 AI 客户端注册或续费域名
- 02查看并更新 DNS 记录
- 03检查域名市场列表
- 04比较 DNS 记录与预期设置
MCP 相关
它将 Spaceship API 操作作为 MCP 工具提供,并向 MCP 兼容客户端提供资源和提示词。需要 Spaceship API 凭据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
spaceship-mcp
由社区构建的 Model Context Protocol(MCP)服务,用于调用 Spaceship API。通过任何兼容 MCP 的 AI 客户端,以自然语言管理域名、DNS 记录、联系人、市场列表等。
注意: 这是一个非官方、由社区维护的项目,与 Spaceship 无关联,也未获其认可。
添加到编辑器
CLI 单行命令——最快的入门方式。选择你的工具:
Claude Code
claude mcp add --scope user spaceship-mcp \
--env SPACESHIP_API_KEY=your-key \
--env SPACESHIP_API_SECRET=your-secret \
-- npx -y spaceship-mcp
Codex CLI(OpenAI)
codex mcp add spaceship-mcp \
--env SPACESHIP_API_KEY=your-key \
--env SPACESHIP_API_SECRET=your-secret \
-- npx -y spaceship-mcp
Gemini CLI(Google)
gemini mcp add spaceship-mcp -- npx -y spaceship-mcp
通过 ~/.gemini/settings.json 分别设置环境变量 SPACESHIP_API_KEY 和 SPACESHIP_API_SECRET。
VS Code(Copilot)
打开命令面板(Cmd+Shift+P / Ctrl+Shift+P)> MCP: Add Server > 选择 Command (stdio)。
也可以在项目目录下的 .vscode/mcp.json 中添加:
{
"servers": {
"spaceship-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "spaceship-mcp"],
"env": {
"SPACESHIP_API_KEY": "your-key",
"SPACESHIP_API_SECRET": "your-secret"
}
}
}
}
Cursor
添加到 .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局):
{
"mcpServers": {
"spaceship-mcp": {
"command": "npx",
"args": ["-y", "spaceship-mcp"],
"env": {
"SPACESHIP_API_KEY": "your-key",
"SPACESHIP_API_SECRET": "your-secret"
}
}
}
}
支持的客户端
此 MCP 服务适用于任何支持 Model Context Protocol 的客户端,包括:
| 客户端 | 最简便的安装方式 |
|---|---|
| Claude Code | 单行命令:claude mcp add |
| Codex CLI(OpenAI) | 单行命令:codex mcp add |
| Gemini CLI(Google) | 单行命令:gemini mcp add |
| VS Code(Copilot) | 命令面板:MCP: Add Server |
| Claude Desktop | JSON 配置文件 |
| Cursor | JSON 配置文件 |
| Windsurf | JSON 配置文件 |
| Cline | UI 设置 |
| Zed | JSON 设置文件 |
Claude Desktop、Cowork 和其他 GUI 客户端(展开)
Claude Desktop / Cowork
Cowork 在 Claude Desktop 中运行,并使用相同的已连接 MCP 服务和权限。在 Claude Desktop 中配置一次,即可在 Cowork 中使用该服务。
将以下内容添加到 Claude Desktop 配置文件中:
| 平台 | 配置文件 |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
{
"mcpServers": {
"spaceship-mcp": {
"command": "npx",
"args": ["-y", "spaceship-mcp"],
"env": {
"SPACESHIP_API_KEY": "your-key",
"SPACESHIP_API_SECRET": "your-secret"
}
}
}
}
Windsurf / Cline / Zed
Windsurf — 添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"spaceship-mcp": {
"command": "npx",
"args": ["-y", "spaceship-mcp"],
"env": {
"SPACESHIP_API_KEY": "your-key",
"SPACESHIP_API_SECRET": "your-secret"
}
}
}
}
Cline — 打开 Settings > MCP Servers > Edit,然后添加上方所示的相同 mcpServers 代码块。
Zed — 添加到 Zed 设置中(macOS 上为 ~/.zed/settings.json,Linux 上为 ~/.config/zed/settings.json):
{
"context_servers": {
"spaceship-mcp": {
"command": "npx",
"args": ["-y", "spaceship-mcp"],
"env": {
"SPACESHIP_API_KEY": "your-key",
"SPACESHIP_API_SECRET": "your-secret"
}
}
}
}
Docker
docker run -i --rm \
-e SPACESHIP_API_KEY=your-key \
-e SPACESHIP_API_SECRET=your-secret \
ghcr.io/bartwaardenburg/spaceship-mcp
通用 MCP 服务配置
将其用作任何宿主的基准配置:
- 命令:
npx - 参数:
["-y", "spaceship-mcp"] - 必需的环境变量:
SPACESHIP_API_KEY、SPACESHIP_API_SECRET - 可选的环境变量:
SPACESHIP_CACHE_TTL、SPACESHIP_MAX_RETRIES、SPACESHIP_TOOLSETS、SPACESHIP_DYNAMIC_TOOLS(参见配置)
宿主键映射:
| 宿主 | 顶层键 | 说明 |
|---|---|---|
| VS Code | servers | 在服务对象中添加 "type": "stdio" |
| Claude Desktop / Cursor / Windsurf / Cline | mcpServers | 使用相同的命令/参数/环境变量代码块 |
| Zed | context_servers | 使用相同的命令/参数/环境变量代码块 |
| Codex CLI(TOML) | mcp_servers | 使用 TOML,见下文 |
Codex CLI(TOML 配置替代方案)
如果你更喜欢直接编辑 ~/.codex/config.toml:
[mcp_servers.spaceship-mcp]
command = "npx"
args = ["-y", "spaceship-mcp"]
env = { "SPACESHIP_API_KEY" = "your-key", "SPACESHIP_API_SECRET" = "your-secret" }
其他 MCP 客户端
对于任何兼容 MCP 的客户端,使用以下服务配置:
- 命令:
npx - 参数:
["-y", "spaceship-mcp"] - 环境变量:
SPACESHIP_API_KEY和SPACESHIP_API_SECRET
Claude 生态系统说明
Claude 目前有多个与 MCP 相关的概念,很容易混淆:
- 本地 MCP 服务(Claude Desktop): 在
claude_desktop_config.json中定义,并在你的设备上启动(文档)。 - Cowork: 重用连接到 Claude Desktop 的 MCP 服务(文档)。
- 连接器: 在 Claude 中管理的远程 MCP 集成(文档)。
- Cowork 插件: Claude 专用的工作流打包方式(指令 + 工具/数据集成)(文档)。适用于 Claude,但不能作为通用 MCP 服务配置移植到其他 Agent 客户端。
已根据供应商文档核实,日期为 2026-03-05。
术语
可在不同宿主之间移植的内容:
- MCP 服务运行时设置(
command、args、env) - 传输模型(
stdio命令服务) - 此服务公开的工具名称和工具架构
宿主/供应商特有的内容(不能直接移植):
- 宿主配置键名称(
servers、mcpServers、context_servers、mcp_servers) - 用于添加服务的宿主界面/工作流(CLI 命令、UI 菜单、设置路径)
- Anthropic 特有的概念,例如 Cowork 工作流中使用的 Claude Desktop 本地 MCP 服务、通过远程 MCP 使用 Claude Connectors 和 Claude Code 插件
- 48 个工具,分为 8 个类别,涵盖完整的 Spaceship API
- 13 种 DNS 记录类型,提供专用的类型安全创建工具(A、AAAA、ALIAS、CAA、CNAME、HTTPS、MX、NS、PTR、SRV、SVCB、TLSA、TXT)
- 完整的域名生命周期管理——注册、续费、转移和恢复域名
- SellerHub 集成——列出待售域名并生成结账链接
- DNS 对齐分析——比较预期记录与实际记录,以发现配置错误
- WHOIS 隐私和联系人管理,支持特定 TLD 的属性
- 通过每个工具上的 Zod 架构验证输入和输出,确保操作安全且可预测
- 5 个 MCP 资源,用于被动加载上下文(域名列表、域名详情、DNS 记录、联系人、SellerHub)
- 9 个 MCP 提示词——5 个引导式工作流,以及 4 个支持参数自动补全的提示词
- 资源订阅,通过轮询检测变更并自动发送通知
- 响应缓存,支持配置 TTL,并在写入时自动失效
- 速率限制处理,支持指数退避和
Retry-After标头 - 工具集筛选,仅公开所需的工具类别
- 动态工具加载模式,适用于上下文窗口受限的 Agent
- 可操作的错误消息,提供结合上下文的恢复建议
- 支持 Docker,可进行容器化部署
- 453 个单元测试,覆盖率接近完整
配置
必填项
| 变量 | 描述 |
|---|---|
SPACESHIP_API_KEY | 你的 Spaceship API 密钥 |
SPACESHIP_API_SECRET | 你的 Spaceship API 密钥密文 |
在 Spaceship API Manager 中生成凭据。
可选项
| 变量 | 描述 | 默认值 |
|---|---|---|
SPACESHIP_CACHE_TTL | 响应缓存的有效期(秒)。设为 0 可禁用缓存。 | 120 |
SPACESHIP_MAX_RETRIES | 对触发速率限制(429)的请求进行指数退避时的最大重试次数。 | 3 |
SPACESHIP_TOOLSETS | 要启用的工具类别列表,以逗号分隔(参见工具集筛选)。 | 所有工具集 |
SPACESHIP_DYNAMIC_TOOLS | 设为 true 可启用动态工具加载模式(参见动态工具加载)。 | false |
API 密钥设置
创建 API 密钥
- 登录你的 Spaceship 账户
- 前往 API Manager(直接链接)
- 点击 New API key
- 为密钥设置一个描述性名称(例如,“MCP Server”)
- 选择所需的权限范围(见下文)
- 复制 API 密钥和 API 密钥密文——密钥密文只会显示一次
可用权限范围
每个权限范围控制对 Spaceship API 特定部分的访问。创建密钥时,只启用所需的权限范围。
| 权限范围 | 访问权限 |
|---|---|
domains:read | 列出域名、检查可用性、查看域名详情和设置 |
domains:write | 修改域名设置(名称服务器、自动续费、联系人、隐私) |
domains:billing | 注册、续费、恢复和转移域名(财务操作) |
domains:transfer | 转移锁定、授权码和转移状态 |
contacts:read | 读取已保存的联系人资料和属性 |
contacts:write | 创建和更新联系人资料及属性 |
dnsrecords:read | 列出域名的 DNS 记录 |
dnsrecords:write | 创建、更新和删除 DNS 记录 |
sellerhub:read | 查看市场列表和验证记录 |
sellerhub:write | 发布/撤下待售域名、更新定价、生成结账链接 |
asyncoperations:read | 查询异步操作的状态(注册、续费、转移) |
各功能所需的权限范围
下表显示了每组工具所需的权限范围。
| 功能 | 工具 | 所需权限范围 |
|---|---|---|
| DNS 记录 | list_dns_records | dnsrecords:read |
save_dns_records、delete_dns_records、所有 create_*_record 工具 | dnsrecords:read dnsrecords:write | |
| 域名信息 | list_domains、get_domain、check_domain_availability | domains:read |
| 域名设置 | update_nameservers、set_auto_renew、set_privacy_level、set_email_protection、update_domain_contacts | domains:write |
| 域名生命周期 | register_domain、renew_domain、restore_domain、transfer_domain | domains:billing |
| 转移 | set_transfer_lock、get_auth_code、get_transfer_status | domains:transfer |
| 联系人 | get_contact、get_contact_attributes | contacts:read |
save_contact、save_contact_attributes | contacts:write | |
| 个人域名服务器 | list_personal_nameservers、get_personal_nameserver | domains:read |
update_personal_nameserver、delete_personal_nameserver | domains:write | |
| SellerHub | list_sellerhub_domains、get_sellerhub_domain、get_verification_records | sellerhub:read |
create_sellerhub_domain、update_sellerhub_domain、delete_sellerhub_domain、create_checkout_link | sellerhub:write | |
| 异步操作 | get_async_operation | asyncoperations:read |
| 分析 | check_dns_alignment | dnsrecords:read |
推荐的权限范围预设
完全访问 — 启用所有权限,实现不受限制的使用:
domains:read domains:write domains:billing domains:transfer
contacts:read contacts:write
dnsrecords:read dnsrecords:write
sellerhub:read sellerhub:write
asyncoperations:read
仅管理 DNS — 仅读写 DNS 记录:
dnsrecords:read dnsrecords:write
只读 — 浏览域名和记录,但不进行任何更改:
domains:read contacts:read dnsrecords:read sellerhub:read asyncoperations:read
可用工具
DNS 记录
| 工具 | 描述 |
|---|---|
list_dns_records | 分页列出域名的所有 DNS 记录 |
save_dns_records | 保存(插入或更新)DNS 记录 — 替换名称和类型相同的记录 |
delete_dns_records | 按名称和类型删除 DNS 记录 |
按类型创建记录
每种 DNS 记录类型都有专用工具,并提供类型安全的参数和验证。
| 工具 | 描述 |
|---|---|
create_a_record | 创建 A 记录(IPv4 地址) |
create_aaaa_record | 创建 AAAA 记录(IPv6 地址) |
create_alias_record | 创建 ALIAS 记录(在区域顶点进行 CNAME 展平) |
create_caa_record | 创建 CAA 记录(证书颁发机构授权) |
create_cname_record | 创建 CNAME 记录(规范名称) |
create_https_record | 创建 HTTPS 记录(兼容 SVCB) |
create_mx_record | 创建 MX 记录(邮件交换) |
create_ns_record | 创建 NS 记录(域名服务器委派) |
create_ptr_record | 创建 PTR 记录(反向 DNS) |
create_srv_record | 创建 SRV 记录(服务定位器) |
create_svcb_record | 创建 SVCB 记录(通用服务绑定) |
create_tlsa_record | 创建 TLSA 记录(DANE/TLS 证书关联) |
create_txt_record | 创建 TXT 记录(文本数据) |
域名管理
| 工具 | 描述 |
|---|---|
list_domains | 分页列出账户中的所有域名 |
get_domain | 获取详细的域名信息 |
check_domain_availability | 一次检查最多 20 个域名的可用性 |
update_nameservers | 更新域名服务器 |
set_auto_renew | 开启或关闭域名自动续费 |
set_transfer_lock | 开启或关闭域名转移锁定 |
get_auth_code | 获取转移授权码/EPP 码 |
域名生命周期
| 工具 | 描述 |
|---|---|
register_domain | 注册新域名(金融操作,异步) |
renew_domain | 续费域名注册(金融操作,异步) |
restore_domain | 在赎回宽限期内恢复域名(金融操作,异步) |
transfer_domain | 将域名转入 Spaceship(金融操作,异步) |
get_transfer_status | 检查域名转移状态 |
get_async_operation | 按操作 ID 轮询异步操作状态 |
联系人和隐私
| 工具 | 描述 |
|---|---|
save_contact | 创建或更新可重复使用的联系人资料 |
get_contact | 按 ID 检索已保存的联系人 |
save_contact_attributes | 保存特定 TLD 的联系人属性(例如税号) |
get_contact_attributes | 检索所有已存储的联系人属性 |
update_domain_contacts | 更新域名联系人(注册人、管理员、技术联系人、账单联系人) |
set_privacy_level | 设置 WHOIS 隐私级别(高或公开) |
set_email_protection | 切换 WHOIS 中联系表单的显示状态 |
个人名称服务器
| 工具 | 描述 |
|---|---|
list_personal_nameservers | 列出域名的自定义/胶水名称服务器 |
get_personal_nameserver | 按主机名获取个人名称服务器的详细信息 |
update_personal_nameserver | 创建或更新个人名称服务器(胶水记录) |
delete_personal_nameserver | 删除个人名称服务器 |
SellerHub
| 工具 | 描述 |
|---|---|
list_sellerhub_domains | 列出在市场中出售的域名 |
create_sellerhub_domain | 设置价格并发布域名出售 |
get_sellerhub_domain | 获取挂牌详情 |
update_sellerhub_domain | 更新挂牌的显示名称、描述和价格 |
delete_sellerhub_domain | 从市场中移除挂牌 |
create_checkout_link | 为挂牌生成立即购买结账链接 |
get_verification_records | 获取挂牌的 DNS 验证记录 |
分析
| 工具 | 描述 |
|---|---|
check_dns_alignment | 比较预期与实际的 DNS 记录,以检测缺失或意外的条目 |
MCP 资源
资源提供被动上下文,客户端无需调用工具即可加载。
| 资源 | URI | 描述 |
|---|---|---|
| 域名列表 | spaceship://domains | 账户中的所有域名 |
| 域名详情 | spaceship://domains/{domain} | 特定域名的详细信息 |
| DNS 记录 | spaceship://domains/{domain}/dns | 特定域名的 DNS 记录 |
| 域名联系人 | spaceship://domains/{domain}/contacts | 域名的联系人分配情况 |
| SellerHub 挂牌 | spaceship://sellerhub | SellerHub 市场中的所有挂牌 |
支持资源订阅的客户端会在数据发生变化时收到自动通知(每 30 秒轮询一次)。
MCP 提示词
提示词提供引导式工作流,客户端可将其作为斜杠命令或快捷操作呈现。
引导式工作流
| 提示词 | 描述 |
|---|---|
setup-domain | 注册并配置新域名(检查可用性、注册、DNS、隐私) |
audit-domain | 检查现有域名的运行状况(状态、DNS、隐私、自动续费、联系人) |
setup-email | 为 Google Workspace、Microsoft 365、Fastmail 或自定义服务商配置电子邮件 DNS 记录 |
migrate-dns | 逐步指导将 DNS 记录迁移到 Spaceship |
list-for-sale | 在 SellerHub 市场发布域名,设置价格并生成结账链接 |
自动补全提示词
这些提示词支持为域名和常用值自动补全参数:
| 提示词 | 描述 |
|---|---|
domain-lookup | 查询域名详情,并自动补全域名 |
dns-records | 列出 DNS 记录,并自动补全域名和记录类型 |
set-privacy | 设置 WHOIS 隐私,并自动补全域名和级别 |
update-nameservers | 更新名称服务器,并自动补全域名和服务商 |
工具集筛选
仅启用所需的工具类别,以减少上下文窗口占用。将 SPACESHIP_TOOLSETS 环境变量设为以逗号分隔的列表:
SPACESHIP_TOOLSETS=dns,domains
| 工具集 | 包含的工具 |
|---|---|
domains | 域名管理和生命周期工具 |
dns | DNS 记录、记录创建工具和分析 |
contacts | 联系人和隐私管理 |
privacy | 隐私管理(与 contacts 使用相同的工具) |
nameservers | 个人名称服务器管理 |
sellerhub | SellerHub 市场工具 |
availability | 域名可用性检查 |
未设置时,将启用所有工具集。无效名称会被忽略;如果所有名称都无效,则会启用所有工具集作为回退方案。
动态工具加载
对于上下文窗口受限的 Agent,动态模式会将全部 48 个工具替换为 3 个轻量级元工具:
SPACESHIP_DYNAMIC_TOOLS=true
| 元工具 | 说明 |
|---|---|
search_tools | 按关键字搜索可用工具,以了解有哪些工具 |
describe_tools | 执行前获取一个或多个工具的完整参数架构 |
execute_tool | 使用参数按名称执行任意 Spaceship 工具 |
工作流:
search_tools({ query: "dns" })— 查找相关工具describe_tools({ tools: ["create_a_record"] })— 获取完整参数架构execute_tool({ tool: "create_a_record", arguments: { ... } })— 执行
在动态模式下,资源、提示词和补全功能仍可用。
安全说明
- 信任模型: 任何获准调用此 MCP 服务的提示词或 Agent,都可以使用已配置的凭据执行 Spaceship API 操作。
- 最小权限凭据: 按环境/团队/用例使用独立的 Spaceship API 密钥,并仅启用所需的权限范围(参见可用权限范围)。
- 写入操作审批: 为会修改数据的工具启用主机端审批(
register_domain、create_*、update_*、delete_*、save_*、set_*和生命周期操作)。 - 团队配置治理: 将共享的 MCP 配置纳入版本控制;对命令、参数、环境变量和工具集筛选的变更要求审核;将机密信息保存在保险库或主机的密钥管理器中(不要存放在纯文本仓库文件中)。
使用示例
连接后,你可以使用自然语言与 Spaceship API 交互:
- “列出我的所有域名”
- “检查 example.com 是否可以注册”
- “为 api.example.com 创建一条指向 203.0.113.10 的 A 记录”
- “为 example.com 设置使用 Google Workspace 的 MX 记录”
- “为 example.com 启用 WHOIS 隐私保护”
- “检查 example.com 的 DNS 记录是否符合预期”
- “列出我在 SellerHub 上出售的域名”
- “将 example.com 转移到 Spaceship”
社区
- 支持:SUPPORT.md
- 安全问题报告:SECURITY.md
- 贡献指南:CONTRIBUTING.md
- Bug 报告和功能请求:Issues
开发
# Install dependencies
pnpm install
# Run in development mode
pnpm dev
# Build for production
pnpm build
# Run tests
pnpm test
# Type check
pnpm typecheck
项目结构
src/
index.ts # Entry point (stdio transport)
server.ts # MCP server setup, toolset filtering, feature registration
spaceship-client.ts # Spaceship API HTTP client with caching and retry
cache.ts # TTL-based in-memory response cache
schemas.ts # Shared Zod validation schemas
output-schemas.ts # Zod output schemas for all 48 tools
types.ts # TypeScript interfaces
tool-result.ts # Error formatting with recovery suggestions
resources.ts # MCP Resources (5 resources)
resource-subscriptions.ts # Polling-based resource change notifications
prompts.ts # MCP Prompts (5 guided workflows)
completions.ts # MCP Prompts with argument auto-complete (4 prompts)
dynamic-tools.ts # Dynamic tool loading meta-tools
dns-utils.ts # DNS record formatting utilities
update-checker.ts # NPM update notifications
tools/
dns-records.ts # List, save, delete DNS records
dns-record-creators.ts # 13 type-specific DNS record creation tools
domain-management.ts # Domain listing, settings, nameservers
domain-lifecycle.ts # Registration, renewal, transfer, restore
contacts-privacy.ts # Contact profiles and WHOIS privacy
personal-nameservers.ts # Vanity/glue nameserver management
sellerhub.ts # Marketplace listing and checkout tools
analysis.ts # DNS alignment analysis
要求
- Node.js >= 20
- 拥有 Spaceship 账户和 API 凭据
许可证
MIT - 详情请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。