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 个工具