By PresentFast Team · Last updated 2026-05-21
Cursor
Drop PresentFast into your Cursor MCP config and the model can publish any Markdown or HTML file you have open. One sign-in works for the whole machine.
- Status
- Stable
- Transport
- stdio
- Auth
- Device flow
- Scope
- Workspace / global
How do I install the PresentFast MCP server?
npm install -g @presentfast/mcp-serverThis installs the presentfast-mcp binary. Cursor will spawn it over stdio on demand.
How do I configure Cursor to use PresentFast?
Edit one of:
.cursor/mcp.json(per-project) — preferred when you want the connection scoped to a workspace.~/.cursor/mcp.json(global) — preferred when you want it everywhere.
{
"mcpServers": {
"presentfast": {
"command": "presentfast-mcp",
"env": {
"PF_API_URL": "https://presentfast.com"
}
}
}
}Open Settings → Cursor Settings → MCP and reload. PresentFast should appear with a green dot.
How do I publish my first deck from Cursor?
Open a Markdown file in Cursor, hit ⌘L to open the chat, and ask:
Try this promptSign in to PresentFast, then publish this file. Title it "Q2 plan".
Cursor uses the OAuth 2.0 device flow on first call — the model prints a URL + code, you complete consent in your browser, and tokens land in ~/.config/presentfast/credentials.json for every MCP-aware client to share.
publish_presentation, list_presentations, get_presentation_analytics, update_presentation. Cursor lists them under the server's expandable row in Settings → MCP.Slide-break conventions
PresentFast splits one Markdown file into multiple slides using any of three conventions. They can be mixed in the same document.
1. Horizontal rule
A line containing only --- marks a slide boundary. This is the default and matches most slide tools (e.g. Marp, reveal.md).
# Slide 1
Some content.
---
# Slide 2
More content.2. Page-break comment
An HTML comment <!-- pagebreak --> on its own line is also a slide boundary. Useful when --- would conflict with frontmatter or inline horizontal rules. Always on, no query param needed.
# Cover
```text
visible ---
inside fenced code is ignored
```
<!-- pagebreak -->
# Next slide3. H2 per slide (opt-in)
Pass ?theme=h2-slides on the upload URL (the AI tool does this for you when it detects an H2-heavy document) and every ## heading starts a new slide. Useful when you have an outline-style doc you didn't author for slides.
---, <!-- pagebreak -->, or ## inside a fenced code block is left intact.Pinning a specific version
Use npx -y @presentfast/mcp-server@<version> in your client config to pin a specific release of @presentfast/mcp-server. This avoids surprise behavior changes after future releases.
{
"command": "npx",
"args": ["-y", "@presentfast/mcp-server@1.0.0"]
}Without a version, npx uses the latest published. To audit what's currently installed globally, run npm ls -g @presentfast/mcp-server.