Skip to main content
Glama

next-dns-mcp

MCP-server för NextDNS med Streamable HTTP, redo att deployas på Fly.io.

Funktioner

  • Lista/skapa/uppdatera/ta bort profiler

  • Denylist / allowlist / blocklists

  • Analytics (status, domains, devices, … + time-series)

  • DNS-loggar (hämtning, clear, download-URL)

  • Generiska GET/PATCH för nästlade sektioner (security, privacy, settings/…)

Related MCP server: nextdns-mcp

Snabbstart lokalt

cp .env.example .env
# fyll i NEXTDNS_API_KEY (från https://my.nextdns.io/account)
# valfritt: NEXTDNS_PROFILE_ID, MCP_AUTH_TOKEN

npm install
npm run dev

Health: GET http://127.0.0.1:8080/health
MCP: POST http://127.0.0.1:8080/mcp

Smoke-test:

NEXTDNS_API_KEY=… MCP_AUTH_TOKEN=dev npm run dev &
MCP_URL=http://127.0.0.1:8080/mcp MCP_AUTH_TOKEN=dev npm run smoke

Deploy till Fly.io

1. Förutsättningar

  • flyctl installerat och inloggat (fly auth login)

  • NextDNS API-nyckel

2. Skapa app + secrets

fly apps create next-dns-mcp   # hoppa över om appen redan finns
fly secrets set \
  NEXTDNS_API_KEY="din_nextdns_api_key" \
  MCP_AUTH_TOKEN="$(openssl rand -hex 32)" \
  NEXTDNS_PROFILE_ID="valfri_default_profil"

Uppdatera ALLOWED_HOSTS i fly.toml om appnamnet skiljer sig från next-dns-mcp.

3. Deploy

fly deploy
fly status
fly open /health

MCP-URL: https://next-dns-mcp.fly.dev/mcp

Anslut från Cursor

{
  "mcpServers": {
    "next-dns": {
      "url": "https://next-dns-mcp.fly.dev/mcp",
      "headers": {
        "Authorization": "Bearer <MCP_AUTH_TOKEN>"
      }
    }
  }
}

Transport: Streamable HTTP.

Anslut från Claude (iPhone / web / Desktop)

Claude kräver OAuth (Client ID + Secret). Konfigurera på claude.ai (synkas till iPhone-appen):

  1. Customize → Connectors → Add custom connector

  2. URL: https://next-dns-mcp.fly.dev/mcp

  3. OAuth Client ID: värdet av OAUTH_CLIENT_ID (default nextdns-mcp-claude)

  4. OAuth Client Secret: värdet av OAUTH_CLIENT_SECRET (Fly secret)

  5. Klicka AddConnect

  6. I webbläsaren: ange MCP_AUTH_TOKEN som lösenord och godkänn

I iPhone-appen: + → Connectors och aktivera NextDNS.

Anslut från ChatGPT

ChatGPT visar en unik Callback URL per connector, typ:

https://chatgpt.com/connector/oauth/<id>

Den mönstret accepteras automatiskt av servern (ingen manuell registrering behövs).

  1. Aktivera Developer mode i ChatGPT om det behövs

  2. Lägg till MCP / connector med URL: https://next-dns-mcp.fly.dev/mcp

  3. OAuth Client ID: nextdns-mcp-claude

  4. OAuth Client Secret: samma som på Fly (OAUTH_CLIENT_SECRET)

  5. Lämna/ange den Callback URL ChatGPT visar (servern tillåter chatgpt.com/connector/oauth/*)

  6. Godkänn och ange MCP_AUTH_TOKEN på consent-sidan

Om ChatGPT visar en ovanlig callback-URL, sätt den via Fly-secret:

fly secrets set OAUTH_EXTRA_REDIRECT_URIS="https://exakt-url-fran-chatgpt"

Miljövariabler

Variabel

Obligatorisk

Beskrivning

NEXTDNS_API_KEY

ja

API-nyckel från NextDNS-kontot

MCP_AUTH_TOKEN

ja

Bearer-token + lösenord på OAuth-consent

OAUTH_CLIENT_SECRET

ja

Secret till Claude/ChatGPT connector

OAUTH_CLIENT_ID

nej

Default nextdns-mcp-claude

OAUTH_EXTRA_REDIRECT_URIS

nej

Extra callback-URL:er (kommaseparerade)

PUBLIC_BASE_URL

ja i prod

t.ex. https://next-dns-mcp.fly.dev

NEXTDNS_PROFILE_ID

nej

Default-profil om profileId utelämnas

PORT

nej

Default 8080

HOST

nej

Default 0.0.0.0

ALLOWED_HOSTS

nej

Reserved for future host checks

Verktyg (urval)

Tool

Syfte

nextdns_list_profiles

Lista profiler

nextdns_get_profile

Hämta profil

nextdns_add_denylist_domain

Blockera domän

nextdns_add_allowlist_domain

Tillåt domän

nextdns_analytics

Analytics / time-series

nextdns_logs

DNS-loggar

nextdns_get_section / nextdns_patch_section

Nästlade sektioner

Föräldrakontroll

Tool

Syfte

nextdns_get_parental_control

Hämta hela parentalControl

nextdns_list_available_services

Katalog: appar/spel (minecraft, tiktok, …)

nextdns_list_available_categories

Katalog: kategorier (porn, gaming, …)

nextdns_set_service

Blockera/schemalägg app (active, recreation)

nextdns_remove_service

Ta bort app-regel

nextdns_set_category

Blockera/schemalägg kategori

nextdns_remove_category

Ta bort kategori-regel

nextdns_set_recreation

Sätt fritidstider + timezone

nextdns_set_parental_settings

safeSearch / youtubeRestrictedMode / blockBypass

recreation: true = tillåten bara under fritidstiderna. recreation: false + active: true = alltid blockerad.

Utveckling

npm run typecheck
npm run build
npm start

API-dokumentation: https://nextdns.github.io/api/

Related MCP Connectors

Related MCP Servers