返回 MCP 目录
public公开dns本地运行

superjolt

Superjolt CLI是一个AI驱动的JavaScript应用部署平台,提供命令行工具和MCP协议支持,可实现一键部署、AI辅助基础设施管理、服务生命周期管理等功能。

article

README

🚀 Superjolt CLI (Beta)

🤖 Superjolt CLI是一款支持MCP的AI驱动部署平台的官方命令行工具,可借助AI辅助轻松部署和管理JavaScript应用程序,为开发者提供高效、便捷的云端部署体验。

[![npm version](https://img.shields.io/npm/v/superjolt.svg)](https://www.npmjs.com/package/superjolt) [![npm downloads](https://img.shields.io/npm/dw/superjolt.svg)](https://www.npmjs.com/package/superjolt) [![Tests](https://github.com/scoritz/superjolt/actions/workflows/test.yml/badge.svg)](https://github.com/scoritz/superjolt/actions/workflows/test.yml) [![codecov](https://codecov.io/gh/scoritz/superjolt/graph/badge.svg)](https://codecov.io/gh/scoritz/superjolt) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Discord](https://img.shields.io/badge/Discord-Join%20Us-7289DA)](https://superjolt.com/discord)

重要提示

目前Superjolt处于Beta版本,我们正在根据您的反馈积极改进。欢迎加入我们的 Discord 分享您的使用体验!在Beta阶段,CLI将自动检查关键更新,以确保与我们不断发展的API兼容。

🚀 快速开始

在您的JavaScript框架项目文件夹中,运行以下命令:

npx superjolt deploy

就是这么简单!CLI将引导您完成身份验证和部署过程。

✨ 主要特性

  • 🚀 一键部署:使用 npx superjolt deploy 即可完成部署。
  • 🤖 通过MCP实现AI驱动的基础设施管理。
  • 🔧 全面的服务生命周期管理。
  • 🔐 安全的环境变量处理。
  • 📊 实时日志和监控。
  • 🌐 自动SSL和自定义域名支持。

📦 安装指南

您可以通过以下几种方式安装Superjolt CLI:

使用npx(无需安装)

npx superjolt deploy

全局安装

使用npm全局安装Superjolt CLI:

npm install -g superjolt

或者使用yarn:

yarn global add superjolt

💻 使用示例

部署Node.js应用程序

# 进入项目目录
cd my-node-app

# 登录Superjolt
superjolt login

# 部署应用
superjolt deploy

# 部署并显示详细构建输出
superjolt deploy --verbose

管理环境变量

# 设置单个变量
superjolt env:set NODE_ENV production

# 推送整个.env文件
superjolt env:push

# 列出所有变量
superjolt env:list

管理自定义域名

# 添加自定义域名(使用.superjolt文件中的服务ID)
superjolt domain:add app.example.com

# 添加到特定服务
superjolt domain:add app.example.com happy-blue-fox

# 添加为主域名
superjolt domain:add www.example.com --primary

# 列出所有域名
superjolt domain:list

# 检查域名状态
superjolt domain:status app.example.com

# 删除域名
superjolt domain:remove app.example.com

管理机器

# 创建新机器
superjolt machine:create

# 列出所有机器
superjolt machine:list

# 设置默认机器
superjolt machine:use happy-blue-fox

使用Claude进行AI驱动的管理

MCP配置完成后,您可以使用自然语言进行操作:

您:"显示所有正在运行的服务"
Claude:[列出所有服务及其状态]

您:"重启API服务并查看其日志"
Claude:[重启服务并显示最近的日志]

您:"为我的数据库连接设置环境变量"
Claude:[帮助配置DATABASE_URL和相关变量]

📚 详细文档

命令说明

身份验证

  • superjolt login - 使用您的Superjolt账户进行身份验证。
  • superjolt logout - 从您的账户注销。
  • superjolt me - 显示当前用户信息。
  • superjolt token - 显示用于CI/CD的身份验证令牌。
    • --show - 显示完整令牌(用于导出)。

部署

  • superjolt deploy [options] - 将您的应用程序部署到Superjolt。
    • -p, --path <path> - 应用程序目录的路径(默认为当前目录)。
    • -s, --service <serviceId> - 部署到现有服务(可选)。
    • -m, --machine <machineId> - 要部署到的机器ID。
    • -n, --name <name> - 服务名称(新服务默认为package.json中的名称)。
    • -v, --verbose - 显示详细的构建输出和日志。

机器管理

  • superjolt machine:create - 创建新机器。
  • superjolt machine:list - 列出所有机器。
  • superjolt machine:delete <machine-id> - 删除机器。
  • superjolt machine:use <machine-id> - 设置部署的默认机器。
  • superjolt machine:rename [machine-id] <new-name> - 重命名机器(如果省略ID,则使用默认机器)。

服务管理

  • superjolt service:list [machine-id] - 列出机器的服务。
  • superjolt service:start <service-id> - 启动服务。
  • superjolt service:stop <service-id> - 停止服务。
  • superjolt service:restart <service-id> - 重启服务。
  • superjolt service:rename <service-id> <new-name> - 重命名服务(别名:rename)。
  • superjolt service:delete <service-id> - 删除服务。

自定义域名

  • superjolt domain:add <domain> [service-id] - 为服务添加自定义域名(如果省略服务ID,则使用.superjolt文件)。
    • -p, --primary - 设置为服务的主域名。
  • superjolt domain:list [service-id] - 列出自定义域名(别名:domains)。
  • superjolt domain:status <domain> - 检查域名验证状态。
  • superjolt domain:remove <domain> - 删除自定义域名(别名:domain:delete)。

环境变量

  • superjolt env:list - 列出环境变量。
  • superjolt env:set <key> <value> - 设置环境变量。
  • superjolt env:get <key> - 获取环境变量。
  • superjolt env:unset <key> - 删除环境变量。
  • superjolt env:push - 将.env文件推送到您的应用程序。

日志

  • superjolt logs [service-id] - 查看应用程序的实时日志。

其他命令

  • superjolt reset - 删除所有机器和服务(破坏性操作 - 需要确认)。
  • superjolt update - 将CLI更新到最新版本。
  • superjolt update --check - 检查更新但不安装。
  • superjolt status - 显示CLI配置、版本和存储的数据(别名:info, config)。
    • --show-token - 显示完整的身份验证令牌。

配置说明

项目配置

首次部署后,CLI会在项目根目录自动创建一个 .superjolt 文件,该文件用于跟踪以下信息:

{
  "serviceId": "clever-red-deer"
}

这允许CLI确定是更新现有部署还是创建新部署。

部署忽略文件(.superjoltignore)

您可以在项目根目录创建一个 .superjoltignore 文件,以排除特定文件和目录的部署。该文件遵循与 .gitignore 相同的语法。

查看默认排除项和示例

默认排除项

以下模式始终从部署中排除:

  • node_modules/
  • .git/
  • dist/
  • build/
  • .env*
  • *.log
  • coverage/
  • .nyc_output/
  • .next/
  • .nuxt/
  • .cache/
  • tmp/
  • temp/
  • .superjolt

自定义排除项

创建一个 .superjoltignore 文件以添加您自己的排除模式:

# 忽略测试文件
**/*.test.js
**/*.spec.js
__tests__/

# 忽略开发文件
*.dev.js
.vscode/
.idea/

# 忽略特定目录
docs/
examples/

# 开发期间忽略大资产
videos/
*.mp4

.superjoltignore 中的模式与默认排除项合并,因此您无需重复它们。

#### 端口配置 当您的应用程序部署到Superjolt时,服务器会通过 `PORT` 环境变量自动提供端口号。您的应用程序应监听此端口以接收传入请求。 ```javascript // Node.js/Express示例 const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server listening on port ${port}`); }); ``` 这与Heroku等其他PaaS平台类似 - 您无需选择端口,平台会动态分配。在可用时始终使用 `process.env.PORT`,并为本地开发提供备用端口。

CI/CD集成

Superjolt CLI支持通过环境变量进行身份验证,以实现无缝的CI/CD集成。

设置CI/CD身份验证

  1. 获取身份验证令牌:
superjolt token --show
  1. 将令牌设置为CI/CD平台中的机密:
  • GitHub Actions:添加为名为 SUPERJOLT_TOKEN 的存储库机密。
  • GitLab CI:添加为受保护的CI/CD变量。
  • CircleCI:在项目设置中添加为环境变量。
  • 其他平台:将 SUPERJOLT_TOKEN 设置为安全的环境变量。
  1. 在CI/CD管道中使用:

GitHub Actions示例

name: Deploy to Superjolt

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18'
          
      - name: Install dependencies
        run: npm ci
        
      - name: Deploy to Superjolt
        env:
          SUPERJOLT_TOKEN: ${{ secrets.SUPERJOLT_TOKEN }}
        run: npx superjolt deploy

GitLab CI示例

deploy:
  stage: deploy
  image: node:18
  script:
    - npm ci
    - npx superjolt deploy
  only:
    - main
  variables:
    SUPERJOLT_TOKEN: $SUPERJOLT_TOKEN

通用脚本示例

#!/bin/bash
export SUPERJOLT_TOKEN="your-token-here"
npx superjolt deploy

安全最佳实践

  • 切勿将令牌提交到版本控制
  • 将令牌存储为CI/CD平台中的加密机密。
  • 为不同环境(暂存、生产)使用不同的令牌。
  • 定期轮换令牌。
  • 令牌可提供对您的Superjolt账户的完全访问权限 - 请谨慎处理。

环境变量身份验证

当设置了 SUPERJOLT_TOKEN 时,CLI将:

  • 跳过基于浏览器的登录流程。
  • 使用令牌进行所有API请求。
  • 在无头环境(CI/CD、容器)中工作。 您可以使用以下命令验证令牌来源:
superjolt status

🔧 技术细节

Superjolt CLI是首个原生支持Model Context Protocol (MCP) 的部署平台之一,允许您通过Claude Desktop等AI助手管理整个基础设施。

为什么选择MCP?

  • 自然语言控制:使用对话式命令管理部署。
  • 上下文感知操作:AI了解您的基础设施状态。
  • 自动化工作流程:让AI处理复杂的部署序列。
  • 错误解决:获得智能帮助以解决部署问题。

设置MCP

  1. 安装Superjolt CLI(包括MCP服务器):
npm install -g superjolt
  1. 使用Superjolt进行身份验证
superjolt login
  1. 添加到Claude Desktop配置
  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
  • Linux~/.config/claude/claude_desktop_config.json
{
  "mcpServers": {
    "superjolt": {
      "command": "superjolt-mcp",
      "args": []
    }
  }
}
  1. 重启Claude Desktop

MCP功能

配置完成后,您可以使用自然语言进行以下操作:

身份验证和CI/CD设置

  • "获取我用于CI/CD的身份验证令牌"
  • "展示如何设置GitHub Actions"
  • "检查我是否已通过身份验证"

基础设施管理

  • "创建新的生产机器"
  • "列出所有正在运行的服务"
  • "展示已停止的服务"
  • "删除所有测试机器"

部署操作

  • "重启我的API服务"
  • "停止暂存环境"
  • "查看Web服务的日志"

配置

  • "为我的后端设置DATABASE_URL"
  • "列出所有环境变量"
  • "更新生产环境的API密钥"

自定义域名

  • "将app.example.com添加到我的Web服务"
  • "列出所有自定义域名"
  • "检查我的域名验证状态"
  • "删除old.example.com"

可用的MCP工具

查看所有MCP工具

身份验证

  • check_auth - 检查是否已通过Superjolt身份验证
  • get_current_user - 获取当前用户信息
  • get_token - 获取用于CI/CD的身份验证令牌

机器管理

  • list_machines - 列出所有机器
  • create_machine - 创建新机器
  • delete_machine - 删除机器
  • rename_machine - 重命名机器
  • set_default_machine - 设置部署的默认机器

服务管理

  • list_services - 列出服务(可选按机器过滤)
  • start_service - 启动服务
  • stop_service - 停止服务
  • restart_service - 重启服务
  • delete_service - 删除服务
  • rename_service - 重命名服务

环境变量

  • list_env_vars - 列出服务的所有环境变量
  • set_env_vars - 设置一个或多个环境变量
  • get_env_var - 获取特定环境变量
  • delete_env_var - 删除环境变量
  • push_env_file - 将.env文件推送到服务

自定义域名

  • add_custom_domain - 为服务添加自定义域名
  • list_custom_domains - 列出服务或所有服务的自定义域名
  • remove_custom_domain - 删除自定义域名
  • get_custom_domain_status - 获取自定义域名的状态

日志

  • get_logs - 获取服务的日志
### MCP要求和故障排除 - **需要Node.js 16或更高版本**(MCP服务器使用现代JavaScript功能) - 如果您看到 `Unexpected token '??='` 错误,则Claude Desktop使用的是旧版本的Node.js。 **解决方案**: 1. 设置默认Node版本并重启Claude Desktop: ```bash nvm alias default 16 # 或更高版本 # 完全退出并重启Claude Desktop ``` 2. 或者在Claude Desktop配置中使用显式路径: ```json { "mcpServers": { "superjolt": { "command": "/path/to/node16+/bin/node", "args": ["/path/to/node16+/bin/superjolt-mcp"] } } } ```

📄 许可证

本项目采用MIT许可证,详情请参阅 LICENSE 文件。

其他信息

Web 仪表盘

您可以通过我们的Web界面 users.superjolt.com 管理您的部署:

  • 📊 查看部署指标和使用情况。
  • 🔧 管理服务和环境变量。
  • 📱 实时监控您的应用程序。
  • 🚀 访问部署日志和历史记录。

支持

  • 仪表盘:https://users.superjolt.com
  • 文档:https://superjolt.com/docs
  • 问题反馈:https://github.com/scoritz/superjolt/issues
  • Discord:https://superjolt.com/discord
  • 邮箱:support@superjolt.com

贡献

我们欢迎您的贡献!请参阅 贡献指南 了解详细信息。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端