CCAPI

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

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
80%
이름 품질
100%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,789토큰 (도구 정의)
~4.7 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.40%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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개