AI assistants (MCP)
If you work with an AI assistant anyway, it can just as well set up the environment for you:
“make me a Laravel project with MariaDB and Redis” and a minute later it runs. Envoryx has an MCP
server for that at /mcp (streamable HTTP). A connected assistant can create, duplicate and
rename projects, start and stop them, read logs, run actions and create databases, backups and
snapshots. It goes through the same checks and ends up in the same audit log as everything you
do in the web UI.
Connecting a client
Section titled “Connecting a client”Create a token under Settings → API tokens & MCP. Pick its scope and, if you like, limit it to particular projects. The page then shows you a configuration you can paste straight into your client:
{ "mcpServers": { "envoryx": { "type": "http", "url": "https://envoryx.test/mcp", "headers": { "Authorization": "Bearer stq_…" } } }}With Claude Code it’s one command:
claude mcp add --transport http envoryx https://envoryx.test/mcp --header "Authorization: Bearer stq_…"No proxy or HTTPS set up yet? Then use http://<host>:8787/mcp. The MCP endpoint only takes
bearer tokens; a session cookie from your browser doesn’t count there.
What an assistant may call depends on the token’s scope. It’s only offered the tools its token
can call, so a read token’s assistant doesn’t even see create_project:
| Tool | Scope |
|---|---|
list_projects, get_project, list_runtimes |
read |
get_logs, get_log_stats |
read |
list_actions, list_databases, list_backups, list_snapshots |
read |
list_branch_environments |
read |
start_project, stop_project, restart_project |
operate |
run_action (an entry of the action catalogue) |
operate |
create_database, create_backup, create_snapshot, add_domain |
operate |
deploy_branch_environment |
operate |
create_project, duplicate_project, rename_project, create_branch_environment |
admin |
You won’t find anything that destroys data in that list. Deleting projects, dropping databases, restoring backups and snapshots and cloning over a database are left out on purpose - an assistant that misunderstands you shouldn’t be able to wipe anything. Do those in the UI.
The three branch tools are about branch environments: an assistant can list them, create one for a branch of the repository, and pull and deploy one after you pushed.
Creating projects
Section titled “Creating projects”create_project takes the PHP version and extensions, the database, services (Redis, Memcached,
Mailpit, RabbitMQ, Meilisearch, Typesense, OpenSearch, Ollama, object storage), a git repository
or a template, and environment variables. The assistant finds out which versions and templates
exist with list_runtimes. For a project without PHP it passes phpVersion: "none" and the
runtime:
| Runtime | Fields | Templates |
|---|---|---|
| Node.js | nodeVersion, nodeDevServer, nodePreset, nodeScript, nodePort, nodePackageManager |
vite, next, nuxt |
| Python | pythonVersion, pythonServer, pythonPreset, pythonApp, pythonPort, pythonMode |
django, flask, fastapi |
| Go | goVersion, goServer, goPackage, goPort, goMode |
go, gin, echo |
| Ruby | rubyVersion, rubyServer, rubyPreset, rubyPort, rubyMode |
rails, rails-api, sinatra |
A template switches the server on by itself. The answer tells the assistant what the project
serves (serves: php, python, go, ruby, node or static) and its URLs, so it can hand
you a link at the end.
A few prompts that work well:
- “Create a Laravel project called test-api with PHP 8.4, MariaDB and Redis, then run composer install.”
- “Create a FastAPI project called inventory-api with PostgreSQL, no PHP, then run pip install.”
- “Create a Rails project called blog on PostgreSQL, no PHP, then run rails db:prepare.”