{
  "name": "File Conversion MCP Tool \u2014 Claude Code & Cursor (CloudConvert)",
  "nodes": [
    {
      "parameters": {
        "content": "## File Conversion MCP Tool \u2014 CloudConvert Setup\n\n**1. API Key:** cloudconvert.com \u2192 Dashboard \u2192 API Keys \u2192 New Key (scopes: `task.read` + `task.write`)\n\n**2. n8n Credential:** Add \"HTTP Header Auth\" \u2192 Name: `Authorization`, Value: `Bearer YOUR_CLOUDCONVERT_API_KEY` \u2192 assign to both HTTP Request nodes.\n\n**3. Activate** this workflow \u2192 copy the Webhook URL.\n\n**4. MCP config** (`~/.claude/mcp.json` for Claude Code, `mcp.json` for Cursor):\n```json\n{\n  \"convert-file\": {\n    \"url\": \"https://YOUR-N8N-HOST/webhook/convert-file\",\n    \"method\": \"POST\",\n    \"headers\": { \"Content-Type\": \"application/json\" }\n  }\n}\n```\n\n**Tool call shape:**\n```json\n{\n  \"file_url\": \"https://example.com/report.pdf\",\n  \"input_format\": \"pdf\",\n  \"output_format\": \"docx\"\n}\n```\n\n**Supported formats:** pdf, docx, xlsx, pptx, jpg, png, webp, gif, svg, mp4, mp3, wav, csv, html, epub, and 200+ more.",
        "height": 460,
        "width": 440
      },
      "id": "sticky-001",
      "name": "Setup Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        200,
        -200
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "convert-file",
        "responseMode": "responseNode",
        "options": {}
      },
      "id": "a1b2c3d4-0001-0001-0001-000000000001",
      "name": "Receive Conversion Request",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        200,
        300
      ],
      "webhookId": "file-convert-mcp-2026"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.cloudconvert.com/v2/jobs",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "contentType": "json",
        "body": "={{ JSON.stringify({ tasks: { \"import-file\": { operation: \"import/url\", url: $json.body.file_url, filename: \"input.\" + $json.body.input_format }, \"convert-task\": { operation: \"convert\", input: \"import-file\", output_format: $json.body.output_format }, \"export-task\": { operation: \"export/url\", input: \"convert-task\", inline: false, archive_multiple_files: false } } }) }}",
        "options": {}
      },
      "id": "a1b2c3d4-0001-0001-0001-000000000002",
      "name": "Create CloudConvert Job",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        460,
        300
      ],
      "credentials": {
        "httpHeaderAuth": {
          "id": "cloudconvert-cred",
          "name": "CloudConvert API Key"
        }
      }
    },
    {
      "parameters": {
        "resume": "timeInterval",
        "unit": "seconds",
        "amount": 12
      },
      "id": "a1b2c3d4-0001-0001-0001-000000000003",
      "name": "Wait for Processing",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1,
      "position": [
        700,
        300
      ],
      "webhookId": "wait-convert-poll"
    },
    {
      "parameters": {
        "method": "GET",
        "url": "=https://api.cloudconvert.com/v2/jobs/{{ $('Create CloudConvert Job').item.json.data.id }}",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "qs": {
          "parameters": [
            {
              "name": "include",
              "value": "tasks"
            }
          ]
        },
        "options": {}
      },
      "id": "a1b2c3d4-0001-0001-0001-000000000004",
      "name": "Poll Job Status",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        940,
        300
      ],
      "credentials": {
        "httpHeaderAuth": {
          "id": "cloudconvert-cred",
          "name": "CloudConvert API Key"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "cond-status-finished",
              "leftValue": "={{ $json.data.status }}",
              "rightValue": "finished",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        }
      },
      "id": "a1b2c3d4-0001-0001-0001-000000000005",
      "name": "Job Finished?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1180,
        300
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ JSON.stringify({ success: true, job_id: $('Poll Job Status').item.json.data.id, status: \"finished\", download_url: $('Poll Job Status').item.json.data.tasks.find(t => t.operation === 'export/url')?.result?.files[0]?.url ?? null, filename: $('Poll Job Status').item.json.data.tasks.find(t => t.operation === 'export/url')?.result?.files[0]?.filename ?? null, output_format: $('Receive Conversion Request').item.json.body.output_format, input_format: $('Receive Conversion Request').item.json.body.input_format }) }}",
        "options": {}
      },
      "id": "a1b2c3d4-0001-0001-0001-000000000006",
      "name": "Return Download URL",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        1420,
        180
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseCode": 202,
        "responseBody": "={{ JSON.stringify({ success: false, job_id: $('Create CloudConvert Job').item.json.data.id, status: $json.data.status, message: \"Conversion still processing or failed. Use poll_url to check status.\", poll_url: \"https://api.cloudconvert.com/v2/jobs/\" + $('Create CloudConvert Job').item.json.data.id }) }}",
        "options": {}
      },
      "id": "a1b2c3d4-0001-0001-0001-000000000007",
      "name": "Return Job Pending",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        1420,
        440
      ]
    }
  ],
  "connections": {
    "Receive Conversion Request": {
      "main": [
        [
          {
            "node": "Create CloudConvert Job",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create CloudConvert Job": {
      "main": [
        [
          {
            "node": "Wait for Processing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Processing": {
      "main": [
        [
          {
            "node": "Poll Job Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Poll Job Status": {
      "main": [
        [
          {
            "node": "Job Finished?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Job Finished?": {
      "main": [
        [
          {
            "node": "Return Download URL",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Return Job Pending",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}