pages-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
pages-mcp
A tiny static-site host with an MCP upload tool. Claude (or any MCP client) uploads static sites/artifacts; they're served over HTTPS at an internal hostname.
Serve:
https://pages.internal.white.fm/<site>/(open on the tailnet)Upload (MCP):
https://pages-mcp.internal.white.fm/mcp—Authorization: Bearer <MCP_TOKEN>Storage: files persist under
SITES_DIR(default/data/sites), one dir per site.
A <base href="/<site>/"> is injected into served HTML (when absent) so relative-path
multi-file sites work under the path prefix, not just self-contained single files.
MCP tools
Tool | Purpose |
| Upload a site. |
| All sites with URL, file count, size, last-modified. |
| One site's stats + the list of file paths. |
| Remove a site and all its files. |
Related MCP server: Torreable
Writable data files
A site can let its own pages save JSON back to the server, e.g. a gallery that
keeps user-curated items. Opt in by deploying a pages-writable.json at the site
root:
{"files": {"collages/saved.json": {"max_bytes": 262144}}}Then the page can PUT that path with Content-Type: application/json:
Only on
WRITE_HOSTS(default: the canonicalSERVE_HOST, i.e. the internal zone), so a site also exposed on a public zone stays read-only there.Only listed
.jsonpaths; the body must parse as JSON and fitmax_bytes(capped byMAX_WRITABLE_BYTES). Cross-originOriginheaders are refused.GETreturns anETag; send it back asIf-Matchand a write that raced another one gets412with the currentETag, so the page can re-read, merge and retry instead of silently dropping the other write.Each write is committed to the git mirror (
update <site>/<path>).The live file outlives redeploys:
deploy_siteseeds a writable file the first time but never overwrites or deletes it afterwards (returned aspreserved).
/healthz is open (used by k8s probes). Site names are lowercase DNS labels
(a-z, 0-9, -), 1–63 chars.
Env
Var | Default | Notes |
| (empty) | Bearer token for the control plane. Empty = auth disabled (don't run that way). |
|
| |
|
| Persistent storage root. |
|
| Content host (Host header → serving plane). |
|
| Control host (Host header → |
|
| Base used in returned URLs. |
|
| Per-site upload cap. |
| first | Serve zones that accept writable-file |
|
| Upper bound for any writable file. |
Build
GitHub Actions (.github/workflows/build.yml) builds ghcr.io/robertdwhite/pages-mcp
(linux/amd64) on push to main / v* tags. Pin the resulting digest in the cluster
repo at apps/ai/pages/kustomization.yaml.
Register with Claude Code
# Token from the k8s secret:
sops -d apps/ai/pages/11-secret.sops.yaml | grep MCP_TOKEN
claude mcp add --transport http pages \
https://pages-mcp.internal.white.fm/mcp \
--header "Authorization: Bearer <MCP_TOKEN>"This server cannot be deployed
Maintenance
Related MCP Connectors
Publish HTML, Markdown, and multi-file sites as shareable URLs instantly via MCP.
Publish permanent static sites via MCP/REST. 28 tools. No account or claim link.
Hosted MCP for creating, checking, deploying, and hosting static sites for AI agents.
Publish and manage HTML pages and multi-file static websites directly from Claude, ChatGPT, Cursor, Codex, and other AI agents via MCP. Streamable HTTP with OAuth 2.1 browser sign-in — no API key to copy.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to edit and serve a static website via natural language, providing file management tools over MCP and HTTP hosting.-
- AlicenseNot gradedqualityDmaintenancePublish static websites as Tor hidden services (.onion sites) via MCP.2MIT
- FlicenseNot gradedqualityDmaintenanceEnables publishing, updating, and sharing HTML artifacts with strict security isolation (origin separation, CSP, API keys) via MCP tools.1-
- AlicenseAqualityAmaintenanceEnables publishing sanitized static HTML pages from an MCP agent and receiving shareable URLs, with tools for updating, listing, publishing, and deleting pages.1219 npmMIT