
## この記事でわかること

- ドメイン番人 MCP サーバーで何ができるか（提供している tool 一覧）
- Claude Desktop / Cursor / Claude Code から呼ぶための設定 JSON
- /diagnose API を MCP 経由で呼んだときに返ってくる値の読み方
- 自前の運用ツール（社内 chat / 監視 bot）からも同じ API を直接叩く方法

## ドメイン番人 MCP サーバーとは

ドメイン番人は、`/api/diagnose` で公開している DNS・メール認証診断 API を、**MCP（Model Context Protocol）対応クライアントからも呼べる形**で出しています。エンドポイントはサービスドメインに同居しています。

```
https://domain-bannin.jp/api/mcp
```

トランスポートは Streamable HTTP（MCP の HTTP+SSE 系仕様）。JSON-RPC 2.0 の POST を投げると、`tools/list` と `tools/call` が使えます。現時点で提供している tool は **`domain_diagnose`** の 1 つ（ドメインを渡すと SPF / DKIM / DMARC / MX / SSL 等の診断結果を返す）です。

![MCP サーバーを介して各クライアントから /diagnose を呼ぶ流れ](/blog/mcp-server-domain-shield-usage/mcp-flow.svg)

## Claude Desktop から呼ぶ

Claude Desktop の設定ファイル（`~/Library/Application Support/Claude/claude_desktop_config.json` 等）に、HTTP 経由の MCP サーバーを追加します。

```json
{
  "mcpServers": {
    "domain-bannin": {
      "type": "http",
      "url": "https://domain-bannin.jp/api/mcp"
    }
  }
}
```

Claude Desktop を再起動すると、ツール一覧に `domain_diagnose` が表示されます。チャットで「example.com のメール認証を見て」と頼むと、Claude が自動で tool を呼びます。

## Cursor から呼ぶ

Cursor の `~/.cursor/mcp.json`（または対応する設定パス）に同じ形式で追加できます。

```json
{
  "mcpServers": {
    "domain-bannin": {
      "url": "https://domain-bannin.jp/api/mcp"
    }
  }
}
```

Cursor 側でツールを enable にし、Composer などから「example.com の DNS 設定をチェック」と依頼すると、結果が JSON で取れます。

## Claude Code から呼ぶ

Claude Code（ターミナル CLI）では、`.claude/mcp.json` または環境設定で同様に追加できます。

```json
{
  "mcpServers": {
    "domain-bannin": {
      "url": "https://domain-bannin.jp/api/mcp"
    }
  }
}
```

CLI セッションでツール一覧を確認した上で、`domain_diagnose` を呼ぶスラッシュコマンドや会話から実行できます。

## 返ってくる結果の読み方

`domain_diagnose` は、ドメイン名を 1 つ渡すと、以下のような構造化された結果を返します。

```json
{
  "domain": "example.com",
  "categories": {
    "spf":   { "status": "warn",  "summary": "...", "details": [...] },
    "dkim":  { "status": "ok",    "summary": "...", "details": [...] },
    "dmarc": { "status": "fail",  "summary": "...", "details": [...] },
    "mx":    { "status": "ok",    "summary": "...", "details": [...] },
    "ssl":   { "status": "ok",    "summary": "...", "details": [...] }
  }
}
```

- `status` は `ok` / `warn` / `fail` の 3 段階
- `summary` はビジネスインパクトで書かれた短文。クライアント側がそのまま読み上げても自然になるよう設計
- `details` は技術的な根拠（実際の SPF レコード、レコードの解釈など）

![diagnose 応答の構造とクライアントでの活用](/blog/mcp-server-domain-shield-usage/response-shape.svg)

## 自前のツール（chat bot / 監視）から HTTP で直接呼ぶ

MCP クライアントを使わなくても、`/api/mcp` に JSON-RPC を POST すれば純粋な HTTP（curl）から同じ診断を呼べます。`tools/call` で `domain_diagnose` を指定します。

```bash
curl -sS https://domain-bannin.jp/api/mcp \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "domain_diagnose",
      "arguments": { "domain": "example.com" }
    }
  }' | jq .
```

社内 Slack bot や監視ジョブから呼ぶ場合は、こちらの方が組み込みやすいケースがあります。

なお、ブラウザの診断フォームが使う `/api/diagnose` は Bot 対策の認証（Turnstile）つきで、curl から直接は呼べません。プログラムからの HTTP 連携には上記の `/api/mcp` をお使いください。

## どんな使い方が向くか

- 制作会社が顧客サイトを移管したあとの **DNS / メール認証 健康診断** を、対話型のクライアントから軽く叩いて確認する
- 自社が複数ドメインを抱えている場合、Cursor / Claude Code で「未確認ドメイン全部回して」と依頼してリスト化
- 監視 bot にドメインを投げて結果を要約してもらい、メールやチャットに通知

逆に向かないのは、**1 秒に 100 件以上の高頻度バッチ**です。レートリミットを実装しているので、深夜にゆっくり回す形をおすすめします。

## よくある質問

### MCP サーバーの利用に料金はかかりますか？

現時点で公開している `/api/mcp` は無料の `/diagnose` をラップする構造のため、利用料金はかかりません。ただし高頻度バッチは想定外なのでレートリミットの範囲でご利用ください。

### 認証は必要ですか？

現時点では未認証で接続できます。社内利用ではネットワーク経路で制限してください。将来の有料化に伴い API キー方式を導入する可能性があります。

### MCP サーバーの URL を変更する予定はありますか？

`/api/mcp` のパスは安定運用しています。サブドメインやポートを切り出す場合は別途告知します。

## まとめ

- ドメイン番人 MCP サーバーは `https://domain-bannin.jp/api/mcp` にあり、`domain_diagnose` を提供する
- Claude Desktop / Cursor / Claude Code いずれも、設定 JSON に URL を 1 行追加するだけで使える
- 純粋な HTTP / curl からも同じ API を叩けるので、bot 連携にも乗せられる
- まずは [/diagnose](/diagnose) のブラウザ UI で挙動を確認してから MCP に接続するのがおすすめ。料金プランや業務利用相談は [/contact](/contact) まで
