gigahost-mcp
Click on "Install 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., "@gigahost-mcplist my DNS zones"
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.
gigahost-mcp
A tiny MCP server exposing the
Gigahost API (https://api.gigahost.no/api/v0) to any
MCP-compatible client (Claude Code/Desktop, Cursor, Windsurf, Cline, or your own).
The Gigahost API is uniform REST, so the whole surface (~150 endpoints: DNS
zones/records, .no domains, servers, web hosting, BGP, DynDNS) is wrapped by a
single passthrough tool rather than one tool per endpoint. The model drives paths
directly.
Tool
gigahost_request(method, path, body=None, query=None, files=None)
method—GET/POST/PUT/DELETEpath— e.g./dns/zones,/servers/123/rebootbody— JSON body forPOST/PUTquery— querystring paramsfiles—{form_field: local_file_path}for multipart uploads (e.g.POST /webhosting/{id}/files/upload). When set,bodyis sent as multipart form fields instead of JSON.
Returns {"status": <http_status>, "data": <json|text>}, or {"error": ...} on a
network/file failure.
This covers the full Gigahost REST surface: all JSON endpoints plus multipart file uploads. The only bound on what works is the API key's permission scope.
Endpoint reference: https://gigahost.no/en/api-dokumentasjon
Examples
Calls below are shown as the tool arguments the model produces.
List DNS zones:
{ "method": "GET", "path": "/dns/zones" }Add an A record to zone 4040:
{
"method": "POST",
"path": "/dns/zones/4040/records",
"body": { "record_name": "@", "record_type": "A", "record_value": "203.0.113.10", "record_ttl": 3600 }
}Reboot a server:
{ "method": "GET", "path": "/servers/123/reboot" }Upload a file to a web-hosting account (multipart):
{
"method": "POST",
"path": "/webhosting/55/files/upload",
"files": { "file": "/local/path/index.html" }
}Related MCP server: superskills-mcp
Prerequisites
Python 3.11+
A Gigahost API key (
flux_live_<hex>), created in the Flux dashboard under Konto → API keys. Scope it to only the permissions you need (e.g. DNS / domain). It is revocable and shown only once at creation.The key is read from the
GIGAHOST_API_KEYenvironment variable.
Install
Pick whichever you already use.
Option A — uv (zero install)
Dependencies are declared inline (PEP 723), so nothing to install:
GIGAHOST_API_KEY=flux_live_xxxxxxxx uv run /path/to/server.pyOption B — pip / venv
python -m venv .venv && . .venv/bin/activate
pip install -r requirements.txt
GIGAHOST_API_KEY=flux_live_xxxxxxxx python server.pySelf-check (offline, no key, no network)
uv run server.py --selfcheck # or: python server.py --selfcheck
# prints: okConfigure your MCP client
Most clients read a JSON config with an mcpServers map. Add one of the following,
using an absolute path to server.py and your key in env.
With uv:
{
"mcpServers": {
"gigahost": {
"command": "uv",
"args": ["run", "/absolute/path/to/server.py"],
"env": { "GIGAHOST_API_KEY": "flux_live_xxxxxxxx" }
}
}
}With a venv / system Python:
{
"mcpServers": {
"gigahost": {
"command": "python",
"args": ["/absolute/path/to/server.py"],
"env": { "GIGAHOST_API_KEY": "flux_live_xxxxxxxx" }
}
}
}Config file locations vary by client, e.g.:
Claude Desktop —
claude_desktop_config.json(Settings → Developer → Edit Config)Cursor —
~/.cursor/mcp.jsonWindsurf / Cline / others — their MCP settings JSON
Claude Code (CLI shortcut)
claude mcp add -s user gigahost -e GIGAHOST_API_KEY=flux_live_xxxxxxxx \
-- uv run /absolute/path/to/server.pyAfter configuring, the client should list a gigahost server with the
gigahost_request tool. Smoke-test by asking it to GET /dns/zones.
Key permissions (scope)
When you create the Flux API key you set an access level per area. This bounds
what gigahost_request can do, independent of the code:
Ingen — no access, calls return
403.Les — read only,
GETworks, writes (POST/PUT/DELETE) return403.Les/skriv — full read + write.
Areas map to API path prefixes:
Flux area | Path prefix |
DNS og domener |
|
Servere |
|
Webhotell |
|
Deploy |
|
Rack |
|
Fakturering |
|
Min konto |
|
A 403 "You do not have permission for this operation" means the key lacks the
right level for that area (e.g. Les when the call needs Les/skriv). Grant the
minimum each area needs, not blanket Les/skriv.
Security
The API key is read from
GIGAHOST_API_KEYonly. It is never written to this repo.Putting the key in a client config file (or
~/.claude.jsonviaclaude mcp add -e) stores it in plaintext. Acceptable for a personal scoped key on your own machine. Revoke and rotate in Flux if it leaks.Prefer a narrowly-scoped key over your account password.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ecschoye/gigahost-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server