MCP Playground

Explore, connect, and test MCP

Learn PageFire's MCP tools, grab your connection config, and call them live in the browser with your own API Key — the same path your AI client takes.

MCP (Model Context Protocol) is the standard protocol between AI clients and external tools. Once PageFire is connected to Claude or Cursor, you describe what you want in plain language and the AI calls PageFire's tools to publish HTML, Markdown, or a full ZIP as a live public HTTPS page — done in seconds, link stays stable, zero deploy pipeline.

01 · Connect

One-time setup

Copy .mcp.json from the Connect tab, fill in your Bearer Token, and add it to your AI client.

02 · Chat

Say one sentence

"Publish this report as a webpage" — AI picks the right tool and does it.

03 · Live

Get your link

Instant HTTPS subdomain, share it immediately. Republish with the same name to update in place.

deploy_page
Single HTML page
Pass an HTML string and get a dedicated HTTPS subdomain in seconds. Great for AI-generated reports and landing pages.
html title? did? access? password? ttl_days? pin? spa?
deploy_markdown
Markdown render
Render Markdown as a beautifully typeset page. Three themes: light / dark / sepia. Code highlighting, tables, task lists out of the box. YAML frontmatter auto-stripped.
markdown theme? title? did? access? pin?
deploy_docs
Multi-page docs
Multiple Markdown files become a docs site with left nav + right TOC auto-generated. No index.md needed (entry auto-inferred). .md links rewritten to .html.
files[] title? theme? did? pin?
deploy_files
Multi-file site
Publish HTML + CSS + JS file by file. Supports subdirectory structure; binary files transmitted as base64.
files[] did? spa? pin?
deploy_zip
ZIP archive
Upload a ZIP and it's extracted and published automatically. SPA mode available (client-side routing falls back to index.html).
zip_base64 did? spa? pin?
deploy_presentation
PDF / PPTX slides
Upload a PDF (native browser viewer) or PPTX (auto-extract text+images → remark.js slideshow, original kept for download).
pdf|pptx title? theme? did? pin?
deploy_markdown
Markdown slides
mode="slide" renders Markdown as a fullscreen presentation with ← → keyboard navigation, code highlighting, and three themes.
markdown mode="slide" theme? title? pin?
set_access
Access control
Toggle an existing site between public / password / private at any time — no republish needed.
did access password?
list_deployments
List deployments
List all sites under the current API Key: URL, status, file count, size, created date.
include_expired?
get_deployment
Get deployment
Full details for a specific site: URL, file list, access control, expiry.
did
delete_deployment
Delete deployment
Immediately delete a site and all its files. Releases storage quota. Irreversible.
did
pin_deployment
Pin permanently
Mark a temporary site (with TTL) as permanent — skips auto-GC cleanup.
did
set_space_id
Custom subdomain
Set the space_id segment (globally unique) for the current API Key — affects all site URLs under that key.
space_id
1
Get a Token
Visit the Dashboard to register and create an API Key (starts with pf_).
2
Configure
Example for Claude Desktop / Claude Code — create .mcp.json in your project root and add it to .gitignore:
{
  "mcpServers": {
    "pagefire": {
      "type": "http",
      "url": "https://mcp.pagefire.hkting.com/mcp",
      "headers": { "Authorization": "Bearer <your-token>" }
    }
  }
}
Option 2 · stdio bridge (fallback): If the HTTP connection above reports Failed to connect but a browser / Node can reach the domain, your client runtime's TLS fingerprint is likely being blocked. Bridge the same endpoint over stdio using mcp-remote on your local Node:
{
  "mcpServers": {
    "pagefire": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.pagefire.hkting.com/mcp",
               "--header", "Authorization:${AUTH_HEADER}", "--transport", "http-only"],
      "env": { "AUTH_HEADER": "Bearer <your-token>" }
    }
  }
}
⚠️ Pass the token via env.AUTH_HEADER and write the header as Authorization:${AUTH_HEADER} (no space). Writing "Authorization: Bearer ..." directly splits on the space when args are joined, causing handshake success but UNAUTHORIZED on tool calls.
Option 3 · npm connector (simplest, recommended): pagefire-mcp is on npm — token goes in an env var only, no URL, no header splitting pitfalls:
{
  "mcpServers": {
    "pagefire": {
      "command": "npx",
      "args": ["-y", "pagefire-mcp@latest"],
      "env": { "PAGEFIRE_TOKEN": "pf_<your-token>" }
    }
  }
}
3
Publish
Reload your client, then say: "Publish this content as a public webpage" — the AI calls the tool and returns an HTTPS link.
Endpointhttps://mcp.pagefire.hkting.com/mcp
TransportStreamable HTTP · MCP 2025-03-26
AuthAuthorization: Bearer pf_xxx
Other clients
Cursor
Settings → MCP → Add new global MCP server, fill in the endpoint URL and Authorization header. Cursor uses a global config and does not read .mcp.json.
OpenAI Codex
Add to codex.yaml under mcp_servers: type: http, url, headers.Authorization.
Other
Any MCP client that supports Streamable HTTP transport works — fill in the endpoint URL and Bearer Token.
CLI
CLI · Terminal / CI publishing
No AI client needed — publish directly from the terminal or your CI pipeline.
1
Install
npm install -g pagefire-mcp
Or use without installing:
npx pagefire-mcp@latest 
2
Set your token
# macOS / Linux
export PAGEFIRE_TOKEN=pf_your_token

# Windows
set PAGEFIRE_TOKEN=pf_your_token
3
Publish commands
pagefire deploy ./dist   # Bundle a directory and publish as a full site (equivalent to deploy_zip)
pagefire deploy-docs ./docs   # Multiple .md files → docs site with sidebar nav
pagefire deploy-markdown ./README.md   # Single Markdown file → rendered web page
pagefire deploy-page ./index.html   # Publish a single HTML page
Run pagefire --help for all commands and options.
🔑

Log in to test with your own API Key in real time

Log in / Sign up