MCP Server

AIfra — temporary static previews

io.github.nickbasharin/aifra
Cloud & Infrastructure Developer Tools Public & reachable MCP 2025-11-25

What this MCP does

Creates, updates, checks, and deletes temporary HTTPS previews for supplied static site or HTML slide files.

create_preview
Prepare a new temporary static preview. Supply exactly one of small files, ZIP archive_base64, or an allowed provider ZIP file reference. No backend/build. Requires explicit consent; returns an approval link, not a published URL. User must confirm in their browser.
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['accept_terms'], 'properties': {'files': {'type': 'array', 'items': {'type': 'object', 'required': ['path', 'content'], 'properties': {'path': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'content': {'type': 'string', 'maxLength': 1400000}, 'encoding': {'enum': ['utf8', 'base64'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'archive': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'maxLength': 256, 'minLength': 1}, 'file_name': {'type': 'string', 'maxLength': 240}, 'mime_type': {'type': 'string', 'maxLength': 100}, 'download_url': {'type': 'string', 'maxLength': 8192}}, 'additionalProperties': False}, 'accept_terms': {'type': 'boolean', 'const': True}, 'archive_base64': {'type': 'string', 'maxLength': 69905068}}}
delete_preview
Prepare deletion of an existing preview. Does not delete until its owner confirms in the browser holding the management key.
Destructive Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['preview_id', 'confirm_delete'], 'properties': {'preview_id': {'type': 'string', 'pattern': '^pv_[A-Za-z0-9_-]{24}$'}, 'confirm_delete': {'type': 'boolean', 'const': True}}}
get_deploy_instructions
Explain remote browser-confirmed AIfra publication of ready static files, limits and current terms.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_operation_status
Read whether a prepared operation is pending, complete, failed or uncertain. Returns no file content or management key. Never assume pending means published.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operation_id'], 'properties': {'operation_id': {'type': 'string', 'pattern': '^rop_[A-Za-z0-9_-]{43}$'}}}
get_preview_status
Read public status, URL and original expiry of an existing preview.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['preview_id'], 'properties': {'preview_id': {'type': 'string', 'pattern': '^pv_[A-Za-z0-9_-]{24}$'}}}
update_preview
Prepare replacement of an existing temporary static preview. Supply exactly one of small files, ZIP archive_base64, or an allowed provider ZIP file reference. No backend/build. Requires explicit consent; returns an approval link, not a published URL. User must confirm in their browser. Requires the browser holding the existing management key; expiry is unchanged.
Destructive Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['accept_terms', 'preview_id'], 'properties': {'files': {'type': 'array', 'items': {'type': 'object', 'required': ['path', 'content'], 'properties': {'path': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'content': {'type': 'string', 'maxLength': 1400000}, 'encoding': {'enum': ['utf8', 'base64'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'archive': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'maxLength': 256, 'minLength': 1}, 'file_name': {'type': 'string', 'maxLength': 240}, 'mime_type': {'type': 'string', 'maxLength': 100}, 'download_url': {'type': 'string', 'maxLength': 8192}}, 'additionalProperties': False}, 'preview_id': {'type': 'string', 'pattern': '^pv_[A-Za-z0-9_-]{24}$'}, 'accept_terms': {'type': 'boolean', 'const': True}, 'archive_base64': {'type': 'string', 'maxLength': 69905068}}}
Added
get_preview_status
Sept. 20, 2026, 2:40 a.m.
Added
get_operation_status
Sept. 20, 2026, 2:40 a.m.
Added
delete_preview
Sept. 20, 2026, 2:40 a.m.
Added
update_preview
Sept. 20, 2026, 2:40 a.m.
Added
create_preview
Sept. 20, 2026, 2:40 a.m.
Added
get_deploy_instructions
Sept. 20, 2026, 2:40 a.m.