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: webserver-mcp

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • 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
    11
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables LLMs and clients to upload, deploy, and manage static websites (HTML/CSS/JS) on a server with Nginx, supporting API key authentication and customizable site TTL with automatic cleanup.
    -

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