Virtualization, Servers and Storage : ITS Private Cloud Model Context Protocol (MCP) Server

A Model Context Protocol server for seamless AI integration with University of Toronto's ITS Private Cloud Virtual Server Service

What is Model Context Protocol?

The Model Context Protocol (MCP) is an open standard that enables AI assistants to securely connect to external data sources and tools. Think of it as a universal translator that allows AI models to:

  • Access Real-time Data: Connect to live systems and databases

  • Execute Actions: Perform operations like creating snapshots or managing VMs

  • Maintain Context: Keep track of resources and relationships across conversations

  • Ensure Security: Authenticate and authorize access to sensitive systems

With MCP, your AI assistant becomes a powerful interface to your cloud infrastructure, capable of understanding complex queries like "Show me the most expensive VMs this month and suggest cost optimizations" or "Create a snapshot of vm-server before the maintenance window."

See it in action

its-pcloud-mcp.mp4its-pcloud-mcp-billing.mp4

Getting Started

📋Prerequisites

  • Python 3.10 or higher

  • ITS Private Cloud VSS API access token

  • MCP-compatible AI client (Claude Desktop, etc.)

⚡Installation

(blue star) Using vss-cli

  1. Upgrade to version 2025.6.0

    1. brew update && brew upgrade vss-cli

  2. Configure the vss-cli with: vss-cli configure mk

  3. Run vss-cli mcp install

Using uvx

  1. Install uv from Astral or the GitHub README

  2. Install Python using uv python install 3.10

  3. Run with uvx mcp-vss

Using pip

  1. Install python 3.13 with brew or any other method:

    brew install python@3.13
  2. Create a venv with

    python3 -m venv .venv && source .venv/bin/activate && python3 -m pip install --upgrade pip
  3. Install with pip install mcp-vss

⚙️Configuration

Add the server to your MCP client configuration:

{ 
 "mcpServers": { 
   "its-private-cloud": { 
     "command": "/full/path/to/python", 
     "args": ["-m", "mcp_server_vss"], 
     "env": { 
       "MCP_VSS_API_TOKEN": "your-api-token-here" 
     } 
   } 
 } 
}

Workflows

🖥️Virtual Machine Management

  • VM Discovery: Find VMs by name, ID, or properties

  • Health Monitoring: Check VM status, performance, and resource utilization

  • Snapshot Management: Create point-in-time backups before changes

  • Power Control: Start, stop, restart, or suspend virtual machines

  • Console Access: Get emergency console links for troubleshooting

💰Cost Analysis & Optimization

  • Billing Analysis: Review invoices and identify cost drivers

  • Resource Rightsizing: Find overprovisioned or idle resources

  • Trend Analysis: Track spending patterns over time

  • Optimization Reports: Get actionable recommendations to reduce costs

🔍Performance Monitoring

  • Real-time Metrics: Monitor CPU, memory, disk, and network usage

  • Trend Analysis: Identify performance patterns and bottlenecks

  • Capacity Planning: Forecast resource needs based on historical data

  • Alerting: Get notifications about performance issues

🛠️Infrastructure Operations

  • Backup Analysis: Monitor UTORrecover backup sessions and data usage

  • Network Management: View available networks and configurations

  • OS Catalog: Browse supported operating systems for deployments

  • Domain Management: Monitor compute clusters and resource allocation

🎯Troubleshooting & Support

  • Diagnostic Workflows: Automated troubleshooting guides

  • Issue Resolution: Step-by-step problem-solving assistance

  • Performance Tuning: Optimization recommendations based on metrics

  • Change Management: Safe deployment practices with snapshot integration

Available Tools

🖥️Virtual Machine Tools

Tool

Description

get_vm_info

Retrieve detailed VM information by ID, name, or UUID

get_vm_snapshots

List all snapshots for a virtual machine

get_vm_performance_metrics

Get CPU, memory, disk, and network metrics

get_vm_console_access

Generate console access URLs for emergency access

create_vm_snapshot

Create point-in-time VM snapshots with memory options

power_control_vm

Control VM power state (start, stop, restart, suspend)

resize_vm

Manage CPU and Memory.

get_vm_disks

Get VM disk layout and configuration

create_vm_disks

Create new virtual disks for VMs

resize_vm_disks

Expand virtual disk capacity (cannot shrink)

delete_vm_disks

Remove virtual disks from VMs (up to 10 at once)

update_vm_disk_scsi

Move disks between SCSI controllers (VM must be powered off)

💰Billing & Cost Management Tools

Tool

Description

get_billing_clients

List all billing accounts and clients

get_billing_details

Get detailed billing account information

get_billing_client_invoices

Retrieve invoice summaries for cost analysis

get_billing_client_invoice

Get detailed invoice breakdown and line items

get_billing_payment_details

View FIS payment information and cost centers

update_billing_payment_details

Update billing payment details and cost centers

🔒Backup & Data Management Tools

Tool

Description

get_client_backup_host_sessions

Analyze UTORrecover backup sessions and data usage

Available Prompts

📊Performance Analysis

Prompt

Description

analyze_vm_performance

Comprehensive performance analysis with optimization recommendations

troubleshoot_vm_issues

Generate diagnostic guides for specific VM problems

💸Cost & Financial Analysis

Prompt

Description

cost_optimization_report

Detailed cost analysis with ROI calculations and savings opportunities

backup_analysis_report

Backup strategy analysis and cost optimization for UTORrecover

Available Resources

🏗️Infrastructure Resources

Resource

Description

its://vms

Complete virtual machine inventory (up to 200 VMs)

its://vms/{vm_id}

Detailed information for specific virtual machines

its://vms/utorrecover

VMs protected by UTORrecover backup service

its://domains

Compute domains and cluster information

its://networks

Available network configurations and VLANs

its://os

Supported operating system catalog

💼Billing Resources

Resource

Description

its://clients

Complete billing client directory with account details

This is a beta release. Features and APIs may change. Please test thoroughly.

Attachments: