{
  "ok": true,
  "resource": {
    "id": "RES_0EB83797944C",
    "resource_type": "mcp_server",
    "canonical_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ChangeThisFile/versions/1.2.0",
    "name": "ChangeThisFile",
    "summary_en": "1,000+ conversion routes plus translate, extract tables, compress. 25 free/month, then a free key.",
    "summary_zh": "提供1000多种文件转换路线，支持翻译、表格提取与压缩，每月25次免费使用。",
    "description_en": "ChangeThisFile is an MCP server that offers over 1,000 file conversion routes, document translation, table extraction to Excel, and file compression. It provides 25 free conversions per month per network, after which a free API key is required. Some features like translation and table extraction are paid, with free previews.",
    "description_zh": "ChangeThisFile 是一个 MCP 服务器，提供超过1000种文件转换路线，以及文档翻译、表格提取为 Excel 和文件压缩功能。每个网络每月可免费转换25次，之后需要免费 API 密钥。翻译和表格提取等部分功能为付费服务，但提供免费预览。",
    "provider_name": "com.changethisfile",
    "homepage_url": "https://changethisfile.com/",
    "endpoint_url": "https://changethisfile.com/mcp",
    "source_url": "https://github.com/aadilr/changethisfile-mcp",
    "icon_url": null,
    "cover_image_url": null,
    "capabilities": [
      "file.convert",
      "file.translate",
      "file.extract-tables",
      "file.compress"
    ],
    "categories": [
      "data-analytics"
    ],
    "industries": [],
    "protocols": [
      "mcp"
    ],
    "auth": {
      "type": "unknown"
    },
    "pricing": {
      "model": "unknown"
    },
    "input_schema": {},
    "output_schema": {},
    "metadata": {
      "content_language": "en",
      "translation_status": "luna-reviewed",
      "official_registry": {
        "version": "1.2.0",
        "packages": [],
        "remotes": []
      },
      "review_gate": {
        "passed": true,
        "reasons": [],
        "policy_version": "review-gate-v1",
        "evaluated_at": "2026-09-04T04:28:37.868Z"
      },
      "catalog_profile": {
        "version": "catalog-profile-v1",
        "primary_category": "data-analytics",
        "integrations": [
          "GitHub"
        ],
        "use_cases": {
          "en": [
            "Convert files between formats",
            "Translate documents while preserving layout",
            "Extract tables from PDFs or images into Excel"
          ],
          "zh": [
            "在不同格式之间转换文件",
            "翻译文档并保持原有布局",
            "从 PDF 或图片中提取表格到 Excel"
          ]
        },
        "categories": [
          "data-analytics"
        ],
        "industries": [],
        "copy": {
          "source_language": "en",
          "summary_zh_state": "present",
          "description_zh_state": "present",
          "description_en_state": "present"
        }
      }
    },
    "latest_version": "1.2.0",
    "status": "listed",
    "health_status": "healthy",
    "source_kind": "imported",
    "source_agent": "registry.modelcontextprotocol.io",
    "trust": {
      "signal": "none",
      "reason": "No suspicious or malicious evidence.",
      "signals": {
        "yellow": 0,
        "red": 0
      }
    },
    "review_summary": {
      "method_version": "capability-evidence-v3",
      "capability_definition": "strong",
      "contract_completeness": "strong",
      "access_friction": "medium",
      "operational_transparency": "strong",
      "evidence_strength": "protocol_inspected",
      "use_readiness": "guided_use",
      "reviewed_at": "2026-09-04T04:28:38.810Z"
    },
    "experience_count": 0,
    "verified_experience_count": 0,
    "usage_count": 0,
    "success_rate": null,
    "first_seen_at": "2026-09-03T14:01:59.713Z",
    "last_seen_at": "2026-09-04T04:28:38.101Z",
    "published_at": "2026-09-03T14:01:59.713Z",
    "created_at": "2026-09-03T14:01:59.713Z",
    "updated_at": "2026-09-04T04:28:38.810Z",
    "api_url": "https://aiworkshub.io/api/v1/resources/RES_0EB83797944C",
    "reviews_url": "https://aiworkshub.io/api/v1/resources/RES_0EB83797944C/reviews",
    "public_url": "https://aiworkshub.io/resources/RES_0EB83797944C",
    "distribution": {
      "canonical_identity": "https://registry.modelcontextprotocol.io/v0.1/servers/ChangeThisFile/versions/1.2.0",
      "syndicatable": true,
      "origins": [
        {
          "registry_url": "https://registry.modelcontextprotocol.io/",
          "upstream_resource_id": "ChangeThisFile@1.2.0",
          "upstream_record_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ChangeThisFile/versions/1.2.0",
          "relation": "syndicated",
          "metadata": {
            "source": "official-mcp-registry"
          },
          "first_seen_at": "2026-09-03T14:01:59.713Z",
          "last_seen_at": "2026-09-04T04:28:38.101Z"
        }
      ]
    },
    "tools": [
      {
        "name": "check_job",
        "title_en": "Check Job Status",
        "title_zh": "检查任务状态",
        "description_en": "Check the status of a previously submitted file job (translate_file, extract_tables, compress_file). Returns the current status, preview + checkout link for completed paid jobs, or the download URL for completed free/paid-and-unlocked jobs.",
        "description_zh": "检查先前提交的文件任务（translate_file、extract_tables、compress_file）的状态。返回当前状态、已完成付费任务的预览和结账链接，或已完成免费/已解锁付费任务的下载 URL。",
        "input_schema": {
          "type": "object",
          "properties": {
            "job_id": {
              "type": "string",
              "description": "The job_id returned by a job tool"
            }
          },
          "required": [
            "job_id"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "compress_file",
        "title_en": "Compress File to Exact Size (free)",
        "title_zh": "压缩文件到精确大小（免费）",
        "description_en": "Compress a file (PDF, JPG, PNG, WebP, MP4, MOV, WebM) down to an exact target size — e.g. \"under 5MB for an upload form\". FREE (daily limit applies). Returns a download URL on success; if the target is physically unreachable it fails honestly and reports the smallest achievable size. Provide EITHER source_url OR base64_content, plus a filename with extension.",
        "description_zh": "将文件（PDF、JPG、PNG、WebP、MP4、MOV、WebM）压缩到精确的目标大小——例如“上传表单需要5MB以下”。免费（有每日限制）。成功时返回下载 URL；如果目标物理上无法达到，则诚实失败并报告可达到的最小大小。提供 source_url 或 base64_content 之一，以及带扩展名的文件名。",
        "input_schema": {
          "type": "object",
          "properties": {
            "source_url": {
              "type": "string",
              "description": "Publicly accessible URL of the input file (preferred for large files)"
            },
            "base64_content": {
              "type": "string",
              "description": "Base64-encoded file content (for small files)"
            },
            "filename": {
              "type": "string",
              "description": "Filename WITH extension (e.g. \"report.pdf\"). Required when the format cannot be inferred from source_url."
            },
            "target_size_kb": {
              "type": "integer",
              "description": "Target maximum size in kilobytes (e.g. 5120 for 5MB). Min 50KB."
            }
          },
          "required": [
            "target_size_kb"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": true,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "convert_file",
        "title_en": "Convert File",
        "title_zh": "转换文件",
        "description_en": "Convert a file from one format to another. Anonymous callers get 25 free conversions per month per network; after that a free verified ChangeThisFile API key is required (25/month shared across REST + MCP; send it as Authorization: Bearer ctf_sk_…). Pass EITHER a publicly accessible URL (source_url) OR base64-encoded file contents (base64_content + source_format) — exactly one is required. Returns a temporary download URL (valid 1 hour; file deleted within 24 hours).",
        "description_zh": "将文件从一种格式转换为另一种格式。匿名用户每月每网络可免费转换25次；之后需要免费的已验证 ChangeThisFile API 密钥（每月25次，REST 和 MCP 共享；通过 Authorization: Bearer ctf_sk_… 发送）。提供公开可访问的 URL（source_url）或 base64 编码的文件内容（base64_content + source_format）——两者必须且只能提供一个。返回临时下载 URL（有效1小时；文件在24小时内删除）。",
        "input_schema": {
          "type": "object",
          "properties": {
            "source_url": {
              "type": "string",
              "description": "Publicly accessible URL of the file to convert (preferred for large files)"
            },
            "base64_content": {
              "type": "string",
              "description": "Base64-encoded file content (for small files; max ~5MB)"
            },
            "source_format": {
              "type": "string",
              "description": "Source format extension (e.g. \"docx\", \"mp4\"). Optional: detected from filename, URL response filename, or file bytes when omitted."
            },
            "target_format": {
              "type": "string",
              "description": "Target format extension (e.g. \"json\", \"mp3\", \"pdf\"). Required."
            },
            "filename": {
              "type": "string",
              "description": "Optional filename hint for auto-detection (e.g. \"document.docx\"). Include this for extensionless download URLs when known."
            }
          },
          "required": [
            "target_format"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": true,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "do_file_job",
        "title_en": "Do Something to a File (natural language)",
        "title_zh": "对文件执行操作（自然语言）",
        "description_en": "Describe what you want done to a file in plain language — e.g. \"translate this contract to German\", \"pull every table out of this PDF into Excel\", \"shrink this video to under 25MB\", \"convert this to PDF\". The instruction is routed to the right job automatically; if the request is not supported yet you get an honest explanation of what is. Provide EITHER source_url OR base64_content, plus a filename with extension.",
        "description_zh": "用自然语言描述你想对文件做什么——例如“将这份合同翻译成德语”、“把这份 PDF 中的所有表格提取到 Excel”、“将这段视频压缩到25MB以下”、“将其转换为 PDF”。指令会自动路由到正确的任务；如果请求尚不支持，你会得到诚实的解释。提供 source_url 或 base64_content 之一，以及带扩展名的文件名。",
        "input_schema": {
          "type": "object",
          "properties": {
            "instruction": {
              "type": "string",
              "description": "What to do with the file, in plain language (any language)"
            },
            "source_url": {
              "type": "string",
              "description": "Publicly accessible URL of the input file (preferred for large files)"
            },
            "base64_content": {
              "type": "string",
              "description": "Base64-encoded file content (for small files)"
            },
            "filename": {
              "type": "string",
              "description": "Filename WITH extension (e.g. \"report.pdf\"). Required when the format cannot be inferred from source_url."
            }
          },
          "required": [
            "instruction"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": true,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "extract_tables",
        "title_en": "Extract Tables to Excel (paid, free preview)",
        "title_zh": "提取表格到 Excel（付费，免费预览）",
        "description_en": "Extract every table from a PDF or image (PNG, JPG, WebP) into a clean multi-sheet Excel file. The job runs immediately and returns a FREE preview of the first table plus a secure Stripe checkout link — the full .xlsx unlocks after payment ($3.99, one-time, no account needed). Provide EITHER source_url OR base64_content, plus a filename with extension.",
        "description_zh": "从 PDF 或图像（PNG、JPG、WebP）中提取所有表格，生成干净的多工作表 Excel 文件。任务立即运行，并返回第一个表格的免费预览以及安全的 Stripe 结账链接——付款后解锁完整的 .xlsx 文件（3.99美元，一次性，无需账户）。提供 source_url 或 base64_content 之一，以及带扩展名的文件名。",
        "input_schema": {
          "type": "object",
          "properties": {
            "source_url": {
              "type": "string",
              "description": "Publicly accessible URL of the input file (preferred for large files)"
            },
            "base64_content": {
              "type": "string",
              "description": "Base64-encoded file content (for small files)"
            },
            "filename": {
              "type": "string",
              "description": "Filename WITH extension (e.g. \"report.pdf\"). Required when the format cannot be inferred from source_url."
            }
          },
          "required": []
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": true,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "list_conversions",
        "title_en": "List Supported Conversions",
        "title_zh": "列出支持的转换",
        "description_en": "List all supported conversion routes. Optionally filter by source format to see what you can convert FROM a specific format.",
        "description_zh": "列出所有支持的转换路线。可选地按源格式过滤，以查看可以从特定格式转换为什么。",
        "input_schema": {
          "type": "object",
          "properties": {
            "source_format": {
              "type": "string",
              "description": "Filter by source format (e.g. \"docx\" returns all DOCX target options)"
            }
          },
          "required": []
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "translate_file",
        "title_en": "Translate Document (paid, free preview)",
        "title_zh": "翻译文档（付费，免费预览）",
        "description_en": "Translate a document into another language with the original layout and formatting preserved (DOCX, PPTX, XLSX, PDF, TXT, MD, SRT, VTT). The job runs immediately and returns a FREE preview of the first pages plus a secure Stripe checkout link — the full translated file unlocks after payment ($4.99, one-time, no account needed). Provide EITHER source_url OR base64_content, plus a filename with extension.",
        "description_zh": "将文档翻译成另一种语言，并保留原始布局和格式（支持 DOCX、PPTX、XLSX、PDF、TXT、MD、SRT、VTT）。任务立即运行，并返回前几页的免费预览以及安全的 Stripe 结账链接——付款后解锁完整翻译文件（4.99美元，一次性，无需账户）。提供 source_url 或 base64_content 之一，以及带扩展名的文件名。",
        "input_schema": {
          "type": "object",
          "properties": {
            "source_url": {
              "type": "string",
              "description": "Publicly accessible URL of the input file (preferred for large files)"
            },
            "base64_content": {
              "type": "string",
              "description": "Base64-encoded file content (for small files)"
            },
            "filename": {
              "type": "string",
              "description": "Filename WITH extension (e.g. \"report.pdf\"). Required when the format cannot be inferred from source_url."
            },
            "target_language": {
              "type": "string",
              "description": "Target language name, e.g. \"Spanish\", \"Japanese\", \"Brazilian Portuguese\""
            }
          },
          "required": [
            "target_language"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": true,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      }
    ],
    "review_profile": {
      "schema_version": "aiworkshub.resource-review/0.2",
      "method_version": "capability-evidence-v3",
      "review_state": {
        "identity": "verified",
        "source": "verified",
        "connectivity": "verified",
        "contract": "strong",
        "safe_use": "untested",
        "real_use": "unobserved"
      },
      "assessment": {
        "capability_definition": "strong",
        "contract_completeness": "strong",
        "access_friction": "medium",
        "operational_transparency": "strong",
        "evidence_strength": "protocol_inspected",
        "use_readiness": "guided_use"
      },
      "profile": {
        "capabilities": [
          {
            "id": "file.convert",
            "weight": 90,
            "confidence": 95,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "file.translate",
            "weight": 70,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "file.extract-tables",
            "weight": 60,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "file.compress",
            "weight": 60,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "domains": [
          {
            "id": "content",
            "weight": 90,
            "confidence": 95,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "data",
            "weight": 60,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "workflow_roles": [
          "transform",
          "generate",
          "deliver"
        ]
      },
      "catalog_profile": {
        "version": "catalog-profile-v1",
        "primary_category": "content-creative",
        "integrations": [
          "GitHub"
        ],
        "use_cases": {
          "en": [
            "Convert files between formats",
            "Translate documents while preserving layout",
            "Extract tables from PDFs or images into Excel"
          ],
          "zh": [
            "在不同格式之间转换文件",
            "翻译文档并保持原有布局",
            "从 PDF 或图片中提取表格到 Excel"
          ]
        }
      },
      "capability_units": [
        {
          "id": "tool:convert_file",
          "kind": "mcp_tool",
          "capability_id": "file.convert",
          "effect": "unknown",
          "open_world": true,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "file"
          ],
          "produces": [
            "file"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:list_conversions",
          "kind": "mcp_tool",
          "capability_id": "file.convert",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:translate_file",
          "kind": "mcp_tool",
          "capability_id": "file.translate",
          "effect": "unknown",
          "open_world": true,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "file"
          ],
          "produces": [
            "file"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:extract_tables",
          "kind": "mcp_tool",
          "capability_id": "file.extract-tables",
          "effect": "unknown",
          "open_world": true,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "file"
          ],
          "produces": [
            "file"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:compress_file",
          "kind": "mcp_tool",
          "capability_id": "file.compress",
          "effect": "unknown",
          "open_world": true,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "file"
          ],
          "produces": [
            "file"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:do_file_job",
          "kind": "mcp_tool",
          "capability_id": "file.convert",
          "effect": "unknown",
          "open_world": true,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "file"
          ],
          "produces": [
            "file"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:check_job",
          "kind": "mcp_tool",
          "capability_id": "file.convert",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        }
      ],
      "access": {},
      "operational_flags": [],
      "trust": {
        "signal": "none",
        "evidence_ids": [],
        "reason": "No suspicious or malicious evidence."
      },
      "fit": {
        "good_for": [
          "File format conversion",
          "Document translation with layout preservation",
          "Table extraction from PDFs/images",
          "File compression to exact size"
        ],
        "not_for": [
          "Real-time collaboration",
          "Large-scale batch processing without API key"
        ]
      },
      "evidence": [
        {
          "id": "source-record",
          "type": "registry_record",
          "source": "https://github.com/aadilr/changethisfile-mcp",
          "observation": "MCP source record for ChangeThisFile; version 1.2.0.",
          "observed_at": null,
          "payload": {}
        },
        {
          "id": "protocol-tools",
          "type": "protocol_observation",
          "source": "https://changethisfile.com/mcp#tools/list",
          "observation": "7 tools were returned by MCP discovery; 7 were retained for review.",
          "observed_at": "2026-09-04T04:28:21.889Z",
          "payload": {}
        }
      ],
      "unknowns": [
        "Exact number of conversion routes",
        "Daily limit for compress_file",
        "Supported source formats for translation and table extraction beyond listed",
        "Authentication details for API key"
      ],
      "id": "REV_528B6A96F164",
      "resource_id": "RES_0EB83797944C",
      "evaluator_type": "platform_ai",
      "provider": "deepseek",
      "model": "deepseek-v4-flash",
      "review_scope": "protocol-inspected-mcp",
      "created_at": "2026-09-04T04:28:38.810Z"
    }
  }
}