{
  "markdown": "# filewash — privacy-first file tools for AI agents\n\nThe file-processing layer for agents and apps that **can't send files to a third party**.\nCompress, convert, resize, merge/split PDFs, **strip metadata**, and **remove backgrounds** —\nexposed as an **MCP server**, a **metered REST API**, and an npm SDK. Zero-retention by\ndefault: files are processed in memory and never stored or logged.\n\n> Built from [filewash.app](https://filewash.app)'s client-side WASM tools. Same logic,\n> now callable by your agents.\n\n## Why this exists\n\nEvery other file-tools API and MCP server is a wrapper around an upload-to-server service.\nThat's a non-starter for legal, healthcare, finance, and any GDPR-bound workflow — and it's a\nliability when you're piping documents into an LLM. filewash is the one built around\n**not keeping your files**, with two tools nobody else ships as an MCP: **background removal**\nand **metadata scrubbing**.\n\n## MCP server (Claude Desktop, Cursor, Claude Code)\n\n```jsonc\n// claude_desktop_config.json  →  mcpServers\n{\n  \"filewash\": { \"command\": \"node\", \"args\": [\"/path/to/filewash-api/src/mcp/server.js\"] }\n}\n```\n\nYour agent now has 11 tools. Ask it: *\"strip the location metadata from these photos before\nI upload them\"* or *\"merge these contracts and rotate the scanned pages.\"*\n\n## REST API\n\n```bash\n# discover\ncurl https://api.filewash.app/v1/tools\n\n# strip EXIF/GPS from a photo (returns the cleaned image)\ncurl -X POST https://api.filewash.app/v1/tools/image_strip_metadata \\\n  -H \"Authorization: Bearer $FILEWASH_KEY\" \\\n  -F 'files=@photo.jpg' -o clean.jpg\n\n# merge PDFs\ncurl -X POST https://api.filewash.app/v1/tools/pdf_merge \\\n  -H \"Authorization: Bearer $FILEWASH_KEY\" \\\n  -F 'files=@a.pdf' -F 'files=@b.pdf' -o merged.pdf\n```\n\nEvery response carries `X-Filewash-Meta` (operation result) and `X-Filewash-Quota-Remaining`.\n\n## Tools\n\n| Tool | Category | What it does |\n|------|----------|--------------|\n| `pdf_merge` | pdf | Merge PDFs into one |\n| `pdf_split` | pdf | Extract specific pages |\n| `pdf_rotate` | pdf | Rotate pages by 90° |\n| `pdf_strip_metadata` | **privacy** | Remove author/title/producer/dates |\n| `image_compress` | image | Lossy re-encode at a target quality |\n| `image_convert` | image | jpeg ↔ png ↔ webp ↔ avif |\n| `image_resize` | image | Resize (never upscales) |\n| `image_strip_metadata` | **privacy** | Strip EXIF/GPS/ICC/XMP |\n| `image_remove_background` | image | Remove background → transparent PNG (local AI model, no upload) |\n| `image_watermark` | image | Tile a text watermark |\n| `qr_generate` | generate | QR code PNG from text/URL |\n\n## Pricing (planned)\n\n| Plan | Price | Quota | Retention |\n|------|-------|-------|-----------|\n| Free | $0 | 100 ops/mo | in-memory |\n| Pro | ~$19/mo | 10,000 ops/mo | in-memory |\n| Business | ~$99/mo | unlimited | **zero-retention guarantee + audit log + BAA** |\n\n## Run locally\n\n```bash\nnpm install\nnpm run test:engine   # 10 tools, end-to-end, no browser\nnpm run mcp           # stdio MCP server\nnpm run rest          # REST API on :8787  (try key \"demo\")\n```\n\n## Privacy\n\nNo file is written to disk by the REST API; the MCP server writes output only to the path you\npass. No file contents are logged. The Business tier adds a contractual zero-retention\nguarantee and audit logging.\n",
  "bytes": 3288,
  "sha": "7991f7bc6f481fba8b65906725a908180ebb7b76bcc9cf622f2b29642f12e827",
  "repo_slug": "cassilup/filewash-api",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_cassilup_filewash_87fe158c/readme"
}