MCP server for operating Mendix Public Cloud apps
Mendix Public Cloud MCP Server
A comprehensive Model Context Protocol (MCP) server that provides tools for interacting with the Mendix Public Cloud APIs: Deploy API, Build API, and Backups API.
[!WARNING] The use of AI tools is non-deterministic — outputs may vary between runs. AI Assistants/Agents will have permissions based on what the API Key and PAT (Personal Access Token) have access to. Via the Backups API and Logs it may have access to Production environments and PII data of your environments. Review and scope credentials carefully before use.
Features
This MCP server provides 24 tools covering:
Deploy API (v1, v2 & v4)
- Apps Management: List apps, get app details
- Environments: List/get environments, start/stop operations, get settings
- Package Transport: Deploy packages to environments
- Job Tracking: Monitor asynchronous operations
- Logs: Download application logs
Build API (v1)
- Package Management: List, get, build, and delete deployment packages
- Build Operations: Trigger builds from Git/SVN, track build status
Backups API (v2)
- Snapshots: Create, list, get, and delete environment backups
- Archives: Generate downloadable backup archives (database-only or full)
- Restores: Restore environments from snapshots with status tracking
Prerequisites
- Node.js 18 or higher
- Mendix account with API access
- Mendix Username and API Key
Installation
- Install dependencies:
npm install
- Build the project:
npm run build
Configuration
Getting Mendix API Credentials
- Log in to your Mendix account
- Go to your user profile settings
- Generate or retrieve your API key
- Note your Mendix username (email address)
Setting up the MCP Server
Authentication Configuration
Option 1: API Key (Works with all APIs)
Set these environment variables:
MENDIX_USERNAME: Your Mendix account username/emailMENDIX_API_KEY: Your Mendix API key
Option 2: Personal Access Token (Deploy API v4 only)
Set this environment variable:
MENDIX_MX_TOKEN: Your Personal Access Token
Note: You can use both authentication methods simultaneously. The server will use PAT for Deploy API v4 calls when MENDIX_MX_TOKEN is set, and API Key for all other APIs.
For Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mendix-public-cloud": {
"command": "node",
"args": ["/absolute/path/to/mendix-public-cloud-mcp/dist/index.js"],
"env": {
"MENDIX_USERNAME": "your-email@example.com",
"MENDIX_API_KEY": "your-api-key-here"
}
}
}
}
Using Personal Access Token (PAT) for Deploy API v4:
{
"mcpServers": {
"mendix-public-cloud": {
"command": "node",
"args": ["/absolute/path/to/mendix-public-cloud-mcp/dist/index.js"],
"env": {
"MENDIX_USERNAME": "your-email@example.com",
"MENDIX_API_KEY": "your-api-key-here",
"MENDIX_MX_TOKEN": "your-personal-access-token-here"
}
}
}
}
For Other MCP Clients (stdio)
Export the environment variables:
Using API Key:
export MENDIX_USERNAME="your-email@example.com"
export MENDIX_API_KEY="your-api-key-here"
node dist/index.js
Using Personal Access Token for Deploy API v4:
export MENDIX_USERNAME="your-email@example.com"
export MENDIX_API_KEY="your-api-key-here"
export MENDIX_MX_TOKEN="your-personal-access-token-here"
node dist/index.js
Available Tools
Deploy API Tools
Apps Management
mendix_list_apps- List all accessible applicationsmendix_get_app- Get detailed app information
Environments
mendix_list_environments- List app environmentsmendix_get_environment- Get environment detailsmendix_start_environment- Start a stopped environmentmendix_stop_environment- Stop a running environmentmendix_get_environment_status- Get current environment statusmendix_get_environment_settings- Get environment configuration
Package Transport
mendix_transport_package- Deploy a package to an environment
Job Tracking
mendix_get_job_status- Get status of asynchronous jobs (Deploy API v2)
Logs
mendix_get_app_logs- Get download URL for application logs
Build API Tools
mendix_list_packages- List all deployment packagesmendix_get_package- Get package details (optionally with download URL)mendix_start_build- Trigger new build from source controlmendix_delete_package- Delete a deployment package
Backups API Tools
Snapshots
mendix_list_snapshots- List all snapshots for an environmentmendix_create_snapshot- Create a new backup snapshotmendix_get_snapshot- Get snapshot statusmendix_delete_snapshot- Delete a snapshot
Archives
mendix_create_archive- Generate downloadable backup archivemendix_get_archive- Get archive status and download URL
Restores
mendix_restore_snapshot- Restore environment from snapshotmendix_get_restore_status- Get restore operation status
Usage Examples
List all your apps
Can you list all my Mendix applications?
Start an environment
Start the Test environment for app 'myapp'
Create a build
Build version 2.3.5 from the main branch for app 'myapp'
Create a backup
Create a snapshot of the Production environment with comment "Pre-deployment backup"
Restore from backup
Restore the Acceptance environment from snapshot abc-123 (make sure environment is stopped first)
Get application logs
Get the application logs for Production environment on 2024-01-15
API Versions Used
- Deploy API v4: Modern API for apps and environments (https://cloud.home.mendix.com/api/v4)
- Deploy API v2: Job status tracking (https://deploy.mendix.com/api/v2)
- Deploy API v1: Legacy API for environment operations (https://deploy.mendix.com/api/1)
- Build API v1: Package management (https://deploy.mendix.com/api/1)
- Backups API v2: Snapshot and restore operations (https://deploy.mendix.com/api/v2)
Development
Watch mode
npm run watch
Running locally
npm run dev
Important Notes
Permissions
- All tools require API Rights enabled in your app's Permissions tab
- Backup tools additionally require Access to Backups permission
- Some operations require Transport Rights
Async Operations
- Build operations, snapshot creation, archive generation, and restores are asynchronous
- Use the
get_*_statustools to monitor progress - States:
queued→running→completedorfailed
Environment Operations
- Environments must be stopped before restore operations
- Starting environments returns a JobId to track progress
- Use appropriate environment modes: Test, Acceptance, Production
Archive Downloads
- Archive download URLs expire after 8 hours
- Archives can be database-only or include files
- Archives are zip files containing backup data
Build Operations
- Supports both Git and SVN version control
- Git: Use full commit hashes for large repositories
- SVN: Use integer revision numbers
- Version must follow semantic versioning (e.g., "2.3.5")
Troubleshooting
"MENDIX_USERNAME and MENDIX_API_KEY environment variables are required"
Make sure both environment variables are set with valid credentials.
"403 Forbidden" errors
- Verify your API key is valid and not expired
- Check that API Rights are enabled for your user in the app's Permissions tab
- Ensure you have the necessary permissions for the operation
"404 Not Found" errors
- Verify the app ID, environment ID, or other identifiers are correct
- UUIDs are used for v4 APIs, subdomain names for v1/v2 APIs
- Ensure you have access to the specified resource
Environment is busy
Wait for any ongoing operations to complete before starting new ones.
API Documentation
For detailed API documentation, see:
- Deploy API v1: https://docs.mendix.com/apidocs-mxsdk/apidocs/deploy-api/
- Deploy API v2: https://docs.mendix.com/apidocs-mxsdk/apidocs/deploy-api-2/
- Deploy API v4: https://docs.mendix.com/apidocs-mxsdk/apidocs/deploy-api-4/
- Build API: https://docs.mendix.com/apidocs-mxsdk/apidocs/build-api/
- Backups API: https://docs.mendix.com/apidocs-mxsdk/apidocs/backups-api/
License
MIT