Reserve a subdomain, upload .zip via MCP, get a link. Optional document API at api.demo.st.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer token from https://demo.st (sign in → MCP page → copy token, or GET /api/mcp/token). Required for hosting and document API tools.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Check if a subdomain name is available on demo.st (e.g. "my-site" → my-site.demo.st).
Subdomain name: letters, numbers, hyphens only; 1–63 chars.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Check if a subdomain name is available on demo.st (e.g. "my-site" → my-site.demo.st).
| Argument | Type | Description |
|---|---|---|
| name* | string | Subdomain name: letters, numbers, hyphens only; 1–63 chars. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Subdomain name: letters, numbers, hyphens only; 1–63 chars."
}
}
}Remove deployed site content from your subdomain. Subdomain remains reserved.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Create a document collection (lowercase letter start; letters, numbers, underscores; max 63 chars). Max 20 collections per site.
| Argument | Type | Description |
|---|---|---|
| name* | string | Collection name, e.g. todos or posts. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Collection name, e.g. todos or posts."
}
}
}Delete a document collection and all of its records.
| Argument | Type | Description |
|---|---|---|
| name* | string | Collection name to delete. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Collection name to delete."
}
}
}Delete a record from a document collection.
| Argument | Type | Description |
|---|---|---|
| id* | string | Record id. |
| collection* | string | Collection name. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"collection",
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Record id."
},
"collection": {
"type": "string",
"description": "Collection name."
}
}
}Get (or create) the public site API key for your reserved subdomain. Embed this key in your static site and call https://api.demo.st/v1 with Authorization: Bearer <key>. Tenant is scoped by the key — never share another site's key.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}List document collections for your site (api.demo.st document store).
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}List records in a document collection.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max records to return (default 100). |
| offset | integer | Offset for pagination. |
| collection* | string | Collection name. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"collection"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Max records to return (default 100)."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset for pagination."
},
"collection": {
"type": "string",
"description": "Collection name."
}
}
}Release your reserved subdomain. Deletes the reservation, any deployed site, and all document DB data for that site.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Reserve a subdomain for the logged-in account. One subdomain per account.
| Argument | Type | Description |
|---|---|---|
| subdomain* | string | Subdomain to reserve (letters, numbers, hyphens; 1–63 chars). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subdomain"
],
"properties": {
"subdomain": {
"type": "string",
"description": "Subdomain to reserve (letters, numbers, hyphens; 1–63 chars)."
}
}
}Rotate the public site API key. The old key stops working immediately; update your site with the new key.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Upload a .zip as site content for your reserved subdomain. Easiest for agents: zip_base64 (base64-encoded zip). Or file_url (public URL to zip). Or file_path (local path, when MCP runs locally).
| Argument | Type | Description |
|---|---|---|
| file_url | string | Public URL of a .zip file. |
| file_path | string | Local path to a .zip file (for local/stdio MCP only). |
| zip_base64 | string | Base64-encoded .zip content. Easiest for agents: create zip locally and pass here (no hosting needed). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file_url": {
"type": "string",
"format": "uri",
"description": "Public URL of a .zip file."
},
"file_path": {
"type": "string",
"description": "Local path to a .zip file (for local/stdio MCP only)."
},
"zip_base64": {
"type": "string",
"description": "Base64-encoded .zip content. Easiest for agents: create zip locally and pass here (no hosting needed)."
}
}
}Create or update a JSON record in a collection. Pass data as an object. Optional id to upsert a specific record.
| Argument | Type | Description |
|---|---|---|
| id | string | Optional record id (create or replace). |
| data* | object | JSON object to store. |
| collection* | string | Collection name. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"collection",
"data"
],
"properties": {
"id": {
"type": "string",
"description": "Optional record id (create or replace)."
},
"data": {
"type": "object",
"description": "JSON object to store.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"collection": {
"type": "string",
"description": "Collection name."
}
}
}