staticx-mcp-server
v1.0.4
Published
Official API-token-first MCP server for deploying and operating StaticX static sites.
Maintainers
Readme
StaticX MCP Server
Official Model Context Protocol server for StaticX, the deployment infrastructure for static websites.
Give Claude Code, Cursor, Codex, Cline, Windsurf, Claude Desktop, Zed, Continue, or another MCP client a scoped StaticX API token. The agent can then create sites, upload files, publish immutable releases, inspect logs, start manual custom domain setup, and roll back with explicit confirmation.
StaticX intentionally uses scoped API tokens instead of OAuth because it is designed for developers, CI/CD, automation tools, and AI agents.
Install
The package runs directly through npx; a global install is not required.
{
"mcpServers": {
"staticx": {
"command": "npx",
"args": ["-y", "staticx-mcp-server"],
"env": {
"STATICX_API_TOKEN": "sx_replace_with_your_token",
"STATICX_API_BASE_URL": "https://staticx.site/api/v1"
}
}
}
}Create the narrowest token that fits the job. A short-lived, site-scoped token is the safest default for one-site deployments.
Full client-specific snippets are available in the StaticX MCP documentation.
Claude Code
claude mcp add staticx --scope user \
--env STATICX_API_TOKEN=sx_replace_with_your_token \
--env STATICX_API_BASE_URL=https://staticx.site/api/v1 \
-- npx -y staticx-mcp-serverCodex
codex mcp add staticx \
--env STATICX_API_TOKEN=sx_replace_with_your_token \
--env STATICX_API_BASE_URL=https://staticx.site/api/v1 \
-- npx -y staticx-mcp-serverLocal HTTP debugging
STATICX_API_TOKEN=sx_replace_with_your_token npx staticx-mcp-server httpThen connect a Streamable HTTP client or the MCP Inspector to:
http://localhost:3100/mcpHTTP mode listens on 127.0.0.1 by default. Do not expose it publicly without a secure reverse proxy and a deliberate authentication policy.
Environment variables
| Variable | Required | Purpose |
| --- | --- | --- |
| STATICX_API_TOKEN | Yes | Scoped StaticX API token. |
| STATICX_API_BASE_URL | No | Defaults to https://staticx.site/api/v1. |
| STATICX_PROJECT_ID | No | Default site ID for site-specific tools. |
| STATICX_TIMEOUT_MS | No | API request timeout in milliseconds. |
| STATICX_MCP_PORT | No | Local HTTP port, default 3100. |
| STATICX_MCP_HOST | No | Local HTTP bind host, default 127.0.0.1. |
Never paste a real token into documentation, source control, screenshots, prompts, or issue reports.
Plan limits
MCP tools use the public StaticX API and cannot bypass account capacity.
| Plan | Sites | Storage | Max upload | Form entries | Team seats | Rollback history | | --- | ---: | ---: | ---: | ---: | ---: | ---: | | Free | 1 | 500 MB | 500 MB | 1,000 | 1 | Last 5 versions | | Plus | 15 | 10 GB | 50 GB | 20,000 | 5 | Last 10 versions | | Pro | 100 | 20 GB | 50 GB | 100,000 | 10 | Last 50 versions | | Agency | Custom | Custom | 50 GB | Custom | Custom | Custom |
If a tool returns PLAN_QUOTA_EXCEEDED, stop and return the exact message to the user. Do not retry blindly, change endpoints, or bypass StaticX Forms.
Tools
| Tool | Purpose |
| --- | --- |
| staticx_config | Show configuration state without exposing secrets. |
| staticx_auth_check | Validate the configured token. |
| staticx_list_workspaces | List accessible workspaces. |
| staticx_create_workspace | Create a workspace. |
| staticx_list_projects | List accessible sites. |
| staticx_get_project | Read one site. |
| staticx_create_project | Create a site. |
| staticx_upload_zip | Upload a static build ZIP. |
| staticx_import_url | Import a public website URL. |
| staticx_deploy_project | Publish the current workspace. |
| staticx_deploy_zip | Upload and deploy a ZIP end to end. |
| staticx_list_deployments | List immutable releases. |
| staticx_rollback_deployment | Roll back with exact confirmation text. |
| staticx_delete_deployment | Delete an inactive release with exact confirmation text. |
| staticx_get_logs | Read recent site activity. |
| staticx_connect_custom_domain | Start manual one-record custom domain setup. |
| staticx_get_custom_domain_status | Read domain activation status. |
| staticx_set_environment_variables | Sync site environment variables. |
| staticx_agent_guide | Return the built-in safe deployment guide. |
Safety contract
- Tokens are never returned by a tool.
- Write tools explain their effect in their descriptions.
- Rollback requires
ROLLBACK <deployment_id>. - Deployment deletion requires
DELETE <deployment_id>. - The server only calls the public StaticX
/api/v1contract. - Use a site-scoped token for one-site agents and revoke it when the task is complete.
- Plan limits are enforced by the API and hosted forms runtime. Tools must stop on
PLAN_QUOTA_EXCEEDED. - DNS Connect requires browser approval in the StaticX dashboard. MCP tools should return manual DNS records or tell the user to approve DNS Connect; they must not claim to authorize an external DNS provider silently.
- Generated subdomain suffix changes are dashboard-only. If an account has an active publishing domain, use
Site → Settings → Domainto save a generated address on that suffix.
Recommended agent prompt
Use StaticX MCP to deploy this static website.
Before deploying:
- build the project
- verify index.html and 404.html exist at the build root
- explain what you will publish
After deploying:
- return the live URL and release
- inspect logs if anything fails
- stop on PLAN_QUOTA_EXCEEDED and show the exact quota message
- if the user asks to move a generated subdomain to a publishing domain, direct them to Site Settings → Domain
- do not roll back or delete anything without asking me firstDevelopment
git clone https://github.com/madprodworks-coder/staticx-mcp-server.git
cd staticx-mcp-server
npm install
npm testThe MCP package must continue to use the public StaticX API. It must not import Laravel controllers, services, or internal engine classes.
Security
Please report vulnerabilities privately as described in SECURITY.md. Do not open a public issue containing tokens, private URLs, or customer data.
License
MIT
