Skip to content

NodePing MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi

Read NodePing checks, uptime, results and events; mute checks, manage maintenance and schedules.

Deletes · 10Changes · 1

28 tools: 10 can delete or cancel things, 1 change things and 17 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http nodeping https://nodeping.usefulapi.io/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "nodeping_get_probe_info" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "nodeping_get_probe_info" says "get": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

28 tools

Deletes or cancels 10Claude Code: deny
  • nodeping_create_adhoc_maintenanceWRITE: create a one-off maintenance window that disables the listed checks for duration_minutes and re-enables them afterwards (no alerts meanwhile).No findings

    Why it is in this group

    • The name "nodeping_create_adhoc_maintenance" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: create a one-off maintenance window that disables the listed checks for duration_minutes and re-enables them afterwards (no alerts meanwhile). Created inactive unless start_now=true, which starts it immediately. POST /maintenance/ad-hoc.

    Annotations the server declares

    • title: Create ad-hoc maintenance
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • nodeping_create_contact_groupWRITE: create a contact group from existing contact address ids.No findings

    Why it is in this group

    • The name "nodeping_create_contact_group" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: create a contact group from existing contact address ids. POST /contactgroups.

    Annotations the server declares

    • title: Create contact group
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • nodeping_delete_contact_groupWRITE (destructive): delete a contact group.No findings

    Why it is in this group

    • The name "nodeping_delete_contact_group" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE (destructive): delete a contact group. Checks that notify the group lose that notification target. DELETE /contactgroups/{id}.

    Annotations the server declares

    • title: Delete contact group
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • nodeping_delete_maintenanceWRITE (destructive): remove a maintenance entry.No findings

    Why it is in this group

    • The name "nodeping_delete_maintenance" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE (destructive): remove a maintenance entry. DELETE /maintenance/{id}.

    Annotations the server declares

    • title: Delete maintenance entry
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • nodeping_delete_scheduleWRITE (destructive): delete a notification schedule by name.No findings

    Why it is in this group

    • The name "nodeping_delete_schedule" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE (destructive): delete a notification schedule by name. DELETE /schedules/{name}.

    Annotations the server declares

    • title: Delete notification schedule
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • nodeping_disable_checkWRITE: stop a check from running (enabled=false); its history is kept.No findings

    Why it is in this group

    • The name "nodeping_disable_check" says "disable": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: stop a check from running (enabled=false); its history is kept. Re-enabling is done in the NodePing app (it changes the number of billed checks). PUT /checks/{id}.

    Annotations the server declares

    • title: Disable check
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • nodeping_mute_checkWRITE: mute a check's notifications (the check keeps running and recording) until a time or indefinitely, or unmute it.No findings

    Why it is in this group

    • The description's first verb is "write": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: mute a check's notifications (the check keeps running and recording) until a time or indefinitely, or unmute it. mute_until is a future time in ms since the epoch; omit it with mute=true to mute until unmuted. PUT /checks/{id}.

    Annotations the server declares

    • title: Mute or unmute check
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • nodeping_put_scheduleWRITE: create or update a notification schedule.No findings

    Why it is in this group

    • The name "nodeping_put_schedule" says "put": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: create or update a notification schedule. NodePing stores all seven weekdays at once, so for an existing schedule the weekdays you pass are merged into its current ones; a new schedule needs all seven. Per weekday: time1/time2 window (24h), exclude to invert it, disabled for no alerts, allday for always. GET then PUT /schedules/{name}.

    Annotations the server declares

    • title: Create or update notification schedule
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • nodeping_update_checkWRITE: change a check's label, description, tags, target, timeout (threshold seconds) or re-checks before alert (sens).No findings

    Why it is in this group

    • The name "nodeping_update_check" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: change a check's label, description, tags, target, timeout (threshold seconds) or re-checks before alert (sens). Only the fields you pass change. It does not enable the check, create checks or touch billing. PUT /checks/{id}.

    Annotations the server declares

    • title: Update check settings
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • nodeping_update_contact_groupWRITE: rename a contact group and/or replace its member list (send the FULL list; omitted members are removed).No findings

    Why it is in this group

    • The name "nodeping_update_contact_group" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: rename a contact group and/or replace its member list (send the FULL list; omitted members are removed). PUT /contactgroups/{id}.

    Annotations the server declares

    • title: Update contact group
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Changes things 1Claude Code: ask
  • nodeping_get_probe_infoNodePing's probe servers (two-letter codes) or regions (nam, lam, eur, eao, wlw): the values a check's run locations use.1 finding

    Why it is in this group

    • The name "nodeping_get_probe_info" says "get": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "nodeping_get_probe_info" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "nodeping_get_probe_info" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    NodePing's probe servers (two-letter codes) or regions (nam, lam, eur, eao, wlw): the values a check's run locations use. GET /info/probe[/{code}] or /info/location[/{code}].

    Annotations the server declares

    • title: Get probe locations
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
Only reads 17Claude Code: allow
  • nodeping_get_accountThe NodePing account the token belongs to (name, status, timezone, next billing date, default probe locations), or a SubAccount with customer_id.No findings

    Why it is in this group

    • The name "nodeping_get_account" says "get": a word for reading.
    Description, as the server wrote it
    The NodePing account the token belongs to (name, status, timezone, next billing date, default probe locations), or a SubAccount with customer_id. GET /accounts.

    Annotations the server declares

    • title: Get account
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_get_checkOne check by id with its full (scrubbed) configuration.No findings

    Why it is in this group

    • The name "nodeping_get_check" says "get": a word for reading.
    Description, as the server wrote it
    One check by id with its full (scrubbed) configuration. Optionally include its latest result and uptime. GET /checks/{id}.

    Annotations the server declares

    • title: Get check
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_get_check_eventsDown and disabled events of a check (start, end, message, open) newest first: an incident history.No findings

    Why it is in this group

    • The name "nodeping_get_check_events" says "get": a word for reading.
    Description, as the server wrote it
    Down and disabled events of a check (start, end, message, open) newest first: an incident history. limit=1 returns the most recent event. GET /results/events/{id}.

    Annotations the server declares

    • title: Get check events
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_get_check_resultsRaw results of a check, newest first by default: pass/fail (su), run time (rt, ms), message (m), status text (sc), start (s) and the probe location (l).No findings

    Why it is in this group

    • The name "nodeping_get_check_results" says "get": a word for reading.
    Description, as the server wrote it
    Raw results of a check, newest first by default: pass/fail (su), run time (rt, ms), message (m), status text (sc), start (s) and the probe location (l). Use span (hours) or start/end (ms epoch, ISO 8601 or RFC 2822; GMT unless a zone is given) to bound it. GET /results/{id}.

    Annotations the server declares

    • title: Get check results
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_get_check_summaryHourly summary of a check's results: count, min, max and average run time per UTC hour.No findings

    Why it is in this group

    • The name "nodeping_get_check_summary" says "get": a word for reading.
    Description, as the server wrote it
    Hourly summary of a check's results: count, min, max and average run time per UTC hour. GET /results/summary/{id}.

    Annotations the server declares

    • title: Get check hourly summary
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_get_check_uptimeUptime percentage of a check per day or month (enabled and down milliseconds plus uptime %), with a total.No findings

    Why it is in this group

    • The name "nodeping_get_check_uptime" says "get": a word for reading.
    Description, as the server wrote it
    Uptime percentage of a check per day or month (enabled and down milliseconds plus uptime %), with a total. GET /results/uptime/{id}.

    Annotations the server declares

    • title: Get check uptime
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_get_contactOne contact by id with its addresses (secret-like addresses masked).No findings

    Why it is in this group

    • The name "nodeping_get_contact" says "get": a word for reading.
    Description, as the server wrote it
    One contact by id with its addresses (secret-like addresses masked). GET /contacts?id={id}.

    Annotations the server declares

    • title: Get contact
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_get_current_eventsEverything that is down or disabled right now across the account (type, label, since when).No findings

    Why it is in this group

    • The name "nodeping_get_current_events" says "get": a word for reading.
    Description, as the server wrote it
    Everything that is down or disabled right now across the account (type, label, since when). The quickest 'what is broken' view. GET /results/current.

    Annotations the server declares

    • title: Get current events
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_get_maintenanceOne maintenance entry by id.No findings

    Why it is in this group

    • The name "nodeping_get_maintenance" says "get": a word for reading.
    Description, as the server wrote it
    One maintenance entry by id. GET /maintenance/{id}.

    Annotations the server declares

    • title: Get maintenance window
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_get_scheduleOne notification schedule by name (for example Days or All) with its seven weekday entries.No findings

    Why it is in this group

    • The name "nodeping_get_schedule" says "get": a word for reading.
    Description, as the server wrote it
    One notification schedule by name (for example Days or All) with its seven weekday entries. GET /schedules/{name}.

    Annotations the server declares

    • title: Get notification schedule
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_list_checksList monitoring checks with label, type, target, interval, enabled state and pass/fail (state 1 = passing, 0 = failing; firstdown = when the current outage began).No findings

    Why it is in this group

    • The name "nodeping_list_checks" says "list": a word for reading.
    Description, as the server wrote it
    List monitoring checks with label, type, target, interval, enabled state and pass/fail (state 1 = passing, 0 = failing; firstdown = when the current outage began). Filter client-side by status, type or label text. Compact by default; set detail=true for the full (scrubbed) check objects. GET /checks.

    Annotations the server declares

    • title: List checks
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_list_contact_groupsContact groups (name and member address ids), keyed by group id.No findings

    Why it is in this group

    • The name "nodeping_list_contact_groups" says "list": a word for reading.
    Description, as the server wrote it
    Contact groups (name and member address ids), keyed by group id. GET /contactgroups.

    Annotations the server declares

    • title: List contact groups
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_list_contactsAll notification contacts with their addresses (email, SMS, webhook, Slack, ...).No findings

    Why it is in this group

    • The name "nodeping_list_contacts" says "list": a word for reading.
    Description, as the server wrote it
    All notification contacts with their addresses (email, SMS, webhook, Slack, ...). Webhook/Slack/PagerDuty/Pushover addresses are masked. Address ids are what contact groups and checks reference. GET /contacts.

    Annotations the server declares

    • title: List contacts
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_list_maintenanceScheduled and ad-hoc maintenance entries (checks they disable, cron, duration, next run, last runs).No findings

    Why it is in this group

    • The name "nodeping_list_maintenance" says "list": a word for reading.
    Description, as the server wrote it
    Scheduled and ad-hoc maintenance entries (checks they disable, cron, duration, next run, last runs). GET /maintenance.

    Annotations the server declares

    • title: List maintenance windows
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_list_notification_profilesNotification profiles: named sets of contacts/groups with delay and schedule, reusable across checks.No findings

    Why it is in this group

    • The name "nodeping_list_notification_profiles" says "list": a word for reading.
    Description, as the server wrote it
    Notification profiles: named sets of contacts/groups with delay and schedule, reusable across checks. GET /notificationprofiles.

    Annotations the server declares

    • title: List notification profiles
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_list_notificationsThe alert notifications NodePing sent (who, when, what), for one check or for the whole account, newest first.No findings

    Why it is in this group

    • The name "nodeping_list_notifications" says "list": a word for reading.
    Description, as the server wrote it
    The alert notifications NodePing sent (who, when, what), for one check or for the whole account, newest first. Contact addresses that are webhook URLs or keys are masked. GET /notifications[/{check_id}].

    Annotations the server declares

    • title: List notifications sent
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • nodeping_list_schedulesNotification schedules (per-weekday time windows a contact is alerted in).No findings

    Why it is in this group

    • The name "nodeping_list_schedules" says "list": a word for reading.
    Description, as the server wrote it
    Notification schedules (per-weekday time windows a contact is alerted in). GET /schedules.

    Annotations the server declares

    • title: List notification schedules
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.3.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http nodeping https://nodeping.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__nodeping__nodeping_get_account",
      "mcp__nodeping__nodeping_list_checks",
      "mcp__nodeping__nodeping_get_check",
      "mcp__nodeping__nodeping_get_check_results",
      "mcp__nodeping__nodeping_get_check_uptime",
      "mcp__nodeping__nodeping_get_check_events",
      "mcp__nodeping__nodeping_get_current_events",
      "mcp__nodeping__nodeping_get_check_summary",
      "mcp__nodeping__nodeping_list_notifications",
      "mcp__nodeping__nodeping_list_contacts",
      "mcp__nodeping__nodeping_get_contact",
      "mcp__nodeping__nodeping_list_contact_groups",
      "mcp__nodeping__nodeping_list_schedules",
      "mcp__nodeping__nodeping_get_schedule",
      "mcp__nodeping__nodeping_list_notification_profiles",
      "mcp__nodeping__nodeping_list_maintenance",
      "mcp__nodeping__nodeping_get_maintenance"
    ],
    "ask": [
      "mcp__nodeping__nodeping_get_probe_info"
    ],
    "deny": [
      "mcp__nodeping__nodeping_update_check",
      "mcp__nodeping__nodeping_mute_check",
      "mcp__nodeping__nodeping_disable_check",
      "mcp__nodeping__nodeping_create_adhoc_maintenance",
      "mcp__nodeping__nodeping_delete_maintenance",
      "mcp__nodeping__nodeping_create_contact_group",
      "mcp__nodeping__nodeping_update_contact_group",
      "mcp__nodeping__nodeping_delete_contact_group",
      "mcp__nodeping__nodeping_put_schedule",
      "mcp__nodeping__nodeping_delete_schedule"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as nodeping. Review it before you use it.