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.
{
"mcpServers": {
"skroll": {
"url": "https://skrollai.com/api/mcp"
}
}
}Client notes
- Claude Desktop: add the block to
claude_desktop_config.jsonand 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 theWWW-Authenticateheader 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.
- 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. - Call
create_deck(a brand is optional). - 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. - To change a skroll later, read it with
get_deckand send the whole module back throughset_deck_content. Every write appends a version, andrevert_deck_versionwalks 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.
| Tool | Description |
|---|---|
| get_authoring_instructions | ALWAYS READ THIS FIRST: how to write a skroll |
| list_decks | List skrolls |
| create_deck | Create a skroll |
| get_deck | Get a skroll |
| update_deck | Rename, publish, or make a skroll a template |
| delete_deck | Delete a skroll |
| set_deck_content | Replace skroll content |
| list_deck_versions | List versions |
| get_deck_version | Get a version |
| revert_deck_version | Revert to a version |
| create_export | Request an export |
| get_export | Get export status |
| list_brands | List brands |
| get_brand | Get a brand |
| delete_brand | Delete a brand |