CCAPI

Image, video, music and text generation across 100+ models through one endpoint.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
80%
命名品質
100%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,789Token(工具定義)
~4.7 KB典型回應大小
中等的注意力影響(128k 上下文的 1.40%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "mcp": {
      "url": "https://api.ccapi.ai/mcp"
    }
  }
}

遠端端點

https://api.ccapi.ai/mcpstreamable-http
https://api.ccapi.ai/mcp/imagestreamable-http
https://api.ccapi.ai/mcp/videostreamable-http
https://api.ccapi.ai/mcp/musicstreamable-http
https://api.ccapi.ai/mcp/textstreamable-http

它能做什麼

工具清單

工具(4)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢generate_video(model, prompt, images, videos, audios, ...)

Generate a video from a text prompt, optionally driven by reference images (image-to-video, first/last frame). This is asynchronous: it returns a task_id you poll with get_task(platform='video'). Generation usually takes 30-180 seconds. Pass wait_seconds to have the server poll for you. Video generation is the most expensive capability here — confirm the prompt with the user before spending on retries.

輸入結構描述

{
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "description": "Exact model name, e.g. doubao-seedance-2-0-260128, veo-3.1-quality or viduq3-pro. Call list_models with category 'video' if unsure."
    },
    "prompt": {
      "type": "string",
      "description": "Description of the video to generate."
    },
    "images": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Optional reference image URLs. A single image is used as the first frame; use image_roles to control multiple."
    },
    "videos": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Optional Seedance reference video URLs or asset:// URIs returned by the trusted asset catalog."
    },
    "audios": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Optional Seedance reference audio URLs or asset:// URIs returned by the trusted asset catalog. Reference audio cannot be used alone."
    },
    "duration": {
      "type": [
        "null",
        "integer"
      ],
      "description": "Clip length in seconds. Model-dependent, typically 4-15; an unsupported value is rejected with a message naming the supported ones. Omit for the model default."
    },
    "resolution": {
      "type": "string",
      "description": "Output resolution: 480p, 720p (widest compatibility) or 1080p. Model-dependent."
    },
    "ratio": {
      "type": "string",
      "description": "Aspect ratio, e.g. 16:9, 9:16, 1:1, 21:9 or adaptive. Which values a model accepts varies; an unsupported one is rejected with a message naming the valid ones."
    },
    "generate_audio": {
      "type": [
        "null",
        "boolean"
      ],
      "description": "Generate a synchronised soundtrack. Only some models support this."
    },
    "image_roles": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Role of each entry in images, positionally: first_frame, last_frame or reference_image."
    },
    "wait_seconds": {
      "type": [
        "null",
        "integer"
      ],
      "description": "Poll server-side for up to this many seconds (max 240) and return the finished video if it completes in time. Omit to return a task_id immediately."
    }
  },
  "required": [
    "model",
    "prompt"
  ],
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string",
      "description": "Pass this to get_task together with platform to check progress."
    },
    "platform": {
      "type": "string",
      "description": "Always 'video'. Pass to get_task."
    },
    "status": {
      "type": "string",
      "description": "One of: queued, in_progress, completed, failed."
    },
    "model": {
      "type": "string",
      "description": "Model that accepted the request."
    },
    "video_urls": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Finished video URLs, when the task completed within wait_seconds."
    },
    "note": {
      "type": "string",
      "description": "What to do next."
    }
  },
  "required": [
    "task_id",
    "platform",
    "status",
    "model",
    "note"
  ],
  "additionalProperties": false
}
🟢get_balance

Report the remaining and used balance for this CCAPI key. Useful before starting an expensive batch of generations, or to explain a quota failure to the user.

輸入結構描述

{
  "type": "object",
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "unlimited": {
      "type": "boolean",
      "description": "True when this token has no spending cap, in which case the amount fields are not meaningful."
    },
    "remaining_amount": {
      "type": "number",
      "description": "Remaining balance, in the account's display currency. Omitted when unlimited."
    },
    "used_amount": {
      "type": "number",
      "description": "Balance consumed to date, in the same unit."
    },
    "total_amount": {
      "type": "number",
      "description": "Remaining plus used. Omitted when unlimited."
    },
    "currency": {
      "type": "string",
      "description": "Unit of the amounts above, e.g. USD."
    },
    "note": {
      "type": "string",
      "description": "Guidance when the balance is low, unlimited, or scoped to a token."
    }
  },
  "required": [
    "unlimited",
    "used_amount",
    "currency"
  ],
  "additionalProperties": false
}
🟢get_task(platform, task_id, wait_seconds)

Check the status of an asynchronous generation task submitted by generate_video, generate_music, generate_lyrics, extend_music, or generate_image with async=true. Pass the platform and task_id exactly as they were returned. Status is one of queued, in_progress, completed or failed; poll every few seconds until it settles, or pass wait_seconds to have the server wait for you.

輸入結構描述

{
  "type": "object",
  "properties": {
    "platform": {
      "type": "string",
      "description": "Platform the task belongs to, exactly as returned by the submit tool: image, video, suno or producer."
    },
    "task_id": {
      "type": "string",
      "description": "Task identifier returned by the submit tool."
    },
    "wait_seconds": {
      "type": [
        "null",
        "integer"
      ],
      "description": "Poll server-side for up to this many seconds (max 240) and return once the task finishes. Omit for a single immediate status check."
    }
  },
  "required": [
    "platform",
    "task_id"
  ],
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string",
      "description": "The task this status refers to."
    },
    "platform": {
      "type": "string",
      "description": "Platform the task belongs to."
    },
    "status": {
      "type": "string",
      "description": "One of: queued, in_progress, completed, failed, unknown."
    },
    "progress": {
      "type": "string",
      "description": "Progress indication, when the backend reports one."
    },
    "result_urls": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Finished asset URLs. May expire; download anything worth keeping."
    },
    "fail_reason": {
      "type": "string",
      "description": "Why the task failed, when status is failed."
    },
    "note": {
      "type": "string",
      "description": "What to do next."
    },
    "raw": {
      "description": "Backend payload, for details this summary does not cover (lyrics text, per-clip metadata, seeds)."
    }
  },
  "required": [
    "task_id",
    "platform",
    "status"
  ],
  "additionalProperties": false
}
🟢list_models(category, search)

List the AI models this CCAPI key can actually call, with their capability category and the MCP tool that drives them. Call this before generating anything if you are unsure a model name is valid — availability depends on the key's group and changes over time. Never guess model names.

輸入結構描述

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "description": "Filter by capability. One of: text, image, video, music, embedding, other. Omit to list every model this key can use."
    },
    "search": {
      "type": "string",
      "description": "Case-insensitive substring match on the model name, e.g. 'claude' or 'seedance'."
    }
  },
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "models": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The exact model name to pass to other tools."
          },
          "category": {
            "type": "string",
            "description": "Capability category: text, image, video, music, embedding or other."
          },
          "description": {
            "type": "string",
            "description": "Human-readable description, when the platform publishes one."
          },
          "vendor": {
            "type": "string",
            "description": "Upstream vendor, e.g. Anthropic, Google, Suno."
          },
          "groups": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Token groups that can reach this model."
          },
          "endpoints": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "API endpoint families this model supports."
          },
          "tool": {
            "type": "string",
            "description": "Which MCP tool to call for this model. Absent means no MCP tool drives it — reach it through the REST API instead."
          }
        },
        "required": [
          "name",
          "category"
        ],
        "additionalProperties": false
      },
      "description": "Models available to the calling key."
    },
    "total": {
      "type": "integer",
      "description": "Number of models returned."
    },
    "note": {
      "type": "string",
      "description": "Guidance about the result set."
    }
  },
  "required": [
    "models",
    "total"
  ],
  "additionalProperties": false
}

建議的提示詞

retrieve_data
Get details about [item] from CCAPI
預期的工具: get_balance
fetch_info
Fetch [information type] using CCAPI
預期的工具: get_balance
list_items
List all [items] available in CCAPI
預期的工具: list_models
browse_collection
Show me the [collection] from CCAPI
預期的工具: list_models
explore_workflow
List available [items], then get details for each one using CCAPI
預期的工具: list_modelsget_balance

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本4 個工具
已驗證未記錄版本6 個工具
已驗證未記錄版本6 個工具
已驗證未記錄版本11 個工具
已驗證未記錄版本4 個工具
已驗證未記錄版本4 個工具
已驗證未記錄版本6 個工具
已驗證未記錄版本6 個工具
已驗證未記錄版本11 個工具
已驗證未記錄版本4 個工具