Skip to main content
Glama
devhelmhq

DevHelm MCP Server

Official
by devhelmhq

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DEVHELM_API_TOKENYesYour DevHelm API token

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_monitorsA

List all uptime monitors in the workspace.

get_monitorB

Get a single monitor by ID, including its full configuration.

create_monitorA

Create a new uptime monitor.

Required fields: name, type (HTTP/DNS/TCP/ICMP/MCP/HEARTBEAT), config (type-specific), frequencySeconds (30-86400).

managedBy is set automatically to MCP server-side; callers cannot override it. Use the SDK or CLI directly if you need a different attribution.

update_monitorC

Update an existing monitor's configuration.

delete_monitorB

Delete a monitor permanently.

pause_monitorB

Pause a monitor (stops checking until resumed).

resume_monitorB

Resume a paused monitor.

test_monitorB

Trigger an ad-hoc test run for a monitor and return the result.

list_monitor_resultsB

List recent check results for a monitor (cursor-paginated).

list_monitor_versionsC

List version history for a monitor.

list_incidentsA

List all incidents in the workspace.

get_incidentA

Get a single incident by ID with full details.

create_incidentB

Create a manual incident.

Required fields: title, severity (DOWN/DEGRADED/MAINTENANCE). Optional: monitorId (UUID), body (detailed description).

resolve_incidentC

Resolve an active incident, optionally with a resolution message.

get_incident_timelineA

Full forensic timeline for an incident.

Returns every recorded state transition for the incident, the rule evaluations that caused each triggering transition, and the policy snapshot in effect at the time.

Use this to explain why an incident was declared/confirmed/resolved, or to audit a past detection decision.

get_check_traceA

Everything the detection engine recorded for a single check.

Includes the rule evaluations produced for this check_id, the state transitions that fired (if any), and the policy snapshot active at evaluation time. Use when a user references a specific check execution ID (e.g. from a support ticket or webhook).

get_policy_snapshotA

Fetch a policy snapshot by its content-addressed SHA-256 hash.

Useful for inspecting the exact detection policy that was active when a specific evaluation or transition happened — the hash is stable, so historical data keeps pointing at the right policy even if the monitor has been edited since.

list_monitor_rule_evaluationsA

List rule evaluations produced for a monitor (paginated).

Filters:

  • rule_type: e.g. "consecutive_failures", "latency_threshold"

  • region: probe region, e.g. "us-east"

  • only_matched: if True, return only evaluations that fired

  • from_/to: ISO-8601 datetime bounds

Use to answer "which rules fired on monitor X in the last hour?".

list_monitor_transitionsB

List state transitions recorded for a monitor (paginated).

A transition captures every WATCHING→TRIGGERED→CONFIRMED→RESOLVED edge the detection engine walked. Includes transitions that occurred before an incident was declared (incident_id = null).

Use to reconstruct the full reliability history of a monitor.

list_alert_channelsA

List all alert channels configured in the workspace.

get_alert_channelC

Get an alert channel by ID.

create_alert_channelA

Create a new alert channel.

Required: name, type, config (type-specific). Types: SLACK, EMAIL, WEBHOOK, PAGERDUTY, OPSGENIE, TELEGRAM, DISCORD, MSTEAMS.

update_alert_channelC

Update an existing alert channel.

delete_alert_channelC

Delete an alert channel.

test_alert_channelC

Send a test notification to an alert channel to verify it works.

list_notification_policiesA

List all notification policies in the workspace.

get_notification_policyC

Get a notification policy by ID.

create_notification_policyA

Create a notification policy.

Required: name, matchRules (list of {type, value?, monitorIds?, regions?}), escalation ({steps: [{delayMinutes, channelIds}], onResolve?, onReopen?}), enabled (bool), priority (int, higher = evaluated first).

update_notification_policyC

Update a notification policy.

delete_notification_policyC

Delete a notification policy.

test_notification_policyB

Send a test dispatch to verify a notification policy's routing.

list_environmentsA

List all environments in the workspace.

get_environmentA

Get an environment by slug (e.g. 'production', 'staging').

create_environmentC

Create an environment.

Required fields: name, slug, color.

update_environmentC

Update an environment by slug.

delete_environmentB

Delete an environment by slug.

list_secretsA

List all secrets (metadata only, values are never returned).

create_secretA

Create an encrypted secret.

Required fields: key, value. The value is encrypted at rest and can be referenced in monitor auth configs as {{secrets.KEY}}.

update_secretC

Update a secret's value by key.

delete_secretB

Delete a secret by key.

list_tagsA

List all tags in the workspace.

get_tagA

Get a tag by ID.

create_tagB

Create a tag.

Required fields: name. Optional: color.

update_tagC

Update a tag.

delete_tagC

Delete a tag.

list_resource_groupsA

List all resource groups in the workspace.

get_resource_groupB

Get a resource group by ID.

create_resource_groupC

Create a resource group.

Required fields: name. Optional: description.

update_resource_groupC

Update a resource group.

delete_resource_groupC

Delete a resource group.

add_resource_group_memberD

Add a monitor to a resource group.

Required fields: monitorId.

remove_resource_group_memberC

Remove a monitor from a resource group.

list_webhooksA

List all webhook endpoints in the workspace.

get_webhookB

Get a webhook endpoint by ID.

create_webhookB

Create a webhook endpoint.

Required fields: url, events (list of event types to subscribe to).

update_webhookC

Update a webhook endpoint.

delete_webhookC

Delete a webhook endpoint.

test_webhookC

Send a test event to a webhook endpoint to verify it works.

list_api_keysA

List all API keys in the workspace.

create_api_keyA

Create a new API key. The key value is returned only once.

Required fields: name. Optional: expiresAt.

revoke_api_keyA

Revoke an API key (disables it without deleting).

delete_api_keyC

Delete an API key permanently.

list_dependenciesA

List all tracked service dependencies.

get_dependencyB

Get a tracked dependency by ID.

track_dependencyA

Start tracking a service dependency by its slug (e.g. 'github', 'aws').

delete_dependencyC

Stop tracking a service dependency.

acquire_deploy_lockA

Acquire a deploy lock to prevent concurrent deployments.

Required: lockedBy (identity of requester, e.g. hostname or CI job ID). Optional: ttlMinutes (default 30, max 60).

get_current_deploy_lockA

Get the currently active deploy lock, or null if unlocked.

release_deploy_lockC

Release a deploy lock by ID.

force_release_deploy_lockA

Force-release any active deploy lock (admin action).

list_maintenance_windowsA

List maintenance windows for the workspace.

Use this BEFORE creating a new window to check whether someone else (or an earlier agent run) already scheduled overlap, or AFTER a deploy to confirm the window you opened is still active.

Filters (all optional; combine freely):

  • monitor_id: UUID of a monitor — only windows attached to that single monitor (org-wide windows are excluded).

  • status: "active" for windows currently in progress, or "upcoming" for windows scheduled in the future. Past / cancelled windows are not returned by the API today; omit status for the broadest result.

get_maintenance_windowA

Get a single maintenance window by ID with full details.

create_maintenance_windowA

Schedule a maintenance window to suppress alerts during planned work.

Call this BEFORE running an operation that may legitimately cause monitors to fail — a deploy, a database migration, a third-party service's announced downtime — so the on-call rotation isn't paged for known-expected failures. Always pair every successful create with a follow-up cancel_maintenance_window once the operation finishes; if the operation runs long, call update_maintenance_window to push the end time back rather than letting the window lapse early.

Time fields use ISO 8601 / RFC 3339 timestamps with explicit timezone — UTC strongly preferred. Example: "2026-05-15T14:00:00Z". Naive timestamps (no timezone) are rejected by the API.

Body fields:

  • startsAt (required): when the window opens.

  • endsAt (required): when the window closes; must be strictly after startsAt.

  • monitorId (optional): UUID of a single monitor to scope the window to. Omit (or set null) to make this an org-wide window that suppresses alerts on every monitor in the workspace — the right choice for a deploy or migration that touches the whole platform.

  • reason (optional): human-readable explanation ("v0.7.3 deploy", "Postgres major upgrade"). Surfaces in the dashboard and on-call channel; keep it specific.

  • repeatRule (optional): iCal RRULE string for recurring windows (max 100 chars), e.g. FREQ=WEEKLY;BYDAY=SU for weekly Sunday maintenance. Omit for one-time windows.

  • suppressAlerts (optional): whether the window actually silences alerts. Default true; set false to record a maintenance window for audit without changing alerting behavior.

update_maintenance_windowA

Update an in-flight or scheduled maintenance window.

The most common use is extending an active window when a deploy runs longer than expected — call this with the new endsAt to keep alerts suppressed past the original deadline. The endpoint is a full replacement (PUT, not PATCH): pass the complete intended state, not a delta. Any field omitted falls back to the underlying model's default rather than preserving the existing value.

Time fields use ISO 8601 / RFC 3339 timestamps with explicit timezone (UTC preferred), e.g. "2026-05-15T16:30:00Z".

Body fields (same schema as create):

  • startsAt (required)

  • endsAt (required)

  • monitorId (optional; null = org-wide)

  • reason (optional; null clears)

  • repeatRule (optional; null clears the recurrence)

  • suppressAlerts (optional)

cancel_maintenance_windowA

Cancel a maintenance window — alerts resume immediately.

Call this AFTER a deploy or maintenance operation completes successfully so any new monitor failures surface as real incidents instead of being silently absorbed. If the window was scheduled but not yet started, this prevents it from ever opening.

The window record is removed; the audit log preserves the historical fact that the window existed. There is no "uncancel" — schedule a new window if you need to restore suppression.

get_status_overviewA

Get the dashboard overview with monitor counts, incident summary, and uptime stats.

list_status_pagesA

List all status pages in the workspace.

get_status_pageA

Get a status page by ID, including branding and overall status.

create_status_pageC

Create a new status page.

Required fields: name, slug. Optional: description, branding (brandColor, theme, headerStyle, etc.), visibility (PUBLIC/PASSWORD), enabled, incidentMode (MANUAL/REVIEW/AUTOMATIC).

update_status_pageC

Update a status page's name, slug, branding, visibility, or incident mode.

delete_status_pageB

Delete a status page permanently.

reorder_status_page_layoutA

Batch-reorder a status page's full layout.

Required: sections — top-level layout in their new order, where each entry is either {kind:"component", componentId} or {kind:"group", groupId}. Use groupOrders (optional) to also reorder components within specific groups; only include groups whose internal order changed. The full top-level set must be provided — partial reorders are rejected by the API.

Use this for "drag-and-drop" layout edits that touch both groups and ungrouped components. To reorder components within a single group only, prefer reorder_status_page_components.

list_status_page_componentsC

List all components on a status page.

create_status_page_componentB

Add a component to a status page.

Required fields: name, type (STATIC or MONITOR). Optional: groupId (nest under a group), monitorId (for MONITOR type).

update_status_page_componentC

Update a status page component's name, group, or status.

delete_status_page_componentC

Remove a component from a status page.

reorder_status_page_componentsA

Reorder components on a status page.

Required: positions — list of {componentId, position} entries giving every component its new zero-based ordinal. The full set must be provided; partial reorders are rejected by the API.

list_status_page_groupsB

List component groups on a status page (with nested components).

create_status_page_groupC

Create a component group on a status page.

Required fields: name.

update_status_page_groupC

Update a component group's name or display order.

delete_status_page_groupB

Delete a component group from a status page.

list_status_page_incidentsB

List incidents on a status page (paginated).

get_status_page_incidentB

Get a status page incident with its full timeline of updates.

create_status_page_incidentC

Create an incident on a status page.

Required fields: title, impact (NONE/MINOR/MAJOR/CRITICAL). Optional: body, status (INVESTIGATING/IDENTIFIED/MONITORING/RESOLVED), affectedComponents (list of {componentId, status}).

update_status_page_incidentC

Update a status page incident's title, impact, or status.

post_status_page_incident_updateB

Post a timeline update on a status page incident.

Required fields: body (message text), status. Optional: notifySubscribers (default true), affectedComponents (list of {componentId, status}).

publish_status_page_incidentA

Publish a draft incident (sets it live, notifies subscribers).

Use update_status_page_incident first if you need to change the draft's title, impact, status, body, or affected components before publishing.

dismiss_status_page_incidentC

Dismiss a draft incident (deletes it without publishing).

delete_status_page_incidentC

Delete a status page incident permanently.

list_status_page_subscribersB

List confirmed subscribers on a status page (paginated).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/devhelmhq/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server