プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Hetzner DNS

作者:ni-cバージョン 0.6.0i★ –iパソコンで動く
レジストリ名io.github.ni-c/hetzner-dns-mcp

インストール

概要

作者による説明(英語の原文)

Manage DNS zones and records (zonefiles, RRSets, TTL, protection) via the Hetzner Cloud API

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: 開発者ツール
  • 入力が必要なもの:HETZNER_API_TOKEN

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: HETZNER_API_TOKEN, HETZNER_READ_ONLY, HETZNER_ALLOW_TOOLS, HETZNER_DENY_TOOLS, HETZNER_API_BASE_URL

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "hetzner-dns": {
      "command": "npx",
      "args": [
        "-y",
        "hetzner-dns-mcp"
      ],
      "env": {
        "HETZNER_API_TOKEN": "your-value",
        "HETZNER_READ_ONLY": "your-value",
        "HETZNER_ALLOW_TOOLS": "your-value",
        "HETZNER_DENY_TOOLS": "your-value",
        "HETZNER_API_BASE_URL": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add hetzner-dns --env HETZNER_API_TOKEN=your-value --env HETZNER_READ_ONLY=your-value --env HETZNER_ALLOW_TOOLS=your-value --env HETZNER_DENY_TOOLS=your-value --env HETZNER_API_BASE_URL=your-value -- npx -y hetzner-dns-mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "hetzner-dns": {
      "command": "npx",
      "args": [
        "-y",
        "hetzner-dns-mcp"
      ],
      "env": {
        "HETZNER_API_TOKEN": "your-value",
        "HETZNER_READ_ONLY": "your-value",
        "HETZNER_ALLOW_TOOLS": "your-value",
        "HETZNER_DENY_TOOLS": "your-value",
        "HETZNER_API_BASE_URL": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "hetzner-dns": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "hetzner-dns-mcp"
      ],
      "env": {
        "HETZNER_API_TOKEN": "your-value",
        "HETZNER_READ_ONLY": "your-value",
        "HETZNER_ALLOW_TOOLS": "your-value",
        "HETZNER_DENY_TOOLS": "your-value",
        "HETZNER_API_BASE_URL": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • HETZNER_API_TOKEN 秘密 必須 env
    Hetzner Cloud API token (project-scoped, Cloud Console -> Security -> API tokens)
  • HETZNER_READ_ONLY env
    Set to true to register only the read-only tools (default: false)
  • HETZNER_ALLOW_TOOLS env
    Comma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)
  • HETZNER_DENY_TOOLS env
    Comma-separated tool names or list_* prefixes to remove from whatever HETZNER_ALLOW_TOOLS left
  • HETZNER_API_BASE_URL env
    Override the Hetzner Cloud API base URL (default: https://api.hetzner.cloud/v1)

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント ni-c で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

開発者ツールのほかのサーバーとの比較i

  • このカテゴリのほかの5558件のうち0%よりスターが多い
  • このカテゴリのほかの5558件のうち36%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの5558件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Hetzner DNSは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:HETZNER_API_TOKEN

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.6.0)がレジストリに届いたのは2 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.js, Dockerも必要です。

代わりに使えるものは?

同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

GitHub

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

作者:github広く使われている★ 3.4万5 日前更新

パソコンでもクラウドでも

Desktop Commander

MCP server for terminal commands, file operations, and process management

作者:wonderwhy-er広く使われている↓ 71万/週★ 1万17 日前更新

パソコンで動く

Cloudflare MCP

Cloudflare MCP servers

作者:cloudflare広く使われている★ 444614 か月前更新

クラウドで動く✓ mcp.cloudflare.com

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

hetzner-dns-mcp

A Model Context Protocol (MCP) server for managing DNS zones and records via the Hetzner Cloud API.

Lets MCP clients like Claude Code, Claude Desktop or Codex manage your Hetzner DNS: list, create, update and delete zones and RRSets (record sets), import/export zone files, manage protection and TTLs, and track asynchronous zone actions.

Twenty-two tools is the ceiling, not the floor: HETZNER_ALLOW_TOOLS=essential registers a curated eight instead, and a model picks the right tool far more reliably from eight than from twenty-two — see choosing which tools load.

Note: This server targets the current DNS API that is part of the Hetzner Cloud API (api.hetzner.cloud). The legacy DNS API (dns.hetzner.com) was shut down in May 2026 and is not supported.

What makes it different

Zones, record sets and the actions behind them. Listing, creating, updating and deleting zones and RRSets, importing and exporting BIND zone files, changing TTLs and protection — and following the asynchronous zone actions Hetzner queues behind a change, rather than reporting success and leaving you to guess.

Nothing upstream is trusted. Record values, comments and zone files come back wrapped as untrusted data, secret-looking keys are redacted, oversized values are truncated and HTML error pages are dropped instead of pasted into the context.

Destructive calls ask a person. Deleting a zone or replacing a record set raises a real dialog through MCP elicitation. Where the client cannot show one, the call is refused and carries a random single-use token that only ever appeared in a previous tool result — so nothing hidden inside a DNS record can mint it.

Requirements

  • Node.js ≥ 24
  • A Hetzner Cloud API token for the project that holds your DNS zones — create one in the Hetzner Cloud Console under _your project → Security → API tokens_. Use a read & write token for full functionality (a read-only token limits you to the read tools).

Configuration

Configuration is provided via environment variables:

VariableRequiredDescription
HETZNER_API_TOKENyesHetzner Cloud API token (project-scoped)
HETZNER_READ_ONLYnotrue registers only the read tools; the write tools do not exist at all
HETZNER_ALLOW_TOOLSnoComma-separated tool names, list_* prefixes, or essential for a curated preset
HETZNER_DENY_TOOLSnoSame syntax; removed from whatever HETZNER_ALLOW_TOOLS left
ELICITATIONnofalse replaces the approval dialog with the two-call token. Not prefixed
HETZNER_API_BASE_URLnoBase URL of the API (default: https://api.hetzner.cloud/v1)

Without a token the server still starts and lists its tools (so registries and inspectors can introspect it), but every tool call fails with setup instructions instead of reaching the API.

HETZNER_API_TOKEN and HETZNER_API_BASE_URL are deleted from the process environment once they have been read, so a later crash report or diagnostic dump cannot expose the token.

Choosing which tools load

HETZNER_ALLOW_TOOLS and HETZNER_DENY_TOOLS take comma-separated tool names; a trailing * matches a whole family. essential is a curated preset — list_zones, get_zone, list_rrsets, get_rrset, create_rrset, set_records, delete_rrset and export_zonefile — which covers reading a zone and changing a record without the rare, catastrophic tools.

HETZNER_ALLOW_TOOLS=essential

HETZNER_ALLOW_TOOLS=list_*,get_zone,set_records HETZNER_DENY_TOOLS=delete_zone,import_zonefile

An entry that matches no tool aborts startup and names it, so a typo cannot silently hide a tool — an absent tool is not something anyone traces back to an environment variable. A filtered tool is never registered, so it is absent from tools/list and unknown to tools/call alike, exactly like a write tool under HETZNER_READ_ONLY.

If you run several of these servers at once, mcp-hub is the other answer — its /hub endpoint replaces every server's tools with six meta-tools.

Installation

Claude Code
claude mcp add hetzner-dns -s user \

-e HETZNER_API_TOKEN=your-token \ -- npx -y hetzner-dns-mcp

Claude Desktop

Add to your claude_desktop_config.json:

{

"mcpServers": { "hetzner-dns": { "command": "npx", "args": ["-y", "hetzner-dns-mcp"], "env": { "HETZNER_API_TOKEN": "your-token" } } } }

Codex

Add to your ~/.codex/config.toml:

[mcp_servers.hetzner-dns]

command = "npx" args = ["-y", "hetzner-dns-mcp"] env = { HETZNER_API_TOKEN = "your-token" }

From source
git clone https://github.com/ni-c/hetzner-dns-mcp.git

cd hetzner-dns-mcp npm install npm run build

then use node /path/to/hetzner-dns-mcp/dist/index.js as the command

Docker

Multi-arch images (amd64/arm64) are published to GHCR with an SBOM and build provenance:

docker run -i --rm -e HETZNER_API_TOKEN=your-token ghcr.io/ni-c/hetzner-dns-mcp

The image talks MCP over stdio, so clients need docker run -i (no port is exposed):

{

"mcpServers": { "hetzner-dns": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "HETZNER_API_TOKEN", "ghcr.io/ni-c/hetzner-dns-mcp" ], "env": { "HETZNER_API_TOKEN": "your-token" } } } }

Through mcp-hub

A client that cannot spawn a local process — ChatGPT connectors, Claude on the web, Cursor, LibreChat — reaches hetzner-dns-mcp through mcp-hub: one container serves many stdio MCP servers over Streamable HTTP, with an OAuth 2.1 login behind a single password and long-lived tokens for the clients that cannot do OAuth. Its /hub endpoint puts every server behind six meta-tools, so one connector reaches all of them without N×tool schemas in the model's context, and it speaks both protocol revisions — a question this server asks travels through it to the person at the far end.

Its /config/mcp.json uses Claude Code's format, so the entry is the one you already have:

{

"mcpServers": { "hetzner-dns": { "command": "npx", "args": ["-y", "hetzner-dns-mcp"], "env": { "HETZNER_API_TOKEN": "your-token", "HETZNER_ALLOW_TOOLS": "essential" }, "denyTools": ["delete_*"] } } }

allowTools and denyTools there are the hub's own per-server filter, which is not the same thing as *_ALLOW_TOOLS in env — the difference, and the mistake it invites, are in the client guide.

Tools

Every tool declares an outputSchema and answers with structuredContent alongside the text block, so a client can use the result without parsing prose. The fence stays in the text — it is the readable presentation of the same marker — and the structured half carries untrusted: true and source: "hetzner-cloud-api" as fields. Every tool carries them: record values, comments, labels and zone files are written by whoever controls the zone, and no tool here answers with anything else.

The API documents are described as open objects with the top-level keys the spec guarantees. The API is not this server's to promise, and the SDK validates each result against its schema before it goes out — a strict shape would turn a field Hetzner adds into a tool that fails outright.

An over-budget result is now an error. It used to be cut off mid-document and say so, which is fine for a text block and impossible for structuredContent: the two channels have to carry the same value, and a document sliced mid-string does not parse.

Zones
ToolDescription
list_zonesList zones with status, mode, nameservers and record counts

| get_zone

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く