用途
spaceship-mcp 是一个社区构建、非官方的 Model Context Protocol (MCP) 服务器,用于对接 Spaceship API。它让任何兼容 MCP 的 AI 客户端能够通过自然语言完成域名、DNS、联系人以及市场列表等管理操作。
主要能力
- 48 个工具,覆盖 8 个类别,对应完整的 Spaceship API。
- 13 种 DNS 记录类型(A、AAAA、ALIAS、CAA、CNAME、HTTPS、MX、NS、PTR、SRV、SVCB、TLSA、TXT)均有专门的类型安全创建工具。
- 完整域名生命周期:注册、续费、转移、恢复。
- SellerHub 集成:列出待售域名并生成结账链接。
- DNS 对齐分析:比较预期记录与实际记录,发现错误配置。
- WHOIS 隐私与联系人管理,支持 TLD 特定属性。
- 每个工具都通过 Zod schema 进行输入输出验证,保证操作安全可预测。
- 5 个 MCP Resources 用于被动加载上下文(域名列表、域名详情、DNS 记录、联系人、SellerHub)。
- 9 个 MCP Prompts:5 个引导式工作流和 4 个支持参数自动补全的提示。
- 资源订阅,每 30 秒轮询检测变更并自动通知。
- 响应缓存,可配置 TTL,写入时自动失效。
- 速率限制处理,支持指数退避和 Retry-After 头。
- 工具集过滤,仅暴露所需工具类别。
- 动态工具加载模式,适用于上下文窗口受限的智能体。
- 可操作的错误消息,提供上下文感知的恢复建议。
- Docker 支持容器化部署。
- 453 个单元测试,接近完整覆盖率。
使用方式
使用前需在 Spaceship API Manager 生成凭据。步骤:登录 Spaceship 账户;进入 API Manager;点击 New API key;给密钥取描述性名称(如“MCP Server”);选择所需 scopes;复制 API key 和 API secret(secret 仅显示一次)。
每个 scope 控制对 Spaceship API 特定部分的访问,创建密钥时只应启用需要的 scope。工具集与所需 scope 的对应关系在项目中有表格说明。推荐 scope 预设包括:完全访问(启用全部)、仅 DNS 管理(读写 DNS 记录)、只读(浏览域名和记录而不更改)。
通用 MCP 服务器配置:
- 命令:npx
- Args: ["-y", "spaceship-mcp"]
- 必需环境变量:SPACESHIP_API_KEY、SPACESHIP_API_SECRET
- 可选环境变量:SPACESHIP_CACHE_TTL、SPACESHIP_MAX_RETRIES、SPACESHIP_TOOLSETS、SPACESHIP_DYNAMIC_TOOLS
支持的客户端包括:Codex CLI (OpenAI)、Gemini CLI (Google)、VS Code (Copilot)、Claude Desktop / Cowork、Windsurf / Cline / Zed,以及任何支持 MCP 的客户端。
Claude 生态注意:Claude 目前有多个容易混淆的 MCP 相关概念——本地 MCP 服务器(Claude Desktop 中定义于 claude_desktop_config.json,在用户机器上启动)、Cowork(复用 Claude Desktop 中连接的 MCP 服务器)、Connectors(Claude 中管理的远程 MCP 集成)、Cowork plugins(Claude 特定工作流打包,非通用 MCP 服务器配置)。
可跨宿主移植的内容:MCP 服务器运行时设置(command、args、env)、传输模型(stdio 命令服务器)、本服务器暴露的工具名称和工具 schema。
宿主/供应商特定、不能直接移植的内容:宿主配置键名(servers、mcpServers、context_servers、mcp_servers)、添加服务器的宿主 UX/工作流(CLI 命令、UI 菜单、设置路径)、Anthropic 特定概念(Claude Desktop 本地 MCP 服务器、通过远程 MCP 的 Claude Connectors、Cowork 工作流中使用的 Claude Code 插件)。
工具集过滤:通过 SPACESHIP_TOOLSETS 环境变量设置逗号分隔的列表,减少上下文窗口占用。未设置时启用所有工具集;无效名称被忽略;若所有名称均无效,则回退为启用全部工具集。
动态工具加载:面向上下文窗口受限的智能体,动态模式用 3 个轻量元工具替换全部 48 个工具:
- search_tools({ query: "dns" }) — 发现相关工具
- describe_tools({ tools: ["create_a_record"] }) — 获取完整参数 schema
- execute_tool({ tool: "create_a_record", arguments: { ... } }) — 执行 资源、提示和补全在动态模式下仍可用。
自然语言交互示例:
- “列出我所有的域名”
- “检查 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”
适用场景
需要借助 AI 客户端以自然语言批量或快速管理 Spaceship 域名、DNS 记录、联系人与市场列表的用户和团队。适合希望将域名运维纳入智能体工作流,或需要类型安全 DNS 操作、DNS 对齐检查的场景。
限制与安全
- 该项目为社区维护、非官方,与 Spaceship 无隶属或背书关系。
- 需要 Spaceship 账户及 API 凭据。
- 信任模型:任何被允许调用此 MCP 服务器的提示或智能体,都能以配置的凭据执行 Spaceship API 操作。
- 建议最小权限凭据:按环境/团队/用例使用独立的 Spaceship API 密钥,并只启用所需 scope。
- 建议对变更类工具启用宿主侧审批(register_domain、create_、update_、delete_、save_、set_* 及生命周期操作)。
- 团队配置治理:将共享 MCP 配置纳入版本控制,对 command/args/env/工具集过滤的变更要求审查,密钥保存在 vault 或宿主密钥管理器中,不要放在明文仓库文件里。
- 许可证:MIT,详见 LICENSE。
- 项目结构、支持、安全报告、贡献指南、问题反馈等参见仓库文件:SUPPORT.md、SECURITY.md、CONTRIBUTING.md、Issues。