selectel-mcp

selectel-mcp

An MCP server that gives an AI agent controlled access to a Selectel cloud account: OpenStack cloud servers, S3 object storage, and account billing.

Category
Visit Server

README

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.

What it can do

Area Tools
Deploy (one-shot) deploy_docker_app, destroy_app
Compute (OpenStack) list_servers, get_server, list_flavors, list_images, create_server, server_action, delete_server
Keypairs list_keypairs, import_keypair, delete_keypair
Security groups list_security_groups, create_security_group, add_security_group_rule, delete_security_group
Network list_networks, list_subnets, list_floating_ips, create_floating_ip, attach_floating_ip, release_floating_ip
Volumes list_volumes, create_volume, attach_volume, delete_volume
Object storage (S3) list_buckets, list_objects, create_bucket, upload_object, download_object, delete_object
Billing get_balance, get_balance_prediction
Account list_projects

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.

How auth maps to Selectel

Layer Endpoint Credential
OpenStack (servers/networks/volumes) cloud.api.selcloud.ru/identity/v3 IAM service user (username + password + account id) → Keystone token
Balance / billing api.selectel.ru account IAM token, or a static token (X-Token) for detailed reports
Projects api.selectel.ru/vpc/resell/v2 same as above
S3 object storage s3.<pool>.storage.selcloud.ru S3 access key issued to the service user

Setup

  1. 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).
  2. Issue an S3 key to that service user (Service users → Access → S3 keys) if you want object-storage access.
  3. (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 credentials

Fill .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=              # optional

Run / connect to Claude Code

# from this directory
claude mcp add selectel -- /absolute/path/to/.venv/bin/python -m selectel_mcp

Or run it directly over stdio:

.venv/bin/python -m selectel_mcp

For 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).

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.
  • .env holds 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 reviewable planapply. This MCP server is best for queries and quick actions.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured