Community研究&データ分析github.com

Alpha018/alpha-skills

ホームラボ自動化をAgent Skillとしてパッケージ化し、さらにその上にMCPサーバーを構築します。

alpha-skills とは?

このスキルは、NextDNS API を直接操作するための完全な参照実装とツールを提供します。NextDNS ダッシュボードで設定可能なセキュリティ、プライバシー、ペアレンタルコントロール、拒否/許可リスト、ログ設定、分析、DNSクエリログなど、すべての機能にプログラムからアクセスできます。このスキルは、curl、スクリプト、または任意のHTTPクライアントから使用できるように設計されており、APIリファレンス、OpenAPI仕様、および一般的なユースケース(構成のコード化、一括リスト管理、スケジュール切替、監視アラート、ログ追跡など)のパターンが含まれています。また、変更された場合は `references/api-reference.md` と `references/openapi.yaml` を更新するための手順も文書化されており、スキルの正確性を長期にわたって維持できます。

対応~Claude Code~Codex CLI✓Cursor
npx skills add Alpha018/alpha-skills

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

NextDNS API

概要

NextDNS は、ダッシュボードで設定可能なすべての項目に対して REST API を公開しています。 プロファイルごとのセキュリティ/プライバシー/ペアレンタルコントロールのトグル、拒否/許可リスト、 ログ設定、分析、および生の DNS クエリログが含まれます。 公式 SDK はありません。すべてがプレーンな HTTPS + JSON であるため、 呼び出し側が使用する言語やツールに関係なく、curl/スクリプト/HTTP クライアントの領域です。

  • ベース URL: https://api.nextdns.io
  • 認証: ヘッダー X-Api-Key: <key>(キーは https://my.nextdns.io/account で取得)
  • すべてのリソースはプロファイルのスコープ内にあります: /profiles/:profile/...
  • 成功時: {"data": ..., "meta": {...}}。エラー時: {"errors": [{"code", "detail", "source"}]}

この API で構築できるもの

NextDNS ダッシュボードで可能なすべての操作がここで実行可能であり、次のようないくつかの定型的なタスクカテゴリが開かれます。

  • プロビジョニング/コードとしての設定 — プロファイルを作成し、完全なセキュリティ/プライバシー/ペアレンタルコントロール/設定構成を JSON/YAML ファイルからプッシュできるため、DNS プロファイルをバージョン管理して再現可能にし、手動でクリックして構築する必要がなくなります。
  • 一括リスト管理 — PUT による完全置換、またはエントリごとの POST/PATCH/DELETE エンドポイントを介して、外部ソース(管理されたブロックリスト、CSV、別のシステムのエクスポート)から拒否リストまたは許可リストを同期します。
  • スケジュール/条件付きトグル — スケジュールやトリガーに基づいて設定を切り替えます。例えば、特定の時間帯により厳格な parentalControl カテゴリを有効にしたり、外部イベントに基づいて settings.web3/security.* フラグを切り替えたりします。
  • 監視とアラート — analytics/*(ステータス、上位のブロックドメイン/デバイス、理由)をポーリングして、ダッシュボードやアラートを構築します。例えば、ブロッククエリボリュームが急増した場合や、新しいデバイスがトラフィックを生成し始めた場合に通知します。時系列バリアント ;series により、グラフに適した形式になります。
  • ログの追跡とエクスポート — /logs/stream(SSE)を使用して、ターミナルまたはログパイプラインでライブクエリを追跡するか、/logs/download を使用してオフライン分析/アーカイブ用の完全なエクスポートを取得します。
  • 監査/コンプライアンスチェック — 定期的にプロファイルの完全な設定を GET し、期待されるベースラインと比較して、ずれ(ダッシュボードで誰かがオフにしたセキュリティトグルなど)を検出します。
  • マルチプロファイルフリート — 複数の :profile ID に対して同じ操作を実行します。これは、複数のネットワーク/家庭/サイトの NextDNS を一箇所から管理する人に便利です。

使用するタイミング

  • 拒否リスト/許可リストエントリ、セキュリティ/プライバシートグル、ペアレンタルコントロールサービス/カテゴリ、またはプロファイル全体の設定の読み取りまたは書き込み。
  • 分析(上位ドメイン、デバイス、プロトコル、ブロック理由、地理位置情報)または生/ストリーミングクエリログ(時系列の内訳を含む)の取得。
  • api.nextdns.io と通信するスクリプト/自動化(curl、設定管理ツール、cron ジョブ、ダッシュボード、チャット/CLI ボット)の構築またはデバッグ。
  • 重要なことに頼る前に、このスキルにバンドルされたリファレンスがライブドキュメントに対してまだ正確であることを確認する。

クイックリファレンス

領域ベースパス主な操作
プロファイル/profiles/:profileGET、PATCH(部分更新)、DELETE。作成は POST /profiles
セキュリティ/profiles/:profile/securityトグル + tlds リスト
プライバシー/profiles/:profile/privacyblocklists、natives、トグル
ペアレンタルコントロール/profiles/:profile/parentalControlservices、categories(PUT 完全置換対応)、セーフサーチトグル
拒否リスト / 許可リスト/profiles/:profile/denylist | /allowlistGET/PUT/POST/PATCH/DELETE、エントリ {id, active}
設定/profiles/:profile/settingslogs、blockPage、performance、web3
分析/profiles/:profile/analytics/<dim>status、domains、reasons、ips、devices、protocols、queryTypes、ipVersions、dnssec、encryption、destinations。時間バケットには ;series を追加
ログ/profiles/:profile/logs一覧表示、/stream(SSE)、/download、DELETE でクリア

完全なパラメータテーブル、すべての JSON スキーマ、すべての応答例は references/api-reference.md にあります。重要な呼び出し(単一の GET を超えるもの)を記述する前に必ず読んで、フィールド名、列挙値、デフォルト値を最初から正しく把握し、推測してライブ API と往復することを避けてください。

機械可読な references/openapi.yaml(OpenAPI 3.0、api-reference.md から移植された応答例付き)は同じエンドポイントをミラーリングしています。クライアントを生成する場合、コード生成ツールに渡す場合、または構造化された差分サーフェスを必要とする場合に使用してください。人間が閲覧できるバージョンについては、references/openapi.html(仕様から事前レンダリングされた静的 Redoc ページ — タグでグループ化、検索可能、例がインラインで表示)を開いて、生の YAML を読む代わりに利用してください。

一般的なパターン

curl の例(拒否リストの一覧表示):

curl -sH "X-Api-Key: $NEXTDNS_API_KEY" \
  "https://api.nextdns.io/profiles/$PROFILE_ID/denylist"

拒否リストにドメインを追加する:

curl -sH "X-Api-Key: $NEXTDNS_API_KEY" -H "Content-Type: application/json" \
  -X POST "https://api.nextdns.io/profiles/$PROFILE_ID/denylist" \
  -d '{"id": "badsite.com", "active": true}'

セキュリティ設定をトグルする:

curl -sH "X-Api-Key: $NEXTDNS_API_KEY" -H "Content-Type: application/json" \
  -X PATCH "https://api.nextdns.io/profiles/$PROFILE_ID/security" \
  -d '{"cryptojacking": true}'

プロファイル全体に対して PATCH するよりも、スコープされたサブリソース(例: /security、/settings/logs)に PATCH を使用することを推奨します。無関係なフィールドを誤って上書きしにくくなります。

ページネーション(analytics/*、logs)の場合、応答から meta.pagination.cursor を取得し、次のリクエストで ?cursor=... として渡します。null/存在しないカーソルは最終ページを意味します。完全な日付形式と時系列(;series、interval、alignment、timezone)のルールは references/api-reference.md#time-series にあります。

リファレンスを最新に保つ

差分を取るための公式 OpenAPI ファイルはありません。NextDNS のドキュメント https://nextdns.github.io/api/ は手書きの HTML です。API の更新を確認するよう求められた場合、または高リスクのタスクでこのスキルに依存する前に、そのページを取得し、references/api-reference.md および references/openapi.yaml と比較してください。何かずれがある場合は、両方を更新してください(歴史的には、新しい分析ディメンションや新しい設定/セキュリティ/プライバシートグルが変更されたフィールドです)。完全な手順については、references/api-reference.md の下部にある「最新状態を保つ」セクションを参照してください。

references/openapi.yaml を編集した後は、scripts/render-docs.sh を実行してください。これにより、仕様をリント(YAML/スキーマの誤りを読者に届く前に検出)し、そこから references/openapi.html を再生成します。YAML 編集と一緒に再生成された HTML をコミットして、二つが乖離しないようにしてください。

関連スキル