Morpheus MCP Server
An MCP (Model Context Protocol) server that connects Claude, Ollama, or any AI assistant to a live HPE Morpheus appliance. Speak in plain English — the AI translates your intent into Morpheus API calls and reports back what was done.
What it does
Covers the full Morpheus management lifecycle through natural language:
- Clouds — add, list, sync, and remove cloud integrations (VMware, Proxmox via plugin, AWS, KVM, OpenStack, etc.)
- Groups — create and list Morpheus groups/sites
- Virtual Images — register images from URLs, check status, delete
- Instances — provision, start, stop, restart, delete, and inspect instances
- Instance Discovery — list instance types, layouts, service plans, networks, datastores, resource pools
- Catalog — create and manage catalog item types and blueprints
- Tenants — create, inspect, and delete tenants (sub-accounts)
- Roles — create and manage RBAC roles
- Users — create users under the master tenant or a specific sub-tenant, assign roles
- Workflows and Tasks — list, inspect, and execute workflows on instances
- Process History — view execution history for instances or the appliance
- Release Validation — paste release notes and get an automated API pass/fail test report
Requirements
- Docker and Docker Compose (or Python 3.10+)
- A running HPE Morpheus appliance (version 7.x or 8.x)
- A Morpheus API token with admin or appropriate permissions
- Claude Desktop, Open WebUI (Ollama), or any MCP-compatible client
Setup
Step 1 — Create your config file
cp .env.example .env
Open .env and fill in three values:
MORPHEUS_URL=https://your-morpheus-instance.com
MORPHEUS_API_TOKEN=your-token-here
MORPHEUS_VERSION=8.1.0
How to get your API token:Morpheus UI → top-right user icon → API Access → Generate Token
Step 2 — Start the server
docker compose up --build -d
The server starts on port 8000 (change MCP_PORT in .env if needed).
Check it started correctly:
docker compose logs -f
You should see:
Connected to Morpheus 8.1.0 at https://... | user=admin role=System Admin
Morpheus MCP Server starting on port 8000
SSE endpoint: http://0.0.0.0:8000/sse
Step 3 — Connect your AI client
Claude Desktop
Open the Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add:
{
"mcpServers": {
"morpheus": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:8000/sse"
]
}
},
"preferences": {
"coworkScheduledTasksEnabled": true,
"ccdScheduledTasksEnabled": true,
"coworkWebSearchEnabled": true,
"sidebarMode": "chat"
}
}
Restart Claude Desktop. The morpheus tools appear automatically.
Open WebUI (Ollama)
Settings → Tools → Add Tool Server → URL: http://localhost:8000/sse
Use a model that supports tool calling: llama3.1, qwen2.5, mistral-nemo, or similar.
Example commands
Once connected, talk to the AI naturally:
"Check the Morpheus connection"
"List all configured clouds"
"What cloud types are available on this appliance?"
"Add a VMware cloud using vCenter at https://vcenter.lab/sdk"
"List all instance types"
"What service plans are available for VMware?"
"Provision a test VM called demo-01 on the VMware cloud"
"Show me all running instances"
"Stop instance 42"
"Create a tenant called Acme Corp"
"Add a read-only role and create a user under Acme Corp"
"List all workflows"
"Run workflow 5 on instance 12"
"Validate this release: [paste Morpheus release notes here]"
Switching Morpheus instances
Update .env with the new URL and token, then restart:
docker compose down
# edit .env
docker compose up -d
Running without Docker
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # fill in your values
python server.py
Proxmox note
Proxmox is not a built-in Morpheus cloud type. It requires the community plugin to be installed first:
- Download the plugin JAR from the HPE Morpheus Proxmox VE Plugin repository
- Install it in Morpheus: Administration → Integrations → Plugins → Upload File
- Once installed, run
list_zone_types— the Proxmox code will appear - Use that code with
add_cloudto register your Proxmox host
SSL certificates
Self-signed certificates are handled by default (MORPHEUS_VERIFY_SSL=false in .env). For production appliances with valid certificates, set MORPHEUS_VERIFY_SSL=true.
Moving to Proxmox or another host
Copy the project folder to the target machine, install Docker, and run the same docker compose up command. The .env file is the only thing that needs to change per environment.
Available Tools Reference
| Tool | Description |
|---|---|
check_connection |
Verify connectivity and display current user |
list_zone_types |
List all available cloud type codes |
list_clouds |
List all configured clouds |
get_cloud |
Get cloud details by ID |
add_vmware_cloud |
Add a VMware vCenter cloud |
add_cloud |
Add any cloud by zone type code |
sync_cloud |
Trigger manual cloud sync |
delete_cloud |
Remove a cloud integration |
list_groups |
List groups/sites |
create_group |
Create a new group |
list_virtual_images |
List registered virtual images |
get_virtual_image |
Get image details and status |
register_image_from_url |
Register an image from a URL |
delete_virtual_image |
Remove a virtual image |
list_instance_types |
List available instance types |
get_instance_type_layouts |
List layouts for an instance type |
list_service_plans |
List CPU/RAM/disk plans |
list_networks |
List available networks |
list_datastores |
List datastores for a cloud |
list_resource_pools |
List resource pools for a cloud |
list_instances |
List instances with optional filters |
get_instance |
Get instance details and IP |
provision_instance |
Provision a new instance |
stop_instance |
Stop a running instance |
start_instance |
Start a stopped instance |
restart_instance |
Restart an instance |
delete_instance |
Deprovision an instance |
list_catalog_items |
List catalog item types |
get_catalog_item |
Get catalog item details |
create_catalog_item |
Create a catalog item |
delete_catalog_item |
Delete a catalog item |
list_blueprints |
List blueprints |
get_blueprint |
Get blueprint details |
create_blueprint |
Create a new blueprint |
delete_blueprint |
Delete a blueprint |
list_tenants |
List all tenants |
get_tenant |
Get tenant details |
create_tenant |
Create a sub-tenant |
delete_tenant |
Delete a tenant |
list_roles |
List all roles |
get_role |
Get role details |
create_role |
Create a new role |
delete_role |
Delete a role |
list_users |
List users (global or per-tenant) |
get_user |
Get user details |
create_user |
Create a user with role assignment |
delete_user |
Delete a user |
list_workflows |
List workflows/task sets |
get_workflow |
Get workflow details and tasks |
run_workflow_on_instance |
Execute a workflow on an instance |
list_tasks |
List tasks |
list_processes |
View execution history |
validate_release |
Parse release notes and run API tests |