By PresentFast Team · Last updated 2026-05-21

Clients · Cursor

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
01

How do I install the PresentFast MCP server?

bash
npm install -g @presentfast/mcp-server

This installs the presentfast-mcp binary. Cursor will spawn it over stdio on demand.

02

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.
json
{
  "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.

03

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 prompt
Sign 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.

Note
Tools available after sign-in: publish_presentation, list_presentations, get_presentation_analytics, update_presentation. Cursor lists them under the server's expandable row in Settings → MCP.
04

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).

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.

md
# Cover

```text
visible ---
inside fenced code is ignored
```

<!-- pagebreak -->

# Next slide

3. 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.

Note
All three conventions are code-fence aware: a ---, <!-- pagebreak -->, or ## inside a fenced code block is left intact.
05

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.

json
{
  "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.