- CloudStack MCP
CloudStack MCP
CloudStack MCP
A Model Context Protocol (MCP) server for Apache CloudStack, allowing AI agents to interact with CloudStack infrastructure.
IMPORTANT
This project is still under development and not all features are available. Treat it as a proof of concept.
Running the server (macOS)
# Install the dependencies
brew install go-task go docker
# Install the CLI
git clone https://github.com/walteh/cloudstack-mcp.git
cd cloudstack-mcp
# Start the environment (will take a while)
task docker:start
Generic MCP Usage
for sse servers (recommended, if possible)
- works with
Cursor
{
"mcpServers": {
"cloudstack": {
"url": "http://localhost:8250/sse"
}
}
}
for stdio servers
- works with
Cursor, andClaude Desktop
{
"mcpServers": {
"cloudstack": {
"command": "docker",
"args": ["compose", "-f", "<<LOCAL_PATH_TO_THIS_REPO>>/docker-compose.yaml", "run", "mcp-stdio-server"]
}
}
}
Usage with Cursor (macOS)
-
make sure server is running and you are in the root of the project (see above)
-
set up dependencies
brew install --cask cursor
- open the project in Cursor
cursor cloudstack-mcp.code-workspace
-
open cursor settings from the menu bar
Cursor -> Settings... -> Cursor Settings(or pressShift-Cmd-J) -
go to the
MCPtab, you should see thecloudstackserver already added (because of./.cursor/mcp.json) -
click on the buttons to refresh and enable the
cloudstackserver - you should see a green dot and a list oflistcloudstack api commands -
open a new composer by making sure the composer pane is open (toggle with
Cmd-Option-B) and start a new conversation (pressCmd-N) -
make sure the composer is set to
Agent -
type
can you list my @cloudstack vpcs? -
press
Enterand watch the magic happen!
# list zones
list zones
Usage with Claude Desktop (macOS)
CAUTION
There is a 99% chance this will not work, but you can use it as a starting point to get the MCP working with Claude Desktop if you like.
-
make sure server is running and you are in the root of the project (see above)
-
set up dependencies
brew install --cask claude-desktop
- run this to setup the server in Claude Desktop
# injects the server into claudes config, doesn't overwrite anything (unless you have another mcp called 'cloudstack')
task mcp:setup:claude-desktop
- restart claude desktop
How It Works
This MCP implementation allows AI assistants to manage CloudStack resources by:
- Translating MCP protocol requests into CloudStack API calls
- Providing common operations like VM deployment and management
- Handling authentication and API interaction automatically
CloudMonkey Usage
CloudMonkey (the CloudStack CLI) is containerized in this setup:
# Basic commands
task cmk -- list zones
task cmk -- list serviceofferings
# Fix API cache issues if they occur
task cmk -- sync
# Get API credentials
task cloudstack:get-credentials
License
Apache License 2.0