NS1 MCP by usefulapi

io.usefulapi/ns1

Read NS1 zones, records, monitors, data feeds and usage; create or update one DNS record.

Yes, your AI can use this right now.Answered a live MCP handshake in 140 ms with no sign-in needed and exposes 18 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://ns1.usefulapi.io/mcp

18 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
ns1_list_zonesread-only

List the DNS zones in the account: name, id, TTL/SOA settings, primary/secondary setup, linked zones and tags. If next_page is not null, call again with its after/offset to get more. GET /v1/zones.

ns1_get_zoneread-only

One zone with its settings and its record list (each record: domain, type, TTL, short answers, linked/tier info). Large zones are paged: if next_page is not null, call again with its after/offset to get the next records. TSIG secrets are redacted. GET /v1/zones/{zone}.

ns1_get_recordread-only

One DNS record by zone, domain and type: TTL, answers (with per-answer metadata), filter chain (traffic steering), linked record and region settings. GET /v1/zones/{zone}/{domain}/{type}.

ns1_searchread-only

Search the account's zones and records by name (substring match). Returns matching zones and/or records with their answers when expand is true. GET /v1/search.

ns1_list_monitoring_jobsread-only

List the account's NS1 monitoring jobs (health checks that feed traffic steering): id, name, type, regions, frequency, rules, current status, active flag and notify list id. Request header values and credentials are redacted. GET /v1/monitoring/jobs.

ns1_get_monitoring_jobread-only

One monitoring job by id with its configuration, rules, regions and status. Header values and credentials are redacted. GET /v1/monitoring/jobs/{id}.

ns1_list_notify_listsread-only

List the notifier lists that monitoring alerts are sent to: id, name and the notifier types and labels (email, Slack, PagerDuty, webhook). Notifier settings (webhook URLs, tokens, service keys, addresses) are redacted. GET /v1/lists.

ns1_list_data_sourcesread-only

List the data sources (connections to third-party monitoring or custom push sources used for traffic steering): id, name, source type, status and their feeds. Connection settings and credentials are redacted. GET /v1/data/sources.

ns1_get_data_sourceread-only

One data source by id with its feeds. Connection settings and credentials are redacted. GET /v1/data/sources/{id}.

ns1_list_data_feedsread-only

List the feeds of one data source (each feed is one monitored item, e.g. one server's health) with id, name and settings. GET /v1/data/feeds/{source_id}.

ns1_get_data_feedread-only

One data feed of a source by id. GET /v1/data/feeds/{source_id}/{feed_id}.

ns1_get_account_summaryread-only

The account's subscription, resources and utilization (queries, records, filter chains, monitors, ... against the plan limits). GET /v1/account/summary.

ns1_get_usage_statsread-only

DNS query counts for the whole account, one zone, or one record (give zone, or zone + domain + type). period is 1h, 24h or 30d; aggregate, expand, limit and after apply to the account and zone levels only (a record takes just period). If next_page is not null, call again with its after/limit. GET /v1/stats/usage[/{zone}[/{domain}/{type}]].

ns1_get_qps_statsread-only

Current queries per second for the whole account, one zone, or one record (give zone, or zone + domain + type). GET /v1/stats/qps[/{zone}[/{domain}/{type}]].

ns1_get_billing_recordsread-only

How many DNS records the account uses against its plan limit in the current billing cycle. GET /billing-usage/v1/records.

ns1_get_billing_queriesread-only

Billable DNS query usage between two Unix timestamps. GET /billing-usage/v1/queries?from=&to=.

ns1_create_recordcan modify

WRITE: creates ONE new DNS record and CHANGES LIVE DNS for that name as soon as NS1 serves it; a wrong answer can take a site or mail offline. Plain records only (A, AAAA, ALIAS, CAA, CNAME, MX, PTR, SRV, TXT; no NS/SOA, no traffic-steering filters or metadata). Refuses when the record already exists (use ns1_update_record). Answers are lists of rdata fields: A ["192.0.2.10"], MX [10, "mail.exampl

ns1_update_recordcan modify

WRITE: changes ONE existing DNS record and CHANGES LIVE DNS for that name immediately. Giving answers REPLACES all current answers of the record (send the complete new set); giving only ttl changes just the TTL. Plain records only (A, AAAA, ALIAS, CAA, CNAME, MX, PTR, SRV, TXT): when answers are given, a record that uses traffic-steering filters, links or per-answer metadata is refused (edit it in

Alternatives in Cloud & Infra

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”