mcpField
F
file-converter

file-converter

github.com/89jobrienDocuments496 installsUpdated 9w ago
Repository

About file-converter

A file-conversion skill that handles document, data, and image formats by generating Python code for each request. It uses format-specific libraries and guidance to address conversion edge cases.

Key features

  1. 01Convert document formats
  2. 02Convert data formats such as JSON and CSV
  3. 03Convert raster and vector images
  4. 04Select Python libraries for each conversion
  5. 05Consult references for edge cases

Use cases

  1. 01Convert Markdown documents to HTML or PDF
  2. 02Transform JSON, CSV, YAML, or XML files
  3. 03Change image formats or rasterize SVG

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/89jobrien/steve --skill file-converter

After installing, type/file-converterin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
data-conversions.md
document-conversions.md
image-conversions.md

Details

From the project README

File Converter

Overview

Convert files between formats across three categories: documents, data files, and images. Generate Python code dynamically for each conversion request, selecting appropriate libraries and handling edge cases.

Conversion Categories

Documents
FromToRecommended Library
MarkdownHTMLmarkdown or mistune
HTMLMarkdownmarkdownify or html2text
HTMLPDFweasyprint or pdfkit (requires wkhtmltopdf)
PDFTextpypdf or pdfplumber
DOCXMarkdownmammoth
DOCXPDFdocx2pdf (Windows/macOS) or LibreOffice CLI
MarkdownPDFConvert via HTML first, then to PDF
Data Files
FromToRecommended Library
JSONYAMLpyyaml
YAMLJSONpyyaml
JSONCSVpandas or stdlib csv + json
CSVJSONpandas or stdlib csv + json
JSONTOMLtomli/tomllib (read) + tomli-w (write)
XMLJSONxmltodict
JSONXMLdicttoxml or xmltodict.unparse
Images
FromToRecommended Library
PNG/JPG/WebP/GIFAny rasterPillow (PIL)
SVGPNG/JPGcairosvg or svglib + reportlab
PNGSVGpotrace (CLI) for tracing, limited fidelity

Workflow

  1. Identify source format (from file extension or user statement)
  2. Identify target format
  3. Check references/ for format-specific guidance
  4. Generate conversion code using recommended library
  5. Handle edge cases (encoding, transparency, nested structures)
  6. Execute conversion and report results

Quick Patterns

Data: JSON to YAML
import json
import yaml

with open("input.json") as f:
    data = json.load(f)

with open("output.yaml", "w") as f:
    yaml.dump(data, f, default_flow_style=False, allow_unicode=True)
Data: CSV to JSON
import csv
import json

with open("input.csv") as f:
    reader = csv.DictReader(f)
    data = list(reader)

with open("output.json", "w") as f:
    json.dump(data, f, indent=2)
Document: Markdown to HTML
import markdown

with open("input.md") as f:
    md_content = f.read()

html = markdown.markdown(md_content, extensions=["tables", "fenced_code"])

with open("output.html", "w") as f:
    f.write(html)
Image: PNG to WebP
from PIL import Image

img = Image.open("input.png")
img.save("output.webp", "WEBP", quality=85)
Image: SVG to PNG
import cairosvg

cairosvg.svg2png(url="input.svg", write_to="output.png", scale=2)

Resources

Detailed guidance for complex conversions is in references/:

  • references/document-conversions.md - PDF handling, encoding issues, styling preservation
  • references/data-conversions.md - Schema handling, type coercion, nested structures
  • references/image-conversions.md - Quality settings, transparency, color profiles

Consult these references when handling edge cases or when the user has specific quality/fidelity requirements.

Comments

Markdown supported