mcp-ToseaAI
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-ToseaAITurn the attached project-specs.pdf into a 10-slide presentation."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-ToseaAI
Official MCP server for ToseaAI document-to-presentation workflows.
This server wraps the production ToseaAI HTTP contract at /api/mcp/v1 and exposes a stable MCP tool surface for Claude Code, Cursor, Codex, and other MCP clients.
API keys stay server-side and are never echoed back to the agent.
Long-running operations use
presentation_idplus polling, not raw SSE.Mutating tools support explicit idempotency keys where the backend supports them.
Export-capable tools accept an optional
export_filenameso downstream clients can receive a friendly attachment name.File uploads stay local until the MCP server streams them to ToseaAI over HTTPS.
Why a separate repo
This repository should stay independent from the main application repository.
Release cadence is different from the backend.
Breaking changes to tool names and prompts must be versioned separately.
Nested git repos or submodules add unnecessary operational friction for MCP users.
Install
npm install
npm run buildRequired environment variables
TOSEA_API_KEY=sk_...
TOSEA_API_BASE_URL=https://tosea.aiOptional:
TOSEA_TIMEOUT_MSTOSEA_MAX_RETRIESTOSEA_MAX_TOOL_CONCURRENCYTOSEA_MAX_MUTATING_CONCURRENCYTOSEA_MAX_PENDING_TOOL_REQUESTSTOSEA_POLL_INTERVAL_MSTOSEA_MAX_POLL_MSTOSEA_LOG_LEVEL
Claude Code example
{
"mcpServers": {
"tosea": {
"command": "node",
"args": ["C:/new/mcp-ToseaAI/dist/src/index.js"],
"env": {
"TOSEA_API_KEY": "sk_...",
"TOSEA_API_BASE_URL": "https://tosea.ai"
}
}
}
}Client-specific examples live in examples/README.md.
Cursor example
Use examples/cursor.mcp.json as the starting point for your local mcp.json.
OpenAI Agents SDK example
OpenAI's Agents SDK supports stdio MCP servers, so this repo can be used directly as a local subprocess MCP without needing a hosted HTTP wrapper. See examples/openai-agents-typescript.ts.
If you later need OpenAI Responses API hosted remote MCP mode, add a separate Streamable HTTP transport wrapper instead of changing this stdio package in place.
Tool summary
tosea_healthtosea_get_permissions_summarytosea_get_quota_statustosea_list_presentationstosea_get_presentation_full_datatosea_switch_templatetosea_create_document_parsetosea_get_document_parsetosea_wait_for_document_parsetosea_get_document_parse_resulttosea_parse_pdftosea_generate_outlinetosea_edit_outline_pagetosea_render_slidestosea_edit_slide_pagetosea_export_presentationtosea_pdf_to_presentationtosea_wait_for_jobtosea_list_exportstosea_list_export_filestosea_redownload_export
Reliability model
GETrequests use bounded retries with backoff and jitter.Read-only tools use
singleflightcoalescing for identical in-flight requests, so repeated concurrent calls like the samelist_presentationsquery are collapsed into one upstream request.All tools use bounded local concurrency inside one MCP server process; once the local queue is full, the MCP server returns a retryable backpressure error instead of letting requests pile up until transport-level failure.
Mutating tools are locally gated with bounded concurrency, and writes for the same
presentation_idare serialized inside one MCP server process.Upload-creating endpoints (
pdf-parse,pdf-to-presentation) acceptidempotency_key, but the MCP server still avoids silent auto-retries for large uploads by default.outline edit,slide edit, andexportsupportidempotency_key; reuse the same value only when retrying the same logical action.tosea_export_presentationandtosea_pdf_to_presentationaccept optionalexport_filenamewhen the visible exported attachment name matters.tosea_create_document_parseis the standalone Markdown/asset extraction facade. It returnsdocument_parse_idand still uses the backend's existing auth, quota, and billing rules.tosea_parse_pdfremains the staged presentation parse step for workflows that continue into outline generation and slide rendering.wait_for_jobfollows nesteddata.job.statuswhen the backend reports a separate export/full job, and falls back to top-level presentation status when no nested job exists.html_zipexport is supported for HTML-mode decks and remains a free export on the backend.Stdio lifecycle is tied to the host process: the server shuts down on
stdinclose,SIGINT, andSIGTERM, and unexpected transport failures are surfaced as retryable host-transport errors instead of opaque raw exceptions.
Attachment delivery
If an MCP client downloads a finished export and then relays it through OpenClaw, WeChat, email, or another chat surface:
pass
export_filenamewhen the user cares about the final visible attachment namepreserve filename, extension, and
Content-Typewhen re-uploading the artifactdo not repackage the file as an anonymous binary attachment, or downstream clients may show only a generic attachment label
Asset file_id inputs
logo_file_idis thefile_idof a previously confirmed uploaded logo asset. It is not a local path.template_file_idis thefile_idof a previously confirmed uploaded PPTX/PDF custom-template asset. It is not a source document path.template_file_idis valid only withslide_mode="image".When
template_file_idis present, the backend treats the request ascustom_templateautomatically.This MCP package does not mint those asset IDs itself yet. Reuse IDs created through the scripts-first skill or another upload-capable product flow.
Upload constraints
page_count_rangemust be one of4-8,8-12,12-16,16-20,20-30,30-40,40-50, or50-100.Source-file count and total source-page limits are enforced by backend tier policy.
The current default/free backend policy is
1source file and60total source pages unless the server-side policy overrides it.
Image mode decision rule
keep
slide_mode="html"by defaultuse
slide_mode="image"only when the user explicitly wants image-mode rendering or image-first slide compositionwhen using image mode, pass
image_modelif the user cares about image quality or regeneration consistencyuse
output_format="pptx_image"when the user wants a pure image-based PPTX exportuse
output_format="pdf"for image-mode review handoffdo not use
output_format="html_zip"for image-mode decks
Security notes
API keys must start with
sk_.The server redacts bearer secrets from surfaced errors.
The MCP tool layer does not expose JWT-only account operations.
Export history only exposes user-visible files returned by the backend.
Smoke test
This repository includes a non-billing smoke test that checks auth, health, permissions, and list access without creating presentations:
npm run smokeOptional flags:
--feature-key outline_generate--expect-tier pro--list-limit 5
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ToseaAI/mcp-ToseaAI'
If you have feedback or need assistance with the MCP directory API, please join our Discord server