Serveur MCP

mcp

ai.dataecho/mcp
Cloud et infrastructure Outils développeur Public et accessible MCP 2026-07-28

Ce que fait ce MCP

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`.
Schéma d’entrée
{'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).
Schéma d’entrée
{'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.
Schéma d’entrée
{'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.
Schéma d’entrée
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Site slug'}}, 'additionalProperties': False}
delete_variable
Delete an account variable.
Schéma d’entrée
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Variable name'}}, 'additionalProperties': False}
drive_delete_file
Delete one file from a drive.
Schéma d’entrée
{'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).
Schéma d’entrée
{'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.
Schéma d’entrée
{'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.
Schéma d’entrée
{'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).
Schéma d’entrée
{'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).
Schéma d’entrée
{'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.
Schéma d’entrée
{'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.
Schéma d’entrée
{'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).
Schéma d’entrée
{'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).
Schéma d’entrée
{'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.
Schéma d’entrée
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Site slug'}}, 'additionalProperties': False}
list_drives
List the authenticated account's private cloud drives.
Schéma d’entrée
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
list_sites
List all sites owned by the authenticated account.
Schéma d’entrée
{'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).
Schéma d’entrée
{'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.
Schéma d’entrée
{'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.
Schéma d’entrée
{'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.
Schéma d’entrée
{'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).
Schéma d’entrée
{'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.
Schéma d’entrée
{'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).
Schéma d’entrée
{'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.
Schéma d’entrée
{'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}
Ajouté
delete_variable
17 September 2026 07:56
Ajouté
set_variable
17 September 2026 07:56
Ajouté
list_variables
17 September 2026 07:56
Ajouté
drive_restore
17 September 2026 07:56
Ajouté
drive_history
17 September 2026 07:56
Ajouté
drive_revoke_token
17 September 2026 07:56
Ajouté
drive_tokens
17 September 2026 07:56
Ajouté
drive_share
17 September 2026 07:56
Ajouté
drive_move_file
17 September 2026 07:56
Ajouté
drive_delete_file
17 September 2026 07:56
Ajouté
drive_write_file
17 September 2026 07:56
Ajouté
drive_read_file
17 September 2026 07:56
Ajouté
drive_list_files
17 September 2026 07:56
Ajouté
create_drive
17 September 2026 07:56
Ajouté
list_drives
17 September 2026 07:56
Ajouté
app_status
17 September 2026 07:56
Ajouté
delete_site
17 September 2026 07:56
Ajouté
update_site_metadata
17 September 2026 07:56
Ajouté
get_site
17 September 2026 07:56
Ajouté
search_sites
17 September 2026 07:56
Ajouté
list_sites
17 September 2026 07:56
Ajouté
claim_site
17 September 2026 07:56
Ajouté
publish_site
17 September 2026 07:56
Ajouté
verify_login_code
17 September 2026 07:56
Ajouté
request_login_code
17 September 2026 07:56
Ajouté
platform_info
17 September 2026 07:56