# Fixo MCP Server — Complete Integration Guide.

## On this page

- [1. Overview](#overview)
- [2. Quick Start](#quick-start)
- [3. Manual Configuration](#manual-configuration)
- [4. Authentication](#authentication)
- [5. Tool Catalog](#tool-catalog)
- [6. File Formats](#file-formats)
- [7. Async & Results](#async-results)
- [8. Error Handling](#error-handling)
- [9. Rate Limits](#rate-limits)
- [10. Security & Privacy](#security-privacy)
- [11. FAQ](#faq)
- [12. Support & Contact](#support)
- [Appendix: Full Example](#appendix)

<a id="overview"></a>
## 1. Overview

**EaseUS Fixo MCP Server** enables any MCP-compatible AI agent (Claude, Cursor, ChatGPT, Gemini, Windsurf, Trae, GitHub Copilot, and 50+ more) to repair corrupted video, photo, document, archive, and audio files through a standardized Model Context Protocol interface.

Powered by EaseUS's 20 years of data repair expertise (120M+ files repaired, 4.8/5 user rating), Fixo MCP exposes 4 specialized tools that follow MCP best practices: typed JSON Schema, async task support, and structured result delivery.

| Item | Value |
| --- | --- |
| MCP Endpoint | `https://repair.easeus.com/fixo-mcp/v1` |
| Transport | Streamable HTTP (JSON-RPC) |
| Tools | 4 (`check_file_health`, `query_upload_url`, `repair`, `get_repair_status`) |
| Categories | Video, Photo, Document & Archive, Audio |
| Formats | 100+ |
| Max file size | 100 MB per file |
| Auth | OAuth 2.1 — Authorization Code + PKCE, RFC 7591 dynamic client registration |
| Result delivery | Web result page URL (preview + download) |
| Data retention | Auto-delete 14 days after repair |

<a id="quick-start"></a>
## 2. Quick Start — One-Click Connection

The easiest way to connect is using the one-click prompt from [the MCP landing page](https://repair.easeus.com/mcp/). No manual JSON editing required.

### Step 1: Copy the prompt

Go to [the MCP landing page](https://repair.easeus.com/mcp/) and click **Copy Prompt**. The prompt contains:

```
Add MCP server: https://repair.easeus.com/fixo-mcp/v1, OAuth 2.1 Authorization Code + PKCE (S256), no API key required.
Then use the fixo MCP tool to repair {file path}.
```

### Step 2: Paste to your AI agent

Open your AI assistant (Claude, Cursor, ChatGPT, etc.) and paste the prompt into a new conversation.

### Step 3: AI auto-configures

The AI reads this guide document and automatically configures the Fixo MCP server connection with the correct endpoint URL.

### Step 4: Start repairing files

Ask your AI to repair a corrupted file. It will use Fixo's 4 MCP tools to check health, upload, dispatch the repair, monitor progress, and return a result page URL.

<a id="manual-configuration"></a>
## 3. Manual Configuration

If you prefer manual setup, configure your MCP client with the endpoint: `https://repair.easeus.com/fixo-mcp/v1`

### 3.1 Claude Desktop

Edit `~/.claude.json` (macOS/Linux) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

```
{
  "mcpServers": {
    "fixo": {
      "type": "http",
      "url": "https://repair.easeus.com/fixo-mcp/v1"
    }
  }
}
```

Restart Claude Desktop. The INITIALIZE call will trigger the OAuth authorization flow.

### 3.2 Cursor

1. Open Cursor → **Settings → MCP**
2. Click **Add New MCP Server**
3. Select **URL** type
4. Enter: `https://repair.easeus.com/fixo-mcp/v1`
5. Click **Add**

### 3.3 ChatGPT

ChatGPT supports remote MCP servers through connectors:

1. Enable developer mode in **Settings → Connectors → Advanced**
2. Create a new connector and enter the MCP server URL: `https://repair.easeus.com/fixo-mcp/v1`
3. Complete the OAuth authorization in the browser
4. The Fixo tools are now available in your conversation

### 3.4 Other MCP Clients

Any MCP-compatible client supporting Streamable HTTP can connect: Windsurf, Trae, GitHub Copilot, Continue.dev, Cline, Roo Code, etc. All use the same endpoint: `https://repair.easeus.com/fixo-mcp/v1`

<a id="authentication"></a>
## 4. Authentication & Authorization

Fixo MCP uses **OAuth 2.1** (Authorization Code flow with PKCE S256) for secure, password-less authorization. No API keys needed — clients register themselves on the fly via RFC 7591 dynamic client registration.

| Parameter | Value |
| --- | --- |
| Flow | OAuth 2.1 Authorization Code + PKCE (S256) |
| Scopes | `repair:read` (health check, status) · `repair:write` (upload, repair) |
| Client registration | RFC 7591 — `POST https://repair.easeus.com/fixo-mcp/v1/oauth/register` |
| Server metadata | RFC 8414 — `/.well-known/oauth-authorization-server` |
| Resource metadata | RFC 9728 — `/.well-known/oauth-protected-resource` |
| Unauthorized response | HTTP 401 with a `WWW-Authenticate` header |
| Access Token TTL | 12 hours |
| Refresh Token TTL | 30 days |

### First-Time Connection Flow

1. The INITIALIZE call returns HTTP 401 with a `WWW-Authenticate` header pointing to the protected-resource metadata
2. Your client discovers the authorization server and registers itself via RFC 7591 dynamic client registration
3. The authorization page opens in a browser — log in with your EaseUS account and approve the request
4. The client exchanges the authorization code (PKCE S256) for tokens and retries the tool call automatically

> **Note:** A free EaseUS account is required for authorization. You can register during the auth flow.

<a id="tool-catalog"></a>
## 5. Tool Catalog — 4 MCP Tools

All tools follow the MCP `tools/call` JSON-RPC method with typed JSON Schema for inputs and outputs.

#### `check_file_health`

Check whether a file is healthy and suitable for repair. Recommended first step before any repair — suggest it to the user and run it only with the user's consent. Local pre-checks: reject 0-byte files, reject files where every byte has the same value, and verify the header/footer bytes match the extension.

- **Input:** `file_name (required, incl. extension), file_url (required — download_url from query_upload_url)`
- **Output:** `health_status (Intact | Unknown | Damaged), message`
- **Scope:** `repair:read`

#### `query_upload_url`

Get the S3 upload URL and form fields needed to upload a local file (max 100 MB). Upload with a multipart/form-data POST to upload_url containing every key-value pair from fields plus the file itself (prefer curl with one -F option per fields entry). After the upload succeeds, pass download_url as file_url to the other tools.

- **Input:** `file_name (required, incl. extension)`
- **Output:** `upload_url, download_url, fields, message (upload instructions)`
- **Scope:** `repair:write`

#### `repair`

Create and start a repair task for an uploaded file. If get_repair_status returns NeedPwd or PwdErr, ask the user for the file password, then call again with the same file_name and file_url plus password.

- **Input:** `file_name (required), file_url (required), password (optional — encrypted files only)`
- **Output:** `task_id, error (0 on success), message`
- **Scope:** `repair:write`

#### `get_repair_status`

Check the status and progress (0–100) of a repair task created by repair. While status is Pending or Processing, wait at least 3 seconds between calls. Stop polling at Completed, Failed, NeedPwd, or PwdErr. The response message contains the recommended next action.

- **Input:** `task_id (required — returned by repair)`
- **Output:** `status, progress (0–100), message`
- **Scope:** `repair:read`

### Input/Output Schema Example (repair)

```
// Input
{
  "file_name": "birthday.mp4",
  "file_url": "https://d225fhq0dla1l8.cloudfront.net/upload/birthday.mp4"
}

// Output
{
  "code": 200,
  "task_id": "fixo_a1b2c3d4e5",
  "error": 0,
  "message": "Repair task created successfully."
}
```

<a id="file-formats"></a>
## 6. Supported File Formats (100+)

| Category | Formats |
| --- | --- |
| Video | MP4, MOV, MKV, WEBM, AVI, ASF, WMV, M4V, 3GP, 3G2, FLV, SWF, MPG, RM, RMVB, MPEG, INSV, MTS, M2TS, TS, RSV, DAT, MXF, BRAW, OGV, DIVX, DV, CRM, LRV, LRF, R3D |
| Photo | JFIF, JPE, JIF, JPG, JPEG, PNG, GIF, CR2, CR3, CRW, NEF, NRW, TIF, TIFF, DNG, ARW, RAF, GPR, ORF, SR2, X3F, HEIC, BMP, RW2, RAW, AVIF, WEBP, SVG, SRW, ERF, PEF, SRF, MRW, 3FR, JXL |
| Document & Archive | DOC, DOCX, DOCM, DOTM, DOTX, XLS, XLSX, XLSM, XLTM, XLTX, PPT, PPTX, PPTM, POTM, POTX, PDF, ZIP, ZIPX, EXE, XML, RAR, HTML, AI, PSD, PSB, HWP, PAGES, NUMBERS, KEY, CSV, 7Z, RTF, TXT, HWPX, PST, DXF |
| Audio | MP3, AAC, WAV, FLAC, M4A, WMA, AIF, AIFF, OGG, OGA, APE |

<a id="async-results"></a>
## 7. Async Task & Result Delivery

Repair runs **asynchronously**. Task lifecycle: `Pending → Processing → Completed / Failed` (with `NeedPwd / PwdErr` for encrypted files).

| Status | Meaning | Action |
| --- | --- | --- |
| `Pending` | Task accepted, waiting for worker | Poll get_repair_status |
| `Processing` | Repair in progress | Keep polling — wait at least 3 seconds between calls |
| `Completed` | Repair finished successfully | Follow the download instructions in message |
| `Failed` | Repair could not complete | Present the failure message to the user |
| `NeedPwd` | The file is password-protected | Ask the user for the password and call repair again with it |
| `PwdErr` | The supplied password was wrong | Ask for the correct password and call repair again |

### Polling Best Practices

- Wait at least 3 seconds between `get_repair_status` calls
- Stop polling at `Completed`, `Failed`, `NeedPwd`, or `PwdErr`
- The response `message` always contains the recommended next action

### Result Delivery

- Binary files never enter the AI context — saving tokens
- On `Completed`, sign in at [repair.easeus.com/history-repair/](https://repair.easeus.com/history-repair/) to download the repaired file
- No watermark, full original quality

<a id="error-handling"></a>
## 8. Error Handling

Errors are returned either as MCP tool errors (`ToolError`) or as structured results with a non-200 `code` field.

| code | Description | Resolution |
| --- | --- | --- |
| 401 (HTTP) | No bearer token on the MCP endpoint | Complete OAuth authorization — the WWW-Authenticate header points to the metadata |
| 3 | file_name has no extension | Pass the original file name including its extension |
| 2006 | OAuth token expired | Re-authorize and retry the call |
| 5002 | Daily free repair quota exhausted | Upgrade to Pro at repair.easeus.com, or use the Fixo desktop app |
| ToolError | Invalid parameters or upstream service failure | Read the error message, fix the arguments, and retry |

<a id="rate-limits"></a>
## 9. Rate Limits

| Limit | Free Tier | Pro / EaseUS Account |
| --- | --- | --- |
| Repairs per day | 1 | Unlimited |
| Max file size | 100 MB | 100 MB |
| Status polling | 1 call per 3 seconds per task | 1 call per 3 seconds per task |

> **Note:** Files over 100 MB require the EaseUS Fixo desktop client ([Windows](https://down.easeus.com/product/fixo?ref=fixo-mcp) / [macOS](https://down.easeus.com/product/fixo_mac?ref=fixo-mcp)), which supports files up to several GB.

<a id="security-privacy"></a>
## 10. Security & Privacy

- **Encryption:** TLS in transit for all MCP, upload, and download traffic
- **OAuth 2.1:** Authorization Code + PKCE ensures secure authorization without exposing passwords to the AI client
- **Least privilege:** `repair:read` covers health checks and status polling; `repair:write` is only required for uploads and repairs
- **Privacy:** Files are never shared with third parties and never used for AI training
- **Data retention:** The file will be automatically deleted after 14 days
- **Compliance:** GDPR, CCPA, SOC 2 Type II, ISO 27001

<a id="faq"></a>
## 11. FAQ

### What is Fixo MCP Server?

Fixo MCP Server is a Model Context Protocol implementation that allows AI agents to repair corrupted video, photo, document, archive, and audio files through 4 standardized MCP tools.

### Which AI clients support Fixo MCP?

Any MCP-compatible client supporting Streamable HTTP: Claude Desktop, Claude Code, Cursor, GitHub Copilot, ChatGPT, Google Gemini, Windsurf, Trae, Continue.dev, Cline, Roo Code, and 50+ more.

### Is Fixo MCP free to use?

Yes. All users get 1 free repair per day (100 MB max). EaseUS Pro account holders get unlimited repairs per day. Files over 100 MB require the desktop client.

### Do I need to install anything?

No. Fixo MCP is a cloud service accessed via the Streamable HTTP endpoint. You only need an MCP-compatible AI client.

### Where do I find my repaired files?

When a task reaches Completed, sign in with your account at [repair.easeus.com/history-repair/](https://repair.easeus.com/history-repair/) to preview and download the repaired file. No watermark, full original quality.

### How long does repair take?

Most files repair within 30–60 seconds. Larger or severely corrupted files may take a few minutes. The `get_repair_status` tool provides real-time progress (0–100).

<a id="support"></a>
## 12. Support & Contact

| Channel | Contact |
| --- | --- |
| Support Portal | [easeus.com/support.html](https://www.easeus.com/support.html) |
| Email | [support@easeus.com](mailto:support@easeus.com) |
| MCP Landing Page | [repair.easeus.com/mcp/](https://repair.easeus.com/mcp/) |
| Online Repair | [repair.easeus.com](https://repair.easeus.com/) |
| Desktop Software | [easeus.com/repair-tools](https://www.easeus.com/repair-tools) |

Fixo MCP is listed on Smithery, Glama, PulseMCP, and mcp.so directories.

<a id="appendix"></a>
## Appendix: Complete Example — Repair a Corrupted Video

### Step 1: Get the upload URL

```
// Call
{ "name": "query_upload_url", "arguments": { "file_name": "birthday.mp4" } }

// Result
{
  "code": 200,
  "data": {
    "upload_url": "https://fixo-uploads.s3.amazonaws.com/",
    "download_url": "https://d225fhq0dla1l8.cloudfront.net/upload/birthday.mp4",
    "fields": {
      "key": "upload/birthday.mp4",
      "policy": "eyJleHBpcmF0aW9uIjoi...",
      "x-amz-algorithm": "AWS4-HMAC-SHA256",
      "x-amz-signature": "a1b2c3..."
    },
    "message": "After receiving the upload URL and before uploading, check whether the local file exceeds 100 MB..."
  }
}
```

### Step 2: Upload the file

Send a `multipart/form-data` POST to `upload_url` with every entry from `fields` plus the file itself:

```
curl -F "key=upload/birthday.mp4" \
     -F "policy=eyJleHBpcmF0aW9uIjoi..." \
     -F "x-amz-algorithm=AWS4-HMAC-SHA256" \
     -F "x-amz-signature=a1b2c3..." \
     -F "file=@/path/to/birthday.mp4" \
     https://fixo-uploads.s3.amazonaws.com/
```

### Step 3: Check file health (optional, recommended)

```
// Call
{ "name": "check_file_health", "arguments": { "file_name": "birthday.mp4", "file_url": "https://d225fhq0dla1l8.cloudfront.net/upload/birthday.mp4" } }

// Result
{
  "code": 200,
  "health_status": "Damaged",
  "message": "The file is damaged. Call the repair tool with the same file_name and file_url to repair it."
}
```

### Step 4: Dispatch the repair

```
// Call
{ "name": "repair", "arguments": { "file_name": "birthday.mp4", "file_url": "https://d225fhq0dla1l8.cloudfront.net/upload/birthday.mp4" } }

// Result
{
  "code": 200,
  "task_id": "fixo_a1b2c3d4e5",
  "error": 0,
  "message": "Repair task created successfully."
}
```

### Step 5: Poll status until complete

```
// Poll, waiting at least 3 seconds between calls
{ "name": "get_repair_status", "arguments": { "task_id": "fixo_a1b2c3d4e5" } }

// Final result
{
  "code": 200,
  "task_id": "fixo_a1b2c3d4e5",
  "status": "Completed",
  "progress": 100,
  "message": "Repair completed. Sign in with your account at https://repair.easeus.com/history-repair/, then download the repaired file."
}
```

> Your video has been repaired successfully!
> - File: birthday_repaired.mp4
> - Sign in at repair.easeus.com/history-repair/ to preview and download
> - No watermark, full original quality
