SolidPing
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SP_DB_DIR | No | Directory where the SQLite database file lives; set it to a volume. | /data (docker image) or . (bare binary) |
| SP_DB_URL | No | PostgreSQL connection string (required when SP_DB_TYPE=postgres). | |
| SP_DB_TYPE | No | Database type: 'sqlite' or 'postgres'. | sqlite |
| SP_BASE_URL | No | Public URL used in links and notifications. | http://localhost:4000 |
| SP_LOG_LEVEL | No | Log level: debug, info, warn, error. | info |
| SP_NODE_NAME | No | Worker name, must match ^[a-z][a-z0-9-]{2,20}$; defaults to the hostname. Alternatively, pass --hostname to the server command. | |
| SP_SERVER_LISTEN | No | Listen address for the server. | :4000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_checksA | List monitoring checks for the organization, optionally filtered by name/slug substring, labels, or check group. Use this for browsing or filtering a fleet of checks. To investigate a single check's current health, use diagnose_check instead. |
| get_checkA | Get a single check's metadata by UID or slug. For a full triage briefing (current status + recent results + active incidents), prefer diagnose_check instead. |
| create_checkA | Create a new monitoring check. If you don't know what config shape a given type expects, call get_check_type_samples first to fetch a working starting config, then use validate_check to dry-run before creating. |
| update_checkA | Update an existing check by UID or slug. PATCH semantics — only the fields you pass are modified, others stay as-is. |
| delete_checkA | Soft-delete a monitoring check by UID or slug. The check stops running immediately; historical results are kept. |
| list_resultsA | Query monitoring results (raw or aggregated) with filtering by check, type, status, region, period type, and time range. Use this for trend analysis or to inspect a specific window. For investigating a single check's current state, use diagnose_check instead. Defaults: if periodType is omitted it falls back to "hour". If periodStartAfter is omitted it falls back to a window matched to the finest periodType requested (raw=1h, hour=24h, day=30d, month=365d). The response includes effectiveFilter so you can see exactly what filter actually ran. |
| list_incidentsA | List incidents (past or active) for the org, optionally filtered by check, state, or time range. For triaging a specific check's incidents in one call, prefer diagnose_check. |
| get_incidentA | Get a single incident by UID. Pass with="events" to also include the timeline of state transitions and notifications. |
| incident_notifications_listA | List who was notified for a given incident, with delivery status. |
| list_integrationsA | List integrations (Slack, webhook, email, …) configured for the organization. Use this to discover what notification channels are available before attaching them to a check. |
| create_integrationA | Create a new integration (webhook, email, msteams, …) that can be attached to checks for incident notifications. Slack cannot be created here — install it via the dashboard OAuth flow instead. |
| list_check_groupsA | List all check groups for the organization. Check groups bundle related checks together for shared incident handling and dashboard organization. |
| list_regionsA | List monitoring regions available to the organization (e.g. eu-west-1, us-east-1). Returns the slug, label, and any per-region metadata. Use these slugs in the regions array of create_check or update_check. |
| diagnose_checkA | Return everything an operator would want to look at to diagnose a single check's current state in one call: current status, recent raw results across regions, any active incident, and the most recent resolved incident. Use this instead of chaining list_results + list_incidents when a human asks "what's wrong with check X?". |
| list_status_pagesA | List all status pages for the organization. |
| get_status_pageA | Get a single status page by UID or slug. |
| create_status_pageC | Create a new status page for the organization. A status page is the public-facing dashboard that displays the current health of selected checks. |
| update_status_pageA | Update an existing status page (PATCH semantics — only provided fields change). |
| delete_status_pageA | Soft-delete a status page by UID or slug. |
| list_status_page_sectionsA | List sections within a status page. Sections group resources (pinned checks) on the public-facing page. |
| create_status_page_sectionC | Create a new section within a status page. |
| update_status_page_sectionC | Update a section within a status page (PATCH semantics — only provided fields change). |
| delete_status_page_sectionA | Delete a section from a status page. Resources in the section are removed too. |
| list_status_page_resourcesA | List resources (checks pinned to a section) within a status page section. |
| create_status_page_resourceA | Pin a check — or a whole check group, rendered as one aggregated component that never lists its members — to a status-page section as a publicly-displayed resource. |
| update_status_page_resourceC | Update a status page resource (display name, explanation, position). |
| delete_status_page_resourceA | Remove a resource (pinned check) from a status-page section. |
| list_status_page_incidentsA | List the incident publications on a status page — the customer-facing incidents, distinct from the internal |
| create_status_page_incidentA | Publish a hand-written incident on a status page. The title and body are shown to CUSTOMERS: never paste probe output, error strings, internal hostnames or IPs into them. |
| update_status_page_incidentA | Update a published incident's title, severity or state (PATCH semantics). Any edit marks the publication as human-authored, which stops the auto-resolve pipeline from closing it. |
| create_status_page_incident_updateA | Append a narrative update to a published incident. Updates are APPEND-ONLY — there is no edit or delete. The body is shown to customers: never include probe output or internal names. |
| create_incident_publicationB | Publish an EXISTING internal incident onto a status page. The public title is templated from the page's own public resource name — the incident's internal title, which is built from the check slug, is never exposed. |
| delete_incident_publicationA | Unpublish an incident from a status page. The publication row is kept for audit but disappears from the public page, and the same incident can be published again later. |
| list_maintenance_windowsA | List maintenance windows for the organization, optionally filtered by status. Each window includes a server-computed status (active/upcoming/past) and nextOccurrences (the next concrete activations). |
| get_maintenance_windowA | Get a single maintenance window by UID, including title, schedule, recurrence rule, server-computed status (active/upcoming/past), and nextOccurrences (the next concrete activations). |
| create_maintenance_windowA | Schedule a new maintenance window. Optionally attach checks in the same call by passing checkUids — the underlying service does this in two steps but the tool handles it for you. |
| update_maintenance_windowB | Update a maintenance window (PATCH semantics — only provided fields change). |
| delete_maintenance_windowA | Delete a maintenance window by UID (soft delete). |
| set_maintenance_window_checksA | Replace the set of checks (and/or check groups) attached to a maintenance window. Pass empty arrays to clear. To leave one of the two collections untouched, pass it with its current contents — partial updates are not supported by this endpoint. |
| list_check_typesA | List all monitoring check types supported by this server (e.g. http, tcp, dns, icmp, ssl). Use this first when you don't know what type to use. Then call get_check_type_samples for the chosen type to get a starting config. |
| get_check_type_samplesA | Return ready-made sample configs for the given check type. Each sample is a complete, valid config you can clone and modify. Use this to learn the config shape for a type — much more reliable than guessing field names. |
| validate_checkA | Dry-run validate a check config without creating the check. Returns {valid: true} on success or {valid: false, fields: [...]} listing the specific fields with errors. Use this before create_check when you've assembled a config from scratch or modified a sample, to catch problems early. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| triage_incident | Review an incident and produce a triage summary. The model fetches the incident, its event timeline, the affected check's recent results, and returns a paragraph summarizing what's happening, the likely cause, and what to check next. |
| summarize_org_health | Produce a one-paragraph status summary of the organization's monitoring posture: which checks are failing, which incidents are active, overall posture. |
| draft_status_update | Draft a customer-facing status page update for an incident. The output is a draft for human review, not auto-published. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Organization | Current organization metadata (slug, name). |
| Regions | Available monitoring regions. |
TDQS
Scored across 42 tools
Most tools follow clear resource+action CRUD patterns and are easy to tell apart. The incident family (list_incidents, list_status_page_incidents, create_incident_publication, incident_notifications_list) is the only real source of confusion, but the descriptions explicitly separate internal incidents from customer-facing status-page publications. With careful attention to resource names, an agent can select the right tool.
The dominant verb_noun snake_case pattern is consistent across checks, status pages, sections, resources, and maintenance windows. Minor deviations like incident_notifications_list instead of list_incident_notifications and imperative verbs such as diagnose, validate, and set are predictable and do not undermine the overall pattern.
With 42 tools, this is a large surface that exceeds the 25-tool threshold where agent selection becomes difficult. The broad scope means each tool has a purpose, but the count is still heavy for a single MCP server and would benefit from consolidation or tighter scoping.
The server provides thorough lifecycle coverage for checks, status pages, sections, resources, maintenance windows, and status-page incidents. Minor gaps exist—integrations lack update/delete, and check groups are read-only—but core monitoring and status-page workflows can be completed without dead ends.