cloudpanel
README.md
# cloudpanel
Azure subscriptions, resource groups and resources as MCP tools,
talking to the Azure Resource Manager REST API. cloudpanel is a
clean-room rebuild of the core surface of the Azure MCP server,
under a new name: fresh code, no copied branding. The original
azure-mcp carries hundreds of service-specific commands; this
rebuild covers the generic ARM surface only.
## Tools (core subset, 10)
`list_subscriptions`, `get_subscription`, `list_resource_groups`,
`get_resource_group`, `create_resource_group`,
`delete_resource_group`, `list_resources`, `get_resource`,
`list_virtual_machines`, `list_locations`.
Not in this subset: every service-specific command family (storage,
Cosmos DB, Key Vault, AKS, SQL, Monitor and the rest), deployments
and template operations, and role assignments.
## Setup
Provide any valid Azure AD bearer token with access to the target
subscriptions:
```bash
export AZURE_ACCESS_TOKEN=eyJ...
```
Optionally override the ARM base with `AZURE_ARM_BASE_URL`
(default `https://management.azure.com`). Every request carries
`api-version=2021-04-01` unless a tool's endpoint family pins its
own. Without the token, every tool call fails with an error naming
`AZURE_ACCESS_TOKEN`. Unlike the original, there is no Azure CLI or
hosted login flow: this is a plain token REST client.
## CLI
```bash
npx @reneturcios/cloudpanel list_subscriptions '{}'
npx @reneturcios/cloudpanel list_resource_groups '{"subscription_id":"..."}'
npx @reneturcios/cloudpanel mcp # stdio MCP server
```
Each tool name is a subcommand taking one JSON object argument.
## MCP client config
```json
{
"mcpServers": {
"cloudpanel": {
"command": "npx",
"args": ["-y", "@reneturcios/cloudpanel", "mcp"],
"env": { "AZURE_ACCESS_TOKEN": "eyJ..." }
}
}
}
```
## Docker
```bash
docker run -i -e AZURE_ACCESS_TOKEN ghcr.io/cloudcorprecords/cloudpanel
```
## Development
```bash
npm install
npm run build
npm test
```
## License
MIT
This server cannot be deployed
Maintenance
ActivityNo data
ResponsivenessSyncing