liara-mcp
v0.3.5
Published
MCP server for Liara cloud platform - deploy and manage apps, databases, and infrastructure
Downloads
2,307
Maintainers
Readme
Liara MCP Server
Note: This is an unofficial MCP server for the Liara cloud platform. It is not affiliated with or endorsed by Liara.
A Model Context Protocol (MCP) server for the Liara cloud platform. This server enables AI assistants to deploy and manage applications, databases, and infrastructure on Liara through natural language.
Features
Current Capabilities
- App Management: Create, deploy, start, stop, restart, and delete apps across 14+ platforms
- Environment Variables: Set and update environment variables for apps
- Deployment: Deploy releases, upload sources, rollback to previous versions
- Database Management: Create, manage, and backup databases (MySQL, PostgreSQL, MongoDB, Redis, etc.)
- Object Storage: Manage S3-compatible storage buckets and objects
- DNS Management: Complete DNS zone and record management
- Domain Management: Add, remove, and verify domains for apps
- Disk Management: Create and manage disks with FTP access
- Mail Servers: Create and manage mail servers, send emails
- Virtual Machines (IaaS): Full VM lifecycle management with snapshots
- Network Management: Create and manage networks for VMs
- Observability: Retrieve app metrics and logs
- Plans: List and view available resource plans
Supported Platforms
Node.js, Next.js, Laravel, PHP, Django, Flask, .NET, Static sites, React, Angular, Vue, Docker, Python, Go
Supported Databases
MariaDB, MySQL, PostgreSQL, MSSQL, MongoDB, Redis, ElasticSearch, RabbitMQ
Installation
npm install -g liara-mcpOr use directly with npx (no installation required).
Configuration
The server supports multiple ways to configure your API token:
Option 1: Environment Variables (Recommended for MCP clients)
Set the token directly in your MCP client configuration (see Usage section below).
Option 2: .env File (For local development)
- Copy the example environment file:
cp .env.example .env- Configure your Liara API credentials in
.env:
LIARA_API_TOKEN=your_api_token_here
LIARA_TEAM_ID=optional_team_id
LIARA_API_BASE_URL=https://api.iran.liara.irThe server automatically loads .env files using dotenv, so no additional setup is required.
Getting Your API Token
- Go directly to the API section in Liara Console (or log in to Liara Console and navigate to the API section)
- Select an expiration timeline for your API key (options: 1 hour, 1 day, 7 days, 1 month, 6 months, or 1 year)
- Click "Create new key" (ساخت کلید جدید) to generate your API token
- Copy the generated token immediately - it will only be shown once
Team ID (Optional)
If you're working with a team account, you can find your Team ID in the API section of the Liara console when viewing your team.
Usage
With Claude Desktop / Cursor / VS Code
Add the following to your MCP configuration file:
- Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) or%APPDATA%\Claude\claude_desktop_config.json(Windows) - Cursor:
.cursor/mcp.json
{
"mcpServers": {
"liara": {
"command": "npx",
"args": ["-y", "liara-mcp"],
"env": {
"LIARA_API_TOKEN": "your_api_token_here"
}
}
}
}Alternative Configuration (For nvm/fnm users):
If you're using nvm or fnm to manage Node.js versions, use this configuration instead to avoid PATH issues:
{
"mcpServers": {
"liara": {
"command": "/bin/zsh",
"args": [
"-c",
"source ~/.nvm/nvm.sh && npx -y liara-mcp"
],
"env": {
"LIARA_API_TOKEN": "your_api_token_here"
}
}
}
}For bash users, replace /bin/zsh with /bin/bash and ~/.nvm/nvm.sh with your nvm init script path.
For fnm users:
{
"mcpServers": {
"liara": {
"command": "/bin/zsh",
"args": [
"-c",
"eval \"$(fnm env --use-on-cd --shell zsh)\" && npx -y liara-mcp"
],
"env": {
"LIARA_API_TOKEN": "your_api_token_here"
}
}
}
}Why Use the Alternative Configuration?
Many IDE and editor applications (like Claude Desktop, Cursor, Windsurf, etc.) start MCP servers in a restricted environment without your shell's PATH configuration. This causes the error:
Error: failed to create mcp stdio client: exec: "npx": executable file not found in $PATHThe problem: When you use nvm/fnm, Node.js and npx are installed in version-specific directories that are added to PATH by your shell initialization scripts (~/.zshrc, ~/.bashrc, etc.). However, MCP clients don't load these files, so they can't find npx.
The solution: Using a shell wrapper (/bin/zsh -c or /bin/bash -c) explicitly sources the nvm/fnm initialization script before running npx. This ensures the Node.js environment is properly configured.
When to use each:
- Basic config: If you installed Node.js via system package manager (
brew,apt, etc.) or official installer - Alternative config: If you use nvm, nodenv, fnm, or similar version managers
Troubleshooting: PATH Issues (nvm/nodenv users)
If you see spawn npx ENOENT error, run the setup wizard:
npx liara-mcp-setupThis will generate the correct configuration with absolute paths for your system.
Available Tools
App Management
liara_list_apps- List all appsliara_get_app- Get app detailsliara_create_app- Create a new appliara_delete_app- Delete an appliara_start_app- Start an appliara_stop_app- Stop an appliara_restart_app- Restart an appliara_resize_app- Change app plan
Environment Variables
liara_set_env_vars- Set environment variables (single or multiple)liara_get_env_vars- Get all environment variablesliara_delete_env_vars- Delete environment variables (single or multiple)
Deployment
liara_upload_source- Upload source code for deploymentliara_deploy_release- Deploy a releaseliara_list_releases- List all releasesliara_get_release- Get release detailsliara_rollback_release- Rollback to a previous releaseliara_list_sources- List uploaded sourcesliara_delete_source- Delete an uploaded source
Database Management
liara_list_databases- List all databasesliara_get_database- Get database detailsliara_create_database- Create a new databaseliara_delete_database- Delete a databaseliara_start_database- Start a databaseliara_stop_database- Stop a databaseliara_restart_database- Restart a databaseliara_get_database_connection- Get database connection info (host, port, credentials). Tries multiple API endpoints to retrieve complete connection info including passwords. Returns warnings if password is not available.liara_reset_database_password- Reset or update database password. If newPassword is not provided, generates a new random password.liara_update_database- Update database settings (plan/resize or version)liara_create_backup- Create a database backupliara_list_backups- List database backupsliara_get_backup_download_url- Get backup download URLliara_restore_backup- Restore database from backupliara_delete_backup- Delete a database backup
Object Storage
liara_list_buckets- List all bucketsliara_get_bucket- Get bucket detailsliara_create_bucket- Create a new bucketliara_delete_bucket- Delete a bucketliara_get_bucket_credentials- Get S3 credentials for a bucketliara_list_objects- List objects in a bucketliara_upload_object- Upload an object to a bucketliara_get_object_download_url- Get download URL for an objectliara_delete_object- Delete an object from a bucket
App Settings
liara_set_zero_downtime- Enable/disable zero-downtime deploymentliara_set_default_subdomain- Enable/disable default subdomainliara_set_fixed_ip- Enable/disable static IPliara_set_read_only- Enable/disable read-only mode
Disk Management
liara_list_disks- List disks for an appliara_get_disk- Get disk detailsliara_create_disk- Create a new diskliara_delete_disk- Delete a diskliara_resize_disk- Resize a diskliara_create_ftp_access- Create FTP access for a diskliara_list_ftp_accesses- List FTP accesses for a diskliara_delete_ftp_access- Delete FTP access
DNS Management
liara_list_zones- List all DNS zonesliara_get_zone- Get zone detailsliara_create_zone- Create a DNS zoneliara_delete_zone- Delete a DNS zoneliara_list_dns_records- List DNS recordsliara_create_dns_record- Create a DNS recordliara_get_dns_record- Get DNS record detailsliara_update_dns_record- Update a DNS recordliara_delete_dns_record- Delete a DNS record
Domain Management
liara_list_domains- List all domainsliara_get_domain- Get domain detailsliara_add_domain- Add a domain to an appliara_remove_domain- Remove a domain from an app
Mail Server
liara_list_mail_servers- List all mail serversliara_get_mail_server- Get mail server detailsliara_create_mail_server- Create a mail serverliara_delete_mail_server- Delete a mail serverliara_start_mail_server- Start a mail serverliara_stop_mail_server- Stop a mail serverliara_restart_mail_server- Restart a mail serverliara_send_email- Send an email
Virtual Machines (IaaS)
liara_list_vms- List all VMsliara_get_vm- Get VM detailsliara_create_vm- Create a new VMliara_start_vm- Start a VMliara_stop_vm- Stop a VMliara_restart_vm- Restart a VMliara_delete_vm- Delete a VMliara_resize_vm- Resize a VMliara_create_snapshot- Create a VM snapshotliara_list_snapshots- List VM snapshotsliara_restore_snapshot- Restore VM from snapshotliara_delete_snapshot- Delete a VM snapshotliara_attach_network- Attach network to VMliara_detach_network- Detach network from VM
Network Management
liara_list_networks- List all networksliara_get_network- Get network detailsliara_create_network- Create a networkliara_delete_network- Delete a network
Observability
liara_get_metrics- Get app metricsliara_get_logs- Get app logs
Plans
liara_list_plans- List available plansliara_get_plan- Get plan details
User
liara_get_user- Get user information
Examples
Example Conversations
Create and deploy an app:
User: Create a Node.js app called "my-api" with the basic plan
Assistant: [Uses liara_create_app tool]
User: Set the NODE_ENV to production for my-api
Assistant: [Uses liara_set_env_var tool]
User: Start the app
Assistant: [Uses liara_start_app tool]Create a database:
User: Create a PostgreSQL database called "my-db" with the starter plan
Assistant: [Uses liara_create_database tool]
User: Create a backup of my-db
Assistant: [Uses liara_create_backup tool]Get database credentials:
User: Get connection info for my-db
Assistant: [Uses liara_get_database_connection tool]
Returns: host, port, username, password, connection string
Includes warnings if password is not available from API
User: Reset the password for my-db
Assistant: [Uses liara_reset_database_password tool]
Generates new password and returns it in the responseManage storage:
User: Create a bucket called "my-files"
Assistant: [Uses liara_create_bucket tool]
User: Get the S3 credentials for my-files
Assistant: [Uses liara_get_bucket_credentials tool]Development
# Watch mode for development
npm run dev
# Type checking
npm run type-check
# Build
npm run build
# Clean build artifacts
npm run cleanProject Structure
liara-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── api/
│ │ ├── client.ts # Liara API client
│ │ └── types.ts # TypeScript types
│ ├── services/
│ │ ├── apps.ts # App management
│ │ ├── databases.ts # Database management
│ │ ├── storage.ts # Object storage
│ │ ├── deployment.ts # Deployment operations
│ │ ├── environment.ts # Environment variables
│ │ └── plans.ts # Plan information
│ └── utils/
│ └── errors.ts # Error handling & validation
├── package.json
├── tsconfig.json
└── README.mdError Handling
The server provides user-friendly error messages for common scenarios:
- Invalid API token
- Missing required parameters
- Resource not found
- API rate limiting
- Network connectivity issues
Requirements
- Node.js >= 18.0.0
- Valid Liara API token
License
MIT
API Coverage
This MCP server implements comprehensive coverage of the Liara API, including:
Implemented Services (15 modules, 100 tools)
- Apps - Full lifecycle management (create, deploy, start, stop, restart, resize)
- Databases - Complete database management with backup/restore (8 database types)
- Deployment - Source upload, release management, rollback
- Environment Variables - Set, get, delete environment variables
- Object Storage - S3-compatible bucket and object management
- Disks - Disk management with FTP access
- DNS - Complete DNS zone and record management
- Domains - Domain management and verification
- Mail Servers - Mail server management and email sending
- Virtual Machines (IaaS) - VM lifecycle, snapshots, network attachment
- Networks - Network management for VMs
- Observability - Metrics and logs retrieval
- Plans - Resource plan information
- Settings - App configuration (zero-downtime, subdomain, IP, read-only)
- User - User account information
API Documentation Reference
This implementation is based on the Liara OpenAPI specification and covers:
- All major platform services (PaaS, DBaaS, IaaS, Object Storage, DNS, Mail)
- CI/CD capabilities through deployment tools
- Complete resource lifecycle management
- Error handling aligned with Liara API responses
Resources
Disclaimer
This is an unofficial MCP server implementation for Liara. It is:
- Not affiliated with, endorsed by, or supported by Liara
- Maintained by the community
- Provided as-is without warranty
For official Liara support, please contact Liara Support.
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests on GitHub.
Support
For issues related to:
- This MCP server: Open an issue on GitHub
- Liara platform: Contact Liara Support
- MCP protocol: See MCP Documentation
