A side-by-side look at the MCP Server and MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Server for monitoring work as a local process; choose MCP Server for monitoring as a local process. You can also run both side by side in one mcpServers block.
query_calls, get_cost_summary, list_alerts.DEVHELM_API_TOKEN.list_monitors, get_monitor, create_monitor.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Monitoring | Monitoring |
| Quality signal | 60/100 · Good | 57/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | Not declared |
| Pricing | BYOK (pay the provider) | Not declared |
| Required env vars | None listed | DEVHELM_API_TOKEN |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 1 |
| Directory activity | 2 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 89 | 129 |
| Full listing | View MCP Server | View MCP Server |
query_callsRetrieve recent LLM call records captured by Argosvix. Filterable by provider / model / time range / tag (tagKey + tagValue pair). Defaults to the last 24 hours, 100 records.get_cost_summaryReturn cost / call count / token aggregates per time range, with a per-provider breakdown. When groupBy="none" is specified, a per-provider breakdown is still returned for backend compatibility (check the response.total field for the overall sum).list_alertsReturn the list of configured alerts plus trigger history within the last 24 hours.list_proposalsReturn the unresolved improvement proposals found by the Argosvix guardian (quality drift / reliability anomalies / cost switching / safety / silencing noisy alerts). Approving, dismissing, and executing happen in the dashboard inbox (agents can only read and converse).get_proposal_threadReturn the thread for a proposal (the questions asked so far and the AI's replies). Get proposalId from list_proposals.reply_proposalPost a question about a proposal and get the AI's reply (same as the inbox conversation). Explanation only — nothing is executed. Get proposalId from list_proposals.silence_alertTemporarily mute an alert (stops notification delivery). Defaults to 24 hours; pass an ISO-8601 timestamp as until for a custom expiry. Pass the alertId obtained from list_alerts.unsilence_alertUnmute a currently silenced alert.create_alertCreate a new alert rule. Watches for cost / error rate / latency / anomaly threshold breaches and notifies the specified channels. Example: "notify me by email when daily cost exceeds $10". channelKinds is an array of channel kinds to enable; channelTargets is an object keyed by those kinds holding the destinations (e.g. channelKinds:["email"], channelTargets:{"email":"dev@example.com"}). Every kind listed in channelKinds must have a destination in channelTargets. anomaly_* types interpret thresholdValue as a standard-deviation multiplier (0.5-10, e.g. 3 = 3 sigma). The Free plan allows the email channel only and up to 3 alerts (the backend returns 403 beyond that).update_alertUpdate an existing alert's settings (PATCH /v1/alerts/:id). alertType (the watched metric type) is immutable — to change it, create a new alert and then delete the old one (completing the alert lifecycle). Threshold / evaluation window / notification channels / name / enabled flag / composite conditions can be partially updated (all fields optional). Example phrasing: "lower the monthly budget alert threshold from $100 to $50" / "add Slack as a notification channel".delete_alertDelete an alert (DELETE /v1/alerts/:id). Related alert_events are CASCADE-deleted too. To guard against accidental deletion, checking the details with get_alert first is recommended. If you only want to pause an alert, prefer silence_alert (mute) or update_alert with enabled=false instead of delete (both are recoverable).get_alertReturn the detailed configuration of an alert and its recent trigger history. Pass the alertId obtained from list_alerts. Use it to check the threshold / notification channels / silence state / when it fired.list_monitorsList all uptime monitors in the workspace.get_monitorGet a single monitor by ID, including its full configuration.create_monitorCreate a new uptime monitor.
Required: name and type (HTTP, DNS, TCP, ICMP, HEARTBEAT,
MCP_SERVER, BROWSER, MULTI_STEP_API).
``config`` is required for probe types (HTTP, DNS, TCP, ICMP,
HEARTBEAT, MCP_SERVER). Browser and multi-step monitors use a
type default when ``config`` is omitted.
``frequencySeconds`` is optional (10–86400). Omit it to use the
plan minimum.
``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_monitorUpdate an existing monitor's configuration.delete_monitorDelete a monitor permanently.pause_monitorPause a monitor (stops checking until resumed).resume_monitorResume a paused monitor.test_monitorTrigger an ad-hoc test run for a monitor and return the result.list_monitor_resultsList recent check results for a monitor (cursor-paginated).list_monitor_versionsList version history for a monitor.list_incidentsList all incidents in the workspace.get_incidentGet a single incident by ID with full details.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"argosvix-mcp-server": {
"command": "npx",
"args": [
"-y",
"@argosvix/mcp-server"
]
}
}
}
{
"mcpServers": {
"mcp-server-113": {
"command": "uvx",
"args": [
"devhelm-mcp-server"
],
"env": {
"DEVHELM_API_TOKEN": "YOUR_DEVHELM_API_TOKEN_HERE"
}
}
}
}