@airtifact/mcp
v1.0.0
Published
An official Model Context Protocol (MCP) server that enables AI coding assistants (Claude Desktop, Cursor, Antigravity, Windsurf, etc.) to deploy local static websites and preview artifacts directly to the **Airtifact** (`airtifact.page`) service via API,
Downloads
105
Readme
@airtifact/mcp
An official Model Context Protocol (MCP) server that enables AI coding assistants (Claude Desktop, Cursor, Antigravity, Windsurf, etc.) to deploy local static websites and preview artifacts directly to the Airtifact (airtifact.page) service via API, and list user sites.
Features
publish_siteTool: Automatically packs a local folder (must containindex.html), zips it in memory, and deploys it programmatically to your uploader backend.list_sitesTool: Lists all static websites published by the authenticated user along with file counts, upload dates, and live URLs.- Smart Ignore Rules: Excludes unnecessary folders (
.git,node_modules,.next,dist) and hidden OS files (.DS_Store) during compression. - Rich Markdown Output: Returns shareable live URLs and secret project removal URLs directly formatted for the AI agent context.
Configuration in Agent Environments
To register this MCP server in your agentic workspace, add the configuration below to your environment's mcp_config.json:
Example Configuration (using npx)
{
"mcpServers": {
"airtifact": {
"command": "npx",
"args": [
"-y",
"@airtifact/mcp"
],
"env": {
"STATIC_WEBSITE_UPLOADER_URL": "https://airtifact.page",
"STATIC_WEBSITE_UPLOADER_AUTH_TOKEN": "sk_your_generated_auth_token"
}
}
}
}Note: Replace STATIC_WEBSITE_UPLOADER_URL with your target server URL and STATIC_WEBSITE_UPLOADER_AUTH_TOKEN with your auth token.
Tool API Reference
1. publish_site
Publishes a local directory containing a static website.
Input Schema / Arguments
directoryPath(string, required): Absolute path to the local directory containing the static website files (must containindex.htmlat the root).serverUrl(string, optional): Target uploader server URL (e.g.http://localhost:3000or your Vercel deployment URL). Overrides theSTATIC_WEBSITE_UPLOADER_URLenvironment variable.authToken(string, optional): Auth token for authorization (sk_username.version.signature). Overrides theSTATIC_WEBSITE_UPLOADER_AUTH_TOKENenvironment variable.
Success Response Example
{
"content": [
{
"type": "text",
"text": "### 🎉 Website Published Successfully!\n\n- **Project ID**: `044a4449ae784808785e1bb0ca4df372`\n- **Files Packed**: 3 files\n- **Shareable Live URL**: [http://localhost:3000/044a4449ae784808785e1bb0ca4df372](http://localhost:3000/044a4449ae784808785e1bb0ca4df372)\n- **Removal URL**: [http://localhost:3000/project/044a4449ae784808785e1bb0ca4df372/r?t=aa166a](http://localhost:3000/project/044a4449ae784808785e1bb0ca4df372/r?t=aa166a)\n\n*Make sure to save the Removal URL or the delete token (`aa166a`) if you want to delete this project later.*"
}
]
}2. list_sites
Lists all published static websites owned by the authenticated user.
Input Schema / Arguments
serverUrl(string, optional): Target uploader server URL. OverridesSTATIC_WEBSITE_UPLOADER_URL.authToken(string, optional): Auth token for authorization. OverridesSTATIC_WEBSITE_UPLOADER_AUTH_TOKEN.
Success Response Example
{
"content": [
{
"type": "text",
"text": "### 📁 Published Sites (2)\n\n- **my-portfolio.zip** (`044a4449ae784808785e1bb0ca4df372`)\n - **Live URL**: [http://localhost:3000/044a4449ae784808785e1bb0ca4df372](http://localhost:3000/044a4449ae784808785e1bb0ca4df372)\n - **Files**: 3 files\n - **Uploaded**: 8/17/2026, 12:00:00 PM"
}
]
}Example Usage with AI Agents
Prompting Your AI Assistant
"List all my uploaded static websites using the
list_sitestool."
or
"Build a single-page HTML portfolio in
./portfolio-siteand publish it using thepublish_sitetool."
Local Development & Monorepo Build
If building from the workspace source:
# Build the MCP server package
pnpm --filter @yhauxell/static-site-mcp-server buildThis compiles TypeScript source into executable ES Modules under dist/index.js.
