Skip to main content
Glama
README.md
# Magic Hour MCP Server

MCP server for [Magic Hour AI](https://magichour.ai) — face swap videos, face swap photos, lip sync, face detection, and file management.

## Tools

| Tool | Description |
|------|-------------|
| `face_swap_video` | Swap a face onto a video (file/URL source) |
| `face_swap_video_youtube` | Swap a face onto a YouTube video |
| `face_swap_video_individual` | Swap specific faces using face detection IDs |
| `face_swap_photo` | Swap a face onto a photo |
| `detect_faces` | Detect faces in an image or video |
| `get_face_detection_result` | Get detected face IDs and URLs |
| `lip_sync` | Sync lip movements to an audio track |
| `upload_file` | Upload a file to Magic Hour storage |
| `get_video_project_status` | Check video project status and get download URLs |
| `get_image_project_status` | Check image project status and get download URLs |
| `delete_video_project` | Delete a video project |
| `delete_image_project` | Delete an image project |

## Setup

1. Get an API key from [magichour.ai/settings/developer](https://magichour.ai/settings/developer)

2. Install dependencies:
```bash
npm install
```

3. Build:
```bash
npm run build
```

## Claude Desktop Configuration

Add to `~/.claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "magic-hour": {
      "command": "node",
      "args": ["/path/to/magic-hour-mcp/dist/index.js"],
      "env": {
        "MAGIC_HOUR_API_KEY": "mhk_live_your_key_here"
      }
    }
  }
}
```

## Claude Code Configuration

Add to `~/.claude/settings.json`:

```json
{
  "mcpServers": {
    "magic-hour": {
      "command": "node",
      "args": ["/path/to/magic-hour-mcp/dist/index.js"],
      "env": {
        "MAGIC_HOUR_API_KEY": "mhk_live_your_key_here"
      }
    }
  }
}
```

## Usage Example

```
Face swap a dance video:
1. Upload your face image: upload_file → get file_path
2. Start face swap: face_swap_video with video URL + face file_path
3. Poll status: get_video_project_status until "complete"
4. Download from the returned URL

Individual face swap:
1. Detect faces: detect_faces on the source video
2. Get results: get_face_detection_result to see all faces
3. Swap specific faces: face_swap_video_individual with face mappings
```

## License

MIT

TDQS

A3.5/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have distinct purposes, such as delete_image_project vs. delete_video_project, and face_swap_photo vs. face_swap_video. However, face_swap_video, face_swap_video_individual, and face_swap_video_youtube could cause confusion due to overlapping video face-swapping functionality, though descriptions help differentiate them.

Naming Consistency5/5

Tool names follow a consistent snake_case pattern with clear verb_noun structures, such as delete_image_project, detect_faces, and get_face_detection_result. There are no deviations in naming conventions across all 12 tools.

Tool Count5/5

With 12 tools, the server is well-scoped for its face-swapping and media processing domain. Each tool serves a specific role, from project management to face detection and lip syncing, without feeling excessive or insufficient.

Completeness4/5

The toolset covers core operations like creation (via face swap tools), retrieval (get status tools), deletion, and processing (detect, lip sync). A minor gap exists in update operations for projects, but agents can work around this by re-creating or managing projects through deletion and re-upload.

Maintenance

ActivityInactive
ResponsivenessNo issues