Skip to main content
Glama
zarguell

sitebox

by zarguell

sitebox

Self-hosted static site host — upload pages via REST API or MCP, serve them immediately.

  • Upload files or ZIP archives to named destinations

  • Serve from /dest/path instantly

  • Auth — shared API key for uploads, optional password-protected pages

  • TTL — auto-expire pages after a set time

  • MCP — AI agents can manage pages via the built-in Model Context Protocol server

Quick start

docker run -e API_KEY=my-secret-key -v /path/to/pages:/app/data -p 8000:8000 ghcr.io/zarguell/sitebox

Upload a page:

curl -X POST http://localhost:8000/api/upload \
  -H "X-API-Key: my-secret-key" \
  -F "file=@index.html" \
  -F "dest=myapp"

Open http://localhost:8000/myapp/index.html in your browser.

Related MCP server: Hostsmith MCP Server

Features

REST API

Method

Path

Description

POST

/api/upload

Upload file or ZIP to a destination

GET

/api/pages

List all pages

DELETE

/api/pages/{dest}

Delete a page

All require X-API-Key header matching the API_KEY environment variable.

Upload parameters (multipart form):

Field

Required

Description

file

yes

The file (ZIP auto-extracts and flattens)

dest

yes

Destination path (e.g. myapp or blog/post1)

auth_required

no

true to require login before viewing

ttl_seconds

no

Auto-delete after N seconds

MCP Server

Connect an MCP-compatible AI agent (Cursor, Claude Desktop) to http://host:8000/mcp with header X-API-Key.

Available tools:

  • upload_page — upload base64 content or ZIP

  • list_pages — browse page tree

  • read_file — read file content

  • delete_page — remove a page

Browser Auth

When auth_required=true on upload, visitors are redirected to a login form. The password is the shared API_KEY. Sessions last 24 hours (in-memory).

Configuration

Env var

Required

Default

Description

API_KEY

yes

""

Shared secret for all auth (upload + login)

Development

git clone https://github.com/zarguell/sitebox
cd sitebox
uv sync
API_KEY=dev-key uv run uvicorn sitebox.app:app --reload

Design

  • config.py — shared env vars and in-memory state (AUTH_PREFIXES, DATA_DIR)

  • storage.py — file operations (stdlib only)

  • auth.py — login form, session tokens, browser auth helper

  • rest_api.py — REST endpoints with API key check

  • mcp_api.py — MCP server with Streamable HTTP transport

  • app.py — FastAPI wiring, middleware, mounts

ponytail: session tokens and auth prefixes are in-memory (lost on restart). Add Redis or SQLite when multi-process persistence is needed.

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to deploy static files and get live HTTPS URLs instantly, with support for custom domains and data residency.
    9
    53
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to build, edit, and publish live websites with hosting, database, auth, and domains via the Model Context Protocol.
    13
    12
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Hosted MCP for creating, checking, deploying, and hosting static sites for AI agents.

  • Publish & manage shareable HTML/Markdown pages from your LLM, with access control.

  • File uploads for AI agents. Upload, list, and manage files. No signup required.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zarguell/sitebox'

If you have feedback or need assistance with the MCP directory API, please join our Discord server