Skip to content
offgen docs

MCP tool reference

Look up the 10 tools of the offgen MCP server, their inputs and outputs, and the order assistants call them in.

The offgen MCP server has 10 tools: 5 for workflows and 5 for Library templates. Your assistant chooses and calls them on its own. Use this page to build an integration or to understand what an assistant did.

Endpoint: https://api.offgen.ai/mcp (Streamable HTTP, stateless) · Auth: sign in with offgen (OAuth), or an offgen_ API key as Authorization: Bearer or X-API-Key · Scope: one organization per connection

To connect a client, see Use offgen in AI assistants. The public server at https://www.offgen.ai/mcp is a different one: it only reads offgen product information and cannot create presentations.

Workflow tools

ToolInputsReturns
list_workflowsnoneThe workflows you can run: id, name, description. If there are none, emptyReason is no_runnable_workflows.
describe_workflowworkflowIdThe workflow's inputs (name, label, type, required, allowed values) and a JSON Schema inputSchema. Dates use YYYY-MM-DD.
generate_presentationworkflowId, inputs (keyed by the inputSchema property names)A runId with status queued. Invalid inputs return an error and start no run.
get_resultrunIdstatus (queued, running, completed or failed), slidesEmitted, pollAgain and error. When completed, the download link.
download_presentationrunIdThe download link of a completed run, the same one get_result returns. Kept for older integrations.

Generate from a workflow

  1. list_workflows, then pick a workflow by its id. Names are display names only.
  2. describe_workflow to learn the required inputs. Check the values against inputSchema.
  3. generate_presentation returns a runId right away.
  4. get_result with that runId. Each call waits up to 55 seconds. While pollAgain is true, call it again with the same runId.
  5. When the status is completed, get_result returns the download link. Give it to the user. You don't need download_presentation.

The workflows are the ones your organization builds in offgen. See Build a workflow.

Library template tools

With these tools, the assistant writes every word itself and offgen assembles the slides from your Library templates. Shapes that are locked keep their content.

ToolInputsReturns
search_templatesquery (optional, any language), limit (1 to 25, default 10)Matching templates with templateId, name, description, masterName, space and the number of text and picture slots. Without a query, the newest templates.
get_templatetemplateIds (1 to 10), waitForAnalysis (optional, waits up to 40 seconds)offgen's analysis of each template, its slots (shapeId, kind, role, guidance, current text, locked), its layout's placeholders, a preview image and links to the preview and the .pptx.
compose_deckslides (1 to 20), each with a templateId or layoutOf, plus text, remove and images keyed by shapeIdOne .pptx: a download link, a preview per slide and the result of the file check.
upload_presentationbase64 (under 4 MB), or nothing; kind: pptx, png or jpegAn uploadId. Without base64, an upload URL and a ready curl command to send the file.
onboard_templatesuploadId, slideNumbers (optional, up to 30 per call), space (organization or my, default organization)One template per slide with its templateId and the status created or existing.

Build a deck from templates

  1. search_templates with what the slide should show, for example "team overview with photos".
  2. get_template for the candidates, to see their slots and previews.
  3. compose_deck with the text and pictures for each shapeId. Use layoutOf for a new slide on a template's layout.
  4. Check every preview. To fix something, call compose_deck again with the whole deck.
  5. Give the user the download link.

For pictures, upload a PNG or JPEG with upload_presentation first, then put its uploadId in images.

Add slides as templates

  1. upload_presentation with the .pptx.
  2. onboard_templates with the uploadId. The call is safe to repeat: slides that already exist come back as existing.
  3. offgen names and analyzes each new template in 1 to 3 minutes. Call get_template with waitForAnalysis: true until it's done.

The organization space needs the Owner or Admin role. With my, the templates go to your personal library (My). See Users, teams and roles.

  • No tool returns file bytes. A finished deck comes as an MCP resource_link, a Markdown link and the fields downloadUrl, suggestedFileName and mimeType.
  • The link carries a short-lived token for this one deck, so a browser opens it without signing in. When it expires, call the tool again for a fresh link.
  • Clients on an MCP version older than 2025-06-18 get the same fields as JSON text.

Errors and limits

  • A tool error comes back with isError and a message that says what to do next, for example an unknown runId or a run that isn't finished.
  • Missing or invalid credentials return 401 with a WWW-Authenticate header, so OAuth clients can start the sign-in. If a client calls a tool after losing access, for example with a revoked key or an inactive subscription, the tool returns a message that names the cause.
LimitValue
Inline upload (base64)under 4 MB; use the upload URL for larger files
Presentation size150 MB
Slides per onboard_templates call30; call again for the rest
Slides per compose_deck call20
PicturesPNG or JPEG, up to 10 MB each, 10 different pictures per compose_deck call
Was this page helpful?

Questions? support@offgen.ai

On this page