# Sora 视频生成 MCP Server

基于云雾 API 的 Sora 视频生成 MCP 服务器，支持文生视频和图生视频功能。

## 功能特性

- **文生视频**: 使用文本提示词生成视频
- **图生视频**: 使用图片和提示词生成视频
- **任务查询**: 查询视频生成任务的状态和结果

## 安装

```bash
npm install
npm run build
```

## 配置

1. 复制 `.env.example` 到 `.env`:
```bash
cp .env.example .env
```

2. 在 `.env` 文件中配置 API 密钥和默认模型:
```
VIDEO_API_KEY=your_api_key_here
VIDEO_BASE_URL=https://api.kie.ai
VIDEO_MODEL=bytedance/seedance-1.5-pro
```

## 使用方法

### 在 Claude Desktop 中配置

编辑 Claude Desktop 配置文件:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

添加以下配置:

```json
{
  "mcpServers": {
    "sora-video": {
      "command": "node",
      "args": ["/path/to/视频生成/build/index.js"],
      "env": {
        "VIDEO_API_KEY": "your_api_key_here",
        "VIDEO_BASE_URL": "https://api.kie.ai",
        "VIDEO_MODEL": "bytedance/seedance-1.5-pro"
      }
    }
  }
}
```

### 直接运行

```bash
# 设置环境变量
export VIDEO_API_KEY=your_api_key_here
export VIDEO_BASE_URL=https://api.kie.ai
export VIDEO_MODEL=bytedance/seedance-1.5-pro

# 运行服务器
npm start
```

## 可用工具

### 1. create_video - 创建文生视频

使用文本提示词生成视频。

**参数:**
- `prompt` (必需): 提示词，描述要生成的视频内容
- `size` (可选): 视频尺寸，格式为 `宽x高`，默认 `854x480`

说明: 具体使用哪个 Kie 模型由环境变量控制。默认使用 `VIDEO_MODEL=bytedance/seedance-1.5-pro`。视频参数已写死为 `8 秒 / 480p / 开音频`，不会让模型额外传递这几个参数；为兼容现有 MCP 返回结构，工具返回的字段格式不变。

**示例:**
```json
{
  "prompt": "一只可爱的小猫在草地上玩耍",
  "size": "854x480"
}
```

### 2. create_video_with_images - 创建图生视频

使用图片和提示词生成视频。

**参数:**
- `prompt` (必需): 提示词，描述要生成的视频内容
- `input_reference` (必需): 参考图片 URL
- `size` (可选): 视频尺寸，格式为 `宽x高`，默认 `854x480`

说明: 图生视频默认也使用 `VIDEO_MODEL=bytedance/seedance-1.5-pro`，并通过 `input_urls` 传图。视频参数同样固定为 `8 秒 / 480p / 开音频`。如果供应商后续拆分了图生/文生模型，可额外设置 `VIDEO_IMAGE_MODEL`。

**示例:**
```json
{
  "prompt": "让这些图片动起来",
  "input_reference": "https://example.com/image1.png",
  "size": "720x1280"
}
```

### 3. query_video_task - 查询任务状态

查询视频生成任务的状态和结果。

**参数:**
- `id` (必需): 任务ID，格式如 `task_xxx`

**示例:**
```json
{
  "id": "task_01k6x15vhrff09dkkqjrzwhm60"
}
```

**返回状态:**
- `pending`: 任务处理中
- `completed`: 任务已完成，包含视频URL
- `failed`: 任务失败

## API 文档

本 MCP 服务器基于云雾 API 实现，详细的 API 文档：
- [查询任务](https://yunwu.apifox.cn/api-358068905)
- [创建视频(带图片)](https://yunwu.apifox.cn/api-358068907)
- [创建视频](https://yunwu.apifox.cn/api-358068995)

## 开发

```bash
# 开发模式（监视文件变化）
npm run dev

# 构建
npm run build

# 运行
npm start
```

## 许可

MIT
