presentfast

Install

Get PresentFast
on your AI.

Publish HTML or Markdown decks from your terminal with the CLI, or let Claude Code, Cursor, Codex, and Claude.ai publish on your behalf via the Model Context Protocol server. One sign-in works for both.

1 · Choose how you want to connect

Use the CLI if you publish from a terminal. Use the MCP server if you want an AI assistant to do it for you. Most people install both — they share the same login, so there's no extra friction.

@presentfast/cli

The pf command-line tool. Publishes HTML and Markdown decks, shows analytics, and manages your projects.

bash
npm i -g @presentfast/cli
pf login
pf publish ./slides.md --title "Q4 review"

@presentfast/mcp-server

The Model Context Protocol server. Spawns over stdio for any MCP-aware AI client. Five tools: start_login, publish_presentation, list_presentations, get_presentation_analytics, update_presentation.

bash
npm i -g @presentfast/mcp-server
# installs the `presentfast-mcp` binary
# wire it into your AI client below

2 · Configure your MCP client

The MCP server is added to your AI client's MCP configuration file. Pick your client below.

Claude Code

Use the built-in helper, or edit ~/.claude.json directly:

bash
claude mcp add presentfast presentfast-mcp \
  --env PF_API_URL=https://presentfast.com
json
{
  "mcpServers": {
    "presentfast": {
      "command": "presentfast-mcp",
      "env": {
        "PF_API_URL": "https://presentfast.com"
      }
    }
  }
}

Cursor

Edit .cursor/mcp.json per-project or ~/.cursor/mcp.json globally:

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

Codex / generic MCP client

Most clients accept the same shape. Refer to your client's MCP docs for the exact field names and file path:

toml
[mcp_servers.presentfast]
command = "presentfast-mcp"

[mcp_servers.presentfast.env]
PF_API_URL = "https://presentfast.com"

Claude.ai (remote, no install)

Add a Custom Connector pointed at the remote HTTP server:

text
Name: PresentFast
URL:  https://presentfast.com/api/mcp

3 · First-run flow

Once the server is wired into your client, ask the AI to sign you in. The MCP server uses the OAuth 2.0 device flow because it has no browser of its own.

  1. Ask your AI: "Sign in to PresentFast."
  2. The AI calls start_login and gets back a URL and an 8-character code.
  3. You visit the URL in any browser, enter the code, and click Allow access.
  4. You tell the AI: "Continue."
  5. The AI calls start_login again, which polls until your tokens land. The server replies "Logged in."

The MCP server stores its tokens in the same file as the CLI (~/.config/presentfast/credentials.json, mode 0600), so signing in via either client signs you in for both.

4 · Available tools and commands

CLI commands

pf login [--device]Sign in via browser (default) or device flow.
pf logoutRevoke refresh token + delete local credentials.
pf publish <file> [--title]Upload an .html or .md deck. Returns the share URL.
pf listShow your projects with id, title, share URL.
pf rename <id> <title>Change a project's display title.
pf delete <id> --yesPermanently delete a project. --yes required.
pf analytics <id>Visits, unique visitors, clicks, time-on-page.

MCP tools

start_loginTwo-call device-flow sign-in. Returns URL + code, then polls.
publish_presentationUpload by absolute file_path. Returns share URL.
list_presentationsList the user's decks with id, title, created, URL.
get_presentation_analyticsSummary stats for one deck.
update_presentationRename a deck.

5 · Manage connected apps

Every CLI install and MCP-server installation appears in your account with a host-specific label like "PresentFast MCP on khush-mac". Disconnect any session from there to revoke its refresh token immediately.