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
| Tool | Inputs | Returns |
|---|---|---|
list_workflows | none | The workflows you can run: id, name, description. If there are none, emptyReason is no_runnable_workflows. |
describe_workflow | workflowId | The workflow's inputs (name, label, type, required, allowed values) and a JSON Schema inputSchema. Dates use YYYY-MM-DD. |
generate_presentation | workflowId, inputs (keyed by the inputSchema property names) | A runId with status queued. Invalid inputs return an error and start no run. |
get_result | runId | status (queued, running, completed or failed), slidesEmitted, pollAgain and error. When completed, the download link. |
download_presentation | runId | The download link of a completed run, the same one get_result returns. Kept for older integrations. |
Generate from a workflow
list_workflows, then pick a workflow by itsid. Names are display names only.describe_workflowto learn the required inputs. Check the values againstinputSchema.generate_presentationreturns arunIdright away.get_resultwith thatrunId. Each call waits up to 55 seconds. WhilepollAgainistrue, call it again with the samerunId.- When the status is
completed,get_resultreturns the download link. Give it to the user. You don't needdownload_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.
| Tool | Inputs | Returns |
|---|---|---|
search_templates | query (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_template | templateIds (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_deck | slides (1 to 20), each with a templateId or layoutOf, plus text, remove and images keyed by shapeId | One .pptx: a download link, a preview per slide and the result of the file check. |
upload_presentation | base64 (under 4 MB), or nothing; kind: pptx, png or jpeg | An uploadId. Without base64, an upload URL and a ready curl command to send the file. |
onboard_templates | uploadId, 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
search_templateswith what the slide should show, for example "team overview with photos".get_templatefor the candidates, to see their slots and previews.compose_deckwith the text and pictures for eachshapeId. UselayoutOffor a new slide on a template's layout.- Check every preview. To fix something, call
compose_deckagain with the whole deck. - 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
upload_presentationwith the.pptx.onboard_templateswith theuploadId. The call is safe to repeat: slides that already exist come back asexisting.- offgen names and analyzes each new template in 1 to 3 minutes. Call
get_templatewithwaitForAnalysis: trueuntil 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.
Download links
- No tool returns file bytes. A finished deck comes as an MCP
resource_link, a Markdown link and the fieldsdownloadUrl,suggestedFileNameandmimeType. - 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
isErrorand a message that says what to do next, for example an unknownrunIdor a run that isn't finished. - Missing or invalid credentials return
401with aWWW-Authenticateheader, 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.
| Limit | Value |
|---|---|
Inline upload (base64) | under 4 MB; use the upload URL for larger files |
| Presentation size | 150 MB |
Slides per onboard_templates call | 30; call again for the rest |
Slides per compose_deck call | 20 |
| Pictures | PNG or JPEG, up to 10 MB each, 10 different pictures per compose_deck call |
Related
- Use offgen in AI assistants (MCP): client setup and troubleshooting
- Build a workflow: what
list_workflowsreturns - Template library: where
search_templateslooks - offgen for developers on offgen.ai
Questions? support@offgen.ai