{
  "markdown": "# @spronta/mcp\n\nMCP server for uploading, transforming, and serving images on a global CDN — directly from AI assistants.\n\nConnect Claude, GPT, Cursor, Windsurf, or any [MCP](https://modelcontextprotocol.io)-compatible client to the [Spronta](https://www.spronta.com) Image CDN. Upload images from URLs or base64, apply real-time transforms (resize, crop, format conversion, smart crop, blurhash), create reusable presets, generate signed URLs, and monitor usage — all through natural language.\n\n## Why use this?\n\n- **Upload images from AI** — give your LLM an image URL and it uploads, optimizes, and returns a CDN link\n- **Real-time transforms** — resize, crop, convert to WebP/AVIF/JXL, smart crop with face detection\n- **Global CDN delivery** — images served from edge locations worldwide\n- **Blurhash generation** — automatic blur placeholders computed on upload\n- **Signed URLs** — HMAC-SHA256 signed URLs with expiration for private images\n- **Named presets** — create reusable transform configurations (e.g. `thumbnail`, `hero`, `og-image`)\n- **No vendor lock-in** — MIT licensed, open source\n\n## Quick start\n\n### Install\n\n```bash\nnpm install -g @spronta/mcp\n# or use directly\nnpx @spronta/mcp\n```\n\n### Claude Code\n\n```bash\nclaude mcp add spronta \\\n  -e SPRONTA_API_KEY=spronta_img_... \\\n  -e SPRONTA_PROJECT_ID=your-project-id \\\n  -- npx @spronta/mcp\n```\n\n### Claude Desktop / Cursor / Windsurf\n\nAdd to your MCP configuration file:\n\n```json\n{\n  \"mcpServers\": {\n    \"spronta\": {\n      \"command\": \"npx\",\n      \"args\": [\"@spronta/mcp\"],\n      \"env\": {\n        \"SPRONTA_API_KEY\": \"spronta_img_...\",\n        \"SPRONTA_PROJECT_ID\": \"your-project-id\"\n      }\n    }\n  }\n}\n```\n\n### Get your API key\n\n1. Sign up at [app.spronta.com](https://app.spronta.com/sign-up) (free tier: 100 images)\n2. Create a project in the dashboard\n3. Copy your API key from project settings\n\n## Environment variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `SPRONTA_API_KEY` | Yes | Your project API key |\n| `SPRONTA_PROJECT_ID` | No | Default project ID (can also be passed per-tool) |\n| `SPRONTA_API_URL` | No | API base URL (default: `https://app.spronta.com/api`) |\n\n## 18 tools available\n\n### Projects\n| Tool | Description |\n|------|-------------|\n| `list_projects` | List all image projects |\n| `create_project` | Create a new project |\n| `get_project` | Get project details with usage stats |\n| `update_project` | Update name or custom domain |\n| `delete_project` | Permanently delete a project |\n\n### Upload & Images\n| Tool | Description |\n|------|-------------|\n| `upload_image` | Upload from URL or base64 — handles presigned upload, blurhash generation, and CDN URL creation in one call |\n| `list_images` | List images with pagination |\n| `update_image` | Update alt text and tags |\n| `delete_image` | Delete an image from CDN and storage |\n\n### Transform Presets\n| Tool | Description |\n|------|-------------|\n| `list_presets` | List named transform presets |\n| `create_preset` | Create a preset (use in CDN URLs with `?t=name`) |\n| `update_preset` | Update a preset's name or transforms |\n| `delete_preset` | Delete a preset |\n\n### URL Signing\n| Tool | Description |\n|------|-------------|\n| `get_signing_config` | Get URL signing configuration |\n| `update_signing` | Enable/disable HMAC-SHA256 signing |\n| `generate_signed_url` | Generate a signed CDN URL with optional expiration |\n\n### Analytics & Utility\n| Tool | Description |\n|------|-------------|\n| `get_usage` | Get daily metrics (requests, bandwidth, transforms) |\n| `build_cdn_url` | Build a CDN URL with transform parameters (no API call) |\n\n## Example prompts\n\nOnce connected, just ask your AI:\n\n```\n> Upload this image to my project: https://example.com/photo.jpg\n\n> Create a thumbnail preset: 200x200, cover crop, face detection, webp format\n\n> How many requests did my project handle this week?\n\n> Generate a signed URL for hero.jpg that expires in 1 hour\n\n> List all my images and update the alt text on the product shots\n\n> Build a CDN URL for banner.png at 1200px wide in avif format\n```\n\n## Transform options\n\nWhen creating presets or building URLs, these transforms are available:\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `width` | integer | Output width (1–8192) |\n| `height` | integer | Output height (1–8192) |\n| `fit` | string | `cover`, `contain`, `fill`, `scale-down`, `crop`, `pad` |\n| `format` | string | `auto`, `webp`, `avif`, `jpeg`, `png`, `jxl` |\n| `quality` | integer | 1–100 |\n| `qualityMode` | string | `high`, `medium`, `low` (perceptual targeting) |\n| `gravity` | string | `auto`, `face`, `center`, position keywords |\n| `blur` | integer | Gaussian blur (1–250) |\n| `sharpen` | number | Unsharp mask (0–10) |\n| `radius` | integer | Corner radius (1–9999, or \"max\" for circle) |\n| `grayscale` | boolean | Convert to grayscale |\n| `brightness` | integer | -100 to 100 |\n| `contrast` | number | -100 to 100 |\n| `saturation` | integer | -100 to 100 |\n| `sepia` | boolean | Sepia tone filter |\n| `rotate` | integer | 90, 180, 270 |\n| `flip` | string | `h` (horizontal), `v` (vertical) |\n\n## How upload works\n\nThe `upload_image` tool handles the full upload pipeline in a single call:\n\n1. You provide an image URL (or base64 data) and a filename\n2. The server fetches the image\n3. Requests a presigned upload URL from Spronta\n4. Uploads the file directly to storage\n5. Confirms the upload — Spronta computes the blurhash and detects dimensions\n6. Returns the confirmed image with CDN URL, blurhash, and metadata\n\n## Related packages\n\n- [`@spronta/images`](https://www.npmjs.com/package/@spronta/images) — Core URL builder SDK (zero deps)\n- [`@spronta/images-react`](https://www.npmjs.com/package/@spronta/images-react) — React components\n- [`@spronta/images-next`](https://www.npmjs.com/package/@spronta/images-next) — Next.js integration\n- [WordPress plugin](https://github.com/spronta/wordpress-plugin) — Automatic CDN for WordPress\n\n## Links\n\n- [Website](https://www.spronta.com)\n- [Documentation](https://www.spronta.com/docs)\n- [API Reference](https://www.spronta.com/docs/api)\n- [OpenAPI Spec](https://www.spronta.com/openapi.yaml)\n- [GitHub](https://github.com/spronta/mcp)\n- [npm](https://www.npmjs.com/package/@spronta/mcp)\n\n## License\n\n[MIT](LICENSE)\n",
  "bytes": 6304,
  "sha": "2f1b2368e4df148dfa222c684c8154b2d058a87630961614a043e642c9f061bb",
  "repo_slug": "spronta/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_spronta_mcp_a9d55a24/readme"
}