{
  "markdown": "# QkConvert Plugin for Claude\n\nFile conversion API plugin — convert images, audio, documents, and data formats directly from Claude Code and Cowork. [Try it in the sandbox](https://qkconvert.dev/sandbox) — 20 requests/day, no signup required.\n\n## Install\n\n**1. Add the marketplace:**\n```\n/plugin marketplace add Necromunger/qkconvert-plugin\n```\n\n**2. Install the plugin:**\n```\n/plugin install qkconvert@qkconvert-plugin\n```\n\n**3. Set your API key:**\n\nSign up free at [qkconvert.dev](https://qkconvert.dev/portal/signup) (Google, GitHub, or email), then create an API key in the dashboard.\n\n**Claude Code (Mac/Linux)** — add to your shell config (`.bashrc`, `.zshrc`):\n```bash\nexport QKCONVERT_API_KEY=sk_live_...\n```\n\n**Claude Code (Windows)** — run in CMD or PowerShell (persists across sessions):\n```\nsetx QKCONVERT_API_KEY sk_live_...\n```\n\n**Cowork** — set in the plugin's environment configuration when prompted during install, or via Settings > Plugins > QkConvert > Environment Variables.\n\nThe plugin reads `QKCONVERT_API_KEY` from the environment and passes it as `Authorization: Bearer` to all API calls.\n\n> **No key yet?** Try the [sandbox](https://qkconvert.dev/sandbox) first — 20 free requests per day with no signup.\n\n## Skills\n\n6 skills covering all 64 API endpoints. All endpoints **must** be called via curl (as the skills do), not by invoking the MCP tools directly - the OpenAPI-to-MCP bridge cannot transmit multipart/form-data bodies, so direct tool calls arrive with empty content regardless of whether you pass a file path or inline data. The MCP tools are exposed for discovery and documentation only.\n\n| Skill | What it does | Credits | Endpoints covered |\n|-------|-------------|---------|-------------------|\n| `/convert-image` | Convert, resize, optimize, watermark, strip EXIF, thumbnails, QR codes, barcodes, OCR, batch ops, blurhash, GIF, crop | 1 | 18 |\n| `/convert-audio` | Convert, trim, merge, split, normalize volume, generate waveform | 3 | 7 |\n| `/process-document` | Merge, split, compress, watermark, extract text, render to image, create PDF, protect, office-to-pdf | 2 | 11 |\n| `/convert-data` | Convert between CSV, JSON, XML, YAML, XLSX, TOML + Markdown to HTML | 1 | 25 |\n| `/hash-file` | Compute MD5, SHA-1, SHA-256, SHA-512, CRC32 for any file | 1 | 1 |\n| `/archive` | Create ZIP archives, inspect ZIP contents | 2 | 2 |\n\n**Total: 64 endpoints across 7 categories** - see the [OpenAPI spec](https://qkconvert.dev/api/openapi.json) for the full inventory.\n\n## Output Files\n\nAll skills save output files to the **current working directory** by default, using the original filename with the new extension (e.g. `photo.png` → `photo.webp`). If a file with that name already exists, the skill will ask before overwriting.\n\nSkills are **manually chainable** — run one, then reference the output path in the next:\n```\n/convert-image photo.tiff to png\n/hash-file photo.png sha256\n```\n\nAutomatic piping between skills is not currently supported — each skill runs as an independent API call.\n\n## Examples\n\n**Image conversion with options:**\n```\n/convert-image photo.png to webp at quality 85, resize to 800px wide\n```\n\n**Trim an audio clip:**\n```\n/convert-audio podcast.mp3 trim from 1:30 to 5:45, output as wav\n```\n\n**Merge PDFs:**\n```\n/process-document merge chapter1.pdf chapter2.pdf chapter3.pdf\n```\n\n**Convert a spreadsheet to JSON:**\n```\n/convert-data sales.xlsx to json, pretty-printed\n```\n\n**Verify file integrity:**\n```\n/hash-file release.zip sha256\n```\n\n## Pricing\n\n| Plan | Monthly | Credits | Rate limit | Overage |\n|------|---------|---------|------------|---------|\n| Free | $0 | 500/mo | 5 RPM | Hard cap |\n| Hobby | $6 | 1,000/mo | 30 RPM | $0.006/credit |\n| Starter | $15 | 5,000/mo | 60 RPM | $0.003/credit |\n| Pro | $60 | 50,000/mo | 300 RPM | $0.002/credit |\n\n**Credit costs by category:**\n\n| Category | Credits | Endpoints |\n|----------|---------|-----------|\n| Images (convert, resize, optimize, watermark, QR, barcode, EXIF, thumbnails, metadata, OCR, batch ops, blurhash, GIF, crop) | 1 | 18 |\n| Data (CSV, JSON, XML, YAML, XLSX, TOML, Markdown — 25 conversion pairs) | 1 | 25 |\n| File utilities (hash/checksum) | 1 | 1 |\n| Documents (merge, split, compress, watermark, text, to-image, from-images, text-to-pdf, metadata, protect, office-to-pdf) | 2 | 11 |\n| Archives (ZIP create, ZIP inspect) | 2 | 2 |\n| Audio (convert, trim, merge, split, normalize, waveform, metadata) | 3 | 7 |\n\nFree tier: 500 credits total per month across all categories. For example, 500 image conversions, or 166 audio conversions, or any mix.\n\n## Limits\n\n- **Max file size:** 10 MB (authenticated), 2 MB (sandbox)\n- **Supported image input:** JPEG, PNG, WebP, AVIF, GIF, BMP, TIFF, ICO, SVG\n- **Supported audio input:** MP3, WAV, FLAC, OGG, AAC, AIFF\n- **Audio output:** MP3, WAV, FLAC only\n- **Documents:** PDF only\n- **Archives:** ZIP only\n\n## Error Reference\n\n| HTTP Code | Error code | Meaning |\n|-----------|-----------|---------|\n| 400 | `bad_request` | Malformed input, unsupported format, missing parameter, or file too large |\n| 401 | `unauthorized` | API key missing or invalid — check `QKCONVERT_API_KEY` |\n| 403 | `quota_exceeded` | Monthly credits exhausted (free tier). Upgrade or wait for billing reset |\n| 429 | `rate_limited` | Too many requests — wait for `Retry-After` header value |\n| 500 | `internal_error` | Server error (rare). Retry the request |\n\nError responses are JSON: `{\"error\": {\"code\": \"bad_request\", \"message\": \"Unsupported format: 'xyz'\"}}`\n\n## Manual MCP Config\n\nIf you prefer to configure MCP directly instead of using the plugin:\n\n```json\n{\n  \"mcpServers\": {\n    \"qkconvert\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ivotoby/openapi-mcp-server\"],\n      \"env\": {\n        \"API_BASE_URL\": \"https://qkconvert.dev\",\n        \"OPENAPI_SPEC_PATH\": \"https://qkconvert.dev/api/openapi.json\",\n        \"API_HEADERS\": \"Authorization:Bearer YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n## Plugin Structure\n\n```\n.claude-plugin/\n  plugin.json           # Plugin manifest (name, version, description)\n  marketplace.json      # Marketplace catalog for discovery\n.mcp.json               # MCP server config (OpenAPI bridge)\nskills/\n  convert-image/SKILL.md\n  convert-audio/SKILL.md\n  process-document/SKILL.md\n  convert-data/SKILL.md\n  hash-file/SKILL.md\n  archive/SKILL.md\n```\n\n## Links\n\n- [Website](https://qkconvert.dev)\n- [API Docs](https://qkconvert.dev/docs) (interactive Swagger UI)\n- [Sandbox](https://qkconvert.dev/sandbox) — try 20 requests/day without signing up\n- [OpenAPI Spec](https://qkconvert.dev/api/openapi.json)\n- [llms.txt](https://qkconvert.dev/llms.txt) — AI-readable API reference\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n",
  "bytes": 6704,
  "sha": "6bded336146d191aa4ce00eb7c210e4b9df21e8d80afae6bfa7790b866229c49",
  "repo_slug": "necromunger/qkconvert-plugin",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_necromunger_qkconvert_plugin_qkconvert_1c5d5719/readme"
}