{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "app.ollav/ollav",
  "title": "Ollav",
  "description": "Share HTML prototypes as live links; read element-pinned review comments; publish new versions.",
  "version": "1.1.0",
  "websiteUrl": "https://ollav.app/docs/agents",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://app.ollav.app/mcp",
      "headers": [
        {
          "name": "Authorization",
          "description": "Bearer ol_live_... API key (ol_test_... in test mode), created at https://app.ollav.app/keys",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ],
  "protocolVersions": [
    "2024-11-05",
    "2025-03-26",
    "2025-06-18",
    "2025-11-25"
  ],
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "instructions": "Ollav is where humans and AI agents share live HTML prototypes and review them together. Use it when the user asks to share, preview, host, get feedback on or review an HTML file, prototype, mockup or generated page. share_html publishes it and returns a `url`: always give that link to the user. To act on feedback, call get_review (open threads as Markdown + JSON, with source-findable anchors and a cursor for polling); the loop is get_review → edit → publish_new_version (same slug, same URL, comments kept) → resolve_comment, optionally replying with add_comment to say what changed. Leave visibility at its default ('workspace') unless the user explicitly asks for public sharing. For files on disk with a shell available, uploading with curl costs no tokens (see the share_html description). Old tool names upload_document and new_version still work.",
  "authentication": {
    "oauth2": {
      "protectedResourceMetadata": "https://app.ollav.app/.well-known/oauth-protected-resource/mcp",
      "authorizationServer": "https://app.ollav.app",
      "grant": "authorization_code with PKCE (S256); dynamic client registration and client ID metadata documents supported",
      "scopes": [
        "upload",
        "read",
        "comment"
      ]
    },
    "bearer": {
      "keyFormat": "ol_live_... (ol_test_... in test mode)",
      "obtain": "https://app.ollav.app/keys",
      "alternative": "Clients that cannot send headers may use https://app.ollav.app/mcp/{key} (the URL is then a secret)."
    }
  },
  "tools": [
    {
      "name": "share_html",
      "title": "Share HTML as a live, commentable link",
      "description": "publish an HTML file/prototype/mockup and get a share link people can comment on (alias: upload_document)"
    },
    {
      "name": "publish_new_version",
      "title": "Publish a new version at the same link",
      "description": "update something you already shared; same URL, comments kept (alias: new_version)"
    },
    {
      "name": "list_documents",
      "title": "List shared documents",
      "description": "find documents shared earlier, with version and open-comment counts"
    },
    {
      "name": "get_document",
      "title": "Get a document and its versions",
      "description": "metadata, share URL and version history of one document"
    },
    {
      "name": "get_comments",
      "title": "Get every comment (full thread data)",
      "description": "every comment, resolved ones too, as threaded JSON"
    },
    {
      "name": "get_review",
      "title": "Read open review comments (Markdown summary + JSON)",
      "description": "open feedback threads as a Markdown summary plus JSON, with a cursor for polling"
    },
    {
      "name": "add_comment",
      "title": "Comment on an element, or reply",
      "description": "pin a comment to an element, or reply in a thread (e.g. \"fixed in v3\")"
    },
    {
      "name": "resolve_comment",
      "title": "Resolve or reopen a thread",
      "description": "mark a thread done after fixing it (or reopen it)"
    },
    {
      "name": "react_to_comment",
      "title": "React to a comment",
      "description": "acknowledge a comment with an emoji (👍 👀 ✅ ❤️ 🎉 or any other)"
    },
    {
      "name": "delete_comment",
      "title": "Delete a comment",
      "description": "delete a comment and its replies (author or document owner)"
    },
    {
      "name": "export_data",
      "title": "Export data (GDPR)",
      "description": "signed link to a ZIP of the user's data or workspace"
    }
  ],
  "toolAliases": {
    "upload_document": "share_html",
    "new_version": "publish_new_version"
  },
  "documentation": {
    "mcp": "https://ollav.app/docs/mcp",
    "quickstart": "https://ollav.app/docs/agents",
    "llms": "https://ollav.app/llms.txt",
    "openapi": "https://ollav.app/openapi.json"
  }
}