Skroll MCP server

Skroll ships a Model Context Protocol server, so agents like Claude and Cursor can create, edit, publish and export skrolls directly. Every REST endpoint is exposed as a tool, 15 in total.

Connect a client

Add this to your MCP client config. The client starts an OAuth 2.1 authorization-code flow (PKCE) against Skroll: you sign in in the browser, approve access, and the client stores a token. No API key is required. Organization API keys still work if you send Authorization: Bearer sk_… yourself. The endpoint speaks Streamable HTTP. Unauthenticated requests return 401 with a WWW-Authenticate challenge pointing at the protected-resource metadata.

json
{
  "mcpServers": {
    "skroll": {
      "url": "https://skrollai.com/api/mcp"
    }
  }
}

Client notes

  • Claude Desktop: add the block to claude_desktop_config.json and restart the app.
  • Cursor: add it to ~/.cursor/mcp.json (or a project .cursor/mcp.json), then enable the server in settings.
  • Any other Streamable-HTTP MCP client: point it at https://skrollai.com/api/mcp. The client discovers OAuth from the WWW-Authenticate header or from /.well-known/oauth-protected-resource.

How to create a skroll

Your model writes the skroll. Skroll compiles it, stores every version, and publishes it. There is no tool here that runs our model on your behalf, which is why the MCP server is free to use and fast.

  1. ALWAYS READ THIS FIRST. Call get_authoring_instructions. This is essential. It returns the brief the in-app Skroll agent designs from: the rules a deck has to meet, how the module is compiled, what it may import, and what the engine already does for you. Do not skip it. Do not write from memory of what slides usually look like. Your client may already have it, since the same text is sent as server instructions when you connect.
  2. Call create_deck (a brand is optional).
  3. Write the deck-tsx module and save it with set_deck_content. It compiles server-side; a module that does not compile comes back as a 422 with the compiler message and nothing is saved.
  4. To change a skroll later, read it with get_deck and send the whole module back through set_deck_content. Every write appends a version, and revert_deck_version walks it back.

Share links

A published skroll is viewed at /d/{publicSlug}, for example https://skrollai.com/d/f4zqohxo7d. update_deck, get_deck and list_decks return that address as publicUrl when visibility is public. Share that field with humans. The deck id is not a viewer path, so do not build a URL from it.

Tools

Each tool maps one-to-one to an endpoint in the API reference.

ToolDescription
get_authoring_instructionsALWAYS READ THIS FIRST: how to write a skroll
list_decksList skrolls
create_deckCreate a skroll
get_deckGet a skroll
update_deckRename, publish, or make a skroll a template
delete_deckDelete a skroll
set_deck_contentReplace skroll content
list_deck_versionsList versions
get_deck_versionGet a version
revert_deck_versionRevert to a version
create_exportRequest an export
get_exportGet export status
list_brandsList brands
get_brandGet a brand
delete_brandDelete a brand