selectel-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@selectel-mcplist my servers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
selectel-mcp
An MCP server that gives an AI agent (Claude Code, Claude Desktop, etc.) controlled access to a Selectel cloud account: OpenStack cloud servers, S3 object storage, and account billing.
Unofficial. Community project — not affiliated with, endorsed by, or supported by Selectel. It talks to the public Selectel/OpenStack APIs with credentials you provide. Use at your own risk; you are responsible for any resources it creates and any charges they incur.
What it can do
Area | Tools |
Deploy (one-shot) |
|
Compute (OpenStack) |
|
Keypairs |
|
Security groups |
|
Network |
|
Volumes |
|
Object storage (S3) |
|
Billing |
|
Account |
|
Paid tools (create_server, deploy_docker_app, create_floating_ip) and destructive
tools (delete_*, destroy_app, release_floating_ip) are gated: the destructive ones
require confirm=True and otherwise return a dry-run preview, so the agent can show you
what would happen first.
Deploy an app in one call
deploy_docker_app(
name="myapp",
image="Ubuntu 22.04",
flavor="SL1.1-1024",
git_repo="https://github.com/you/myapp", # cloned to /opt/app, `docker compose up -d`
ports=[22, 80, 443],
confirm=True, # paid: provisions a server + public IP
)
# → creates a security group, a cloud-init server that installs Docker and runs your
# repo, and a floating IP. destroy_app("myapp") removes it all later.Related MCP server: defined-mcp
How auth maps to Selectel
Layer | Endpoint | Credential |
OpenStack (servers/networks/volumes) |
| IAM service user (username + password + account id) → Keystone token |
Balance / billing |
| account IAM token, or a static token ( |
Projects |
| same as above |
S3 object storage |
| S3 access key issued to the service user |
Setup
Create a service user in the control panel: Account → Users → Service users. Give it the roles you want the agent to have (start with read-only roles, or scope it to a single project).
Issue an S3 key to that service user (Service users → Access → S3 keys) if you want object-storage access.
(Optional) Create a static token (Profile → Access → API keys) for billing reports/transactions.
python3 -m venv .venv
.venv/bin/python -m pip install -e .
cp .env.example .env # then fill in credentialsFill .env:
SEL_ACCOUNT_ID=123456 # domain name, top-right in the control panel
SEL_USERNAME=mcp-agent # service user
SEL_PASSWORD=...
SEL_PROJECT_ID=<project uuid> # default project (or discover via list_projects)
SEL_REGION=ru-2
SEL_S3_ACCESS_KEY=...
SEL_S3_SECRET_KEY=...
SEL_STATIC_TOKEN= # optionalRun / connect to Claude Code
# from this directory
claude mcp add selectel -- /absolute/path/to/.venv/bin/python -m selectel_mcpOr run it directly over stdio:
.venv/bin/python -m selectel_mcpFor Claude Desktop, add to claude_desktop_config.json:
{
"mcpServers": {
"selectel": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["-m", "selectel_mcp"]
}
}
}The server reads credentials from .env in its working directory (or from real
environment variables).
Development
pip install -e ".[dev]" # installs ruff + pytest
ruff check .
pytestThe pure helpers (cloud-init rendering, server summarization, public-IP picking) are unit-tested without touching the network. CI runs lint + tests on every push.
Safety notes
The service user is the blast radius — scope its IAM roles to exactly what you want the agent to touch. Read-only roles make the whole server read-only.
deploy_docker_appopens the requested ports to0.0.0.0/0— the whole internet — including SSH (22) by default. Pass a narrowerportslist, or tighten the security group afterward, for anything beyond a quick throwaway test..envholds secrets and is git-ignored. Don't commit it.For infrastructure changes, consider managing them with Terraform (provider
selectel/selectel) so every change goes through a reviewableplan→apply. This MCP server is best for queries and quick actions.
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP server for AI.TV creators — delegate account operations to your AI agent over MCP.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Cloud-hosted MCP server for durable AI memory
MCP server for Hostkey .com (InvAPI): servers, power, order, DNS, S3, billing
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables remote SSH command execution and bidirectional file transfers through a standardized interface. It allows AI assistants to securely manage remote servers while keeping credentials isolated and applying command-level security controls.ISC
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to manage Defined Networking / Managed Nebula infrastructure, supporting tasks like network topology design, host provisioning, and security auditing through natural language.4MIT
- AlicenseBqualityAmaintenanceMCP server for managing Yandex Cloud infrastructure including Compute VMs, Object Storage, Serverless Functions, and Operations.87 npm1MIT
- AlicenseAqualityDmaintenanceAn MCP server that gives AI agents on-demand access to proxies from the world's leading and Russian/CIS proxy providers — through a single, unified interface.11MIT