By PresentFast Team · Last updated 2026-05-21
Codex
OpenAI's terminal coding agent reads MCP servers from ~/.codex/config.toml. PresentFast slots in with a stdio launch line.
- Status
- Stable
- Transport
- stdio
- Config
- TOML
- Auth
- Device flow
How do I install the PresentFast MCP server?
npm install -g @presentfast/mcp-serverHow do I add it to ~/.codex/config.toml?
Codex uses TOML rather than JSON. Append the following section (or create the file if it doesn't exist):
[mcp_servers.presentfast]
command = "presentfast-mcp"
[mcp_servers.presentfast.env]
PF_API_URL = "https://presentfast.com"Start (or restart) Codex. Inside the session, run /mcp to confirm presentfast is listed as connected.
How do I publish my first deck from Codex?
From within Codex:
Try this promptUse PresentFast to sign me in and then publish ./slides.md.
The first call triggers the device-flow login. After browser-side consent completes, Codex's next tool call mints tokens and stores them under ~/.config/presentfast/credentials.json.
file_path as a relative path. The MCP server requires absolute paths so it can read the file reliably — ask Codex to "expand to an absolute path" if uploads fail with ENOENT.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.