服务器预检与初始化工具

ServerReady 是一个智能服务器预检与初始化工具,支持 CLI、HTTP API 和 MCP,能够分析项目依赖并自动配置服务器。

  • by JinxCN
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 PeterTang1984/ServerReady

使用说明

ServerReady / 服务器就绪

一种实用的工具,可智能地检查和初始化服务器,并支持CLI、HTTP API和模型上下文协议(MCP)。它分析您的项目依赖关系,并相应地自动配置服务器。

一个实用的智能服务器预检与初始化工具,支持 CLI、HTTP API 和 MCP(模型上下文协议)。它能分析项目依赖,并据此自动配置服务器。


概述/概述

  • 中文:ServerReady帮助团队在部署前快速验证远程服务器,执行必要的初始化,并通过自动依赖性分析将服务器设置与应用程序堆栈对齐。
  • 中文:ServerReady 帮助团队在部署前快速验证远程服务器,执行关键初始化,并通过自动依赖分析让服务器配置与应用技术栈保持一致。

Bilingual Prompts Policy / 双语提示规范

  • 英语:
    • 所有用户通知消息都以中英文提供,包括CLI输出、HTTP API响应、MCP工具结果、错误/异常、日志和交互式提示。
    • 运行时输出使用简洁的标签 [EN] 和 [ZH] 为了清晰和一致。
    • 文档使用章节标签 English: 和 中文: 如本README中所示。
  • 中文:
    • 所有面向用户的消息均提供中英双语,包括 CLI 输出、HTTP API 响应、MCP 工具结果、错误/异常、日志以及交互式提示。
    • 运行时输出统一使用简洁标签 [EN] 与 [ZH],保持清晰一致。
    • 文档采用 English: 与 中文: 的分段标注方式,便于阅读与检索。

Format guidelines / 格式规范:

  • 英语:
    • CLI:打印两行 [EN] ... 然后 [ZH] ...
    • API:包括 messages.en 和 messages.zh JSON响应
    • MCP:返回带有双语部分的工具文本或 messages 对象
    • 错误:附加 code, messages.en, messages.zh,可选 details
    • 日志:将双语文本写入 combined.log 具有相同的标签
  • 中文:
    • CLI:输出两行,先 [EN] ... 后 [ZH] ...
    • API:JSON 响应包含 messages.en 与 messages.zh
    • MCP:工具返回文本含双语段落或提供 messages 对象
    • 错误:包含 code、messages.en、messages.zh 与可选 details
    • 日志:以相同标签写入 combined.log

示例/示例:

CLI outputs / CLI 输出:

[EN] Inspect succeeded: SSH connected, ports open, resources healthy.
[ZH] 预检成功:SSH 连通、端口可用、系统资源健康。

[EN] Error: Failed to connect SSH. Please verify host and credentials.
[ZH] 错误:SSH 连接失败。请检查主机地址与凭证信息。

API responses / API 响应:

{
  "ok": true,
  "code": "INSPECT_OK",
  "messages": {
    "en": "Inspection completed successfully.",
    "zh": "预检已成功完成。"
  },
  "data": { "host": "10.0.0.1", "summary": { "ssh": "ok", "ports": [22, 80] } }
}

Error payload / 错误载荷:

{
  "ok": false,
  "code": "SSH_CONNECT_FAILED",
  "messages": {
    "en": "Failed to establish SSH connection.",
    "zh": "无法建立 SSH 连接。"
  },
  "details": { "host": "10.0.0.1", "port": 22 }
}

MCP tool result / MCP 工具结果:

{
  "tool": "analyze_dependencies",
  "ok": true,
  "messages": {
    "en": "Dependencies analyzed and recommendations generated.",
    "zh": "依赖分析完成并生成配置建议。"
  },
  "result": { "dependencies": ["node", "docker"], "recommendations": ["enable ufw"] }
}

Logs / 日志:

2025-01-12T10:00:00.000Z [INFO] [EN] Initialized firewall rules.
2025-01-12T10:00:00.000Z [INFO] [ZH] 防火墙规则已初始化。

Interactive prompts / 交互式提示:

[EN] Missing required option: --host. Please provide a target host.
[ZH] 缺少必需参数:--host。请提供目标主机。

Consistency / 一致性要求:

  • 英语:
    • 保持不同语言的动态值相同;避免内容分歧。
    • 喜欢简短、可诉的句子;不要在一条消息中混合多个操作。
  • 中文:
    • 动态值应在两种语言中保持一致,避免内容不一致。
    • 采用简短、可执行的句式;一个消息不应混杂多个操作。

Features / 功能特性

  • 英语:
    • 部署前检查:网络、SSH连接、端口、系统资源、安全性
    • 初始化:更新、防火墙规则、web服务器、数据库、网络优化、安全强化
    • 多接口:CLI、HTTP API、MCP工具
    • 依赖分析和自动配置(Node/Python/Java/Go/Ruby/PHP/Docker)
    • 批量操作和快速检查
    • 结构化日志和JSON输出
  • 中文:
    • 预部署检查:网络、SSH连通性、端口、系统资源、安全
    • 初始化:系统更新、防火墙、Web服务器、数据库、网络优化、安全加固
    • 多接口:CLI、HTTP API、MCP工具
    • 依赖分析与自动配置(支持 Node/Python/Java/Go/Ruby/PHP/Docker)
    • 批量操作与快速检查
    • 结构化日志与 JSON 输出

Installation / 安装

  • 英语:
    • 要求:Node.js≥18(在Node24.x上测试),npm
    • 安装依赖项: npm install
  • 中文:
    • 环境要求:Node.js ≥ 18(已在 Node 24.x 上测试)、npm
    • 安装依赖:npm install

Configuration / 配置

  • 英语:
    • 集中配置 config/config.js:
      • SSH默认值、网络检查、服务检查(web/db/SSH)、阈值和初始化预设
    • 通过CLI标志或API主体参数覆盖
  • 中文:
    • 统一配置文件:config/config.js
      • SSH默认值、网络检查、服务检查(web/db/ssh)、系统阈值、初始化预设
    • 可通过 CLI 参数或 API 请求体覆盖

Quick Start / 快速开始

  • 英语:
    • 启动HTTP API: npm start (默认端口 3000)
    • 运行测试: npm test
    • MCP本地测试: npm run mcp:test
  • 中文:
    • 启动 HTTP API:npm start(默认端口 3000)
    • 运行测试:npm test
    • MCP 本地测试:npm run mcp:test

CLI Usage / CLI 使用

  • 英语:
    • 检查服务器:
      • serverready inspect -h <host> -u <username> -p <password> -P 22 --json
    • 初始化服务器:
      • serverready init -h <host> -u <username> -p <password> --web-server nginx --database mysql --json
    • 快速检查:
      • serverready quick-check -h <host> -u <username> -p <password> --json
    • 由本地项目部门自动配置:
      • serverready auto-config -h <host> -u <username> -p <password> --project . --env prod --json
  • 中文:
    • 服务器预检:
      • serverready inspect -h <host> -u <username> -p <password> -P 22 --json
    • 服务器初始化:
      • serverready init -h <host> -u <username> -p <password> --web-server nginx --database mysql --json
    • 快速检查:
      • serverready quick-check -h <host> -u <username> -p <password> --json
    • 基于本地项目依赖自动配置:
      • serverready auto-config -h <host> -u <username> -p <password> --project . --env prod --json

Notes / 备注:

  • 您可以提供 --private-key <path> 而不是 -p <password>
  • 可使用 --private-key <path> 替代 -p <password>

HTTP API / HTTP 接口

  • 英语:
    • 健康: GET /health
    • 版本: GET /api/version
    • 检查: POST /api/inspect
    • 初始化: POST /api/init
    • 快速检查: POST /api/quick-check
    • 配置转储: GET /api/config
    • 批量操作: POST /api/batch (操作: inspect 或 init)
    • 端口检查: POST /api/check-port
    • 依赖性分析: POST /api/deps/analyze
    • 自动配置(按部门): POST /api/deps/auto-config
  • 中文:
    • 健康检查:GET /health
    • 版本信息:GET /api/version
    • 服务器预检:POST /api/inspect
    • 服务器初始化:POST /api/init
    • 快速检查:POST /api/quick-check
    • 配置输出:GET /api/config
    • 批量操作:POST /api/batch(操作:inspect 或 init)
    • 端口检查:POST /api/check-port
    • 依赖分析:POST /api/deps/analyze
    • 基于依赖的自动配置:POST /api/deps/auto-config

示例/示例:

# Inspect / 预检
curl -X POST http://localhost:3000/api/inspect \
  -H "Content-Type: application/json" \
  -d '{"host":"<ip>","username":"root","password":"<pwd>","port":22}'

# Init / 初始化
curl -X POST http://localhost:3000/api/init \
  -H "Content-Type: application/json" \
  -d '{"host":"<ip>","username":"root","password":"<pwd>","webServer":"nginx","database":"mysql"}'

# Analyze deps / 分析依赖
curl -X POST http://localhost:3000/api/deps/analyze \
  -H "Content-Type: application/json" \
  -d '{"projectPath":".","env":"dev"}'

# Auto-config by deps / 基于依赖自动配置
curl -X POST http://localhost:3000/api/deps/auto-config \
  -H "Content-Type: application/json" \
  -d '{"host":"<ip>","username":"root","password":"<pwd>","projectPath":".","env":"prod"}'

MCP Tool / MCP 工具

  • 英语:
    • 启动MCP服务器(stdio): node src/mcp-server.js
    • 本地MCP测试: npm run mcp:test (使用 bin/test-mcp-client.js)
    • 工具:
      • inspect_server, quick_check, initialize_server, check_port, get_system_info
      • batch_inspect, analyze_dependencies, auto_configure_server
  • 中文:
    • 启动 MCP(stdio):node src/mcp-server.js
    • 本地测试:npm run mcp:test(使用 bin/test-mcp-client.js)
    • 工具列表:
      • inspect_server、quick_check、initialize_server、check_port、get_system_info
      • batch_inspect、analyze_dependencies、auto_configure_server

MCP usage examples / MCP 使用示例:

# List tools / 列出工具
npm run mcp:test -- --list

# Analyze deps / 分析依赖
npm run mcp:test -- --call analyze_dependencies --args '{"projectPath":".","env":"dev"}'

# Auto-config / 自动配置
npm run mcp:test -- --call auto_configure_server --args '{"host":"<ip>","username":"root","password":"<pwd>","projectPath":".","env":"prod"}'

AI IDE Integration / AI IDE集成

  • 英语:
    • 将ServerReady MCP服务器与流行的AI IDE集成,直接在聊天和命令面板中发现和使用工具。
    • 以下是Cursor、Trae、Claude Code和Codex的双语配置示例和步骤。
  • 中文:
    • 将 ServerReady MCP 服务器集成到主流 AI IDE,在聊天/命令面板中直接发现并使用工具。
    • 下方提供 Cursor、Trae、Claude Code、Codex 的中英双语配置示例与步骤。

Prerequisites / 前提条件:

  • 英语:
    • 确保 Node.js >= 18: node --version
    • 在工作区中安装依赖项: npm install
  • 中文:
    • 确保 Node.js >= 18:node --version
    • 在项目根目录安装依赖:npm install

光标

  • 英语:
    • 在游标设置或工作区配置中添加MCP服务器。
    • 配置示例:
  • 中文:
    • 在 Cursor 设置或工作区配置中添加 MCP 服务器。
    • 示例配置:
{
  "mcp": {
    "servers": {
      "serverready": {
        "command": "node",
        "args": ["src/mcp-server.js"],
        "cwd": "${workspaceFolder}",
        "env": {
          "NODE_ENV": "development"
        }
      }
    }
  }
}

Steps / 步骤:

  • 英语:
    • 打开光标设置→ MCP,添加服务器 serverready.
    • 将命令设置为 node,参数为 src/mcp-server.js,工作目录到工作区根目录。
  • 中文:
    • 打开 Cursor 设置 → MCP,添加服务器 serverready。
    • 命令设为 node,参数为 src/mcp-server.js,工作目录为项目根目录。

Usage examples / 使用示例:

  • 英语:
    • “分析当前存储库依赖关系和建议的服务器设置”→ calls analyze_dependencies.
    • “这台机器的3000端口打开了吗?”→ calls check_port.
    • “初始化此项目的服务器环境”→ calls auto_configure_server.
  • 中文:
    • “分析当前仓库依赖并给出服务器推荐” → 调用 analyze_dependencies。
    • “这台机器是否开放 3000 端口?” → 调用 check_port。
    • “为本项目完成基础环境初始化” → 调用 auto_configure_server。

崔

  • 英语:
    • 在Trae工具配置中添加MCP工具。
    • 配置示例:
  • 中文:
    • 在 Trae 工具配置中添加 MCP 工具。
    • 示例配置:
{
  "tools": {
    "serverready-mcp": {
      "type": "mcp",
      "config": {
        "command": "node",
        "args": ["${workspaceFolder}/src/mcp-server.js"],
        "workingDirectory": "${workspaceFolder}"
      }
    }
  }
}

Steps / 步骤:

  • 英语:
    • 打开Trae工具配置,添加 serverready-mcp.
    • 将命令设置为 node,参数为 ${workspaceFolder}/src/mcp-server.js.
  • 中文:
    • 打开 Trae 工具配置,添加 serverready-mcp。
    • 命令设为 node,参数为 ${workspaceFolder}/src/mcp-server.js。

Usage examples / 使用示例:

  • 英语:
    • 使用命令面板或聊天中的MCP工具: inspect_server, quick_check, initialize_server, check_port, get_system_info, batch_inspect, analyze_dependencies, auto_configure_server.
  • 中文:
    • 在命令面板或聊天中调用 MCP 工具:inspect_server、quick_check、initialize_server、check_port、get_system_info、batch_inspect、analyze_dependencies、auto_configure_server。

克劳德代码

  • 英语:
    • 创建 .claude/mcp.yml 在您的工作空间中,使用:
  • 中文:
    • 在项目根目录创建 .claude/mcp.yml,内容如下:
# .claude/mcp.yml
servers:
  serverready:
    command: node
    args:
      - src/mcp-server.js
    working_directory: .
    environment:
      NODE_ENV: development

Steps / 步骤:

  • 英语:
    • 必要时重新启动Claude Code;工具出现在MCP面板中。
  • 中文:
    • 必要时重启 Claude Code;工具会在 MCP 面板中显示。

Usage examples / 使用示例:

  • 中文:Call analyze_dependencies, inspect_server, check_port, auto_configure_server 从工具面板或聊天。
  • 中文:在工具面板或聊天中调用 analyze_dependencies、inspect_server、check_port、auto_configure_server。

法典

  • 英语:
    • 创建 .codex/mcp.json 在您的工作空间中,使用:
  • 中文:
    • 在项目根目录创建 .codex/mcp.json,内容如下:
{
  "servers": {
    "serverready": {
      "command": "node",
      "args": ["src/mcp-server.js"],
      "cwd": ".",
      "env": {
        "NODE_ENV": "development"
      },
      "transport": "stdio",
      "capabilities": {
        "tools": true,
        "resources": true
      }
    }
  }
}

Features / 特点:

  • 英语:
    • 本地MCP工具面板、每个工作区的服务器上下文和日志、自动重新连接和重试、细粒度权限提示。
  • 中文:
    • 原生 MCP 工具面板、工作区级服务器上下文与日志、自动重连与重试、细粒度权限提示。

Steps / 步骤(UI):

  • 英语:
    • 打开Codex设置→ Tools/MCP.
    • 添加服务器 serverready,命令 node,args src/mcp-server.js,工作目录 ..
    • 可选设置 NODE_ENV=development,选择交通工具 stdio.
    • 保存,然后提及 @serverready 在聊天室或打开工具面板进行测试。
  • 中文:
    • 打开 Codex 设置 → Tools/MCP。
    • 添加服务器 serverready,命令 node,参数 src/mcp-server.js,工作目录 .。
    • 可选设置 NODE_ENV=development,传输方式选择 stdio。
    • 保存后在聊天中输入 @serverready 或打开工具面板测试连接。

Usage examples / 使用示例:

  • 英语:
    • “分析当前存储库并推荐服务器环境”→ analyze_dependencies.
    • 命令面板: ServerReady › inspect_server 并填写目标主机信息。
    • “3000号港口现在开放了吗?”→ check_port.
    • “在目标服务器上初始化此项目的基础环境”→ auto_configure_server.
  • 中文:
    • “分析当前仓库并推荐服务器环境” → analyze_dependencies。
    • 命令面板:选择 ServerReady › inspect_server 并填写目标主机信息。
    • “现在这台机器是否开放 3000 端口?” → check_port。
    • “根据本项目在目标服务器完成基础环境搭建” → auto_configure_server。

Dependency Analysis & Auto Config / 依赖分析与自动配置

  • 英语:
    • 检测运行时、框架、数据库、缓存、队列、构建/测试工具、docker;评估健康状况并扫描常见的安全问题;按环境生成服务器推荐(dev/test/prod).
  • 中文:
    • 检测运行时、框架、数据库、缓存、消息队列、构建/测试工具、Docker;评估项目健康并扫描常见安全问题;按环境(dev/test/prod)生成服务器配置建议。

Outputs include / 输出内容包含:

  • dependencies, recommendations, health, securityIssues, timestamp

Logs / 日志

  • 英语:
    • 日志被写入 logs/combined.log 和 logs/error.log
  • 中文:
    • 日志输出到 logs/combined.log 和 logs/error.log

Testing & Lint / 测试与代码规范

  • 英语:
    • 运行测试: npm test
    • 新闻报道: npm run test:coverage
    • MCP测试: npm run mcp:test
    • 棉绒: npm run lint,修复: npm run lint:fix
  • 中文:
    • 运行测试:npm test
    • 覆盖率:npm run test:coverage
    • MCP 测试:npm run mcp:test
    • 棉绒:npm run lint,自动修复:npm run lint:fix

Security Notes / 安全说明

  • 英语:
    • 避免以纯文本形式存储凭据;更喜欢 --private-key
    • 使用 env=prod 更严格的安全强化
  • 中文:
    • 避免明文保存凭证,尽量使用 --private-key
    • 生产环境设置 env=prod 开启更严格的安全加固

Contributing / 参与贡献

  • 英语:
    • 欢迎发布问题和PR。请运行 npm test 在提交之前。
  • 中文:
    • 欢迎提交问题和 PR。提交前请运行 npm test。

License / 许可证

  • 中文:ISC许可证
  • 中文:ISC 许可证