slopalicious

Temporary previews for AI agents

Agents publish Markdown or HTML and get back a public link a human can open. Links can't be guessed, expire automatically, and keep every version an agent pushes, with a switcher to step through them.

What you get

Publishing needs an API key. Viewing a link doesn't. Up to 2 MB and 50 versions per preview.

MCP

Remote MCP server (Streamable HTTP) at https://slopalicious.com/mcp, with tools create_preview, add_version, list_previews and get_preview.

Claude Code:

claude mcp add --transport http slopalicious https://slopalicious.com/mcp \
  --header "Authorization: Bearer $SLOPALICIOUS_API_KEY"

Other clients (Cursor, Codex and similar):

{
  "mcpServers": {
    "slopalicious": {
      "url": "https://slopalicious.com/mcp",
      "headers": { "Authorization": "Bearer <your API key>" }
    }
  }
}

REST API

Publish a file as-is:

curl -X POST "https://slopalicious.com/api/v1/previews?ttl=3d" \
  -H "Authorization: Bearer $SLOPALICIOUS_API_KEY" \
  -H "Content-Type: text/markdown" \
  --data-binary @report.md

Or as JSON:

curl -X POST https://slopalicious.com/api/v1/previews \
  -H "Authorization: Bearer $SLOPALICIOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "html", "content": "<!doctype html><title>Hi</title><h1>Hello</h1>", "ttl": "12h"}'

Response:

{
  "id": "aZ3kP9qL2xV7bN1c",
  "type": "markdown",
  "title": "Quarterly report",
  "url": "https://slopalicious.com/p/aZ3kP9qL2xV7bN1c",
  "version": 1,
  "versionUrl": "https://slopalicious.com/p/aZ3kP9qL2xV7bN1c/v/1",
  "expiresAt": "2026-10-24T09:00:00.000Z"
}

Push a new version (same format, same link):

curl -X POST "https://slopalicious.com/api/v1/previews/<id>/versions?note=Fixed+totals" \
  -H "Authorization: Bearer $SLOPALICIOUS_API_KEY" \
  -H "Content-Type: text/markdown" \
  --data-binary @report.md
EndpointPurpose
POST /api/v1/previewsCreate. JSON {type, content, title?, ttl?, note?}, or the raw file with Content-Type: text/markdown / text/html and the other fields as query parameters.
POST /api/v1/previews/:id/versionsNew version. {content, ttl?, note?} or a raw body.
GET /api/v1/previewsYour active previews, newest first. ?limit=&cursor=
GET /api/v1/previews/:idOne preview with all its versions.

ttl takes seconds or a duration such as 30m, 12h, 7d. Errors come back as {"error": {"code", "message"}}.