The MagicSlides connector lets your AI agent act in each user's MagicSlides account. Each user connects their own MagicSlides API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 9 tools.
- Tools
- 9
- What they doRead · write · destructive
- 4 · 5 · 04 read5 write0 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the MagicSlides connection
In AgentKit > Connections, create a MagicSlides connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'magicslides'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize MagicSlides:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'magicslides_get_current_user',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "magicslides"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize MagicSlides:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="magicslides_get_current_user",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their MagicSlides credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolmagicslides_get_current_userGet the MagicSlides account behind the API key.Read-onlyGet Current User
Get the MagicSlides account behind the API key. Returns success and user, with the account email and plan. Free. Use magicslides_get_current_user to check that the connection works and which plan it is on before generating decks.
Inputs
This tool takes no inputs.
magicslides_get_studio_template_schemaGet the slide plan and text slots to fill for a MagicSlides Studio template, so you can write the deck copy yourself.Read-onlyGet Studio Template Schema
Get the slide plan and text slots to fill for a MagicSlides Studio template, so you can write the deck copy yourself. Returns templateKey, slideCount, plan, slides (each with index, layoutKey, imageMode and slots, a map of slot key to guidance on what to write), an example request body to copy, and byoReadyTemplates. Free. Use magicslides_get_studio_template_schema before magicslides_create_studio_presentation_from_slots. Only templates with slotsReady true work; the default template is creative-design.
Inputs
slidesinteger- Number of slides to plan, 3 to 20. MagicSlides uses 7 when omitted. Example: 7.
template_keystring- Key of a Studio template with slotsReady true, from magicslides_list_studio_templates. MagicSlides uses its default template when omitted. Example: editorial-pitch.
magicslides_list_studio_templatesList the pre-designed MagicSlides Studio templates that Studio decks are built from.Read-onlyList Studio Templates
List the pre-designed MagicSlides Studio templates that Studio decks are built from. Returns templates, each with templateKey, name, category and slotsReady. Templates with slotsReady true can be filled with your own copy through magicslides_get_studio_template_schema and magicslides_create_studio_presentation_from_slots. Free. Use magicslides_list_studio_templates to pick a template for the Studio tools. Use magicslides_list_templates for the templates used by magicslides_generate_template_presentation.
Inputs
This tool takes no inputs.
magicslides_list_templatesList the MagicSlides presentation templates that magicslides_generate_template_presentation can use.Read-onlyList Templates
List the MagicSlides presentation templates that magicslides_generate_template_presentation can use. Returns the templates with each one's key (pass it as template_key) and descriptive details. Free. Use magicslides_list_templates before magicslides_generate_template_presentation. Use magicslides_list_studio_templates for the Studio templates used by magicslides_generate_studio_presentation.
Inputs
modestring- Set to proslides to list only the templates that produce per-slide HTML output. Omit to list every template.one of
proslides
magicslides_create_studio_presentation_from_slotsRender a designed MagicSlides Studio deck from slide copy you wrote for a template's slots.WriteCreate Studio Presentation from Slots
Render a designed MagicSlides Studio deck from slide copy you wrote for a template's slots. MagicSlides writes none of the text. Returns status, previewImageUrl (PNG of the first slide), previewUrl (live slideshow), shareUrl, editUrl (opens in MagicSlides Studio), pdfUrl, slideCount, templateKey and conversationId. Free. Use magicslides_create_studio_presentation_from_slots when you have written the content. Use magicslides_generate_studio_presentation to have MagicSlides write it. Call magicslides_get_studio_template_schema first for the same template_key to get the layoutKey and slot keys of each slide.
Inputs
slidesarrayrequired- The deck's slides, 3 to 20, in order. Each slide gives the layoutKey from the schema and a slots object that maps every slot key from the schema to your text. Image slots ending in _URL take an image link; slots ending in _QUERY take a search phrase. Example: [{"layoutKey": "cover", "slots": {"TITLE": "Q3 Product Update", "SUBTITLE": "What shipped and what is next"}}].
template_keystringrequired- The same slotsReady Studio template key you got the schema for from magicslides_get_studio_template_schema. Example: editorial-pitch.
include_imagesstring- How to fill image slots that you gave a search phrase (_QUERY) but no image link (_URL) for: stock for stock photos, ai for AI-generated images, none for no image. MagicSlides uses stock when omitted.one of
stocknoneai languagestring- Language of the slide text as an ISO 639-1 code. Example: en, es, fr, de, ja. Defaults to en when omitted.
titlestring- Title of the deck. Example: Q3 Product Update.
magicslides_generate_presentationGenerate an AI presentation in the MagicSlides editor from a topic or from text you paste in, such as notes or a summary.WriteGenerate Presentation
Generate an AI presentation in the MagicSlides editor from a topic or from text you paste in, such as notes or a summary. Returns success, presentationId, presentationUrl (the MagicSlides editor link, where the deck can be edited and downloaded as PPTX or PDF), slug and slideCount. Takes about 30 to 60 seconds and uses MagicSlides credits. Use magicslides_generate_presentation for a deck from a topic or text. Use magicslides_generate_presentation_from_url to turn a web page into slides. Use magicslides_generate_template_presentation when you need direct PPTX and PDF links in a designed template.
Inputs
topicstringrequired- What the presentation is about: a short topic, or the full text to turn into slides (notes, a summary, an outline). Be specific. Example: The future of AI in healthcare: diagnostics, drug discovery and patient privacy.
include_imagesboolean- Set to true to add stock images to the slides. Defaults to false.
languagestring- Language of the slide text as an ISO 639-1 code. Example: en, es, fr, de, ja. Defaults to en when omitted.
presentation_forstring- Who the presentation is for, as free text. Example: hospital administrators.
presentation_tonestring- Tone of the slide copy, as free text. Examples: professional, casual, persuasive.
presentation_typestring- Kind of presentation, as free text that steers the writing style. Examples: business, educational, pitch.
slidesinteger- Number of slides to generate, 1 to 20. MagicSlides uses 5 when omitted. Example: 8.
web_searchboolean- Set to true to research the topic with a live web search before writing the slides. Defaults to false.
magicslides_generate_presentation_from_urlGenerate an AI presentation in the MagicSlides editor from the content of a public web page, such as an article, blog post or documentation page.WriteGenerate Presentation from URL
Generate an AI presentation in the MagicSlides editor from the content of a public web page, such as an article, blog post or documentation page. Returns success, presentationId, presentationUrl (the MagicSlides editor link, where the deck can be edited and downloaded as PPTX or PDF) and slideCount. Takes about 30 to 60 seconds and uses MagicSlides credits. Use magicslides_generate_presentation_from_url when the source is a web page. Use magicslides_generate_presentation for a topic or text you already have.
Inputs
urlstringrequired- Full URL of a publicly reachable web page whose content becomes the slides. Pages behind a login cannot be read. Example: https://en.wikipedia.org/wiki/Solar_energy.
languagestring- Language of the slide text as an ISO 639-1 code. Example: en, es, fr, de, ja. Defaults to en when omitted.
slidesinteger- Number of slides to generate, 1 to 20. MagicSlides uses 5 when omitted. Example: 10.
magicslides_generate_studio_presentationGenerate a designed MagicSlides Studio deck from a topic, with MagicSlides AI writing all the slide copy.WriteGenerate Studio Presentation
Generate a designed MagicSlides Studio deck from a topic, with MagicSlides AI writing all the slide copy. Returns status, previewImageUrl (PNG of the first slide), previewUrl (live slideshow), shareUrl, editUrl (opens in MagicSlides Studio), pdfUrl, slideCount, templateKey and conversationId. Takes up to about 40 seconds and uses MagicSlides AI credits. When status is out_of_credits, the response includes a createUrl to give the user. Use magicslides_generate_studio_presentation only when MagicSlides should write the content. Use magicslides_create_studio_presentation_from_slots to render copy you wrote yourself, which is free.
Inputs
topicstringrequired- What the presentation is about. Be specific. Example: Quarterly product update for the sales team.
audiencestring- Who the presentation is for, as free text. Example: enterprise sales team.
languagestring- Language of the slide text as an ISO 639-1 code. Example: en, es, fr, de, ja. Defaults to en when omitted.
slidesinteger- Number of slides, 3 to 20. MagicSlides uses 7 when omitted. Example: 7.
template_keystring- Key of the Studio template to use, from magicslides_list_studio_templates. MagicSlides picks one when omitted. Example: editorial-pitch.
magicslides_generate_template_presentationGenerate an AI presentation on a topic in a designed MagicSlides template, with ready-made download files.WriteGenerate Template Presentation
Generate an AI presentation on a topic in a designed MagicSlides template, with ready-made download files. Returns success, templateKey, slideCount, presentUrl (hosted slideshow), pptxUrl, pdfUrl and slides (one item per slide with its index and full HTML). Takes about 30 to 60 seconds and uses MagicSlides credits. Use magicslides_generate_template_presentation when you need direct PPTX or PDF links or per-slide HTML. Use magicslides_generate_presentation for a deck to edit in the MagicSlides editor. Call magicslides_list_templates first to get a valid template_key.
Inputs
template_keystringrequired- Key of the template to use, from magicslides_list_templates. Example: editorial-magazine.
topicstringrequired- What the presentation is about. Be specific. Example: Sustainable energy trends 2025.
languagestring- Language of the slide text as an ISO 639-1 code. Example: en, es, fr, de, ja. Defaults to en when omitted.
presentation_forstring- Who the presentation is for, as free text. Example: hospital administrators.
presentation_tonestring- Tone of the slide copy, as free text. Examples: professional, casual, persuasive.
presentation_typestring- Kind of presentation, as free text that steers the writing style. Examples: business, educational, pitch.
slidesinteger- Number of slides to generate, 3 to 20. MagicSlides uses 7 when omitted. Example: 8.
No tools match.