By PresentFast Team · Last updated 2026-05-21
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
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.
npm install -g @presentfast/mcp-serverThe binary it exposes is presentfast-mcp — you'll reference that in the config below.
How do I add it to Claude Code?
Use the built-in helper:
claude mcp add presentfast presentfast-mcp \
--env PF_API_URL=https://presentfast.comOr edit ~/.claude.json directly:
{
"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 list — presentfast should appear with status connected.
How do I publish my first deck?
Open Claude Code in any project and ask:
Try this promptSign 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).
pf CLI, so you only sign in once per machine no matter how many MCP clients you add.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.