atlas-cloud — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited atlas-cloud (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Atlas Cloud is an AI API aggregation platform that provides access to 300+ image, video, audio (TTS · music · speech-to-text), 3D, and LLM models through a unified interface. This skill helps you quickly integrate Atlas Cloud API into any project.
Create an API Key at Atlas Cloud Console.
export ATLASCLOUD_API_KEY="your-api-key-here"Atlas Cloud has the following API endpoints:
| Endpoint | Base URL | Purpose |
|---|---|---|
| Media Generation API | https://api.atlascloud.ai/api/v1 | Image generation, video generation, poll results, upload media |
| LLM API | https://api.atlascloud.ai/v1 | Chat completions (OpenAI-compatible) |
All requests require the following headers:
Authorization: Bearer $ATLASCLOUD_API_KEY
Content-Type: application/json| Method | Endpoint | Description |
|---|---|---|
POST | /api/v1/model/generateImage | Submit image generation task |
POST | /api/v1/model/generateVideo | Submit video generation task |
POST | /api/v1/model/generateAudio | Submit audio task — TTS, music generation, speech-to-text (ASR) |
GET | /api/v1/model/prediction/{id} | Check generation task status and result |
POST | /api/v1/model/uploadMedia | Upload local media file to get a public URL |
POST | /v1/chat/completions | LLM chat (OpenAI-compatible format) |
GET | api.atlascloud.ai/api/v1/models | List all available models (no auth required) |
Using this through the Atlas Cloud plugin (no API key needed)
>
The Atlas Cloud Codex plugin ships a remote MCP server (atlas-cloud) whose credentials come from one browser sign-in by the user, not fromATLASCLOUD_API_KEY. Generation is billed to the user's own Atlas account.
>
In that environment: - Do not ask the user to create, copy or paste an API key, and do not use thenpx atlascloud-mcpinstall below — that route is for a standalone server with its own key. - When authorization is needed, tell the user to click "Authenticate" on the plugin, or runcodex mcp login atlas-cloud. - Everything else on this page still applies: the tool names, parameters, the mandatory two-call billing flow, and every reference doc. Only the credential differs.
>
When the user wants to integrate Atlas into their own project, keep following the references below — that case does need their own API key. Rule of thumb: "generate X for me" → use the tools; "help me integrate X" → give them code.
If the user has installed the Atlas Cloud MCP Server (npx atlascloud-mcp), all 16 tools below are available for direct invocation. A hosted connector exposes 14 of them — atlas_chat and atlas_upload_media are local-only, the latter because a hosted server cannot read the caller's disk. Check your own tool list rather than assuming.
#### atlas_list_models — List All Models
type (optional): "Text" | "Image" | "Video" | "Audio"type="Image" for image models only#### atlas_search_docs — Search Models & Docs
query (required): Search keyword matching model names, types, providers, tags"video generation", "deepseek", "image edit", "qwen"#### atlas_get_model_info — Get Model Details
model (required): Model ID, e.g. "deepseek-ai/deepseek-v3.2"model="deepseek-ai/deepseek-v3.2"#### atlas_generate_image — Generate Image
model (required): Exact image model IDparams (required): Model-specific parameter JSON object (e.g. prompt, image_size, etc.)atlas_list_models or atlas_search_docsatlas_get_prediction to check result#### atlas_generate_video — Generate Video
model (required): Exact video model IDparams (required): Model-specific parameter JSON object (e.g. prompt, duration, aspect_ratio, image_url, etc.)#### atlas_generate_audio — Generate Audio (TTS & Music)
model (required): Exact audio model ID (e.g. "bytedance/seed-audio-1.0", "suno/chirp-v5", "minimax/music-2.6")params (required): Model-specific JSON — TTS models usually take text; music models usually take prompt and/or lyrics#### atlas_transcribe_audio — Transcribe Audio (Speech-to-Text)
model (required): Exact speech-to-text model ID (e.g. "bytedance/seed-asr-2.0")params (required): Model-specific JSON — main field is usually audio_url; for local files upload them first (see "Uploading a local file" below — the tool differs between hosted and local connections)#### atlas_quick_generate — Quick Generate (One-Step)
model_keyword (required): Model search keyword, e.g. "nano banana", "seedream", "kling v3"type (required): "Image" | "Video" | "Audio"prompt (required): Text description of what to generateimage_url (optional): Source image URL for image-to-video, image editing, image-to-3D, or talking-avatar modelsaudio_url (optional): Source audio URL for lipsync / talking-avatar or speech-to-text modelsextra_params (optional): Additional model-specific parameters to override defaultsmodel_keyword="seedream v5", type="Image", prompt="a cute cat"#### atlas_chat — LLM Chat
model (required): LLM model IDmessages (required): Array of message objects with role and contenttemperature (optional): Sampling temperature 0-2max_tokens (optional): Maximum response tokenstop_p (optional): Nucleus sampling parameter 0-1#### atlas_get_prediction — Check Generation Result
prediction_id (required): Prediction ID returned from a generation requeststarting → processing → completed/succeeded/failed#### Uploading a local file — which tool exists depends on how you are connected
Check your tool list first. The two cases are mutually exclusive; a hosted server does not expose atlas_upload_media at all, because it cannot read your disk.
`atlas_get_upload_url` — hosted connector (ChatGPT, Codex, Claude, anything pointed at https://mcp.atlascloud.ai/mcp)
curl_example it returns — put the filename, extension included, in the X-Atlas-Filename header. That one curl needs no API key: the ticket already carries your identity and points at the connector's own relay, not at Atlas's REST APIurl from the response`atlas_upload_media` — local stdio (the atlascloud-mcp npm package)
file_path (required): Absolute path to the local fileEither way, pass the returned URL as image_url for atlas_generate_image / atlas_generate_video / atlas_quick_generate, or as the audio parameter for atlas_transcribe_audio.
Three cases where you must say so plainly instead of claiming an upload: the file is over max_bytes (32MB default — common for long video), neither tool is in your list (a server that predates the ticket flow), or the curl failed / the response carried no url. Ask for a public link in those cases. Passing a local path straight to a generation tool always fails — do not try it.
#### atlas_get_balance — Account Balance
#### atlas_get_model_usage — Daily Usage
start_date, end_date (optional date range)#### atlas_get_model_costs — Daily Costs
start_date, end_date (optional date range)Image generation is an asynchronous two-step process: submit task → poll result.
POST https://api.atlascloud.ai/api/v1/model/generateImageRequest body:
{
"model": "bytedance/seedream-v5.0-lite",
"prompt": "A beautiful sunset over mountains",
"image_size": "1024x1024"
}Response:
{
"code": 200,
"data": {
"id": "prediction_abc123",
"status": "starting"
}
}Different models accept different parameters. Common parameters include:
prompt (required): Image descriptionimage_size / width + height: Dimensionsnum_inference_steps: Inference stepsguidance_scale: Guidance scaleimage_url: Input image (for image-to-image models)GET https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}Response:
{
"code": 200,
"data": {
"id": "prediction_abc123",
"status": "completed",
"outputs": ["https://cdn.atlascloud.ai/generated/xxx.png"]
}
}Possible status values: starting → processing → completed / failed
Image generation typically takes 10-30 seconds. Poll every 3 seconds.
Video generation follows the exact same flow as image generation, just with a different endpoint.
POST https://api.atlascloud.ai/api/v1/model/generateVideoRequest body:
{
"model": "bytedance/seedance-2.0/text-to-video",
"prompt": "A rocket launching into space, cinematic lighting",
"duration": 5,
"resolution": "1080p",
"ratio": "16:9",
"generate_audio": true
}Common video model parameters:
prompt (required for T2V): Video descriptionimage / image_url: Input image (for image-to-video models — Seedance 2.5 uses image, Kling uses image_url)duration: Video duration in seconds (Seedance 2.5 supports 4-30, Seedance 2.0 supports 4-15, or -1 for auto)resolution: "480p" / "720p" / "1080p" native; Seedance 2.5 also takes -sr / -esr upscale tiers up to "4k-sr"aspect_ratio / ratio: Aspect ratio (e.g., "16:9", "9:16", "1:1", "21:9", "adaptive")generate_audio: Seedance 2.5 / 2.0 generate synchronized native audio (voice/SFX/BGM) jointly with video. Default trueweb_search: Seedance T2V only — enable to ground generation in real-world references. Default falseDifferent video models accept different parameters. Always call atlas_get_model_info or fetch the schema first for unfamiliar models.Poll results using the same prediction endpoint. Video generation typically takes 1-5 minutes (Fast variants 30-90s).
For workloads that need the unrestricted / full-capability build — looser guardrails, broader subject coverage, and maximum-fidelity output that goes beyond the standard API's content policy — route the job through Atlas Cloud Workflow. It's the same account, same API key, same polling contract; just a different submission entry point designed for advanced production use.
Use this when the default Seedance 2.5 endpoint rejects a legitimate creative prompt or clamps stylistic range. Point the user to Atlas Cloud Workflow if they hit refusals on non-violating prompts.
Upload a local file to Atlas Cloud to get a publicly accessible URL. This is required when you need to provide an image_url to image-editing or image-to-video models but only have a local file.
POST https://api.atlascloud.ai/api/v1/model/uploadMedia
Content-Type: multipart/form-data
Authorization: Bearer $ATLASCLOUD_API_KEYRequest: multipart form data with a file field containing the file binary.
Response:
{
"code": 200,
"data": {
"download_url": "https://atlas-img.oss-accelerate-overseas.aliyuncs.com/media/xxx.jpg",
"filename": "photo.jpg",
"size": 123456
}
}image_url parameter in generation requestImportant: This upload endpoint is strictly for temporary use with Atlas Cloud generation tasks. Uploaded files will be cleaned up periodically. Do NOT use this as permanent file hosting, CDN, or for any purpose unrelated to Atlas Cloud image/video generation. Abuse (e.g., bulk uploads, hosting illegal or unrelated content) may result in immediate API key suspension.
The LLM API is fully compatible with the OpenAI format. You can use the OpenAI SDK directly.
POST https://api.atlascloud.ai/v1/chat/completionsRequest body:
{
"model": "qwen/qwen3.5-397b-a17b",
"messages": [
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello!"}
],
"max_tokens": 1024,
"temperature": 0.7,
"stream": false
}Response (standard OpenAI format):
{
"id": "chatcmpl-xxx",
"model": "qwen/qwen3.5-397b-a17b",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "Hello! How can I help?"},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 20,
"completion_tokens": 8,
"total_tokens": 28
}
}Since Atlas Cloud LLM API is fully OpenAI-compatible, you can use the official SDKs directly:
Python:
from openai import OpenAI
client = OpenAI(
api_key="your-atlascloud-api-key",
base_url="https://api.atlascloud.ai/v1"
)
response = client.chat.completions.create(
model="qwen/qwen3.5-397b-a17b",
messages=[{"role": "user", "content": "Hello!"}],
max_tokens=1024
)
print(response.choices[0].message.content)Node.js / TypeScript:
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'your-atlascloud-api-key',
baseURL: 'https://api.atlascloud.ai/v1',
});
const response = await client.chat.completions.create({
model: 'qwen/qwen3.5-397b-a17b',
messages: [{ role: 'user', content: 'Hello!' }],
max_tokens: 1024,
});
console.log(response.choices[0].message.content);For full implementation code with polling logic, error handling, and streaming support, read the reference files:
Read the corresponding reference file when you need to write specific integration code.
This rule is non-negotiable. Model IDs and parameter schemas change constantly. Any ID, parameter name, default value, enum option, or price written into a prompt, code snippet, or reply MUST come from a live API response — not from memory, not from a training snapshot, not inferred by pattern, not copied from the examples below.
Always call this first. No authentication required:
GET https://api.atlascloud.ai/api/v1/modelsFilter to display_console: true — anything else is internal and will not work for the user.
If the MCP server is installed, call atlas_list_models or atlas_search_docs instead; they return the same live data in a digestible form.
Each model accepts a different set of parameters. Never guess parameter names, defaults, enums, or required fields. For the target model, pull the authoritative schema:
atlas_get_model_info with the exact model ID — returns the full input/output schema, enums, defaults, and cURL example.schema URL from the model entry returned in Step 1 — it's an OpenAPI document; read components.schemas.Input.properties for the real parameter surface.Build your request body ONLY from the fields listed in that schema. If a parameter you want to use isn't in the schema, it doesn't exist on that model — do not send it.
Before you send a response to the user that references any model ID, parameter, or price:
/api/v1/models (or called atlas_list_models / atlas_search_docs) in this turn or the conversation, and confirmed the ID is present with display_console: true.atlas_get_model_info) and confirmed each parameter you use.The tables below are illustrative only. They go stale. Treat them as hints about what kind of models exist, never as a source of truth for an actual request.
| Model ID | Name | Price |
|---|---|---|
google/nano-banana-2/text-to-image | Nano Banana 2 Text-to-Image | $0.072/image |
google/nano-banana-2/text-to-image-developer | Nano Banana 2 Developer | $0.056/image |
google/nano-banana-2/edit | Nano Banana 2 Edit | $0.072/image |
bytedance/seedream-v5.0-lite | Seedream v5.0 Lite | $0.032/image |
bytedance/seedream-v5.0-lite/edit | Seedream v5.0 Lite Edit | $0.032/image |
alibaba/qwen-image/edit-plus-20251215 | Qwen-Image Edit Plus | $0.021/image |
z-image/turbo | Z-Image Turbo | $0.01/image |
| Model ID | Name | Price |
|---|---|---|
bytedance/seedance-2.5/text-to-video | Seedance 2.5 Text-to-Video (native audio, 4-30s, native up to 1080p / 4K via SR) | $0.134/s |
bytedance/seedance-2.5/image-to-video | Seedance 2.5 Image-to-Video (first+last frame, native audio) | $0.134/s |
bytedance/seedance-2.5/reference-to-video | Seedance 2.5 Reference-to-Video (multimodal: up to 30 images + 10 videos + 10 audio) | $0.134/s |
bytedance/seedance-2.0/text-to-video | Seedance 2.0 Text-to-Video (native audio, 4-15s) | $0.112/s |
bytedance/seedance-2.0-fast/text-to-video | Seedance 2.0 Fast Text-to-Video | $0.072/s |
bytedance/seedance-2.0-fast/image-to-video | Seedance 2.0 Fast Image-to-Video | $0.072/s |
bytedance/seedance-2.0-fast/reference-to-video | Seedance 2.0 Fast Reference-to-Video | $0.072/s |
bytedance/seedance-2.0-mini/text-to-video | Seedance 2.0 Mini Text-to-Video (cheapest Seedance tier) | $0.039/s |
kwaivgi/kling-v3.0-std/text-to-video | Kling v3.0 Std Text-to-Video | $0.071/s |
kwaivgi/kling-v3.0-std/image-to-video | Kling v3.0 Std Image-to-Video | $0.071/s |
kwaivgi/kling-v3.0-pro/text-to-video | Kling v3.0 Pro Text-to-Video | $0.095/s |
kwaivgi/kling-v3.0-pro/image-to-video | Kling v3.0 Pro Image-to-Video | $0.095/s |
kwaivgi/kling-video-o3-pro/text-to-video | Kling Video O3 Pro Text-to-Video | $0.095/s |
vidu/q3-pro/text-to-video | Vidu Q3 Pro Text-to-Video | $0.042/s |
vidu/q3-pro/image-to-video | Vidu Q3 Pro Image-to-Video | $0.042/s |
alibaba/wan-2.7/image-to-video | Wan-2.7 Image-to-Video (newest Wan on Atlas Cloud) | $0.1/s |
bytedance/seedance-v1.5-pro/text-to-video | Seedance v1.5 Pro Text-to-Video | $0.047/s |
bytedance/seedance-v1.5-pro/image-to-video | Seedance v1.5 Pro Image-to-Video | $0.047/s |
bytedance/seedance-v1.5-pro/image-to-video-fast | Seedance v1.5 Pro I2V Fast | $0.018/s |
alibaba/wan-2.6/image-to-video-flash | Wan-2.6 Image-to-Video Flash | $0.018/s |
kwaivgi/kling-v2.6-pro/avatar | Kling v2.6 Pro Avatar | $0.095/s |
kwaivgi/kling-v2.6-std/avatar | Kling v2.6 Std Avatar | $0.048/s |
kwaivgi/kling-v3.0-pro/motion-control | Kling v3.0 Pro Motion Control | $0.143/s |
| Model ID | Name | Input | Output |
|---|---|---|---|
qwen/qwen3.5-397b-a17b | Qwen3.5 397B A17B | $0.55/M | $3.5/M |
qwen/qwen3.5-122b-a10b | Qwen3.5 122B A10B | $0.3/M | $2.4/M |
moonshotai/kimi-k2.5 | Kimi K2.5 | $0.5/M | $2.6/M |
zai-org/glm-5 | GLM 5 | $0.95/M | $3.15/M |
minimaxai/minimax-m2.5 | MiniMax M2.5 | $0.295/M | $1.2/M |
deepseek-ai/deepseek-v3.2-speciale | DeepSeek V3.2 Speciale | $0.4/M | $1.2/M |
qwen/qwen3-coder-next | Qwen3 Coder Next | $0.18/M | $1.35/M |
The model list is continuously updated. Get the latest full list:
GET https://api.atlascloud.ai/api/v1/modelsThis endpoint requires no authentication.
| HTTP Status | Meaning | Suggested Action |
|---|---|---|
| 401 | Invalid or expired API Key | Check ATLASCLOUD_API_KEY |
| 402 | Insufficient balance | Top up at Billing Page |
| 429 | Rate limited | Wait and retry with exponential backoff |
| 5xx | Server error | Wait and retry |
Atlas Cloud MCP Server provides 16 tools for direct use in any MCP-compatible client (a hosted connector exposes 14 of them). Prerequisites: Node.js >= 18 and an Atlas Cloud API Key.
# Claude Code
claude mcp add atlascloud -- npx -y atlascloud-mcp
# Gemini CLI
gemini mcp add atlascloud -- npx -y atlascloud-mcp
# OpenAI Codex CLI
codex mcp add atlascloud -- npx -y atlascloud-mcp
# Goose CLI
goose mcp add atlascloud -- npx -y atlascloud-mcpFor CLI tools, make sure to set theATLASCLOUD_API_KEYenvironment variable in your shell: ``bash export ATLASCLOUD_API_KEY="your-api-key-here"``
Add to your MCP configuration file — works with all MCP-compatible IDEs and editors:
{
"mcpServers": {
"atlascloud": {
"command": "npx",
"args": ["-y", "atlascloud-mcp"],
"env": {
"ATLASCLOUD_API_KEY": "your-api-key-here"
}
}
}
}| Client | Config Location |
|---|---|
| Cursor | Settings → MCP → Add Server |
| Windsurf | Settings → MCP → Add Server |
| VS Code (Copilot) | .vscode/mcp.json or Settings → MCP |
| Trae | Settings → MCP → Add Server |
| Zed | Settings → MCP |
| JetBrains IDEs | Settings → Tools → AI Assistant → MCP |
| Claude Desktop | claude_desktop_config.json |
| ChatGPT Desktop | Settings → MCP |
| Amazon Q Developer | MCP Configuration |
These VS Code extensions also support MCP with the same JSON config format:
| Extension | Install |
|---|---|
| Cline | MCP Marketplace → Add Server |
| Roo Code | Settings → MCP → Add Server |
| Continue | config.yaml → MCP |
If you prefer using Skills instead of MCP:
npx skills add AtlasCloudAI/atlas-cloud-skills~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.