Skip to main content

NordBastion MCP server

Provision KYC-free, crypto-paid Nordic VPS and dedicated servers from any AI agent — Claude, Cursor, Zed, Continue, or your own MCP client.

License: MIT Python 3.10+ MCP Ruff

nordbastion-mcp exposes the NordBastion API as Model Context Protocol tools, so an AI assistant can do the whole hosting workflow in natural language: compare VPS tiers, pick a Nordic region, top up with Monero or Bitcoin, and spin up an anonymous server — without you ever touching a dashboard.

NordBastion is a privacy-first hosting provider running four bastions in Stockholm, Helsinki, Oslo and Reykjavík. Accounts need only an email and a password — no name, phone number, or ID document, ever — and billing is crypto-native. The API was built for agents from day one (scoped API keys, OAuth 2.1 with Dynamic Client Registration, a public agent directory), which makes it a natural fit for MCP.


Why this exists

Agentic workflows increasingly need infrastructure on demand: a throwaway box to run a scraper, a WireGuard VPN, a Tor hidden service, or a self-hosted Lightning node. This server lets the agent do that end-to-end against a host that doesn't demand identity documents and accepts Monero and Bitcoin.

Install & run

The server speaks MCP over stdio, so any MCP client launches it as a subprocess. The simplest path uses uv (no manual virtualenv):

# Run straight from this repository
uvx --from git+https://github.com/CryptoServers/nordbastion-mcp nordbastion-mcp

Or install it into your environment with pip / pipx:

pip install git+https://github.com/CryptoServers/nordbastion-mcp
# then the console script is on your PATH:
nordbastion-mcp

Configuration

Variable Required Default Purpose
NORDBASTION_API_KEY for authenticated tools An nb_live_* API key (mint it in the panel or via create_api_key) or an nb_at_* OAuth token.
NORDBASTION_BASE_URL no https://nordbastion.com/v1 Override the API base URL (testing/self-host).

Public tools — list_vps, list_dedicated, list_bastions, list_os_images, list_coins, get_status, get_canary, get_peering — work with no key at all.

Claude Desktop

Add to claude_desktop_config.json (see examples/):

{
  "mcpServers": {
    "nordbastion": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/CryptoServers/nordbastion-mcp", "nordbastion-mcp"],
      "env": { "NORDBASTION_API_KEY": "nb_live_xxxxxxxxxxxxxxxx" }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "nordbastion": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/CryptoServers/nordbastion-mcp", "nordbastion-mcp"],
      "env": { "NORDBASTION_API_KEY": "nb_live_xxxxxxxxxxxxxxxx" }
    }
  }
}

Try it

Once connected, ask your assistant things like:

  • "List NordBastion's VPS tiers and tell me the cheapest one with 4 GB RAM."
  • "Top up my balance with $30 of Monero and wait for it to confirm."
  • "Provision an NB-V2 in Helsinki running Debian 13, hostname wg-gw, and show me the root password."
  • "What's the current status of the Reykjavík bastion?"

There's also a built-in onboard_to_nordbastion prompt that drives the full account → top-up → order flow.

Tools

34 tools, mapped 1:1 onto the REST API. Tools marked public need no API key.

Group Tools
Catalog (public) list_catalog, list_vps, list_dedicated, list_bastions, list_os_images
Transparency (public) get_status, get_canary, get_peering
Billing list_coins (public), list_bonus_tiers (public), create_topup, get_topup, list_topups, cancel_topup
Servers order_server, list_servers, get_server, cancel_server
Account get_account, get_balance, get_audit_log
SSH keys add_ssh_key, list_ssh_keys, remove_ssh_key
Auth register_account, login, login_totp, refresh_token, create_api_key, list_api_keys, revoke_api_key
Webhooks create_webhook, list_webhooks, delete_webhook

Resources

  • nordbastion://catalog — full catalog bundle (JSON)
  • nordbastion://coins — accepted cryptocurrencies (JSON)
  • nordbastion://canary — latest warrant canary excerpt (JSON)
  • nordbastion://doctrine — the operating principles (text)

How it works

AI agent ──MCP/stdio──▶ nordbastion-mcp ──HTTPS──▶ https://nordbastion.com/v1

The registry in tools.py mirrors NordBastion's own server-side MCP catalog and binds each tool to its REST endpoint, so the surface stays in lock-step with the upstream API. Authentication is a single bearer credential; nothing is cached to disk.

Security

  • Your API key lives only in the client's environment — never written to disk by this server.
  • Scope your key: read, billing, servers, or full. Use the narrowest scope an agent needs and an IP allow-list where possible.
  • order_server and create_topup move real money/balance. Review your agent's confirmations before granting servers/billing/full scope.

Development

git clone https://github.com/CryptoServers/nordbastion-mcp
cd nordbastion-mcp
uv venv && uv pip install -e ".[dev]" mcp httpx ruff
python -m nordbastion_mcp   # starts the stdio server
ruff check .

Links

License

MIT © NordBastion OÜ. This is an open-source client for the NordBastion API; "NordBastion" is a trademark of NordBastion OÜ.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nordbastion_mcp-0.1.0.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nordbastion_mcp-0.1.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file nordbastion_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: nordbastion_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for nordbastion_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 24c6721b48e1d23476a2c68f9132db85611f0675e700eb7b4edbbff63b6cbf8d
MD5 de73efbf947ac6efc4712fc8ad86ff65
BLAKE2b-256 cd2e9b0823e0198ceb2cbfb87a42861b571b34f53053799732be4ddcbbfdb4c6

See more details on using hashes here.

File details

Details for the file nordbastion_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nordbastion_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8347a1b4db7738c1c7b698e50f6d24410eebe371d7d8067336c07774a5897c6b
MD5 88703cb5b74427f990705fabb032b51d
BLAKE2b-256 fbdfbed75934bdaef1f94f638342723b5e84acf215944204ac019511c033c164

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page