Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CLOUDFACT_HOMENoOverride the directory for state (defaults to ~/.cloudfact).
CLOUDFLARE_API_TOKENNoCloudflare API token for authentication. Can be used instead of `cloudfact login`.
CLOUDFLARE_ACCOUNT_IDNoYour Cloudflare account ID, used with CLOUDFLARE_API_TOKEN.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
deployA

Publish a folder (or a single .html file) from this machine to a public Cloudflare URL. "tunnel" backend (default when signed out): local static server + cloudflared quick tunnel, *.trycloudflare.com URL; the process runs in the background and outlives the session. "workers" backend (default when signed in): Cloudflare Workers with static assets, fixed URL https://..workers.dev; redeploying updates the same address. Idempotent on tunnel: if the same path is already live, returns the existing URL (reused=true). Deploys are PRIVATE by default on both backends (key-gated link; on workers a gate Worker runs in front of the files); pass public=true to publish openly. access=[emails] (workers backend, API-token login) puts Cloudflare Access in front instead: visitors sign in with a one-time email code and only listed emails get in. Returns JSON with url and, when private, privateUrl (already includes #key=...).

exposeA

Publish an app that is already listening on a port to a public *.trycloudflare.com URL (tunnel backend). Without ssh, the port is on this machine. With ssh (user@host), the app runs on another machine: cloudfact opens an SSH port-forward to it and publishes through here — nothing to install remotely (key-based SSH access required). HTTP and WebSocket traffic is proxied. Apps are PRIVATE by default (same #key gate as static deploys, with rate limiting and optional expiry); pass public=true to publish without the gate. Idempotent: the same port/host already live returns the existing URL (reused=true).

listA

List every cloudfact deploy with backend, status and URL.

catalogA

Every cloudfact in the user's Cloudflare account, grouped by project, as the account itself sees them (so deploys made from another machine show up too). Each entry says whether it is public, a private key link or behind Cloudflare Access sign-in, and whether it serves static files or an app with its own server. Quick tunnels have no account-side resource and appear only when this machine still has their record (inAccount=false). publish=true turns the catalog into a browsable page and returns its URL; that page asks for Cloudflare Access sign-in by default, for the email that owns the account.

projectA

File a deploy under a project in the account catalog (or pass project=null to clear it). Takes effect without redeploying.

credentialsA

Record how to get into the app behind a deploy (its own username/password/note, not cloudfact's). Stored with the deploy on this machine and shown only on a catalog page that is itself behind Cloudflare Access sign-in. Pass creds=null to clear. Never put the user's secrets in your reply.

statusA

State of one deploy, including an HTTP check of its public URL (reachable/httpStatus).

rotateA

Issue a new private key for a live tunnel deploy without restarting it: the previous link and all sessions stop working at once. Optionally set an expiry. On a public deploy this turns it private. Returns the new privateUrl.

powerA

Turn a cloudfact off, or back on. Off: its link stops answering (a Workers deploy loses its workers.dev address; a tunnel answers with a "this page is off" page) but nothing is deleted, so on=true brings the very same link back, with the same key and sign-in. Deploying it again also turns it on. Prefer this over remove when the user wants something "off" or "down" rather than gone. The catalog page behind sign-in has the same switch on every card.

stopA

Stop the local server and tunnel of one deploy (or all of them with all=true). The record is kept for inspection. Not applicable to the workers backend.

removeA

Stop (if running) and delete the deploy record and logs. On the workers backend, also deletes the worker on Cloudflare.

logsA

Last lines of the deploy logs: host (local server), cloudflared and wrangler.

doctorB

Diagnostics: cloudflared, Cloudflare sign-in, default backend and active deploys. Run it before deploy when something fails.

Prompts

Interactive templates invoked by user choice

NameDescription
cloudfactPublish a path from this machine and return the URL

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 13 tools

Disambiguation4/5

Tools are mostly distinct with clear purposes, but some overlap exists: power/stop both affect serving state, and deploy/expose both publish to URLs, though descriptions clarify the differences (power toggles the link, stop stops local server/tunnel; deploy serves static files, expose proxies an existing port). Overall, agents can distinguish with careful reading.

Naming Consistency3/5

Naming mixes verbs (deploy, expose, stop, remove, rotate, list) with nouns or noun-verbs (power, logs, doctor, catalog, project, credentials, status). No consistent verb_noun or noun pattern, though all lowercase and single-word commands. Some predictability exists but not uniform.

Tool Count5/5

13 tools for a deployment/publishing service is well-scoped, covering creation, management, diagnostics, and metadata without bloat. Each tool earns its place, and the count is in the ideal range.

Completeness5/5

The surface covers the full lifecycle: deploy/expose (create), list/catalog/status/logs (read), power/stop/rotate (update), remove (delete), plus diagnostics and metadata (project, credentials). No obvious gaps; even edge cases like quick tunnels and account-wide visibility are addressed.

Maintenance

ActivityMaintained
ResponsivenessNo issues