By PresentFast Team · Last updated 2026-05-21

Clients · Claude Code

Claude Code

Wire @presentfast/mcp-server into Claude Code as an MCP server. The model gains four tools — publish, list, rename, analytics — and signs in via a browser device flow on first use.

Status
Stable
Transport
stdio
Auth
Device flow
Install
npm -g
01

How do I install the PresentFast MCP server?

The PresentFast MCP server runs locally and shares its login with the pf CLI. One global install covers every MCP-aware client on the machine.

bash
npm install -g @presentfast/mcp-server

The binary it exposes is presentfast-mcp — you'll reference that in the config below.

02

How do I add it to Claude Code?

Use the built-in helper:

bash
claude mcp add presentfast presentfast-mcp \
  --env PF_API_URL=https://presentfast.com

Or edit ~/.claude.json directly:

json
{
  "mcpServers": {
    "presentfast": {
      "command": "presentfast-mcp",
      "env": {
        "PF_API_URL": "https://presentfast.com"
      }
    }
  }
}

Restart any open Claude Code sessions so the server is picked up. Verify with claude mcp listpresentfast should appear with status connected.

03

How do I publish my first deck?

Open Claude Code in any project and ask:

Try this prompt
Sign in to PresentFast, then publish ./README.md as "Project README".

On first run the model calls start_login and prints a short device URL plus an 8-character code. Open the URL, paste the code, click Allow, then tell the model "continue" — it polls until tokens land and reports "Logged in". Tokens are written to ~/.config/presentfast/credentials.json (mode 0600).

Note
The same credentials file is shared with the pf CLI, so you only sign in once per machine no matter how many MCP clients you add.
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.