Domeneshop について
Domeneshopは、API経由でDomeneshopアカウントを管理するMCPサーバーです。ドメイン、DNS、HTTP転送、ダイナミックDNS、請求書を扱い、読み取り専用設定やツールの絞り込みにも対応します。
主な機能
- 01ドメインの検索と一覧表示
- 02DNSレコードの管理
- 03HTTP転送の管理
- 04ダイナミックDNSの更新
- 05請求書の検索と絞り込み
- 06読み取り専用モードとツール許可リスト
活用シーン
- 01ドメインと更新日の確認
- 02DNSレコードの追加や変更
- 03ドメインのHTTP転送設定
- 04ダイナミックDNSの更新と請求書の確認
MCP 対応
MCP stdioを介して、Domeneshop APIの操作を互換クライアント向けのツールとして公開します。読み取り専用モードとツール許可リストで利用可能なツールを制限できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y domeneshop-mcpDOMENESHOP_API_TOKENシークレットAPI token from https://www.domeneshop.no/admin?view=apiDOMENESHOP_API_SECRETシークレットThe matching API secretDOMENESHOP_READ_ONLYSet to true to expose only read-only toolsDOMENESHOP_TOOLSComma-separated allowlist of tool names to exposeDOMENESHOP_DISABLED_TOOLSComma-separated tool names to hideDOMENESHOP_TIMEOUT_MSPer-request timeout in millisecondsDOMENESHOP_DEBUGSet to true to log each API request to stderrローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
17掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| filter | string | いいえ | 名前にこのテキストを含むドメインのみを返します。例:'.no' |
詳細
Quick start · Client setup · Tools · Access control · Troubleshooting · Get API credentials
MCP サーバー。
Domeneshop API を、アシスタントが呼び出せるツールに変換します。
API が提供するすべての操作に対応しており、ドメイン、DNS、HTTP 転送、ダイナミック DNS、請求書の各分野で、計 17 個のツールを利用できます。
stdio で MCP 通信を行うため、MCP 対応クライアントならどれでも利用できます。Claude
Code、Claude Desktop、Cursor、VS Code、Codex、Windsurf、Cline などに対応しています。
MCP は初めてですか?まずはこちら
MCP(Model Context Protocol)は、AI アプリが外部ツールを呼び出せるようにするオープン 標準です。このパッケージは MCP サーバー です。AI アプリがバックグラウンドで起動し、通信する小さなプログラムです。登録すると、普段の言葉で「blog.example.no を 203.0.113.10 に向けて」と頼むだけで、アシスタントが適切なツールを選び、実行しようとしている内容を示し、変更を行う前に確認を求めます。
サーバーを自分で起動する必要はなく、ツール名を知っている必要もありません。必要なものは次のとおりです。
- Domeneshop API トークンとシークレット。プログラムがお客様のアカウントで操作するためのキーのペアです。パスワードと同じように扱ってください。
- MCP クライアント。チャットに使うアプリです。以下では Claude Code を使用しますが、ほかのクライアントも利用できます(クライアントの設定を参照)。
- Node.js 20.3+(LTS をダウンロード)または Homebrew。Claude Desktop バンドルでは必要ありません。
アシスタントに本番環境の DNS を変更させることに不安がある場合は、読み取り専用モードから始めてください。すべて確認できますが、変更はできません。
クイックスタート
Domeneshop アカウントに加えて、Node.js 20.3 以降(npx 用)または
Homebrew が必要です。
1. API トークンとシークレットを作成します。 domeneshop.no/admin?view=api にアクセスしてください。
2. サーバーを登録します。Claude Code で、 プレースホルダーをトークンとシークレットに置き換えてください。
claude mcp add domeneshop \
--env DOMENESHOP_API_TOKEN=<your-api-token> \
--env DOMENESHOP_API_SECRET=<your-api-secret> \
-- npx -y domeneshop-mcp
読み取り専用ツールのみで開始するには --env DOMENESHOP_READ_ONLY=true を追加します。また、すべてのプロジェクトで利用できるようにするには --scope user を追加します(既定では現在のプロジェクトのみ)。
3. 依頼します。 新しい claude セッションを開始し、「自分の Domeneshop ドメインを一覧表示して」と試してください。Claude Code 内で /mcp を実行すると、サーバーが接続されているか確認できます。
npx ではなく Homebrew を使いますか? まず一度インストールしてから、手順 2 で -- npx -y domeneshop-mcp の代わりに -- domeneshop-mcp を指定してバイナリを登録します。
brew install martinzachariassen/tap/domeneshop-mcp
別のクライアントを使いますか? Claude Desktop には Node.js 不要のワンクリックバンドルがあり、Cursor と VS Code にはこのページの上部にワンクリックのインストールボタンがあります。Codex などでは短い設定ブロックを使います。クライアントの設定を参照してください。
依頼できること
| 分野 | プロンプトの例 |
|---|---|
| ドメイン | 「自分のアカウントにあるドメインと、更新日を教えて」 |
| DNS | 「example.no の DNS レコードをすべて表示して」 |
| DNS | 「blog.example.no を 203.0.113.10 に向けて」 |
| DNS | 「example.no の www レコードの TTL を 5 分に下げて」 |
| DNS | 「ドメインの所有権確認用に、Google から指定された TXT レコードを追加して」 |
| DNS | 「example.no に Fastmail の MX レコードを設定して」 |
| 転送 | 「old.example.no を https://example.no に転送して」 |
| ダイナミック DNS | 「home.example.no を現在の IP アドレスに更新して」 |
| 請求書 | 「未払いの Domeneshop 請求書を一覧表示して」 |
クライアントの設定
サーバーは手動で実行するのではなく、クライアントによって起動されます。環境変数 DOMENESHOP_API_TOKEN と DOMENESHOP_API_SECRET が必要です。任意の環境変数については設定を参照してください。
ほとんどのクライアントで、同じ標準設定を使用できます。プレースホルダーをトークンとシークレットに置き換えてください。ファイルにすでにほかのサーバーが記載されている場合は、既存の "mcpServers" オブジェクト内に "domeneshop" エントリーを追加してください。
{
"mcpServers": {
"domeneshop": {
"command": "npx",
"args": ["-y", "domeneshop-mcp"],
"env": {
"DOMENESHOP_API_TOKEN": "<your-api-token>",
"DOMENESHOP_API_SECRET": "<your-api-secret>"
}
}
}
}
ほとんどのクライアントでは、通常は書き込む設定ファイルを選ぶことで、サーバーを現在のプロジェクトだけに限定したり、すべての場所で利用できるようにしたりできます。該当する場合は、以下の設定ブロックでその方法を説明しています。
Claude Code
クイックスタートの CLI コマンドを使用してください。デフォルトでは
--scope local が指定され、自分とこのプロジェクトだけに適用されます。代わりに
--scope project を指定すると、バージョン管理を通じて共有される
<your-project>/.mcp.json に書き込みます。または、アカウント内のすべてのプロジェクトに適用する場合は
--scope user を指定してください。
標準設定を生の JSON として渡すこともできます。
claude mcp add-json domeneshop '{"command":"npx","args":["-y","domeneshop-mcp"],"env":{"DOMENESHOP_API_TOKEN":"<your-api-token>","DOMENESHOP_API_SECRET":"<your-api-secret>"}}'
または、標準設定を <your-project>/.mcp.json に直接書き込むこともできます。
claude mcp list を実行すると、登録済みのサーバーと接続状況を確認できます。
Claude Desktop
最も簡単な方法は、Node.js が不要なワンクリックバンドルを使うことです。
- 最新リリースから
domeneshop-mcp-<version>.mcpbをダウンロードします。 - ファイルを開きます(ダブルクリックするか、Claude Desktop にドラッグします)。
- トークンとシークレットを貼り付け、必要に応じて読み取り専用モードを有効にして、インストールします。
Claude Desktop は認証情報を安全に保存します。
代わりに手動で設定するには、標準設定を
claude_desktop_config.json に追加します。このファイルは「設定」→「開発者」→「設定を編集」から開けます。
その後、Claude Desktop を再起動してください。
| プラットフォーム | フルパス |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux(非公式ビルド) | ~/.config/Claude/claude_desktop_config.json |
Cursor
このボタンを使うと、プレースホルダーの認証情報でサーバーをインストールします。Cursor では認証情報の入力を求められないため、インストール後に 設定 → MCP を開き、domeneshop の項目を編集して、<your-api-token> と <your-api-secret> を自分の値に置き換えてください。
代わりに手動で設定するには、標準設定を mcp.json ファイルに追加します。
| 適用範囲 | フルパス |
|---|---|
| このプロジェクトのみ | <your-project>/.cursor/mcp.json |
| すべてのプロジェクト(macOS/Linux) | ~/.cursor/mcp.json |
| すべてのプロジェクト(Windows) | %USERPROFILE%\.cursor\mcp.json |
VS Code (GitHub Copilot)
[](https://insiders.vscode.dev/redirect/mcp/install?name=domeneshop&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22domeneshop_api_token%22%2C%22description%22%3A%22Domeneshop%20API%20token%22%2C%22password%22%3Atrue%7D%2C%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22domeneshop_api_secret%22%2C%22description%22%3A%22Domeneshop%20API%20secret%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22domeneshop-mcp%22%5D%2C%22env%22%3A%7B%22DOMENESHOP_API_TOKEN%22%3A%22%24%7Binput%3Adomeneshop_api_token%7D%22%2C%22DOMENESHOP_API_SECRET%22%3A%22%24%7Binput%3Adomeneshop_api_secret%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=domeneshop&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22domeneshop_api_token%22%2C%22description%22%3A%22Domeneshop%20API%20token%22%2C%22password%22%3Atrue%7D%2C%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22domeneshop_api_secret%22%2C%22description%22%3A%22Domeneshop%20API%20secret%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22domeneshop-mcp%22%5D%2C%22env%22%3A%7B%22DOMENESHOP_API_TOKEN%22%3A%22%24%7Binput%3Adomeneshop_api_token%7D%22%2C%22DOMENESHOP_API_SECRET%22%3A%22%24%7Binput%3Adomeneshop_api_secret%7D%22%7D%7D&quality=insiders)ボタンを押すと、サーバーがユーザー設定にインストールされます。VS Code はトークンとシークレットの入力を求め、安全に保存するため、設定ファイルに平文で書き込まれることはありません。
手動で設定する場合、VS Code では mcpServers ではなく servers キーを使い、type を明示する必要があります。このプロジェクトだけに設定する場合は、<your-project>/.vscode/mcp.json に追加してください。
{
"servers": {
"domeneshop": {
"type": "stdio",
"command": "npx",
"args": ["-y", "domeneshop-mcp"],
"env": {
"DOMENESHOP_API_TOKEN": "<your-api-token>",
"DOMENESHOP_API_SECRET": "<your-api-secret>"
}
}
}
}
すべてのプロジェクトで使うには、コマンドパレットから MCP: Open User Configuration を実行して同じブロックを追加するか、次のように1行で登録してください。
code --add-mcp '{"name":"domeneshop","command":"npx","args":["-y","domeneshop-mcp"],"env":{"DOMENESHOP_API_TOKEN":"<your-api-token>","DOMENESHOP_API_SECRET":"<your-api-secret>"}}'
Codex
Codex CLI は、設定ファイルの mcp_servers から MCP サーバーを読み込みます。
| プラットフォーム | フルパス |
|---|---|
| macOS/Linux | ~/.codex/config.toml |
| Windows | %USERPROFILE%\.codex\config.toml |
[mcp_servers.domeneshop]
command = "npx"
args = ["-y", "domeneshop-mcp"]
env = { DOMENESHOP_API_TOKEN = "<your-api-token>", DOMENESHOP_API_SECRET = "<your-api-secret>" }
codex mcp add domeneshop -- npx -y domeneshop-mcp を実行するとコマンドラインから登録できますが、環境変数のフラグは指定できません。そのため、作成された [mcp_servers.domeneshop] ブロックに2つの変数を設定してください。
その他の MCP クライアント
Windsurf、Cline、Continue、LM Studio など、stdio 経由で MCP サーバーを実行するものなら何でも使えます。ほとんどの場合、標準設定と同じ形式です。クライアントのドキュメントで設定ファイルとキー名を確認し、次のように指定してください。
- command:
npx - args:
["-y", "domeneshop-mcp"] - env:
DOMENESHOP_API_TOKENとDOMENESHOP_API_SECRET
npx を使わない方法(npm または Homebrew)
起動のたびにパッケージを解決するのを避けるには、一度インストールし、引数なしでコマンドに domeneshop-mcp を指定してください。npm の場合:
npm install -g domeneshop-mcp
macOS または Linux では、Homebrew を使う方法もあります。Node.js がインストールされていない場合は、Homebrew があわせてインストールします。
brew install martinzachariassen/tap/domeneshop-mcp
brew upgrade domeneshop-mcp を実行すると、新しいリリースを取得できます。Claude Desktop などの GUI アプリでは通常、Homebrew の PATH が認識されないため、フルパスを指定してください(brew --prefix でプレフィックスを確認できます。Apple silicon では /opt/homebrew、Intel Mac では /usr/local、Linux では /home/linuxbrew/.linuxbrew です)。
{
"mcpServers": {
"domeneshop": {
"command": "/opt/homebrew/bin/domeneshop-mcp",
"env": {
"DOMENESHOP_API_TOKEN": "<your-api-token>",
"DOMENESHOP_API_SECRET": "<your-api-secret>"
}
}
}
}
すべての設定は環境変数で指定します。Claude Code の --env、または上記の設定の env ブロックで渡します。最初の2つのみ必須です。
| 変数 | 必須 | 説明 |
|---|---|---|
DOMENESHOP_API_TOKEN | はい | Domeneshop のコントロールパネルで取得した API トークン |
DOMENESHOP_API_SECRET | はい | 対応する API シークレット |
DOMENESHOP_READ_ONLY | いいえ | 読み取り専用ツールのみを公開する場合は true |
DOMENESHOP_TOOLS | いいえ | 公開するツール名のカンマ区切りの許可リスト |
DOMENESHOP_DISABLED_TOOLS | いいえ | 非表示にするツール名のカンマ区切りリスト |
DOMENESHOP_TIMEOUT_MS | いいえ | リクエストごとのタイムアウト(ミリ秒、デフォルトは 30000) |
DOMENESHOP_DEBUG | いいえ | すべての API リクエストを stderr に記録する場合は true |
ツール
各ツールは MCP アノテーションとタイトルを宣言しているため、クライアントはどのツールを事前確認なしで安全に実行できるかを把握できます。以下のアクセス列は、これらのアノテーションを反映しています。引数は Domeneshop に送信される前に検証されます(TTL の範囲、URL スキーム、IP アドレス、および各レコードタイプで必要なフィールド)。また、読み取り専用ツールは、対応するクライアント向けに構造化出力も返します。
ドメイン
| ツール | アクセス | 説明 |
|---|---|---|
list_domains | 読み取り専用 | アカウント上のすべてのドメインを一覧表示します。名前で絞り込むこともできます |
get_domain | 読み取り専用 | Domeneshop のドメイン ID で指定した1つのドメインを取得します |
DNS
| ツール | アクセス | 説明 |
|---|---|---|
list_dns_records | 読み取り専用 | ドメインのレコードを一覧表示します。ホストとタイプで絞り込むこともできます |
get_dns_record | 読み取り専用 | ID で指定した1つのレコードを取得します |
create_dns_record | 追加 | レコードを作成し、保存された状態で返します |
update_dns_record | 上書き | レコードを置き換え、保存された状態で返します。以下の警告を参照してください |
patch_dns_record | 上書き | 指定したフィールドのみを変更し、残りは保存済みの値を維持します |
upsert_dns_record | 上書き | ホストとタイプが一致するレコードが1つあれば更新し、なければ作成します |
delete_dns_record | 削除 | レコードを削除します |
ご注意:
update_dns_recordはレコードにパッチを適用するのではなく、レコード全体を置き換えます。指定しなかったフィールドは削除され、ttlを省略するとデフォルトの3600秒にリセットされます。一部のフィールドのみを変更するにはpatch_dns_recordを使用してください。upsert_dns_recordは、同じタイプのレコードがホストに複数ある場合(MXやTXTでよくあります)、処理を拒否し、代わりにレコード ID を一覧表示します。
HTTP 転送
| ツール | アクセス | 説明 |
|---|---|---|
list_forwards | 読み取り専用 | ドメインの HTTP 転送を一覧表示します |
get_forward | 読み取り専用 | 1つのホストの転送設定を取得します |
create_forward | 追加 | 転送設定を作成します |
update_forward | 上書き | 転送設定を更新します |
delete_forward | 削除 | 転送設定を削除します |
ダイナミック DNS
| ツール | アクセス | 説明 |
|---|---|---|
update_dyndns | 上書き | 1つ以上のカンマ区切りのホスト名を、最大9個の IPv4/IPv6 アドレス、または呼び出し元から認識される IP アドレスに向けます。レコードがない場合は作成します |
請求書
| ツール | アクセス | 説明 |
|---|---|---|
list_invoices | 読み取り専用 | 過去3年間の請求書を一覧表示します。ステータスで絞り込むこともできます |
get_invoice | 読み取り専用 | 1つの請求書を取得します |
アクセス制御
Domeneshop API にはスコープ付きトークンがありません。トークンを使うと、アカウントで可能なすべての操作を実行できます。アシスタントが実行できる操作を制限するには、サーバーが公開するツールを制限してください。非表示のツールは一切登録されないため、モデルからも見えません。
- 読み取り専用モード。
DOMENESHOP_READ_ONLY=trueを設定すると、読み取り専用の8つのツールだけが公開されます。主にドメイン、DNS、請求書について質問する場合や、初めてサーバーを試す場合に適した初期設定です。 - 許可リスト。
DOMENESHOP_TOOLS=list_domains,list_dns_records,patch_dns_recordを設定すると、指定したツールだけが公開されます。 - 拒否リスト。
DOMENESHOP_DISABLED_TOOLS=delete_dns_record,delete_forwardを設定すると、指定したツールが非表示になります。
設定は組み合わせて適用され、ツール名に誤記があると、無視されるのではなく起動時にサーバーが停止します。
ほとんどのクライアントは、読み取り専用として注釈されていないツールを実行する前に確認を求めます。このサーバーでは、その確認を有効にしておいてください。書き込みツールは稼働中のDNSを変更するため、レコードを誤るとサイトやメールボックスが利用できなくなる可能性があります。
認証情報は api.domeneshop.no にのみ送信され、ログに記録されることはありません。アクセスを取り消すには、Domeneshopのコントロールパネルでトークンを削除してください。
トラブルシューティング
- ツールが表示されない場合:クライアントを再起動してください(ほとんどのクライアントは起動時にのみサーバーを読み込みます)。Claude Codeでは、
/mcpを確認してください。npx -y domeneshop-mcp --versionを実行して、Node.js 20.3+ と npx が動作することを確認してください。JSON設定ファイルを手動で編集した場合は、引き続き有効なJSONであることを確認してください。DOMENESHOP_DEBUG=trueを設定すると、サーバーはすべてのAPIリクエスト(メソッド、パス、ステータス、所要時間。認証情報は含みません)をstderrに記録します。ほとんどのクライアントは、これをMCPログに取り込みます。 API returned status 401:トークンまたはシークレットが間違っています。domeneshop.no/admin?view=api から両方をもう一度コピーしてください。前後の空白は自動的に削除されます。API returned status 404:このアカウントにドメインまたはレコードIDが存在しません。まずドメインまたはレコードを一覧表示するよう、アシスタントに依頼してください。- タイムアウトが発生する場合:リクエストは30秒後にタイムアウトします。べき等なリクエストは、レート制限や一時的なエラーが発生した場合に再試行されます。必要に応じて、
DOMENESHOP_TIMEOUT_MSで制限時間を延長してください。 - DNSの変更が反映されない場合:DNSはレコードのTTL(デフォルトでは3600秒)の間キャッシュされるため、ほかのリゾルバーが最大1時間、古い値を返すことがあります。Domeneshopに保存されたことを確認するため、レコードを表示するようアシスタントに依頼してください。
まだ解決しませんか?イシューを作成してください。
リファレンス
サポートされている DNS レコードタイプ
Domeneshop が受け付ける 11 種類すべてのレコードタイプと、それぞれのタイプ固有のフィールドをサポートしています。
| タイプ | host、data、ttl 以外のフィールド |
|---|---|
A、AAAA、ANAME、CNAME、NS、TXT | — |
MX | priority |
SRV | priority、weight、port |
TLSA | usage、selector、dtype |
DS | tag、alg、digest |
CAA | flags、tag |
tag フィールドの型は意図的に指定していません。DS では数値のキータグ、CAA では issue などのプロパティタグとなりますが、Domeneshop はどちらについてもドキュメントに記載していません。
Domeneshop API の未文書化の動作
このサーバーが依存している動作の中には、Domeneshop が公開している OpenAPI 仕様には記載されていないものの、サポートされており、同社のクライアントライブラリでも使用されているものがあります。
- 仕様では 7 種類のレコードタイプが文書化されていますが、domeneshop.js と python-domeneshop のレコード検証で示されているように、
ANAME、CAA、DS、NSも動作します。 GET /invoicesはstatusフィルターを受け付けます。これは domeneshop.js で使用されています。POST /forwards/は空の本文で201を返し、新しい転送先の名前はLocationヘッダーにのみ記載します。GET /dyndns/updateは JSON ではなく、本文なしで204を返すため、クライアントは応答をデコードしようとしません。
配布
- npm パッケージ
- Homebrew tap
- MCP レジストリ
- Claude Desktop バンドル(各リリースに
.mcpbを含みます)
開発
npm install # install dependencies
npm run dev # run the server from source with tsx
npm run build # compile to ./dist
npm run typecheck # type-check without emitting
npm run lint # lint with Biome
npm run format # format with Biome
npm test # run the test suite (vitest)
テストでは、ローカルの node:http サーバーで Domeneshop API をスタブし、インメモリトランスポート経由で MCP サーバーを実行するため、認証情報は不要で、ネットワークへの呼び出しも発生しません。
プロジェクト構成
src/
domeneshop/ Domeneshop API client (HTTP transport + one resource per endpoint group)
mcp/ MCP server: tool registration, schemas, result/error helpers
index.ts CLI entry point
test/
domeneshop/ Client tests, against a local HTTP server
mcp/ End-to-end tool tests, against an in-memory MCP transport
コントリビューション
Issue とプルリクエストを歓迎します。開発ワークフローと変更履歴の規約については、CONTRIBUTING.md をご覧ください。参加するすべての方には、行動規範に従っていただく必要があります。
セキュリティ
脆弱性の報告方法については、SECURITY.md をご覧ください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。