_ registry / mcp streamable-http · checked 1h ago

nodeping-mcp

https://nodeping.usefulapi.io

Registry code: 47e5accdfecd84bc

api record

Tools for NodePing, hosted by usefulapi.io. Read-only tools never change data; ask the user before a tool that creates, changes or deletes NodePing data. Free plan: 100 tool calls per month. Run nodeping_usage_status to see the calls used this month. If the user asks for something none of these tools can do, tell the user and, with their OK, run nodeping_request_feature to record the request. Pro (unlimited calls, $9/month or $90/year): when the user wants more calls or reaches the limit, run nodeping_upgrade; it returns a Stripe Checkout link for the user to open.…

endpoint
https://nodeping.usefulapi.io/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is nodeping-mcp live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is nodeping-mcp free to use?
No — it asks for a key or a login before it will serve.
What tools does nodeping-mcp have?
28 tools: nodeping_update_check, nodeping_put_schedule, nodeping_delete_schedule, nodeping_get_maintenance, nodeping_list_checks, nodeping_get_check, nodeping_get_check_results, nodeping_get_check_uptime, ….
Is nodeping-mcp safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
406ms

last good check

priced tools
0

of 28 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 28 tools
28 auth-required 28 of 28 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • nodeping_update_check auth-required never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "check_id"
      ],
      "properties": {
        "sens": {
          "type": "integer",
          "maximum": 20,
          "minimum": 0,
          "description": "Re-checks before the state changes."
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1
          },
          "maxItems": 50,
          "description": "Replaces the check's tags."
        },
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        },
        "target": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "description": "New target (HTTP-family checks need an http:// or https:// URL)."
        },
        "check_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "NodePing check id, e.g. 201205050153W2Q4C-0J2HSIRF (from nodeping_list_checks)."
        },
        "threshold": {
          "type": "integer",
          "maximum": 300,
          "minimum": 1,
          "description": "Timeout in seconds."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        },
        "description": {
          "type": "string",
          "maxLength": 1000,
          "description": "Up to 1000 characters."
        }
      }
    }
    arguments 58 lines
  • nodeping_put_schedule auth-required never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "Schedule name."
        },
        "friday": {
          "type": "object",
          "properties": {
            "time1": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "Start of the span, 24h, e.g. 6:00."
            },
            "time2": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "End of the span, e.g. 18:00."
            },
            "allday": {
              "type": "boolean",
              "description": "Notify all day."
            },
            "exclude": {
              "type": "boolean",
              "description": "Invert the span: notify all day except between time1 and time2."
            },
            "disabled": {
              "type": "boolean",
              "description": "No notifications that day."
            }
          },
          "additionalProperties": false
        },
        "monday": {
          "type": "object",
          "properties": {
            "time1": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "Start of the span, 24h, e.g. 6:00."
            },
            "time2": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "End of the span, e.g. 18:00."
            },
            "allday": {
              "type": "boolean",
              "description": "Notify all day."
            },
            "exclude": {
              "type": "boolean",
              "description": "Invert the span: notify all day except between time1 and time2."
            },
            "disabled": {
              "type": "boolean",
              "description": "No notifications that day."
            }
          },
          "additionalProperties": false
        },
        "sunday": {
          "type": "object",
          "properties": {
            "time1": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "Start of the span, 24h, e.g. 6:00."
            },
            "time2": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "End of the span, e.g. 18:00."
            },
            "allday": {
              "type": "boolean",
              "description": "Notify all day."
            },
            "exclude": {
              "type": "boolean",
              "description": "Invert the span: notify all day except between time1 and time2."
            },
            "disabled": {
              "type": "boolean",
              "description": "No notifications that day."
            }
          },
          "additionalProperties": false
        },
        "tuesday": {
          "type": "object",
          "properties": {
            "time1": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "Start of the span, 24h, e.g. 6:00."
            },
            "time2": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "End of the span, e.g. 18:00."
            },
            "allday": {
              "type": "boolean",
              "description": "Notify all day."
            },
            "exclude": {
              "type": "boolean",
              "description": "Invert the span: notify all day except between time1 and time2."
            },
            "disabled": {
              "type": "boolean",
              "description": "No notifications that day."
            }
          },
          "additionalProperties": false
        },
        "saturday": {
          "type": "object",
          "properties": {
            "time1": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "Start of the span, 24h, e.g. 6:00."
            },
            "time2": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "End of the span, e.g. 18:00."
            },
            "allday": {
              "type": "boolean",
              "description": "Notify all day."
            },
            "exclude": {
              "type": "boolean",
              "description": "Invert the span: notify all day except between time1 and time2."
            },
            "disabled": {
              "type": "boolean",
              "description": "No notifications that day."
            }
          },
          "additionalProperties": false
        },
        "thursday": {
          "type": "object",
          "properties": {
            "time1": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "Start of the span, 24h, e.g. 6:00."
            },
            "time2": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "End of the span, e.g. 18:00."
            },
            "allday": {
              "type": "boolean",
              "description": "Notify all day."
            },
            "exclude": {
              "type": "boolean",
              "description": "Invert the span: notify all day except between time1 and time2."
            },
            "disabled": {
              "type": "boolean",
              "description": "No notifications that day."
            }
          },
          "additionalProperties": false
        },
        "wednesday": {
          "type": "object",
          "properties": {
            "time1": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "Start of the span, 24h, e.g. 6:00."
            },
            "time2": {
              "type": "string",
              "pattern": "^\\d{1,2}:\\d{2}$",
              "description": "End of the span, e.g. 18:00."
            },
            "allday": {
              "type": "boolean",
              "description": "Notify all day."
            },
            "exclude": {
              "type": "boolean",
              "description": "Invert the span: notify all day except between time1 and time2."
            },
            "disabled": {
              "type": "boolean",
              "description": "No notifications that day."
            }
          },
          "additionalProperties": false
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 216 lines
  • nodeping_delete_schedule auth-required never probed

    WRITE (destructive): delete a notification schedule by name. DELETE /schedules/{name}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "Schedule name."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 20 lines
  • nodeping_get_maintenance auth-required never probed

    One maintenance entry by id. GET /maintenance/{id}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "maintenance_id"
      ],
      "properties": {
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        },
        "maintenance_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "Maintenance id, e.g. NZT101."
        }
      }
    }
    arguments 20 lines
  • nodeping_list_checks auth-required 1h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "type": {
          "type": "string",
          "maxLength": 30,
          "minLength": 1,
          "description": "Only this check type, e.g. HTTP, PING, SSL, DNS."
        },
        "detail": {
          "type": "boolean",
          "description": "Return full check objects (parameters, notifications) instead of the compact view."
        },
        "status": {
          "enum": [
            "passing",
            "failing",
            "disabled"
          ],
          "type": "string",
          "description": "Only passing, failing or disabled checks."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        },
        "label_contains": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "description": "Only checks whose label contains this text (case-insensitive)."
        }
      }
    }
    arguments 36 lines
  • nodeping_get_check auth-required never probed

    One check by id with its full (scrubbed) configuration. Optionally include its latest result and uptime. GET /checks/{id}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "check_id"
      ],
      "properties": {
        "uptime": {
          "type": "boolean",
          "description": "Include uptime figures."
        },
        "check_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "NodePing check id, e.g. 201205050153W2Q4C-0J2HSIRF (from nodeping_list_checks)."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        },
        "last_result": {
          "type": "boolean",
          "description": "Include the check's most recent result."
        }
      }
    }
    arguments 28 lines
  • nodeping_get_check_results auth-required never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "check_id"
      ],
      "properties": {
        "end": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "End of the range (cannot be combined with span)."
        },
        "span": {
          "type": "integer",
          "maximum": 100000,
          "minimum": 1,
          "description": "Hours of history to return (narrower than `limit` wins)."
        },
        "limit": {
          "type": "integer",
          "maximum": 5000,
          "minimum": 1,
          "description": "Number of results (default 50, max 5000)."
        },
        "start": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "Start of the range."
        },
        "check_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "NodePing check id, e.g. 201205050153W2Q4C-0J2HSIRF (from nodeping_list_checks)."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 44 lines
  • nodeping_get_check_uptime auth-required never probed

    Uptime percentage of a check per day or month (enabled and down milliseconds plus uptime %), with a total. GET /results/uptime/{id}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "check_id"
      ],
      "properties": {
        "end": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "End date, exclusive (default now)."
        },
        "start": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "Start date, e.g. 2026-09-01 (default: earliest data)."
        },
        "offset": {
          "type": "integer",
          "maximum": 24,
          "minimum": -24,
          "description": "UTC offset in hours for the day/month boundaries."
        },
        "check_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "NodePing check id, e.g. 201205050153W2Q4C-0J2HSIRF (from nodeping_list_checks)."
        },
        "interval": {
          "enum": [
            "days",
            "months"
          ],
          "type": "string",
          "description": "Bucket size (default months)."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 46 lines
  • nodeping_get_check_events auth-required never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "check_id"
      ],
      "properties": {
        "end": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "End of the range."
        },
        "limit": {
          "type": "integer",
          "maximum": 5000,
          "minimum": 1
        },
        "start": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "Start of the range."
        },
        "check_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "NodePing check id, e.g. 201205050153W2Q4C-0J2HSIRF (from nodeping_list_checks)."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 37 lines
  • nodeping_get_check_summary auth-required never probed

    Hourly summary of a check's results: count, min, max and average run time per UTC hour. GET /results/summary/{id}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "check_id"
      ],
      "properties": {
        "check_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "NodePing check id, e.g. 201205050153W2Q4C-0J2HSIRF (from nodeping_list_checks)."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 20 lines
  • nodeping_list_notifications auth-required never probed

    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}].

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "span": {
          "type": "integer",
          "maximum": 100000,
          "minimum": 1,
          "description": "Hours of history to return (narrower than `limit` wins)."
        },
        "limit": {
          "type": "integer",
          "maximum": 5000,
          "minimum": 1,
          "description": "Number of records (default 300, max 5000)."
        },
        "check_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "NodePing check id, e.g. 201205050153W2Q4C-0J2HSIRF (from nodeping_list_checks)."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        },
        "include_subaccounts": {
          "type": "boolean",
          "description": "Also include notifications sent for SubAccounts."
        }
      }
    }
    arguments 33 lines
  • nodeping_list_contacts auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 11 lines
  • nodeping_get_contact auth-required never probed

    One contact by id with its addresses (secret-like addresses masked). GET /contacts?id={id}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "contact_id"
      ],
      "properties": {
        "contact_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "Contact id, e.g. 201205050153W2Q4C-BKPGH."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 20 lines
  • nodeping_list_contact_groups auth-required never probed

    Contact groups (name and member address ids), keyed by group id. GET /contactgroups.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 11 lines
  • nodeping_get_schedule auth-required never probed

    One notification schedule by name (for example Days or All) with its seven weekday entries. GET /schedules/{name}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "Schedule name."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 20 lines
  • nodeping_list_notification_profiles auth-required never probed

    Notification profiles: named sets of contacts/groups with delay and schedule, reusable across checks. GET /notificationprofiles.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 11 lines
  • nodeping_list_maintenance auth-required never probed

    Scheduled and ad-hoc maintenance entries (checks they disable, cron, duration, next run, last runs). GET /maintenance.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 11 lines
  • nodeping_get_probe_info auth-required never probed

    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}].

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "kind"
      ],
      "properties": {
        "code": {
          "type": "string",
          "pattern": "^[A-Za-z0-9]{2,3}$",
          "description": "One probe or region code; omit to list all."
        },
        "kind": {
          "enum": [
            "probe",
            "location"
          ],
          "type": "string",
          "description": "probe = individual probe servers, location = regions."
        }
      }
    }
    arguments 22 lines
  • nodeping_mute_check auth-required never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "check_id",
        "mute"
      ],
      "properties": {
        "mute": {
          "type": "boolean",
          "description": "true = mute, false = unmute."
        },
        "check_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "NodePing check id, e.g. 201205050153W2Q4C-0J2HSIRF (from nodeping_list_checks)."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        },
        "mute_until_ms": {
          "type": "integer",
          "maximum": 9007199254740991,
          "description": "Unmute automatically at this time (ms since epoch, must be in the future). Only with mute=true.",
          "exclusiveMinimum": 0
        }
      }
    }
    arguments 31 lines
  • nodeping_disable_check auth-required never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "check_id"
      ],
      "properties": {
        "check_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "NodePing check id, e.g. 201205050153W2Q4C-0J2HSIRF (from nodeping_list_checks)."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 20 lines
  • nodeping_create_adhoc_maintenance auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "name",
        "duration_minutes",
        "check_ids"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        },
        "check_ids": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1,
            "description": "NodePing check id, e.g. 201205050153W2Q4C-0J2HSIRF (from nodeping_list_checks)."
          },
          "maxItems": 500,
          "minItems": 1
        },
        "start_now": {
          "type": "boolean",
          "description": "Start immediately (default false: created but not started)."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        },
        "duration_minutes": {
          "type": "integer",
          "maximum": 10080,
          "minimum": 1,
          "description": "How long the checks stay disabled, in minutes (max 7 days)."
        }
      }
    }
    arguments 42 lines
  • nodeping_delete_maintenance auth-required never probed

    WRITE (destructive): remove a maintenance entry. DELETE /maintenance/{id}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "maintenance_id"
      ],
      "properties": {
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        },
        "maintenance_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "Maintenance id."
        }
      }
    }
    arguments 20 lines
  • nodeping_create_contact_group auth-required never probed

    WRITE: create a contact group from existing contact address ids. POST /contactgroups.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "name",
        "members"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1
          },
          "maxItems": 200,
          "description": "Contact ADDRESS ids (from nodeping_list_contacts), not contact ids."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 30 lines
  • nodeping_update_contact_group auth-required never probed

    WRITE: rename a contact group and/or replace its member list (send the FULL list; omitted members are removed). PUT /contactgroups/{id}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "group_id"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1
          },
          "maxItems": 200,
          "description": "Contact ADDRESS ids (from nodeping_list_contacts), not contact ids."
        },
        "group_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "Contact group id, e.g. 201205050153W2Q4C-G-3QJWG."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 35 lines
  • nodeping_delete_contact_group auth-required never probed

    WRITE (destructive): delete a contact group. Checks that notify the group lose that notification target. DELETE /contactgroups/{id}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "group_id"
      ],
      "properties": {
        "group_id": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "Contact group id."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 20 lines
  • nodeping_list_schedules auth-required never probed

    Notification schedules (per-weekday time windows a contact is alerted in). GET /schedules.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 11 lines
  • nodeping_get_account auth-required 1h ago

    The NodePing account the token belongs to (name, status, timezone, next billing date, default probe locations), or a SubAccount with customer_id. GET /accounts.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 11 lines
  • nodeping_get_current_events auth-required 1h ago

    Everything that is down or disabled right now across the account (type, label, since when). The quickest 'what is broken' view. GET /results/current.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "customer_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "description": "SubAccount customer id (MSP accounts). Omit for your own account."
        }
      }
    }
    arguments 11 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 47e5accdfecd84bc.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/47e5accdfecd84bc/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/47e5accdfecd84bc/badge.svg)](https://brick.blue/agent/47e5accdfecd84bc?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on usefulapi.io 131 entries

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.

123 more sit on this domain. All of them.