MCP-Server

mcp

ai.dataecho/mcp
Cloud & Infrastruktur Entwicklertools Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Deploys files, websites, and Dockerfile-based applications to live URLs and private storage drives.

app_status
Build/run status of a container app deployed via publish_site with a Dockerfile. Poll until status is `live` or `failed`.
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'logs': {'type': 'boolean', 'description': 'Include build logs'}, 'slug': {'type': 'string', 'description': 'Site slug'}}, 'additionalProperties': False}
claim_site
Make a previously-anonymous site permanent under the authenticated account (requires auth + the claimToken from publish_site).
Eingabeschema
{'type': 'object', 'required': ['slug', 'claimToken'], 'properties': {'slug': {'type': 'string', 'description': 'Site slug'}, 'claimToken': {'type': 'string', 'description': 'Claim token returned by the anonymous publish'}}, 'additionalProperties': False}
create_drive
Create a new private drive.
Eingabeschema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Drive name'}}, 'additionalProperties': False}
delete_site
Permanently delete an owned site. Irreversible — confirm with the user first.
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Site slug'}}, 'additionalProperties': False}
delete_variable
Delete an account variable.
Eingabeschema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Variable name'}}, 'additionalProperties': False}
drive_delete_file
Delete one file from a drive.
Eingabeschema
{'type': 'object', 'required': ['drive', 'path'], 'properties': {'path': {'type': 'string', 'description': 'File path'}, 'drive': {'type': 'string', 'description': 'Drive name or drv_… id'}}, 'additionalProperties': False}
drive_history
Version timeline of a drive (every write is a restorable version).
Eingabeschema
{'type': 'object', 'required': ['drive'], 'properties': {'drive': {'type': 'string', 'description': 'Drive name or drv_… id'}}, 'additionalProperties': False}
drive_list_files
List files in a drive (by drive name or drv_… id), optionally under a path prefix.
Eingabeschema
{'type': 'object', 'required': ['drive'], 'properties': {'drive': {'type': 'string', 'description': 'Drive name or drv_… id'}, 'prefix': {'type': 'string', 'description': 'Path prefix filter'}}, 'additionalProperties': False}
drive_move_file
Move/rename a file inside a drive.
Eingabeschema
{'type': 'object', 'required': ['drive', 'from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'New path'}, 'from': {'type': 'string', 'description': 'Current path'}, 'drive': {'type': 'string', 'description': 'Drive name or drv_… id'}}, 'additionalProperties': False}
drive_read_file
Read a file from a drive. Text comes back as utf-8 `content`; binary as `contentBase64`. Files over 1 MB are refused (use the skill scripts).
Eingabeschema
{'type': 'object', 'required': ['drive', 'path'], 'properties': {'path': {'type': 'string', 'description': 'File path in the drive'}, 'drive': {'type': 'string', 'description': 'Drive name or drv_… id'}}, 'additionalProperties': False}
drive_restore
Restore a drive to a prior version (commits a new version; nothing is lost).
Eingabeschema
{'type': 'object', 'required': ['drive', 'versionId'], 'properties': {'drive': {'type': 'string', 'description': 'Drive name or drv_… id'}, 'versionId': {'type': 'string', 'description': 'dv_… id from drive_history'}}, 'additionalProperties': False}
drive_revoke_token
Revoke a drive share token.
Eingabeschema
{'type': 'object', 'required': ['drive', 'tokenId'], 'properties': {'drive': {'type': 'string', 'description': 'Drive name or drv_… id'}, 'tokenId': {'type': 'string', 'description': 'dtok_… id from drive_tokens'}}, 'additionalProperties': False}
drive_share
Mint a scoped drive access token for another agent (perms read|write, optional path prefix + TTL like `7d`). The secret is returned ONCE.
Eingabeschema
{'type': 'object', 'required': ['drive'], 'properties': {'ttl': {'type': 'string', 'description': 'Lifetime, e.g. 1h, 7d (omit for no expiry)'}, 'drive': {'type': 'string', 'description': 'Drive name or drv_… id'}, 'label': {'type': 'string', 'description': 'Human label for the token'}, 'perms': {'type': 'string', 'description': 'read (default) or write'}, 'pathPrefix': {'type': 'string', 'description': 'Restrict the token to this path prefix'}}, 'additionalProperties': False}
drive_tokens
List active share tokens of a drive (secrets are never shown again).
Eingabeschema
{'type': 'object', 'required': ['drive'], 'properties': {'drive': {'type': 'string', 'description': 'Drive name or drv_… id'}}, 'additionalProperties': False}
drive_write_file
Write/overwrite one file in a drive (ETag-safe: pass ifMatch to assert the version you read, otherwise the current version is used automatically).
Eingabeschema
{'type': 'object', 'required': ['drive', 'path'], 'properties': {'path': {'type': 'string', 'description': 'Destination path in the drive'}, 'drive': {'type': 'string', 'description': 'Drive name or drv_… id'}, 'content': {'type': 'string', 'description': 'UTF-8 text content'}, 'ifMatch': {'type': 'string', 'description': 'Optional ETag precondition'}, 'contentType': {'type': 'string', 'description': 'Optional MIME type'}, 'contentBase64': {'type': 'string', 'description': 'Base64 content for binary files'}}, 'additionalProperties': False}
get_site
Full details + current file manifest of an owned site.
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Site slug'}}, 'additionalProperties': False}
list_drives
List the authenticated account's private cloud drives.
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
list_sites
List all sites owned by the authenticated account.
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
list_variables
List account variable NAMES (values are write-only — they are injected into proxy calls and container apps, never read back).
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
platform_info
DataEcho platform overview: what it can host, auth state of this connection, docs links. Call this first if unsure.
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
publish_site
Deploy files to a live URL. No slug → create a NEW site (works without auth; anonymous sites expire in 24h — always show the user the claimUrl). With slug → UPDATE that site (complete snapshot: send ALL files). A Dockerfile in the files makes it a server-side app (auth required; listen on process.env.PORT; persist under /data; poll app_status). Total payload ≤ 8 MB — for bigger sites use the dataecho skill scripts.
Eingabeschema
{'type': 'object', 'required': ['files'], 'properties': {'spa': {'type': 'boolean', 'description': 'Enable SPA fallback routing (serve index.html for unknown paths)'}, 'slug': {'type': 'string', 'description': 'Existing site slug to update (omit to create a new site)'}, 'files': {'type': 'array', 'items': {'type': 'object', 'required': ['path'], 'properties': {'path': {'type': 'string', 'description': 'Site-relative path, e.g. index.html or assets/app.js'}, 'content': {'type': 'string', 'description': 'UTF-8 text content (use for html/css/js/json/text)'}, 'contentType': {'type': 'string', 'description': 'Optional MIME type; guessed from the extension if omitted'}, 'contentBase64': {'type': 'string', 'description': 'Base64 content (use for binary files)'}}, 'additionalProperties': False}, 'description': 'Files to publish. Each file: { path, content (utf-8 text) OR contentBase64 (binary), contentType? }. The publish is a COMPLETE snapshot — omitted files are removed on update.'}, 'title': {'type': 'string', 'description': "Viewer page title (used when there's no index.html)"}, 'claimToken': {'type': 'string', 'description': 'Claim token — required to update an anonymous site without auth'}, 'ttlSeconds': {'type': 'number', 'description': 'Expiry for authenticated sites, in seconds'}, 'description': {'type': 'string', 'description': 'Viewer page description'}}, 'additionalProperties': False}
request_login_code
Start sign-in: email a one-time code to the user. Follow with verify_login_code.
Eingabeschema
{'type': 'object', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': "The user's email address"}}, 'additionalProperties': False}
search_sites
Full-text search across the authenticated account's sites (names, metadata, and text content).
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'Max results (optional)'}, 'query': {'type': 'string', 'description': 'Search query'}}, 'additionalProperties': False}
set_variable
Create/update a write-only account secret (uppercase name). Injected as env vars into container apps and as ${VAR} into proxy calls. Optionally pin which upstream hosts may receive it.
Eingabeschema
{'type': 'object', 'required': ['name', 'value'], 'properties': {'name': {'type': 'string', 'description': 'UPPER_SNAKE_CASE variable name'}, 'value': {'type': 'string', 'description': 'Secret value (never readable back)'}, 'allowedUpstreams': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional allow-list of upstream hosts'}}, 'additionalProperties': False}
update_site_metadata
Patch site settings without redeploying: viewer title/description, SPA mode, TTL, password (string sets, null removes).
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Site slug'}, 'title': {'type': 'string', 'description': 'Viewer title'}, 'spaMode': {'type': 'boolean', 'description': 'SPA fallback routing'}, 'password': {'type': 'string', 'description': 'Password-gate the site; pass an empty string to REMOVE the password'}, 'ttlSeconds': {'type': 'number', 'description': 'Expiry in seconds (null-like 0 not allowed; omit to keep)'}, 'description': {'type': 'string', 'description': 'Viewer description'}}, 'additionalProperties': False}
verify_login_code
Complete sign-in with the emailed code. Returns the apiKey ONCE — configure it as the `Authorization: Bearer <key>` header of this MCP connection (and/or save to ~/.artifact/credentials for the CLI scripts). Never echo it into chat.
Eingabeschema
{'type': 'object', 'required': ['email', 'code'], 'properties': {'code': {'type': 'string', 'description': 'The one-time code from the email'}, 'email': {'type': 'string', 'description': 'Same email as request_login_code'}}, 'additionalProperties': False}
Hinzugefügt
delete_variable
17. September 2026 07:56
Hinzugefügt
set_variable
17. September 2026 07:56
Hinzugefügt
list_variables
17. September 2026 07:56
Hinzugefügt
drive_restore
17. September 2026 07:56
Hinzugefügt
drive_history
17. September 2026 07:56
Hinzugefügt
drive_revoke_token
17. September 2026 07:56
Hinzugefügt
drive_tokens
17. September 2026 07:56
Hinzugefügt
drive_share
17. September 2026 07:56
Hinzugefügt
drive_move_file
17. September 2026 07:56
Hinzugefügt
drive_delete_file
17. September 2026 07:56
Hinzugefügt
drive_write_file
17. September 2026 07:56
Hinzugefügt
drive_read_file
17. September 2026 07:56
Hinzugefügt
drive_list_files
17. September 2026 07:56
Hinzugefügt
create_drive
17. September 2026 07:56
Hinzugefügt
list_drives
17. September 2026 07:56
Hinzugefügt
app_status
17. September 2026 07:56
Hinzugefügt
delete_site
17. September 2026 07:56
Hinzugefügt
update_site_metadata
17. September 2026 07:56
Hinzugefügt
get_site
17. September 2026 07:56
Hinzugefügt
search_sites
17. September 2026 07:56
Hinzugefügt
list_sites
17. September 2026 07:56
Hinzugefügt
claim_site
17. September 2026 07:56
Hinzugefügt
publish_site
17. September 2026 07:56
Hinzugefügt
verify_login_code
17. September 2026 07:56
Hinzugefügt
request_login_code
17. September 2026 07:56
Hinzugefügt
platform_info
17. September 2026 07:56