Skip to main content
Glama
EpicLabs23

ecp-mcp-server

by EpicLabs23

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ECP_REMEMBERNoSet to "true" for a 30-day session instead of the default 24h session.
ECP_API_BASE_URLYesYour ECP instance's own API base URL, e.g. https://yourdomain.com:2324/api
ECP_TLS_INSECURENoDev-only escape hatch for a self-signed ECP instance. Do not set for a real account.
ECP_ACCOUNT_PASSWORDYesThe hosting account's password.
ECP_ACCOUNT_USERNAMEYesThe hosting account to log in as. One server instance manages one account.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ecp_whoamiA

Get the profile of the hosting account this MCP server is authenticated as.

ecp_apps_listB

List all apps on this hosting account.

ecp_apps_getA

Get one app's details by id.

ecp_apps_directory_treeB

Browse the account's directory tree (used to pick a location for a new app, or to sanity-check where a git clone landed).

ecp_apps_create_from_uploadC

Register an app whose files were already uploaded to app_dir.

ecp_apps_create_from_gitA

Create an app by cloning a git repo. Either set provider+repo_full_name (clone via a connected git account, see ecp_git_* tools) or repo_url (+ optional repo_username/repo_password for a private repo). Note: the clone runs in the background - this tool returns once the clone STARTS, not once it finishes. For a large repo, check ecp_apps_directory_tree afterward before assuming the files are all there.

ecp_apps_deleteA

Delete an app: stops its supervisor process (if any) and removes its files. Irreversible.

ecp_apps_update_domainC

Point an app at a domain: creates the nginx server block and updates the app's domain record.

ecp_apps_update_static_domainB

Point a static-site app at a domain: creates the nginx static block and updates the app's domain record.

ecp_apps_deploy_stepB

Run one step of an app's deploy lifecycle. action='start'|'stop'|'restart'|'remove' manage the app's supervisor process and return a real result. action='install'|'build' run a command in the background via app_root_directory (install_command/build_command) but this tool CANNOT show you their output - check ecp_apps_tail_logs or the app's own state afterward. action='configure' pins an asdf runtime version (stack_version) for the app and also returns no output.

ecp_apps_tail_logsC

Tail an app's supervisor-managed process log (only meaningful after a 'start' deploy step).

ecp_apps_flush_logsB

Clear an app's supervisor-managed process log.

ecp_apps_save_custom_commandB

Save a named custom command for an app (does not run it - see the blocked command-execution phase in the plan for why 'run' isn't exposed yet).

ecp_domains_list_allA

List every domain (primary + additional) on this account.

ecp_domains_list_additionalA

List additional (addon) domains only, excluding the primary domain.

ecp_domains_add_domainC

Add an additional (addon) domain to this account.

ecp_domains_add_subdomainB

Add a subdomain of a domain this account already owns.

ecp_domains_deleteA

Delete a domain from this account. Cannot delete the primary domain. Irreversible.

ecp_domains_set_redirectC

Redirect a domain to another URL (e.g. www -> apex).

ecp_domains_remove_redirectB

Remove a domain's redirect.

ecp_dns_list_recordsC

List DNS records for a domain's zone.

ecp_dns_add_recordC

Add a DNS record to a domain's zone.

ecp_dns_delete_recordA

Delete a DNS record from a domain's zone. record must match the existing record (name/type/content) closely enough for the DNS provider to identify it.

ecp_network_port_mapsB

List all port mappings on this account.

ecp_network_domain_port_mapsB

List port mappings for one domain.

ecp_network_update_port_mapsC

Update a port mapping and its nginx config. Can affect site routing.

ecp_nginx_list_domainsA

List domains that have an nginx config on this container.

ecp_nginx_get_confB

Read the raw nginx config for a domain.

ecp_nginx_set_confA

Overwrite the raw nginx config for a domain. Malformed content can break the site - verify the config is valid before writing.

ecp_files_listC

List files/folders in a directory.

ecp_files_directory_treeA

Get the directory tree including files (for browsing/editing, unlike ecp_apps_directory_tree which is folders only).

ecp_files_is_directory_existsB

Check whether a directory exists.

ecp_files_readC

Read a text file's content.

ecp_files_writeB

Overwrite a text file's content (creates it if it doesn't exist). Can break a running app if it's a config/env/source file - review the current content first.

ecp_files_add_fileC

Create a new empty file.

ecp_files_add_folderC

Create a new folder.

ecp_files_renameC

Rename a file or folder within a directory.

ecp_files_copyC

Copy one file/folder to a destination.

ecp_files_copy_multipleC

Copy multiple files/folders to a destination.

ecp_files_moveC

Move one file/folder to a destination.

ecp_files_move_multipleC

Move multiple files/folders to a destination.

ecp_files_change_permissionC

chmod a file (e.g. new_permission: '644').

ecp_files_compressC

Compress one or more files/folders into an archive.

ecp_files_extractB

Extract an archive into a destination directory.

ecp_files_deleteA

Delete a single file or folder. Irreversible.

ecp_files_delete_multipleC

Delete multiple files/folders. Irreversible.

ecp_db_services_statusA

Check whether Postgres/MSSQL/Mongo are enabled/configured/reachable for this account (MySQL is always available - it's EHM's own DB engine, not an optional one).

ecp_db_connection_infoA

Get the static host/port connection info for each database engine, for apps running in this account's own container.

ecp_mysql_create_databaseA

Create a MySQL database. db_name gets the account's own prefix applied automatically.

ecp_mysql_delete_databaseA

Delete a MySQL database. Irreversible.

ecp_mysql_list_databasesA

List this account's MySQL databases.

ecp_mysql_database_sizesA

Get size (in bytes) of each MySQL database.

ecp_mysql_table_sizesB

Get size of each table in a MySQL database.

ecp_mysql_list_columnsA

List a table's columns (metadata only, no row data).

ecp_mysql_truncate_tableB

Delete all rows from a table. Irreversible.

ecp_mysql_drop_tableB

Drop (delete) a table entirely. Irreversible.

ecp_mysql_browse_rowsB

Browse rows in a table. Connects as the given MySQL user (db_username/password), which must be a user this account owns.

ecp_mysql_insert_rowC

Insert a row into a table.

ecp_mysql_update_rowC

Update a row in a table, identified by primary_key.

ecp_mysql_delete_rowA

Delete a row from a table, identified by primary_key. Irreversible.

ecp_mysql_export_databaseA

Export a MySQL database as a .sql dump (returned as text - large databases will produce a large result, consider ecp_mysql_backup_to_storage_bd instead for anything beyond a quick look).

ecp_mysql_import_databaseA

Import a .sql dump into an existing MySQL database, overwriting its content. Irreversible - pass the full SQL as text.

ecp_mysql_backup_to_storage_bdB

Back up a MySQL database to the account's storage.bd tenant.

ecp_mysql_restore_from_storage_bdA

Restore a MySQL database from a storage.bd snapshot, overwriting its current content. Irreversible.

ecp_mysql_list_db_usersA

List additional MySQL users on this account (beyond the account's own default user).

ecp_mysql_create_db_userB

Create an additional MySQL user. db_username gets the account's own prefix applied automatically.

ecp_mysql_delete_db_userB

Delete an additional MySQL user. Irreversible.

ecp_mysql_change_db_userA

Reassign a database to be owned by a different MySQL user (both must already belong to this account).

ecp_mysql_list_privilegesA

List a MySQL user's privileges on a database.

ecp_mysql_grant_privilegesA

Grant privileges (e.g. ['SELECT','INSERT']) to a MySQL user on a database. Security-sensitive - review carefully before confirming.

ecp_mysql_revoke_privilegesC

Revoke privileges from a MySQL user on a database.

ecp_mongo_create_databaseA

Create a MongoDB database. db_name gets the account's own prefix applied automatically. db_username must already exist (see ecp_mongo_create_user).

ecp_mongo_delete_databaseB

Delete a MongoDB database. Irreversible.

ecp_mongo_list_databasesA

List this account's MongoDB databases.

ecp_mongo_database_sizesA

Get size of each MongoDB database.

ecp_mongo_list_collectionsA

List collections in a database (metadata only, no document data).

ecp_mongo_create_collectionC

Create a collection in a database.

ecp_mongo_drop_collectionA

Drop (delete) a collection entirely. Irreversible.

ecp_mongo_browse_documentsC

Browse documents in a collection. Connects as the given db_username/password, which must be a user this account owns.

ecp_mongo_insert_documentC

Insert a document into a collection.

ecp_mongo_update_documentC

Update a document, identified by id.

ecp_mongo_delete_documentB

Delete a document, identified by id. Irreversible.

ecp_mongo_backup_to_storage_bdB

Back up a MongoDB database to the account's storage.bd tenant.

ecp_mongo_restore_from_storage_bdA

Restore a MongoDB database from a storage.bd snapshot, overwriting its current content. Irreversible.

ecp_mongo_list_usersB

List additional MongoDB users on this account.

ecp_mongo_create_userA

Create a MongoDB user. db_username gets the account's own prefix applied automatically. Grants readWrite on this account's default database - MongoDB here has no read-only role option, unlike MySQL/Postgres's granular privilege grants.

ecp_mongo_delete_userB

Delete a MongoDB user. Irreversible.

ecp_mongo_update_user_passwordC

Change a MongoDB user's password.

ecp_mongo_assign_user_to_databaseA

Grant a MongoDB user readWrite access to a database (both must already belong to this account). MongoDB only supports whole-database readWrite here - no read-only or per-collection grants like MySQL/Postgres. Security-sensitive - review carefully before confirming.

ecp_mssql_create_databaseA

Create a MSSQL database. db_name gets the account's own prefix applied automatically. Creates the login together with the database.

ecp_mssql_delete_databaseB

Delete a MSSQL database. Irreversible.

ecp_mssql_list_databasesB

List this account's MSSQL databases.

ecp_mssql_database_sizesA

Get size of each MSSQL database.

ecp_mssql_table_sizesC

Get size of each table in a MSSQL database.

ecp_mssql_list_columnsA

List a table's columns (metadata only, no row data).

ecp_mssql_truncate_tableB

Delete all rows from a table. Irreversible.

ecp_mssql_drop_tableC

Drop (delete) a table entirely. Irreversible.

ecp_mssql_browse_rowsC

Browse rows in a table. Connects as the given db_username/password, which must be a user this account owns.

ecp_mssql_insert_rowC

Insert a row into a table.

ecp_mssql_update_rowC

Update a row in a table, identified by primary_key.

ecp_mssql_delete_rowC

Delete a row from a table, identified by primary_key. Irreversible.

ecp_mssql_backup_to_storage_bdC

Back up a MSSQL database to the account's storage.bd tenant.

ecp_mssql_restore_from_storage_bdA

Restore a MSSQL database from a storage.bd snapshot, overwriting its current content. Irreversible.

ecp_mssql_list_db_usersB

List additional MSSQL users on this account.

ecp_mssql_create_database_userB

Create an additional MSSQL user. db_username gets the account's own prefix applied automatically.

ecp_mssql_delete_userB

Delete a MSSQL user. Irreversible.

ecp_mssql_change_database_ownerC

Change a database's owning user (both must already belong to this account).

ecp_mssql_list_privilegesA

List a MSSQL user's privileges on a database. Note: MSSQL's privilege model here is coarser than MySQL/Postgres - only these 5 DML permissions, applied schema-wide (SCHEMA::dbo), not per-table.

ecp_mssql_grant_privilegesA

Grant privileges to a user on a database. Note: MSSQL's privilege model here is coarser than MySQL/Postgres - only these 5 DML permissions, applied schema-wide (SCHEMA::dbo), not per-table. Security-sensitive - review carefully before confirming.

ecp_mssql_revoke_privilegesA

Revoke privileges from a user on a database. Note: MSSQL's privilege model here is coarser than MySQL/Postgres - only these 5 DML permissions, applied schema-wide (SCHEMA::dbo), not per-table.

ecp_postgres_create_databaseA

Create a Postgres database. db_name gets the account's own prefix applied automatically. db_username must already exist (see ecp_postgres_create_database_user).

ecp_postgres_delete_databaseB

Delete a Postgres database. Irreversible.

ecp_postgres_list_databasesA

List this account's Postgres databases.

ecp_postgres_database_sizesA

Get size of each Postgres database.

ecp_postgres_table_sizesA

Get size of each table in a Postgres database.

ecp_postgres_list_columnsB

List a table's columns (metadata only, no row data).

ecp_postgres_truncate_tableB

Delete all rows from a table. Irreversible.

ecp_postgres_drop_tableC

Drop (delete) a table entirely. Irreversible.

ecp_postgres_browse_rowsB

Browse rows in a table. Connects as the given db_username/password, which must be a user this account owns.

ecp_postgres_insert_rowD

Insert a row into a table.

ecp_postgres_update_rowC

Update a row in a table, identified by primary_key.

ecp_postgres_delete_rowA

Delete a row from a table, identified by primary_key. Irreversible.

ecp_postgres_backup_to_storage_bdB

Back up a Postgres database to the account's storage.bd tenant.

ecp_postgres_restore_from_storage_bdA

Restore a Postgres database from a storage.bd snapshot, overwriting its current content. Irreversible.

ecp_postgres_list_db_usersA

List additional Postgres users on this account.

ecp_postgres_create_database_userA

Create an additional Postgres user. db_username gets the account's own prefix applied automatically.

ecp_postgres_delete_userC

Delete a Postgres user. Irreversible.

ecp_postgres_change_database_ownerA

Change a database's owning user (both must already belong to this account).

ecp_postgres_list_privilegesB

List a Postgres user's privileges on a database. Applied per-table (all tables in the public schema) plus default privileges for future tables.

ecp_postgres_grant_privilegesA

Grant privileges to a user on a database. Applied per-table (all tables in the public schema) plus default privileges for future tables. Security-sensitive - review carefully before confirming.

ecp_postgres_revoke_privilegesA

Revoke privileges from a user on a database. Applied per-table (all tables in the public schema) plus default privileges for future tables.

ecp_postgres_export_databaseA

Export a Postgres database as a .sql dump (returned as text - large databases will produce a large result, consider ecp_postgres_backup_to_storage_bd instead for anything beyond a quick look).

ecp_postgres_import_databaseA

Import a .sql dump into an existing Postgres database, overwriting its content. Irreversible - pass the full SQL as text.

ecp_php_installed_versionsA

List PHP versions installed on this account's container.

ecp_php_installed_packagesC

List installed PHP extensions for a version.

ecp_php_get_iniC

Get php.ini values for a PHP version.

ecp_php_set_iniB

Overwrite php.ini for a PHP version. Can break every app using that version if malformed.

ecp_php_installA

Install a PHP version (apt-get, takes time). This tool cannot show install output - check ecp_php_installed_versions afterward to confirm it succeeded.

ecp_php_uninstallA

Uninstall a PHP version. Breaks any app still configured to use it. This tool cannot show uninstall output - check ecp_php_installed_versions afterward.

ecp_ssl_available_certificatesB

List certificates available for a domain (pass certificate_name: 'lets_encrypt' or 'self_signed').

ecp_ssl_request_lets_encryptA

Issue a new Let's Encrypt certificate for a domain (does not apply it to nginx - see ecp_ssl_update_lets_encrypt or ecp_ssl_apply_certificate).

ecp_ssl_update_lets_encryptB

Issue and apply a Let's Encrypt certificate to a domain's nginx config. Can break HTTPS for that domain if it fails partway.

ecp_ssl_request_self_signedA

Generate a new self-signed certificate for a domain (does not apply it to nginx).

ecp_ssl_update_self_signedA

Generate and apply a self-signed certificate to a domain's nginx config. Can break HTTPS for that domain if it fails partway.

ecp_ssl_apply_certificateA

Apply an already-generated certificate to a domain's nginx config, without regenerating it. Can break HTTPS for that domain if misapplied.

ecp_system_disk_usageC

Get disk, container-temp-file, and database usage/quota for this account.

ecp_system_check_for_updateA

Check whether an ECP/system update is available.

ecp_system_updateA

Update account/hosting settings (hosting_environment, hosting_version) or ECP password. Requires the account's own current password. Account-wide impact - review carefully.

ecp_system_get_configB

Get this account's ECP config key/values.

ecp_system_set_configC

Update ECP config key/values for this account.

ecp_supervisor_list_processesA

List all supervised processes on this account.

ecp_supervisor_process_infoA

Get status/info for one supervised process.

ecp_supervisor_add_processC

Register a new supervised (auto-restarting) process.

ecp_supervisor_remove_processA

Remove a supervised process. Irreversible (config is deleted, not just stopped).

ecp_supervisor_start_processC

Start a supervised process.

ecp_supervisor_stop_processC

Stop a supervised process.

ecp_supervisor_restart_processC

Restart a supervised process.

ecp_crontab_listB

List this account's scheduled cron jobs.

ecp_crontab_addA

Schedule a cron job. cron_expression is a standard 5-field schedule (e.g. '0 3 * * *'). The command runs unattended, repeatedly, as this account's own system user - review carefully before confirming.

ecp_crontab_removeA

Remove a scheduled cron job. Must match an existing entry's cron_expression and command exactly (see ecp_crontab_list).

ecp_asdf_plugin_list_allB

List all asdf plugins available to install (e.g. nodejs, python, ruby).

ecp_asdf_plugin_listA

List asdf plugins currently installed on this account's container.

ecp_asdf_list_all_versionsC

List all available versions for a plugin (e.g. nodejs).

ecp_asdf_list_installed_versionsC

List installed versions for a plugin.

ecp_asdf_installA

Install a plugin version (takes time). This tool cannot show install output - check ecp_asdf_list_installed_versions afterward to confirm it succeeded.

ecp_asdf_uninstallA

Uninstall a plugin version. Breaks anything still configured to use it. This tool cannot show output - check ecp_asdf_list_installed_versions afterward.

ecp_asdf_set_globalC

Set the global default version for a plugin.

ecp_oneclick_blueprint_appsB

List available one-click app blueprints (fetched from the public EH blueprints catalog).

ecp_oneclick_get_blueprintA

Get a blueprint's definition, including the install commands it expects to run (for you to review/run yourself - see note on why this MCP server doesn't run them automatically).

ecp_oneclick_install_wordpressA

Scaffold a WordPress app: creates the app directory, nginx server block, and patches wp-config.php for HTTPS. Does NOT install WordPress itself - see ecp_oneclick_get_blueprint and run its install commands yourself afterward.

ecp_oneclick_create_databaseA

Create a MySQL user + database in one step, for use during a one-click app install. If user creation fails (e.g. already exists), database creation is still attempted - check ecp_mysql_list_db_users/ecp_mysql_list_databases afterward if unsure.

ecp_git_list_providersA

List git providers (GitHub/GitLab/Bitbucket) enabled for this install.

ecp_git_authorize_urlA

Get the OAuth authorize URL to connect a git provider. Open it in a browser to complete the connection - this tool can't complete OAuth itself.

ecp_git_list_connectionsA

List this account's connected git accounts.

ecp_git_disconnect_providerC

Disconnect a connected git provider.

ecp_git_list_reposA

Browse repos available via a connected git provider (for picking one to deploy from).

ecp_git_webhook_getB

Get an app's git deploy-webhook config and status.

ecp_git_webhook_createA

Create a deploy webhook for an app: runs commands automatically whenever a matching push arrives. Review each command carefully before confirming.

ecp_git_webhook_updateC

Update an app's deploy-webhook branch filter and/or commands. Review each command carefully before confirming.

ecp_git_webhook_deleteB

Delete an app's deploy webhook. Irreversible.

ecp_git_webhook_rotate_secretC

Rotate an app's deploy-webhook secret (invalidates the old one).

ecp_git_webhook_capabilitiesC

Get what webhook features the app's git provider supports.

ecp_git_webhook_deliveriesA

List an app's webhook delivery history (for debugging why a push didn't deploy).

ecp_resource_statusA

Get this account's resource/quota status (e.g. disk or CPU pressure, suspension warnings).

ecp_resource_status_dismissC

Dismiss a resource-status warning banner.

ecp_notifications_listC

List this account's notifications.

ecp_notifications_mark_readB

Mark one notification read.

ecp_notifications_mark_all_readA

Mark all notifications read.

ecp_notifications_deleteC

Delete one notification. Irreversible.

ecp_notifications_clear_allB

Delete all notifications. Irreversible.

ecp_storage_bd_get_configA

Get this account's storage.bd backup config (client_id only - the secret is never returned).

ecp_storage_bd_set_configA

Set this account's storage.bd backup credentials (client_id as '.', client_secret).

ecp_storage_bd_job_statusA

Check whether a storage.bd backup/restore job is currently running for this account.

ecp_backup_list_snapshotsA

List local restic snapshots of this account's host paths (separate from storage.bd's own backups).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 194 tools

Disambiguation4/5

Most tools are clearly distinct by resource area and action, and the descriptions carefully call out subtle differences (e.g. ecp_apps_directory_tree vs ecp_files_directory_tree, ecp_ssl_request vs ecp_ssl_update vs ecp_ssl_apply). A few near-duplicates exist—ecp_files_copy vs ecp_files_copy_multiple and ecp_files_move vs ecp_files_move_multiple—but they are rare and understandable.

Naming Consistency4/5

The ecp_<area>_<verb>_<noun> pattern is followed almost everywhere, making names very predictable. Minor deviations include ecp_network_port_maps (noun-first), ecp_network_domain_port_maps, and ecp_files_is_directory_exists (awkward verb phrase), but these do not undermine the overall uniformity.

Tool Count1/5

194 tools is an extreme count for a single MCP server. Even accounting for the broad hosting-panel domain (files, four database engines, SSL, nginx, git, supervisor, cron, notifications, backups), this volume creates a massive selection surface and will overwhelm agents. The count alone warrants the lowest score.

Completeness4/5

The tool surface is remarkably comprehensive: apps, domains, DNS, nginx, files, four database engines with user/privilege/backup/restore operations, SSL, supervisor, crontab, asdf, git webhooks, notifications, and storage. The only notable gap is the explicitly blocked ability to run custom commands directly (ecp_apps_save_custom_command mentions 'run' isn't exposed yet), which is a stated intentional limitation rather than an oversight.

Maintenance

ActivityMaintained
ResponsivenessNo issues