fettle-mcp 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,14 +3,14 @@
3
3
  **Website:** [fettle.sh](https://fettle.sh) · **MCP docs:** [fettle.sh/docs/mcp](https://fettle.sh/docs/mcp) · **Dashboard:** [dashboard.fettle.sh](https://dashboard.fettle.sh) · **Support:** support@fettle.sh
4
4
 
5
5
  MCP server for [Fettle](https://fettle.sh) — uptime monitoring you can drive from
6
- Claude Code, Claude Desktop, Cursor, Windsurf or anything else that speaks the
6
+ Claude Code, Codex, Claude Desktop, Cursor, Windsurf or anything else that speaks the
7
7
  [Model Context Protocol](https://modelcontextprotocol.io).
8
8
 
9
9
  Ask your assistant to create a monitor, look up why one went down, acknowledge an
10
10
  incident or pause checks before a deploy — it calls the same public API you would.
11
11
 
12
12
  ```
13
- "Add an HTTP monitor for https://api.acme.dev, check it every minute from all regions."
13
+ "Add an HTTP monitor for https://api.acme.dev, check it every 5 minutes from Europe."
14
14
  "Which of my monitors had incidents this week?"
15
15
  "Pause the checkout monitor — we're deploying for the next 20 minutes."
16
16
  ```
@@ -39,6 +39,24 @@ Add one entry to your client's config and restart it.
39
39
  claude mcp add fettle --env FETTLE_API_KEY=fettle_your_key_here -- npx -y fettle-mcp
40
40
  ```
41
41
 
42
+ ### Codex
43
+
44
+ ```bash
45
+ codex mcp add fettle --env FETTLE_API_KEY=fettle_your_key_here -- npx -y fettle-mcp
46
+ ```
47
+
48
+ Or by hand in `~/.codex/config.toml` (`.codex/config.toml` for one trusted
49
+ project):
50
+
51
+ ```toml
52
+ [mcp_servers.fettle]
53
+ command = "npx"
54
+ args = ["-y", "fettle-mcp"]
55
+
56
+ [mcp_servers.fettle.env]
57
+ FETTLE_API_KEY = "fettle_your_key_here"
58
+ ```
59
+
42
60
  ### Claude Desktop
43
61
 
44
62
  `~/Library/Application Support/Claude/claude_desktop_config.json` on macOS,
@@ -284,6 +302,15 @@ Clients configured through a JSON file take the same two fields:
284
302
  }
285
303
  ```
286
304
 
305
+ Codex takes the remote channel in `~/.codex/config.toml` and reads the key from
306
+ an environment variable, so it never sits in the file:
307
+
308
+ ```toml
309
+ [mcp_servers.fettle]
310
+ url = "https://api.fettle.sh/mcp"
311
+ bearer_token_env_var = "FETTLE_API_KEY"
312
+ ```
313
+
287
314
  Use this package when your client speaks only stdio, or when you would rather
288
315
  the credential stayed in a local config file than in a client's cloud
289
316
  configuration.
@@ -2577,7 +2577,7 @@
2577
2577
  {
2578
2578
  "name": "get_uptime_summary",
2579
2579
  "title": "Get uptime for a monitor",
2580
- "description": "Report one monitor's uptime percentage, average response time and incident count over the last 24 hours, 7 days and 30 days at once, to answer how reliable it has been. For a day-by-day series use get_uptime_daily; for response time per region use get_response_time_by_region; for the individual failures use list_check_results. Returns monitor_id and windows keyed 24h, 7d and 30d, each with uptime_percentage (DEGRADED checks count as up; null when there were no checks), total_checks, up_checks, down_checks, degraded_checks, incident_count and avg_response_time_ms.",
2580
+ "description": "Report one monitor's uptime percentage, average response time and incident count over the last 24 hours, 7 days and 30 days at once, to answer how reliable it has been. For a day-by-day series use get_uptime_daily; for response time per region use get_response_time_by_region; for the individual failures use list_check_results. Returns monitor_id and windows keyed 24h, 7d and 30d, each with uptime_percentage, downtime_seconds, observed_seconds, window_start (later than the window's start when the monitor is younger), total_checks, up_checks, down_checks, degraded_checks, incident_count and avg_response_time_ms. uptime_percentage is the share of observed time outside confirmed outages (an outage counts from the first failing probe to the first probe that is not DOWN; a failure only one region saw does not count; maintenance counts as up; hours with no checks are left out; null when nothing was observed). The check counts are informational: a failed check outside a confirmed outage does not lower uptime_percentage.",
2581
2581
  "scope": "read",
2582
2582
  "input_schema": {
2583
2583
  "type": "object",
@@ -2652,6 +2652,18 @@
2652
2652
  "type": "null"
2653
2653
  }
2654
2654
  ]
2655
+ },
2656
+ "downtime_seconds": {
2657
+ "description": "Seconds of confirmed downtime inside the window.",
2658
+ "type": "integer"
2659
+ },
2660
+ "observed_seconds": {
2661
+ "description": "Seconds inside the window the monitor was observed; uptime is measured over this time. Never less than downtime_seconds.",
2662
+ "type": "integer"
2663
+ },
2664
+ "window_start": {
2665
+ "description": "Start of the window: the window length before now, or when the monitor was created if that is later.",
2666
+ "type": "string"
2655
2667
  }
2656
2668
  },
2657
2669
  "required": [
@@ -2660,7 +2672,10 @@
2660
2672
  "up_checks",
2661
2673
  "down_checks",
2662
2674
  "incident_count",
2663
- "avg_response_time_ms"
2675
+ "avg_response_time_ms",
2676
+ "downtime_seconds",
2677
+ "observed_seconds",
2678
+ "window_start"
2664
2679
  ],
2665
2680
  "type": "object"
2666
2681
  },
@@ -5637,7 +5652,7 @@
5637
5652
  {
5638
5653
  "name": "get_uptime_daily",
5639
5654
  "title": "Get a monitor's daily uptime",
5640
- "description": "Report one monitor's uptime for each UTC day, oldest first and ending today, to find the day an outage or degradation began. Each day has date, uptime_percentage, total_checks, up_checks, down_checks, degraded_checks and maintenance_checks; a degraded check counts as up, and a day with no checks outside maintenance has a null uptime_percentage, not 100. For 24h, 7d and 30d totals use get_uptime_summary. Returns monitor_id and days.",
5655
+ "description": "Report one monitor's uptime for each UTC day, oldest first and ending today, to find the day an outage or degradation began. Each day has date, uptime_percentage, downtime_seconds, observed_seconds, total_checks, up_checks, down_checks, degraded_checks and maintenance_checks. uptime_percentage is the share of the day's observed time outside confirmed outages (an outage counts from the first failing probe to the first probe that is not DOWN; a failure only one region saw does not count; maintenance counts as up; hours with no checks are left out); a day with no checks and no outage has a null uptime_percentage, not 100. The check counts are informational: a failed check outside a confirmed outage does not lower uptime_percentage. For 24h, 7d and 30d totals use get_uptime_summary. Returns monitor_id and days.",
5641
5656
  "scope": "read",
5642
5657
  "input_schema": {
5643
5658
  "type": "object",
@@ -5713,6 +5728,14 @@
5713
5728
  },
5714
5729
  "maintenance_checks": {
5715
5730
  "type": "integer"
5731
+ },
5732
+ "downtime_seconds": {
5733
+ "description": "Seconds of confirmed downtime inside the day.",
5734
+ "type": "integer"
5735
+ },
5736
+ "observed_seconds": {
5737
+ "description": "Seconds of the day the monitor was observed; uptime is measured over this time. Never less than downtime_seconds; 0 means no data.",
5738
+ "type": "integer"
5716
5739
  }
5717
5740
  },
5718
5741
  "required": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fettle-mcp",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "mcpName": "sh.fettle/mcp",
5
5
  "description": "Fettle uptime monitoring (https://fettle.sh) for any MCP client — manage monitors, incidents, heartbeats, maintenance windows and status pages from Claude, Cursor or Codex.",
6
6
  "keywords": [
@@ -20,6 +20,7 @@
20
20
  "ssl-expiry",
21
21
  "claude",
22
22
  "claude-code",
23
+ "codex",
23
24
  "cursor",
24
25
  "windsurf"
25
26
  ],