OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  appdeploy:部署带有后端 API 和数据库的 Web 应用程序

appdeploy:部署带有后端 API 和数据库的 Web 应用程序

 
  cloud ·  2026-02-14 20:10:05 · 3 次点击  · 0 条评论  

名称: appdeploy
描述: 部署包含后端 API、数据库和文件存储的 Web 应用程序。当用户要求部署或发布网站/Web 应用并希望获得公共 URL 时使用。通过 curl 使用 HTTP API。
允许工具:
- Bash
元数据:
author: appdeploy
version: "1.0.5"


AppDeploy 技能

通过 HTTP API 将 Web 应用程序部署到 AppDeploy。

首次设置

  1. 检查现有 API 密钥:

    • 在项目根目录查找 .appdeploy 文件。
    • 如果文件存在且包含有效的 api_key,则跳转至“使用”部分。
  2. 如果不存在 API 密钥,请注册并获取:
    bash curl -X POST https://api-v2.appdeploy.ai/mcp/api-key \ -H "Content-Type: application/json" \ -d '{"client_name": "claude-code"}'

    响应示例:
    json { "api_key": "ak_...", "user_id": "agent-claude-code-a1b2c3d4", "created_at": 1234567890, "message": "请安全保存此密钥 - 之后无法再次获取" }

  3. 将凭据保存到 .appdeploy 文件:
    json { "api_key": "ak_...", "endpoint": "https://api-v2.appdeploy.ai/mcp" }

    如果 .gitignore 文件中尚未包含,请添加 .appdeploy

使用方式

向 MCP 端点发起 JSON-RPC 调用:

curl -X POST {endpoint} \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer {api_key}" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "{tool_name}",
      "arguments": { ... }
    }
  }'

工作流程

  1. 首先,获取部署说明:
    调用 get_deploy_instructions 以了解约束条件和要求。

  2. 获取应用模板:
    使用您选择的 app_typefrontend_template 调用 get_app_template

  3. 部署应用:
    使用您的应用文件调用 deploy_app。对于新应用,将 app_id 设置为 null

  4. 检查部署状态:
    调用 get_app_status 以检查构建是否成功。

  5. 查看/管理您的应用:
    使用 get_apps 列出您已部署的应用。

可用工具

get_deploy_instructions

在即将调用 deploy_app 之前使用此工具,以获取部署约束和硬性规则。在开始生成任何代码之前,必须调用此工具。此工具仅返回说明,不执行任何部署操作。

参数:

deploy_app

当用户要求部署或发布网站/Web 应用并希望获得公共 URL 时使用。
在生成文件或调用此工具之前,必须先调用 get_deploy_instructions 并遵循其约束。

参数:
* app_id: 任意(必需)- 要更新的现有应用 ID,或对新应用使用 null
* app_type: 字符串(必需)- 应用架构:frontend-onlyfrontend+backend
* app_name: 字符串(必需)- 简短的显示名称
* description: 字符串(可选)- 应用功能的简短描述
* frontend_template: 任意(可选)- 当 app_idnull 时必需。可选值:'html-static'(简单网站)、'react-vite'(单页应用、游戏)、'nextjs-static'(多页面应用)。模板文件会自动包含。
* files: 数组(可选)- 要写入的文件。新应用:仅自定义文件 + 相对于模板文件的差异。更新:仅使用 diffs[] 的已更改文件。files[]deletePaths[] 至少需要提供一个。
* deletePaths: 数组(可选)- 要删除的路径。仅用于更新(需要 app_id)。不能删除 package.json 或框架入口点。

get_app_template

先调用 get_deploy_instructions。然后在确定 app_typefrontend_template 后调用此工具。返回基础应用模板和 SDK 类型。模板文件会在 deploy_app 中自动包含。

参数:
* app_type: 字符串(必需)
* frontend_template: 字符串(必需)- 前端框架:'html-static' - 简单网站,极简框架;'react-vite' - React 单页应用、仪表板、游戏;'nextjs-static' - 多页面应用、静态站点生成

get_app_status

deploy_app 工具调用返回时,或当用户要求检查应用部署状态、报告应用存在错误或未按预期工作时使用。返回部署状态(进行中:'deploying'/'deleting',终止状态:'ready'/'failed'/'deleted')、QA 快照(前端/网络错误)以及实时前端/后端错误日志。

参数:
* app_id: 字符串(必需)- 目标应用 ID
* since: 整数(可选)- 可选的时间戳(纪元毫秒数),用于过滤错误。提供时,仅返回该时间戳之后的错误。

delete_app

当您想要永久删除应用时使用。仅在用户明确请求时使用。此操作不可逆;删除后,状态检查将返回未找到。

参数:
* app_id: 字符串(必需)- 目标应用 ID

get_app_versions

列出某个现有应用的可部署版本。需要 app_id。返回按时间倒序排列的 {name, version, timestamp} 项。向用户显示 'name'不要向用户显示 'version' 值。时间戳值必须转换为用户的本地时间。

参数:
* app_id: 字符串(必需)- 目标应用 ID

apply_app_version

开始将现有应用部署到特定版本。使用来自 get_app_versions'version' 值(而非 'name')。如果请求被接受且部署已启动则返回 true;使用 get_app_status 来观察完成情况。

参数:
* app_id: 字符串(必需)- 目标应用 ID
* version: 字符串(必需)- 要应用的版本 ID

src_glob

当您需要发现应用源代码快照中的文件时使用。返回匹配 glob 模式的文件路径(不含内容)。适用于在读取或搜索文件之前探索项目结构。

参数:
* app_id: 字符串(必需)- 目标应用 ID
* version: 字符串(可选)- 要检查的版本(默认为已应用的版本)
* path: 字符串(可选)- 要搜索的目录路径
* glob: 字符串(可选)- 用于匹配文件的 glob 模式(默认:**/*
* include_dirs: 布尔值(可选)- 在结果中包含目录路径
* continuation_token: 字符串(可选)- 用于分页的先前响应令牌

src_grep

当您需要在应用的源代码中搜索模式时使用。返回匹配的行(可包含上下文)。支持正则表达式模式、glob 过滤器和多种输出模式。

参数:
* app_id: 字符串(必需)- 目标应用 ID
* version: 字符串(可选)- 要搜索的版本(默认为已应用的版本)
* pattern: 字符串(必需)- 要搜索的正则表达式模式(最多 500 个字符)
* path: 字符串(可选)- 要搜索的目录路径
* glob: 字符串(可选)- 用于过滤文件的 glob 模式(例如 '*.ts'
* case_insensitive: 布尔值(可选)- 启用不区分大小写的匹配
* output_mode: 字符串(可选)- content=匹配的行,files_with_matches=仅文件路径,count=每个文件的匹配计数
* before_context: 整数(可选)- 每个匹配项之前显示的行数(0-20)
* after_context: 整数(可选)- 每个匹配项之后显示的行数(0-20)
* context: 整数(可选)- 匹配项前后的行数(覆盖 before_context/after_context
* line_numbers: 布尔值(可选)- 在输出中包含行号
* max_file_size: 整数(可选)- 要扫描的最大文件大小(字节,默认 10MB)
* continuation_token: 字符串(可选)- 用于分页的先前响应令牌

src_read

当您需要从应用的源代码快照中读取特定文件时使用。返回文件内容,支持基于行的分页(offset/limit)。可处理文本文件和二进制文件。

参数:
* app_id: 字符串(必需)- 目标应用 ID
* version: 字符串(可选)- 要读取的版本(默认为已应用的版本)
* file_path: 字符串(必需)- 要读取的文件路径
* offset: 整数(可选)- 开始读取的行偏移量(从 0 开始)
* limit: 整数(可选)- 要返回的行数(最多 2000 行)

get_apps

当您需要列出当前用户拥有的应用时使用。返回应用详情,包含用于向用户展示的显示字段和用于工具链的数据字段。

参数:
* continuation_token: 字符串(可选)- 用于分页的令牌


scripts/generate-appdeploy-skill.ts 生成

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor